Skip to content

Commit e43be80

Browse files
committed
Add PR checklist and update RELEASE.md for automated workflow
1 parent 0096ff3 commit e43be80

2 files changed

Lines changed: 45 additions & 21 deletions

File tree

RELEASE.md

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,36 @@
11
# Release Checklist
2-
The following are the steps to follow to make a new PySCIPOpt release. They should mostly be done in order.
3-
- [ ] 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`
4-
- [ ] Check if the table in the [documentation](https://pyscipopt.readthedocs.io/en/latest/build.html#building-from-source) needs to be updated.
5-
- [ ] Update version number according to semantic versioning [rules](https://semver.org/) in `src/pyscipopt/_version.py` and `setup.py`
6-
- [ ] Update `CHANGELOG.md`; Change the `Unreleased` to the new version number and add an empty unreleased section.
7-
- [ ] 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` 
8-
- [ ] If the pipeline passes, test the released pip package on test-pypi by running and checking that it works
9-
```bash
10-
pip install -i https://test.pypi.org/simple/ PySCIPOpt
11-
```
12-
- [ ] If it works, release on pypi.org with running the same workflow but with `test-pypi:false`.
13-
- [ ] Then create a tag with the new version (from the master branch)
14-
```bash
15-
git tag vX.X.X
16-
git push origin vX.X.X
17-
```
18-
- [ ] Then make a github [release](https://github.com/scipopt/PySCIPOpt/releases/new) from this new tag.
19-
- [ ] Update the documentation: from readthedocs.io -> Builds -> Build version (latest and stable)
2+
3+
## Upgrading SCIP
4+
5+
Run `./upgrade_scip.sh` from the `master` branch. The script will:
6+
1. Prompt for SCIP, SoPlex, GCG, and IPOPT versions
7+
2. Build new binaries via [scipoptsuite-deploy](https://github.com/scipopt/scipoptsuite-deploy) (skipped if a matching release already exists)
8+
3. Create a branch, update `pyproject.toml`, and open a PR
9+
10+
On the PR:
11+
- [ ] Fix any API incompatibilities
12+
- [ ] Get CI green
13+
- [ ] Update the [compatibility table](https://pyscipopt.readthedocs.io/en/latest/build.html#building-from-source) if needed
14+
- [ ] Merge into `master`
15+
16+
## Releasing PySCIPOpt
17+
18+
Run `./release.sh` from the `master` branch. The script will:
19+
1. Prompt for the version bump type (patch/minor/major)
20+
2. Update `_version.py`, `setup.py`, and `CHANGELOG.md`
21+
3. Commit, tag, push, and trigger a test-pypi build
22+
23+
After the script completes:
24+
- [ ] Test the package from test-pypi:
25+
```bash
26+
pip install -i https://test.pypi.org/simple/ PySCIPOpt==X.Y.Z
27+
```
28+
- [ ] Release to production pypi:
29+
```bash
30+
gh workflow run build_wheels.yml --repo scipopt/PySCIPOpt -f upload_to_pypi=true -f test_pypi=false
31+
```
32+
- [ ] Create a GitHub release:
33+
```bash
34+
gh release create vX.Y.Z --repo scipopt/PySCIPOpt --title vX.Y.Z --generate-notes
35+
```
36+
- [ ] Update readthedocs: Builds -> Build version (latest and stable)

upgrade_scip.sh

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,9 +205,16 @@ git push -u origin "$BRANCH"
205205

206206
gh pr create --repo "$REPO" \
207207
--title "Upgrade to SCIP ${SCIP_VERSION}" \
208-
--body "Updates scipoptsuite-deploy ${CURRENT_DEPLOY_VERSION} -> ${NEW_DEPLOY_VERSION} (SCIP ${SCIP_VERSION}, SoPlex ${SOPLEX_VERSION}, GCG ${GCG_VERSION}, IPOPT ${IPOPT_VERSION}).
209-
210-
Fix any API incompatibilities, get CI green, then merge and run \`./release.sh\`."
208+
--body "$(cat <<EOF
209+
Updates scipoptsuite-deploy ${CURRENT_DEPLOY_VERSION} -> ${NEW_DEPLOY_VERSION} (SCIP ${SCIP_VERSION}, SoPlex ${SOPLEX_VERSION}, GCG ${GCG_VERSION}, IPOPT ${IPOPT_VERSION}).
210+
211+
## Checklist
212+
- [ ] Fix any API incompatibilities
213+
- [ ] CI is green
214+
- [ ] Update [compatibility table](https://pyscipopt.readthedocs.io/en/latest/build.html#building-from-source) if needed
215+
- [ ] Merge and run \`./release.sh\`
216+
EOF
217+
)"
211218

212219
echo ""
213220
echo "Done! PR created on branch '${BRANCH}'."

0 commit comments

Comments
 (0)