# Publishing Checklist for crates.io
## Before Publishing v0.1.0
### 1. Update Cargo.toml Metadata
- [ ] Update `authors` field with your information
- [ ] Update `repository` URL
- [ ] Verify description is accurate
- [ ] Check keywords and categories
- [ ] Ensure license files exist
### 2. Documentation
- [ ] Update README.md with actual GitHub links
- [ ] Add usage examples
- [ ] Document all public APIs
- [ ] Add CHANGELOG.md
### 3. Code Quality
- [ ] Run `cargo fmt`
- [ ] Run `cargo clippy`
- [ ] Run `cargo test`
- [ ] Verify all examples compile
### 4. Version Control
```bash
git init
git add .
git commit -m "Initial commit: ff-cli v0.1.0"
git remote add origin https://github.com/yourusername/ff-cli.git
git push -u origin main
```
### 5. Publish to crates.io
```bash
# Login (first time only)
cargo login
# Dry run to check for issues
cargo publish --dry-run
# Actual publish
cargo publish
```
## Post-Publication
- [ ] Create a GitHub release/tag for v0.1.0
- [ ] Update documentation with crates.io badge
- [ ] Announce on social media/forums
- [ ] Add to awesome-rust lists
## Quick Publish Commands
```bash
# Update version, format, and check
cargo fmt
cargo clippy
cargo test
cargo build --release
# Publish
cargo publish
```
## Notes
- Once published, versions cannot be deleted (only yanked)
- Start with v0.1.0 to claim the name
- Semantic versioning: MAJOR.MINOR.PATCH