Mondo is released on a monthly basis around the first of the month. Additional releases are run ad hoc. All Mondo releases are available here.
Videos outlining this process are available here.
These steps will be done only once, when setting up your computer for Mondo release.
- Follow the instructions here to generate the GitHub token.
Set-up your path:¶
- In terminal, create a "tools" directory in your home directory:
mkdir ~/tools. Note that we are creating a directory in your user directory, not in your Mondo directory (FYI,
~/refers to your home directory in Mac or Linux systems). This directory can in the future contain various tools, such as ROBOT and scripts necessary for release processes.
- Lastly, ensure that your ~/tools directory is added to your path. If you are using zsh (as shown in the terminal window title), create your path:
- paste the following line into the file, usually at the very end:
export PATH=/Users/torosa/tools:$PATH(instead of "/Users/torosa", use your path to the tools directory)
- save (by hitting control+o and then enter) and close (control+x)
- in the terminal, type:
source ~/.zshrc; this reloades the
- Open a new Terminal window before you continue.
install gh :¶
- make sure you have installed 'brew' here
brew install gh
All release products are described on the OBO page and Mondo website.
- the mondo-with-equivalent edition uses OWL equivalence axioms directly in the ontology. Note this makes it harder to browse in some portals, but this edition may be preferable for computational use. The owl edition also includes axiomatization using CL, Uberon, GO, HP, RO, NCBITaxon.
- the primary release versions (mondo.owl, mondo.obo) are simpler, lacking owl equivalence axioms from Mondo classes to terms from other databases; instead, xrefs are used for linking these terms. If the ID is one of Orphanet, OMIM, DOID or EFO then the xref precisely shadows the equivalence axiom.
- The mondo-with-equivalents json edition has all owl equivalencies as well as all xrefs to other disease sources.
The release mondo.owl will look like this in Protege:
Mondo release workflow¶
Note: While the release is running, don't shut your laptop or switch between repos or branches in GitHub, as this will stop the release.
Normalization step (BEFORE the release process)¶
- It is always a good idea to normalize the ontology after bulk changes. It is also good to normalize the ontology before a release
- The commands to use are:
sh run.sh make NORM
mv NORM mondo-edit.obo
- Move the changes to a branch and create a pull request and wait for the checks to pass.
- Merge the PR and continue with the release.
Prepare the release¶
- Do a docker pull:
docker pull obolibrary/odkfull
- Pull master
- Run command:
cd mondo/src/ontology/(navigate to folder on your computer)
MEMORY_GB=12 sh run.sh make IMP=false all -B- note, this takes 1+ hour(s)
- Make sure you see ‘release finished’ after the command has run
- Open mondo.owl and mondo.obo and check the latest changes are there and it looks reasonable
sh run.sh make prepare_release_direct
- Review the file
src/ontology/reports/mondo_release_diff.md. There is now a new QC section up top,
---END LOG:. Review the text and delete it from the file if there is no suspicious output.
- Commit changes to a branch
- Create a branch and commit the changes on the branch
- Do a pull request (PR)
- Wait for GitHub Actions/QC to pass
- Merge PR
Make sure the initial setup (see above) has been done:
1. Download the
obo-simple-diff.pl script to the "tools" directory and set-up your path to the tools directory.
2. Generate token
3. Make sure you have gh installed:
brew install gh. For other ways to install, see here.
- login to GitHub via the command line:
gh auth login. The command line will give you a series of prompts:
? What account do you want to log into? **Answer**: GitHub.com ? What is your preferred protocol for Git operations? **Answer**: HTTPS ? Authenticate Git with your GitHub credentials? **Answer**: Yes ? How would you like to authenticate GitHub CLI? **Answer**: Login with a web browser ! First copy your one-time code: **Note: There will be a code here and you'll need to enter this online** Press Enter to open github.com in your browser... ✓ Authentication complete. - gh config set -h github.com git_protocol https ✓ Configured git protocol ✓ Logged in as nicolevasilevsky
cp ~/.token .token
make GHVERSION=vYYYY-MM-DD deploy_release- note, this takes about 30 minutes
- make sure you are in the
src/ontologyfolder when running the above command
- the date should be the date of the release in the format
make GHVERSION=vYYYY-MM-DD deploy_release(for example, v2022-04-01) (very important: It should not necessarily be today, it is the day the release artifacts were created according to the IRIs. In order to find the right date, open mondo-base.obo and check version IRI, and use this date)
- Check these the release pages (make sure you replace the date correctly in the link in the output in the terminal):
- For example: https://github.com/monarch-initiative/mondo/releases/tag/untagged-2a6c39951f3210b62380
- Ensure that it says [name] (eg nicolevasilevsky) released this 1 days ago or now
- Ensure it has all release artifacts attached to it (there should be 19 assets in the draft. Note, there will be 21 after the release is published.)
- Check this file to ensure you see the expected changes (spot check a few changes): download the mondo.obo or mondo.owl from the asset list in the release.
- Write a description of the release
- Add the release description to the release tab:
- All of the releases can be found under the releases tab.
- To add a description of the release:
- click edit
- in the 'describe this release' section add the content from the file
- click "save draft"
- Add the summary of changes to changes.md.
- go to changes.md
- click edit
- add the name of the new release and the content from the change log text file above.
- commit to master Note: If you cannot find the "edit" button, you can update the changes.md file using atom, and committing to master.
- Click on "Publish release" (THIS IS NEW, the release, so far should have been in Draft state)
Check obsoletion candidates¶
With each release, a TSV should be generated with obsoletion candidates. Check that this tsv file is up-to-date here: https://github.com/monarch-initiative/mondo/blob/master/src/ontology/reports/mondo_obsoletioncandidates.tsv
Notify the project manager that the release should be announced on Mastodon.
Email Mondo Users¶
Send an email to Mondo users: email@example.com
(Note - the recipients usually a picture of someone's pet to be included.)
Mondo release + obsoletion candidates
The latest Mondo release is now available here: https://github.com/monarch-initiative/mondo/releases
Please find a list of terms that are candidates to be obsoleted or merged here: https://github.com/monarch-initiative/mondo/blob/master/src/ontology/reports/mondo_obsoletioncandidates.tsv
Note - the proposed obsoletion date is listed in the table.
If you have an open issue that needs to be prioritized, please email us or comment on the ticket.
Thank you all,
Nicole and Sabrina on behalf of the Mondo team