-
Notifications
You must be signed in to change notification settings - Fork 23
How to Release a New Ontology Version
We use the Driessen workflow.
-
About two weeks before release day, review open issues in the corresponding release milestone and check their status, if necessary, by commenting on the issue. From experience, this notice length is reasonable to check on the issue status, allow for implementation, or assess whether to postpone the issue to the next release milestone (the latter should be avoided if possible).
-
About a week before release day, start a new discussion to ensure three members from the oeo-release-team have the capacity to complete the release on release day. This includes two team members performing the release and reviewing the merge from release branch to dev branch and another member reviewing the merge from release branch to master branch.
-
About 2-3 days before release day, repeat the issue review to avoid unresolved issues on release day and reconcile in oeo-release-team discussion if the release should proceed as planned or postponed.
-
On release day, start the release early to ensure sufficient time for reviews and follow the checklist for a 'Normal (scheduled) release' below.
-
The scheduled releases are always in the first week of months March, May, July, October, December.
-
Make sure that all issues and pull requests that should go into the issue are closed and merged. These issues are usually collected in a release milestone. Also have a look at stale and merged branches, to ensure a tidy repository. (Note that we want to keep the two specific branches feature/geo and feature/sector-and-sector-concepts because they contain conceptual work we don't want to lose. Reasoning)
-
Create a release branch from dev branch
- run
git pull
on dev branch before branching off on your local computer, so that the latest changes are included in the release branch - run
git checkout -b releases-v1.2.3
to create and switch to the release branch - run
git push --set-upstream origin releases-v1.2.3
to push branch to GitHub
- run
-
Update version information in
- VERSION file (version number)
- CITATION.cff (version number and release date)
-
Change heading of the unreleased section in
CHANGELOG.md
with version number and release date.- If any of the added/changed/removed sections is empty, remove that section.
-
As part of the review process:
- check changelog, e.g. for typos, unnecessary spaces, if PR numbers are in order
- in protege check manually, if you notice any odd occurences in class tree or object properties (asserted and inferred)
- reason the ontology in Protégé
- carefully check all oeo-modules check if there are "runaway" classes or object properties (see also step 4 of the review workflow)
- validate that all the new labels an definitions have their respective language labels. i.e. @en for english. Regular expressions can be used to find all cases where this should be checked. Example: replace
rdfs:label\s*"(.*)"
withrdfs:label "($1)@en
.
-
Create two pull requests:
- from release branch to dev branch, named: "Release v1.2.3 to dev branch"
- from release branch to master branch, named: "Release v1.2.3 to master branch"
-
Make sure that all automated tests are successful
-
Merge both pull requests at the same time. Do not delete release branch for documentation purposes.
-
Close the release milestone.
-
Open new release milestone.
-
Create a new release: https://github.com/OpenEnergyPlatform/ontology/releases/new. Ideally, use a draft release or set as a pre-release for now.
④ Summarize key changes
⑤ Link to heading of current release inCHANGELOG.md
-
After saving the draft or publishing the pre-release wait for the workflow to complete. Once completed, the release artifacts (
build-files.zip
andexisting-terms-and-definitions.zip
) will be automatically attached to the release.- The status of the run can always be found here: https://github.com/OpenEnergyPlatform/ontology/actions/workflows/PostReleaseScripts.yml with the name matching the name of the release you choose.
- This should take around 10 minutes to finish.
-
Review the workflow files and check whether they have the correct file structure
-
Update the release status: This should be the box
Set as the latest release
-
Press the green
Publish release
button
- After the release - on the
dev
branch -, create new unreleased section in the CHANGELOG.md. This should be done with first contextual PR on dev and not a designated PR to just add unreleased section.
## [2.X.X] - 20XX-XX-XX
### Added
### Changed
### Removed
- Inform @adelmemariani and @jh-rli that a new OEO version is released and that the OEO viewer needs to be compiled
End of release process
This is a checklist for the release that can be used e.g. in the thread of the release oeo-release-team.
1. [ ] All issues closed and all pull requests merged that are part of the release milestone.
2. [ ] Branch `releases-v1.2.3` from `dev`.
3. [ ] Update version information and release date in VERSION file and CITATION.cff.
4. [ ] Change *unreleased* heading in CHANGELOG.md.
5. [ ] Create two pull requests.
6. [ ] Automated tests are successful.
7. [ ] PR reviews.
8. [ ] Merge both PRs.
9. [ ] Close release milestone.
10. [ ] Draft release.
11. [ ] *Set as the latest release*.
12. [ ] Press *Publish release* button.
13. [ ] Create new *unreleased* section in CHANGELOG.md.
14. [ ] Add build files to the release page.
15. [ ] Inform @adelmemariani and @jh-rli.
[Detailled release workflow](https://github.com/OpenEnergyPlatform/ontology/wiki/How-to-release-a-new-ontology-version)
Same workflow as above, but branch from master branch instead of dev branch.
You already know what to do? Perfect, make sure that you miss no step by using checklists
Symbols used in this wiki:
🐙➔ github | 🔶➔ git | 📙➔ protégé | 📝➔ text editor | 🤖➔ robot
-
Home
- Welcome! How to participate
- Use Cases
- Best Practice Principles
- Structure of the OEO
-
Tutorials: How to...
- ...Get Involved (First Steps)
- ...Contribute
- ...Use Protégé to Change the Ontology
- ...Test the Ontology
- ...Write Competency Questions
- ...Choose a Class Type
- ...Deal with Ambiguous Terms
- ...Use Term Tracker Annotations
- ...Use the GitHub Labels
- ...Set up OwlViz for Visualisation
- ...Use Automation of Recurring Text Entries
- ...Manually Merge Terms from Other Ontologies 🤖
- ...Release a New Ontology Version
- ...Translate Into Turtle RDF
- Setup your Work Environment and Get Involved
- ...Maintain automated Workflows for GitHub Issues and PRs
- Get to Know the Workflow This sections will contain the full workflow in the future
- Tools and Utilities
- Community