# Publishing Guide for Quantum-Sign

**The Digital Notary Stamp That Even Quantum Computers Can't Forge**

## Pre-Publication Checklist

- [x] All crates have proper metadata in Cargo.toml
- [x] Version numbers are synchronized (0.1.0)
- [x] Author information: Sicarii <sic.tau@pm.me>
- [x] License: MIT OR Apache-2.0
- [x] Keywords limited to 5 per crate
- [x] Categories properly set
- [x] Documentation links point to docs.rs
- [x] Homepage/repository point to crates.io

## Publishing Steps

### 1. Login to crates.io

```bash
cargo login
# Enter your API token from https://crates.io/me
```

### 2. Run Tests One Final Time

```bash
cargo test --workspace --all-features
cargo fmt --all --check
cargo clippy --all-targets --all-features -- -D warnings
```

### 3. Use the Publishing Script

```bash
./publish.sh
```

Or manually publish in dependency order:

```bash
# Level 1: Foundation
cd crates/qs-drbg && cargo publish

# Level 2: Crypto (depends on drbg)
cd crates/qs-crypto && cargo publish

# Level 3: Independent
cd crates/qs-policy && cargo publish
cd crates/qs-format && cargo publish

# Level 4: Placeholders
cd crates/qs-verify && cargo publish
cd crates/qs-tsp && cargo publish
cd crates/qs-transparency && cargo publish

# Level 5: CLI (depends on all)
cd crates/qs-cli && cargo publish
```

## Post-Publication

### Verify Installation

```bash
# Wait 5-10 minutes for indexing
cargo install quantum-sign

# Test the installation
quantum-sign --version
quantum-sign --help
```

### Documentation

Documentation will automatically build at:
- https://docs.rs/quantum-sign
- https://docs.rs/qs-crypto
- https://docs.rs/qs-format
- https://docs.rs/qs-policy
- https://docs.rs/qs-drbg

### Crates.io Pages

Your crates will appear at:
- https://crates.io/crates/quantum-sign
- https://crates.io/crates/qs-crypto
- https://crates.io/crates/qs-format
- https://crates.io/crates/qs-policy
- https://crates.io/crates/qs-drbg
- https://crates.io/crates/qs-verify
- https://crates.io/crates/qs-tsp
- https://crates.io/crates/qs-transparency

## Troubleshooting

### If a publish fails:

1. Check the error message carefully
2. Common issues:
   - Name already taken: Choose a different name
   - Version already exists: Bump version number
   - Missing required fields: Check Cargo.toml
   - Dependency not found: Wait for indexing (30-60 seconds)

### Yanking a Version

If you need to yank a broken version:

```bash
cargo yank --vers 0.1.0 --crate qs-crypto
```

## Support

For issues or questions:
- Email: sic.tau@pm.me
- Subject: [Quantum-Sign] Your Issue

## Summary

This project implements quantum-resistant code signing that:
- Survives quantum computer attacks
- Uses NIST-approved ML-DSA-87 algorithm
- Provides quorum signing for critical operations
- Works completely offline for verification
- Has zero unsafe code
- Uses only crates.io dependencies

Remember: **Simple Answer**: Quantum-Sign is a command-line tool that digitally signs software using quantum-resistant cryptography to prove the software is authentic and hasn't been tampered with.
