You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
4. Check out the branch that you want to contribute to. Most likely that will be ``devel``:
46
46
```
47
47
git checkout devel
48
48
```
49
-
49
+
50
50
5. Create a branch for local development based on the previously checked out branch ([see below](#branching-model) for details on the branching model and how to name your branch):
51
51
```
52
52
git checkout -b name-of-your-branch
53
53
```
54
-
54
+
55
55
6. Now you can make your changes locally!
56
56
* Always make your changes in Matlab and never directly editing the model files. For loading the model use `loadYeastModel.m`, and for saving the model use `saveYeastModel.m`. The latter will ensure all 3 versions of the model (`.xml`, `.yml` & `.txt`) get updated in the same way.
57
57
* If your changes are minor (e.g. a single chemical formula you wish to correct), you can do it directly from the command line.
58
58
* If your changes are not so small and require several steps, create a script that loads the model, reads data (if applicable), changes the model accordingly, and saves the model back.
59
59
* Each script should start with a commented section describing the script, explaining the parameters, and indicating your name and the date it was written. Existing functions can clarify what style should be used.
60
-
* If you add new metabolites and/or rxns to the model, please use `/ComplementaryScripts/otherChanges/getNewIndex.m` for obtaining new ids. If you add a new gene, please use as id the [systematic names from SGD](http://seq.yeastgenome.org/help/community/nomenclature-conventions).
60
+
* As much as possible follow the model conventions:
61
+
- For new metabolites and/or reactions, please use `/ComplementaryScripts/otherChanges/getNewIndex.m` for obtaining new ids.
62
+
- For metabolite and/or reaction names, please avoid any unconventional characters (e.g. Greek letters).
63
+
- For new genes, please use as id the [systematic names from SGD](http://seq.yeastgenome.org/help/community/nomenclature-conventions).
61
64
* Store scripts in the appropriate folder in `/ComplementaryScripts` and data (as `.tsv` files) in the appropriate folder in `/ComplementaryData`. If you think no folder is adequate for your script/data, feel free to create your own folder. Note that binary data such as `.mat` structures or `.xls` tables cannot be stored in the repo (as they cannot be version-controlled, and they increment too much the size of the repo).
62
65
* When you are done making changes, review locally your changes with `git diff` or any git client, to make sure you are modifying the model as you intended.
63
66
@@ -86,7 +89,7 @@ Thank you very much for contributing to yeast-GEM!
86
89
* `gh-pages`: Is only touched by the administrator and for maintaining the [landing page](http://sysbiochalmers.github.io/yeast-GEM/) of yeast-GEM.
87
90
88
91
* `{chore, doc, feat, fix, refactor, style}/descriptive-name`: Any other branch created in the model. If you work on a fix, start the branch name with `fix/`, if you work on a feature, start the branch name with `feat/`. Examples: `fix/format_reactions` or `feat/new_algorithms`. [See below](#semantic-commits) for more details on the possible actions you can use.
89
-
92
+
90
93
#### Semantic commits
91
94
92
95
Please use concise descriptive commit messages. Ideally, use semantic commit messages to make it easier to show what you are aiming to do:
@@ -95,7 +98,7 @@ Please use concise descriptive commit messages. Ideally, use semantic commit mes
`action` refers to what exactly are you doing in the commit, following a [standard definition](http://karma-runner.github.io/2.0/dev/git-commit-msg.html) in software development:
101
+
`action` refers to what exactly are you doing in the commit, following a [standard definition](http://karma-runner.github.io/2.0/dev/git-commit-msg.html) in software development:
99
102
* `chore`: updating toolbox, data files, etc.
100
103
* `doc`: updating documentation or explanatory comments in functions.
101
104
* `feat`: new feature added, e.g. new reaction / metabolite / function / etc.
@@ -143,7 +146,7 @@ Follow all other steps in the same way. Also, when creating your pull request (o
143
146
* Choose 1 or more members of the team (ideally with knowledge on the pull request) as reviewers. Note that the person making the pull request and the reviewer _cannot_ be the same person.
* Assign the pull request to one of the available [projects](https://github.com/SysBioChalmers/yeast-GEM/projects), if applicable.
146
-
149
+
147
150
### Reviewing pull requests
148
151
149
152
Every pull request must be approved by at least one reviewer before it can be merged. When reviewing someone else's pull request, keep in mind the following aspects:
1. Make sure all dependencies in `devel` correspond to the setup from the local computer from which the release will be made. If not, make a single commit in `devel` updating this with a `loadYeastModel`/`saveYeastModel` cycle.
196
199
2. Create a pull request from `devel` to `master`, indicating all new features/fixes/etc. and referencing every previous pull request included (examples [here](https://github.com/SysBioChalmers/yeast-GEM/releases)). Tip: if any [issue](https://github.com/SysBioChalmers/yeast-GEM/issues) gets solved in the release, write in the pull request description "Fixes #X", where "X" is the issue number. That way the issue will be automatically closed after merge.
197
200
3. Merge at least a day after (having at least one accepted review).
198
201
4. Switch locally to `master` and update `history.md`, by putting at the top the same description of the corresponding PR from step 2.
199
202
5. Bump version with `increaseVersion.m`. **NOTE:** The function will error if unexpected changes are occurring. If this happens, probably step 1 was done incorrectly. To fix it, commit in `devel` any necessary changes and make a new pull request.
200
203
6. Commit changes from steps 4 and 5 with the message `chore: version X.Y.Z`.
201
-
7. Make the new release at GitHub (https://github.com/SysBioChalmers/yeast-GEM/releases/new), using the proper tag "vX.Y.Z" and with the same description as the corresponding PR from step 2.
204
+
7. Make the new release at GitHub [here](https://github.com/SysBioChalmers/yeast-GEM/releases/new), using the proper tag "vX.Y.Z" and with the same description as the corresponding PR from step 2.
202
205
8. Pull from `master` to `gh-pages` to update the landing page.
203
-
206
+
9. Review the [Zenodo](https://zenodo.org) release: Every new release from Github (step 7) automatically triggers a new release in Zenodo. However, so far it is not possible to fully customize this release, and some manual curation is needed. This includes:
207
+
* Ensuring the title of the release has the format `SysBioChalmers/yeast-GEM: yeast X.Y.Z`.
208
+
* Correcting author names.
209
+
* Ensuring the version of the release has the format `vX.Y.Z`.
210
+
* Setting the language to English.
211
+
* Adding any Grant IDs (if applicable).
212
+
213
+
Make sure to both save & publish your edits. You will find the new release at the top of [all Zenodo releases](https://zenodo.org/search?page=1&size=20&q=conceptrecid:%221494182%22&sort=-publication_date&all_versions=True). Note that it might take some minutes for the Zenodo release to appear after you create the release in Github.
214
+
204
215
## Acknowledgments
205
216
206
217
These contribution guidelines were written based on the contribution guidelines of [opencobra/cobrapy](https://github.com/opencobra/cobrapy/blob/devel/.github/CONTRIBUTING.rst) and [SysBioChalmers/RAVEN](https://github.com/SysBioChalmers/RAVEN/wiki/DevGuidelines).
0 commit comments