# Publishing Checklist
## Pre-Release Checklist
### 1. Code Quality
- [x] All tests pass: `cargo test` (144 tests passing)
- [x] Clippy passes: `cargo clippy --all-targets -- -D warnings`
- [x] Formatting is correct: `cargo fmt --all -- --check`
- [x] No unused dependencies: `cargo machete`
- [x] Security audit passes: `cargo audit`
### 2. Documentation
- [x] README.md is up to date
- [x] All public APIs are documented
- [x] Examples work correctly
- [x] CHANGELOG.md is updated
- [x] Documentation builds: `cargo doc --no-deps`
- [x] API.md created with comprehensive reference
- [x] CONTRIBUTING.md created
### 3. Version Management
- [x] Version number is updated in Cargo.toml (0.1.0)
- [x] CHANGELOG.md has new version entry
- [x] All changes are committed
- [x] Git tag is created
### 4. Testing
- [x] All features work correctly (default features)
- [x] Examples compile and run
- [x] Benchmarks pass
- [x] Cross-platform compatibility verified
### 5. Publishing
- [x] Dry run passes: `cargo publish --dry-run`
- [x] All required metadata is present in Cargo.toml
- [x] License file exists
- [x] Repository is accessible
## Release Process
1. **Update Version**
```bash
```
2. **Run Quality Checks**
```bash
cargo test --all-features
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt --all -- --check
cargo doc --all-features --no-deps
```
3. **Dry Run**
```bash
cargo publish --dry-run
```
4. **Commit and Tag**
```bash
git add Cargo.toml CHANGELOG.md
git commit -m "Release version X.Y.Z"
git tag "vX.Y.Z"
git push origin main
git push origin "vX.Y.Z"
```
5. **Publish**
```bash
cargo publish
```
## Post-Release
- [ ] Verify package appears on crates.io
- [ ] Check documentation on docs.rs
- [ ] Update any dependent projects
- [ ] Announce release on social media/forums
## Required Metadata
Ensure these fields are present in Cargo.toml:
- `name`: Package name
- `version`: Semantic version
- `edition`: Rust edition
- `authors`: Author information
- `description`: Package description
- `license`: License identifier
- `repository`: Source repository URL
- `homepage`: Project homepage
- `documentation`: Documentation URL
- `readme`: README file path
- `keywords`: Search keywords
- `categories`: Crate categories
- `rust-version`: Minimum Rust version