@@ -163,6 +163,54 @@ sudo pfctl -a httpjail -sr
163163sudo pfctl -a httpjail -F all
164164```
165165
166+ ## Release Process
167+
168+ ### Publishing a New Version
169+
170+ Releases are automated through GitHub Actions when a version tag is pushed. The process:
171+
172+ 1 . ** Update version in Cargo.toml**
173+ ``` bash
174+ # Edit Cargo.toml and update the version field
175+ # Example: version = "0.2.0"
176+ ```
177+
178+ 2 . ** Commit the version change**
179+ ``` bash
180+ git add Cargo.toml
181+ git commit -m " Bump version to 0.2.0"
182+ git push
183+ ```
184+
185+ 3 . ** Create and push a version tag**
186+ ``` bash
187+ # Tag format must be v<version> matching Cargo.toml version
188+ git tag v0.2.0
189+ git push origin v0.2.0
190+ ```
191+
192+ 4 . ** Automated release workflow**
193+ - The GitHub Actions workflow will automatically:
194+ - Run all tests (macOS, Linux, weak mode)
195+ - Run clippy and format checks
196+ - Verify the tag version matches Cargo.toml
197+ - Build the release binary
198+ - Publish to crates.io (only if all tests pass)
199+
200+ ### Prerequisites for Publishing
201+
202+ - ** GitHub Environment** : The ` publish ` environment must be configured in the repository settings
203+ - ** Cargo Token** : The ` CARGO_REGISTRY_TOKEN ` secret must be set in the ` publish ` environment
204+ - ** Version Match** : The git tag (without ` v ` prefix) must exactly match the version in Cargo.toml
205+
206+ ### Manual Publishing (if needed)
207+
208+ If automated publishing fails, you can publish manually:
209+
210+ ``` bash
211+ cargo publish --token < your-token>
212+ ```
213+
166214## License
167215
168216By contributing to httpjail, you agree that your contributions will be licensed under the same license as the project.
0 commit comments