thales 0.3.3

A comprehensive Computer Algebra System (CAS) library for symbolic mathematics, equation solving, calculus, and linear algebra
Documentation
# Contributing to Thales

Thank you for your interest in contributing to Thales!

## Development Setup

1. Clone the repository:
   ```bash
   git clone https://github.com/ChrisGVE/thales.git
   cd thales
   ```

2. Install Rust (if not already installed):
   ```bash
   curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
   ```

3. Build the project:
   ```bash
   cargo build
   ```

4. Run tests:
   ```bash
   cargo test
   ```

## Code Style

- Follow Rust's standard formatting guidelines
- Run `cargo fmt` before committing
- Run `cargo clippy` and address warnings
- Add documentation for public APIs

## Pull Request Process

1. Create a feature branch from `main`
2. Make your changes with clear commit messages
3. Ensure all tests pass
4. Update documentation as needed
5. Submit a pull request

## Release Process

Releases are automated via GitHub Actions. To create a new release:

1. Update the version in `Cargo.toml`
2. Update `CHANGELOG.md` with the new version's changes
3. Commit the changes: `git commit -am "chore: bump version to X.Y.Z"`
4. Create and push a version tag:
   ```bash
   git tag vX.Y.Z
   git push origin vX.Y.Z
   ```

The release workflow will automatically:
- Verify the tag matches `Cargo.toml` version
- Run tests
- Create a GitHub release with changelog notes
- Publish to crates.io

### Required Secrets

For the release workflow to publish to crates.io, the repository must have the following secret configured:

- `CARGO_REGISTRY_TOKEN`: API token from crates.io with publish permissions

## License

By contributing, you agree that your contributions will be licensed under the MIT License.