Files
pvxs/release.md
T
Michael Davidsaver a7d761d507 fix spelling
2024-10-13 17:38:28 -07:00

83 lines
1.7 KiB
Markdown

# Preparation
1. Generate ABI change report from previous release tag to latest commit.
Ensure `PVXS_MINOR_VERSION` incrementes if not 100% (or if other ABI change
is known)
```sh
./abi-diff.sh A.A.A HEAD
```
# Release Process
1. Check version number in `configure/CONFIG_PVXS_VERSION`
2. Remove pre-release suffix in `setup.py`
3. Finalize section in `documentation/releasenotes.rst`
4. Search/replace `UNRELEASED` tags in doxygen comments
```sh
git grep -l UNRELEASED */pvxs/*.h documentation/*.rst | xargs sed -i -e 's|UNRELEASED|B.B.B|g'
```
Don't change in `details.rst` and `releasenotes.rst`
5. Create Git tag.
```sh
git tag -s -m B.B.B B.B.B
```
6. Generate ABI change report for upload
```sh
./abi-diff.sh A.A.A B.B.B
```
7. Generate test coverage report for upload
```sh
./coverage.sh B.B.B
```
8. Generate documentation and update `gh-pages` branch.
```sh
make
make -C documentation clean
make -C documentation commit
```
9. Push branches/tag (point of no return...)
```sh
git push origin B.B.B master +gh-pages
```
10. Verify GHA builds and pypi uploads
```sh
virtualenv /tmp/p4p-bin
/tmp/p4p-bin/bin/pip install pvxslibs
cd /tmp && /tmp/p4p-bin/bin/python -m nose2 -v pvxslibs nose2
virtualenv /tmp/p4p-src
/tmp/p4p-src/bin/pip install --no-binary epicscorelibs,pvxslibs pvxslibs nose2
cd /tmp && /tmp/p4p-src/bin/python -m nose2 -v pvxslibs
```
11. Create github.com release B.B.B
Summarize changes and attach coverage and ABI difference reports.
12. Announce on tech-talk
Reply to previous announcement mail.
## Post Release
1. Update `configure/CONFIG_PVXS_VERSION`
Increment `PVXS_MAINTENANCE_VERSION` and add new `PVXS_#_#_#`
2. Add pre-release suffix in `setup.py`
3. New section in `documentation/releasenotes.rst`