-
Notifications
You must be signed in to change notification settings - Fork 4
Make a PCO release
All edits should happen in src/ontology/pco-edit.owl.
Import files are in /src/ontology/imports. Each text file has the Robot code that is used to generate the OWL file. OBO files are made at release (see below).
As of the Feb. 2020 release, this repo was updated to the latest version of ODK.
Because the import files are customized, I modified the make file (/src/ontology/Makefile) to skip the regeneration of import files in /src/ontology/imports by setting IMP=false on line 242.
Also in the make file, change the references to 'ELK' that are not in comments to 'hermit'.
Make a branch with the release date.
- Skipping imports in the makefile means that .obo files must be created manually before a release by saving each .owl file in /src/ontology/imports as .obo.
Make sure Docker is running. Navigate to /src/ontology and type sh run.sh make prepare_release
. This generates:
- Copies of the import files in /imports, but it does not give them version IRIs. Open each file in Protege and add the version IRI manually.
- TODO: Add code for generating imports to makefile.
- pco-base.obo, pco-base.owl, pco-full.obo, pco-full.owl, pco.obo in both the root directory and in /src/ontology
- reports/pco-edit.owl-obo-report.tsv - Some of the errors or warnings in this file do not seem to be true.
- The makefile does not add version IRIs to the import files. If they are important, follow the next step.
- Open each file in /imports in Protege and add the version IRI manually. (skipped)
- as the title suggests...
- Merge the release branch.
- At https://github.com/PopulationAndCommunityOntology/pco/tree/master, go to the releases tab and create a new tab. Both the branch name and the release name should be yyyy-mm-dd. Add a description.
- Publish the release.
- Go to https://github.com/OBOFoundry/purl.obolibrary.org/blob/master/config/pco.yml
- The product PURL can remain as is
- Create a new exact replacement for the release tag
- Save the changes to a branch and make a pull request
- If all the tests pass and you have commit rights, you can merge the branch.
Note: This yaml file was updated on 2020-02-12 to reflect the new directory structure generated by ODK.
This protocol is no longer used, but I will keep a copy for reference.
When you are ready for a release, first make a test file. Browse to src/ontology and type "make test". This will generate a file src/ontology/pco.owl.
When you are satisfied that the test file is what you want, make the release by typing "make release" from within src/ontology. This will generate a new version of src/ontology/pco.owl plus a new version of pco.owl in the root directory (which will become live automatically, because that's where the PURL points).
To make a version of PCO that has all the imports merged requires manual editing:
- Open src/ontology/pco.owl in Protege
- Under the Refactor menu, select Merge ontologies...
- From the menu, select everything except pco
- Select "Merge into existing ontology"
- Select PCO as the target ontology
- Delete (x out) all of the imported ontologies
- Until RO is fixed, delete GO:0040011 and GO:0048018
- Delete all the extra ontology annotations that got added with the merge (under Ontology Header on the Active Ontology tab) except the dc:source annotations
- Change the ontology IRI to http://purl.obolibrary.org/obo/pco_merged_inferred.owl and change the corresponding version IRI
- Save at src/ontology/pco_merged_inferred.owl, replacing the existing copy of that file
Push all changes to the repo
To do this, you need to created a tag.
- Click on Releases
- Click Draft a new release
- Name the tag and the release by the date as YYYY-MM-DD
- Describe the changes that are included in the release
- Click Publish Release
- Go to https://raw.githubusercontent.com/OBOFoundry/purl.obolibrary.org/master/config/pco.yml
- The product PURL can remain as is
- Create a new exact replacement for the release tag
- Save the changes to a branch and make a pull request
- If all the tests pass and you have commit rights, you can merge the branch.