This directory contains scripts to help with the release process.
A convenient script to create and push release tags.
./scripts/release.sh <project> <version>Parameters:
project: The project to release (agentorsimunet)version: Version number in formatX.X.X(e.g.,0.3.5)
Release netdriver-agent version 0.3.5:
./scripts/release.sh agent 0.3.5Release netdriver-simunet version 0.4.0:
./scripts/release.sh simunet 0.4.0- Validates input parameters
- Checks prerequisites (git repository, uv installation)
- Verifies working directory is clean
- Verifies the tag doesn't already exist
- Updates version in
packages/<project>/pyproject.toml - Commits the version change
- Creates an annotated git tag (e.g.,
agent-0.3.5) - Pushes the commit and tag to remote
- Triggers the GitHub Actions release workflow
Once the tag is pushed, the GitHub Actions workflow will automatically:
- Create GitHub Release with release notes
- Run Tests (pylint + pytest)
- Build and Publish to PyPI
- Build wheel package
- Publish to PyPI
- Upload wheel to GitHub release
- Build and Push Docker Image
- Build multi-platform image (linux/amd64, linux/arm64)
- Push to GitHub Container Registry (ghcr.io)
- Tag with version and
latest
- Verify Publication
- Check PyPI package availability
- Generate summary
Tag already exists:
# Delete local tag
git tag -d agent-0.3.5
# Delete remote tag
git push origin :refs/tags/agent-0.3.5
# Try again
./scripts/release.sh agent 0.3.5Workflow failed:
- Check GitHub Actions: https://github.com/OpenSecFlow/netdriver/actions
- Review workflow logs for specific errors
- Fix issues and delete/recreate the tag if needed
- uv installed and configured
- Git configured and authenticated
- Push permissions to the repository
- Clean working directory (no uncommitted changes)