This document provides detailed instructions on how to release the Jupyter MCP Server project using GitHub Actions.
The release process is defined in the .github/workflows/release.yml file and includes the following automated steps:
- Python Package Build - Build distribution packages (wheel and source distribution)
- PyPI Publishing - Automatically publish to PyPI (using OIDC trusted publishing)
- Docker Image Build - Build multi-platform Docker images
- GitHub Release Creation - Automatically generate release notes (simplified version, without automatic changelog)
The project uses semantic versioning format: v{major}.{minor}.{patch}
Examples:
v1.0.0- Major version updatev1.1.0- Minor feature updatev1.1.1- Patch and bug fixes
For releases, you need to push Git tags with version numbers:
# Create and push version tag
git tag v1.0.0
git push origin v1.0.0The workflow is automatically triggered when:
- Pushing Git tags in the format
v*.*.*(e.g.,v1.0.0,v2.1.3)
Configuration Steps:
-
Configure Trusted Publisher in PyPI project settings
- Go to https://pypi.org/manage/project/jupyter-mcp-server/settings/publishing/
- Add GitHub Actions as a trusted publisher
- Configure:
- Owner:
datalayer - Repository:
jupyter-mcp-server - Workflow:
release.yml - Environment:
pypi
- Owner:
-
GitHub repository settings
- Settings → Environments → New environment:
pypi - Configure protection rules (optional):
- Required reviewers (requires approval)
- Branch protection (only allows main branch)
- Settings → Environments → New environment:
Creating access token in Docker Hub:
- Settings → Security → Access Tokens
- Create restricted token (read/write only specific repository)
- Store as GitHub Secret:
DOCKERHUB_USERNAME- Docker Hub usernameDOCKERHUB_TOKEN- Docker Hub access token
- Uses built-in
GITHUB_TOKEN, no additional configuration required
- PyPI:
https://pypi.org/project/jupyter-mcp-server/ - Formats: wheel (
.whl) and source distribution (.tar.gz)
- Repository:
datalayer/jupyter-mcp-server - Tags:
latest- Latest stable version{version}- Specific version number (e.g.,1.0.0)
-
Update Version Number
# Edit version file vim jupyter_mcp_server/__version__.py -
Create Release Tag
git tag v1.0.0 git push origin v1.0.0
-
Monitor Release Progress
- Go to GitHub Actions page to view workflow run status
- Check if PyPI has been updated
- Verify Docker Hub has new images
If serious issues occur during release:
- Delete GitHub Release (if created)
- Delete package from PyPI (if published) - Requires admin privileges
- Delete Docker image tags from Docker Hub
- Push new tag to re-release