- Run "Manual Draft Release" workflow on GitHub Actions
- Edit the draft release:
- Change release name to
Release 2.0.0 - Change tag to
v2.0.0
- Change release name to
- Publish the release
- Automation will:
- Update
version.pyto2.0.0 - Build and publish to PyPI
- Create PR to merge version update back to master
- Update
The release drafter computes version from the previous tag (v0.14.6), so it would generate 0.14.7 or 0.15.0. You must manually edit the release name to include 2.0.0.
The regex on line 42 of post_draft_release_published.yaml extracts version from the release name:
VERSION=$(echo "${{ github.event.release.name }}" | grep -oP '\d+\.\d+\.\d+')DataJoint has a conda-forge feedstock.
Conda-forge has automated bots that detect new PyPI releases and create PRs automatically:
- You publish to PyPI (via the GitHub release workflow)
- regro-cf-autotick-bot detects the new version within ~24 hours
- Bot creates a PR to the feedstock with updated version and hash
- Maintainers review and merge (you're listed as a maintainer)
- Package builds automatically for all platforms
If the bot doesn't create a PR, manually update the feedstock:
-
Edit
recipe/meta.yaml:{% set version = "2.0.0" %} package: name: datajoint version: {{ version }} source: url: https://pypi.io/packages/source/d/datajoint/datajoint-{{ version }}.tar.gz sha256: <NEW_SHA256_HASH> build: number: 0 # Reset to 0 for new version
-
Get the SHA256 hash:
curl -sL https://pypi.org/pypi/datajoint/2.0.0/json | jq -r '.urls[] | select(.packagetype=="sdist") | .digests.sha256'
-
Update license (important for 2.0!):
about: license: Apache-2.0 # Changed from LGPL-2.1-only license_file: LICENSE
-
Submit PR to the feedstock
- First: Publish to PyPI via GitHub release (name it "Release 2.0.0")
- Wait: ~24 hours for conda-forge bot to detect
- Check: datajoint-feedstock PRs for auto-PR
- Review: Ensure license changed from LGPL to Apache-2.0
- Merge: As maintainer, approve and merge the PR
| Step | When |
|---|---|
| PyPI release | Day 0 |
| Bot detects & creates PR | Day 0-1 |
| Review & merge PR | Day 1-2 |
| Conda-forge package available | Day 1-2 |
After release:
conda search datajoint -c conda-forge
# Should show 2.0.0- @datajointbot
- @dimitri-yatsenko
- @drewyangdev
- @guzman-raphael
- @ttngu207