prismatica 1.0.0

308 scientific colormaps as compile-time Rust constants
Documentation
# Contributing to Prismatica

Thanks for your help improving **prismatica**! I am so happy to have you!

There are opportunities to contribute to **prismatica** at any level. It doesn't matter if
you are just getting started with Rust or are the most weathered expert, we can
use your help.

**No contribution is too small and all contributions are valued.**

## Code of Conduct

The **prismatica** project adheres to the [Rust Code of Conduct][coc]. This describes
the _minimum_ behaviour expected from all contributors. Instances of violations of the
Code of Conduct can be reported by contacting me at
[albin@sjoegren.se](mailto:albin@sjoegren.se).

[coc]: https://github.com/rust-lang/rust/blob/master/CODE_OF_CONDUCT.md

## Need Help?

Reach out to me via email at [albin@sjoegren.se](mailto:albin@sjoegren.se) for any concern not covered in this guide.

## Reporting Bugs

Open an issue at <https://github.com/resonant-jovian/prismatica/issues> with:

- A clear description of the problem
- Steps to reproduce
- Expected vs. actual behavior
- Rust version (`rustc --version`) and OS

## Pull Request Process

1. Fork the repository and create a feature branch from `main`.
2. Make your changes (see requirements below).
3. Open a pull request against `main` with a concise description of the change.
4. Address any review feedback.

Bug fixes and new features should include tests.

## Development Setup

```bash
git clone https://github.com/resonant-jovian/prismatica.git
cd prismatica
cargo xtask fetch all      # Download upstream colormap data
cargo xtask generate all   # Generate Rust source from data/
cargo test --all-features -- --test-threads=1
```

## Code Quality Requirements

Before submitting a PR, verify all of the following pass:

```bash
cargo fmt --all                                            # Format
cargo clippy --all-targets --all-features -- -D warnings   # Lint
cargo test --all-features -- --test-threads=1              # Tests
cargo check --no-default-features --features core          # no_std compat
```

The crate enforces:

- `#![no_std]` -- all code must work without the standard library.
- `#![forbid(unsafe_code)]` -- no `unsafe` blocks, ever.
- `#![deny(clippy::unwrap_used)]` -- use `expect()` or proper error handling.

## Generated Files

Files marked with `// Auto-generated by prismatica xtask -- do not edit` are
generated from upstream data. **Do not edit these files by hand.** Instead,
modify the code generation pipeline in the `xtask/` crate and re-run:

```bash
cargo xtask fetch all && cargo xtask generate all
```

## Minimum Supported Rust Version (MSRV)

The MSRV is **1.85**. Ensure your toolchain meets this minimum.

## Versioning Policy

With **prismatica** >=1.0.0:

* Patch (1.\_.x) releases _should only_ contain bug fixes or documentation
  changes. Besides this, these releases should not substantially change
  runtime behaviour.
* Minor (1.x) releases may contain new functionality, MSRV increases (see
  above), minor dependency updates, deprecations, and larger internal
  implementation changes.
* Major (x.0.0) releases may contain breaking API changes.

This is as defined by [Semantic Versioning 2.0](https://semver.org/).

## License

By contributing, you agree that your contributions will be licensed under the
GPL-3.0-only license, the same license that covers the project.