Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 37 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,33 +43,57 @@ Please use this GitHub repository's [Issue tracker](https://github.com/Ecologica
# Making a New Release
There are three major steps involved in creating a new release:

Preparation 1. Make sure that all pull requests that are supposed to be merged are merged 2. Make sure that all changes to master are committed to Github (git status should say that there are no modified files) 3. Wait for the travis QC to finish 4. On you local machine, go to the master branch and run git pull to ensure that all your remote changes are available locally. 5. Make sure you have the latest ODK installed by running docker pull obolibrary/odkfull
## Preparation

Building the ontology
1. Make sure that all pull requests that are supposed to be merged are merged

1. Open a command line terminal window and navigate to the src/ontology directory (cd myecocoredir/src/ontology)
2. Make sure that all changes to `master` are committed to Github (`git status` should say that there are no modified files)

2. Create a new branch (ecocore-release-20200131 or similar)
3. Wait for the travis QC to finish

3. If you have recently modified your patterns, run sh run.sh make IMP=false patterns once. This will be run again in the next step, but there is a bit of a bug in the ODK (as of January 2020) that it does not understand to look for imported terms in pattern that have just been added.
4. On you local machine, go to the `master` branch and run `git pull` to ensure that all your remote changes are available locally.

4. Run the build script: sh run.sh make prepare_release -B. This command will compile the patterns, refresh the imports and build the ontology release files. Note that this step can take between 45 and 90 minutes - so make sure you do it over night or befor you go to the gym.
5. Make sure you have the latest ODK installed by running `docker pull obolibrary/odkfull`

5. If everything went well, you should see the following output on your machine. Release files are now in ../..
## Building the ontology

6. Open the file myecocorerdir/ecocore.owl in Protege and sanity check for classes with missing labels (on the top level of the hierarchy) and general weirdnesses. In particular, you want to know wether your latest changes to pattern are what you expected.
1. Open a command line terminal window and navigate to the `src/ontology` directory (`cd myecocoredir/src/ontology`)

7. If it looks sane, go to the ecocore directory and commit everything to the new branch you have created, push and create a pull request. Wait for travis to run one last time, but that should not reveal surprises.
2. Create a new branch (`ecocore-release-20200131` or similar)

8. In an ideal world, let at least one other person sanity check the ecocore release. A good file to sanity check is ecocore-base.obo, and perhaps even ecocore.obo: they are easy to review.
3. If you have recently modified your patterns, run `sh run.sh make IMP=false` patterns once. This will be run again in the next step, but there is a bit of a bug in the ODK (as of January 2020) that it does not understand to look for imported terms in pattern that have just been added.

9. Merge the changes into master.
4. Run the build script: `sh run.sh make prepare_release -B`. This command will compile the patterns, refresh the imports and build the ontology release files. Note that this step can take between 45 and 90 minutes - so make sure you do it over night or befor you go to the gym.

5. If everything went well, you should see the following output on your machine. Release files are now in `../..`

6. Open the file `myecocorerdir/ecocore.owl` in Protege and sanity check for classes with missing labels (on the top level of the hierarchy) and general weirdnesses. In particular, you want to know wether your latest changes to pattern are what you expected.

7. If it looks sane, go to the `ecocore` directory and commit everything to the new branch you have created, push and create a pull request. Wait for travis to run one last time, but that should not reveal surprises.

8. In an ideal world, let at least one other person sanity check the ecocore release. A good file to sanity check is `ecocore-base.obo`, and perhaps even `ecocore.obo`: they are easy to review.

9. Merge the changes into `master`.

10. Delete the branch.

Creating a GitHub release 1. Go to ecocore releases on GitHub, click "Draft new release" 2. As the tag version you need to choose the date on which your ontologies were build. You can find this, for example, by looking at the ecocore.obo file and check the data-version: property. The date needs to be prefixed with a v, so, for example v2020-02-06. 3. You can write whatever you want in the release title, but I typically write the date again. The description underneath should contain a concise list of changes or term additions - Chris has a whole philosophy on this. For now, I recommend you to simply summarising the changed, in particular, which terms have been added or removed. 4. Click "Publish release". Done.
## Creating a GitHub release

1. Go to ecocore releases on GitHub, click "Draft new release"

2. As the tag version you need to choose the date on which your ontologies were build. You can find this, for example, by looking at the `ecocore.obo` file and check the data-version: property. The date needs to be prefixed with a v, so, for example v2020-02-06.

3. You can write whatever you want in the release title, but I typically write the date again. The description underneath should contain a concise list of changes or term additions - Chris has a whole philosophy on this. For now, I recommend you to simply summarise the changes, in particular, which terms have been added or removed.

4. Click "Publish release". Done.

## Cleaning the repo

1. Delete the branch locally.

2. Do a Git pull on the `master` branch.

Cleaning the repo 1. Delete the branch locally. 2. Do a Git pull on the master branch. 3. Go to each issue that has been resolved by the most recent PR and tag the PR in a comment. Then close the issue.
3. Go to each issue that has been resolved by the most recent PR and tag the PR in a comment. Then close the issue.

# Acknowledgements

Expand Down