@@ -684,10 +684,16 @@ We use the
684684Unit tests use the [ CUnit] ( http://cunit.sourceforge.net ) library
685685and we use [ clang-format] ( https://clang.llvm.org/docs/ClangFormat.html )
686686to automatically format code.
687- On Debian/Ubuntu, these can be installed using
687+ On Debian/Ubuntu, install the system dependencies with:
688688
689689``` bash
690- $ sudo apt install libcunit1-dev ninja-build meson
690+ $ sudo apt install libcunit1-dev ninja-build
691+ ```
692+
693+ Install meson using uv:
694+
695+ ``` bash
696+ $ uv tool install meson
691697```
692698
693699An exact version of clang-format is required because formatting rules
@@ -1184,70 +1190,11 @@ the following files:
11841190
11851191# # Releasing a new version
11861192
1187- Tskit maintains separate versioning for the C API and Python package, each has its own
1188- release process.
1189-
1190-
1191- # ## C API
1192-
1193- To release the C API, the ``TSK_VERSION_*`` macros should be updated,
1194- along with ``VERSION.txt`` and the changelog updated with the release
1195- date and version. The changelog should also be checked for
1196- completeness. Comparing ``git log --follow --oneline -- c`` with
1197- ` git log --follow --oneline -- c/CHANGELOG.rst` may help here.
1198- After the commit including these changes has been merged, tag a
1199- release on GitHub using the pattern `C_MAJOR.MINOR.PATCH`, with :
1200-
1201- ` ` ` bash
1202- git tag -a C_MAJOR.MINOR.PATCH -m "C API version C_MAJOR.MINOR.PATCH"
1203- git push upstream --tags
1204- ` ` `
1205-
1206- After a couple of minutes a github action will make a draft release with the changelog
1207- at the [releases page](https://github.com/tskit-dev/tskit/releases). Check it looks
1208- right and publish the release (Click on the little pencil).
1209- After release, start a section in the changelog for new developments and close the
1210- GitHub issue milestone of the release.
1211-
1212-
1213- # ## Python
1214-
1215- It is worth running the benchmarks as above before release to check for any unexpected
1216- major regressions. To make a release first prepare a pull request that sets the correct
1217- version number in `python/tskit/_version.py` following PEP440 format. For a normal
1218- release this should be MAJOR.MINOR.PATCH, for a beta release use MAJOR.MINOR.PATCHbX
1219- e.g. 1.0.0b1. Update `python/CHANGELOG.rst`, ensuring that all significant
1220- changes since the last release have been listed. Comparing
1221- ` git log --follow --oneline -- python`
1222- with `git log --follow --oneline -- python/CHANGELOG.rst` may help here.
1223-
1224- Once this PR is merged, the release process is :
1225-
1226- 1. **Test on TestPyPI** : push to the `test-publish` branch. The `wheels.yml`
1227- workflow will build wheels and publish them to
1228- [TestPyPI](https://test.pypi.org/project/tskit/). Check the release looks
1229- correct there.
1230-
1231- 2. **Tag the release** : push a tag to trigger the draft GitHub release:
1232-
1233- ` ` ` bash
1234- git tag -a MAJOR.MINOR.PATCH -m "Python version MAJOR.MINOR.PATCH"
1235- git push upstream --tags
1236- ` ` `
1237-
1238- The `release.yml` workflow will create a draft release on the
1239- [releases page](https://github.com/tskit-dev/tskit/releases) with the
1240- changelog. Review the draft and publish it.
1241-
1242- 3. **Publish to PyPI** : publishing the GitHub release triggers `wheels.yml`,
1243- which builds wheels and uploads them to
1244- [production PyPI](https://pypi.org/project/tskit/) via Trusted Publisher.
1245- Check the Actions tab to confirm the upload completes.
1246-
1247- # ### Post release
1193+ See the [repo administration guide](https://github.com/tskit-dev/.github/blob/main/repo_administration.md)
1194+ for the release process. Tskit has both a C API release and a Python package release,
1195+ each covered in the tskit/kastore section of that document.
12481196
1249- After release, start a section in the changelog for new developments, close the
1250- GitHub issue milestone of the release and update the python version to a `.dev`.
1251- For a major release the website (github repo tskit-dev/tskit-site) should then
1252- be updated with a notebook of new features. The benchmarks should be run as above
1253- and the `bench-results.html` updated on the website.
1197+ It is worth running the benchmarks (see above) before a Python release to check
1198+ for any unexpected major regressions. For a major release the website
1199+ (github repo tskit-dev/tskit-site) should be updated with a notebook of new
1200+ features and the `bench-results.html` updated.
0 commit comments