Skip to content

Commit

Permalink
Add release guide (#878)
Browse files Browse the repository at this point in the history
* Add basic release guide

* Add update documentation step

* Make the release guide a checklist instead of a list

---------

Co-authored-by: João Dionísio <[email protected]>
  • Loading branch information
mmghannam and Joao-Dionisio authored Aug 2, 2024
1 parent 112f8b2 commit be1c548
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 8 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
### Added
- Created Statistics class
- Added parser to read .stats file
- Release checklist in `RELEASE.md`
- Added Python definitions and wrappers for SCIPstartStrongbranch, SCIPendStrongbranch SCIPgetBranchScoreMultiple,
SCIPgetVarStrongbranchInt, SCIPupdateVarPseudocost, SCIPgetVarStrongbranchFrac, SCIPcolGetAge,
SCIPgetVarStrongbranchLast, SCIPgetVarStrongbranchNode, SCIPallColsInLP, SCIPcolGetAge
Expand Down
9 changes: 1 addition & 8 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,7 @@ If you find this contributing guide unclear, please open an issue! :)
How to craft a release
----------------------

1. update `CHANGELOG`
2. increase version number in `src/pyscipopt/__init__.py` according to semantic versioning
3. commit changes to the master branch
3. tag new version `git tag vX.Y.Z`
4. `git push` && `git push --tags`
5. [create GitHub release](https://github.com/scipopt/PySCIPOpt/releases) based on that tag

A new PyPI package is automatically created by the GitHub actions when pushing a new tag onto the master and the version has been increased. Also the documentation is autmatically created in the process.
Moved to [RELEASE.md](RELEASE.md).

Design principles of PySCIPOpt
==============================
Expand Down
19 changes: 19 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Release Checklist
The following are the steps to follow to make a new PySCIPOpt release. They should mostly be done in order.
- [ ] Check if [scipoptsuite-deploy](https://github.com/scipopt/scipoptsuite-deploy) needs a new release, if a new SCIP version is released for example, or new dependencies (change symmetry dependency, add support for papilo/ parallelization.. etc). And Update release links in `pyproject.toml`
- [ ] Check if the table in [readme](https://github.com/scipopt/PySCIPOpt#installation) needs to be updated.
- [ ] Update version number according to semantic versioning [rules](https://semver.org/) in `_version.py`
- [ ] Update `CHANGELOG.md`; Change the `Unlreased` to the new version number and add an empty unreleased section.
- [ ] Create a release candidate on test-pypi by running the workflow “Build wheels” in Actions->build wheels, with these parameters `upload:true, test-pypi:true` 
- [ ] If the pipeline passes, test the released pip package on test-pypi by running and checking that it works
```bash
pip install -i https://test.pypi.org/simple/ PySCIPOpt
```
- [ ] If it works, release on pypi.org with running the same workflow but with `test-pypi:false`.
- [ ] Then create a tag wit the new version (from the master branch)
```bash
git tag vX.X.X
git push origin vX.X.X
```
- [ ] Then make a github [release](https://github.com/scipopt/PySCIPOpt/releases/new) from this new tag.
- [ ] Update documentation by running the `Generate Docs` workflow in Actions->Generate Docs.

0 comments on commit be1c548

Please sign in to comment.