Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v0.3 draft #1

Merged
merged 14 commits into from
Dec 20, 2019
41 changes: 41 additions & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
## Our Pledge

In the interest of fostering an open and welcoming environment, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities. We are committed to making participation in our projects and our community a harassment-free experience for everyone, regardless of level of experience, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, or religion.

## Our Standards

Examples of behavior that contributes to creating a positive environment include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project teams are obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct may be removed from the project team.

## Attribution

This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
Empty file added .github/CONTRIBUTING.md
Empty file.
25 changes: 25 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
### Description of the issue:
*Try to be as clear as possible: Is it something wrong/missing in the model? Is it a simulation issue? PLEASE DELETE THIS LINE.*


#### Expected feature/value/output:
*How the reaction/metabolite/gene/simulation result should look (cite literature if needed). PLEASE DELETE THIS LINE.*


#### Current feature/value/output:
*How the reaction/metabolite/gene/simulation actually looks in the `master` branch. PLEASE DELETE THIS LINE.*


#### Reproducing these results:
*Please attach any code used below (if it's python code replace the keyword "matlab" with "python". PLEASE DELETE THIS LINE.*
```matlab

```

**I hereby confirm that I have:**
- [ ] Tested my code with [all requirements](https://github.com/SysBioChalmers/yeast-GEM#required-software---user) for running the model
- [ ] Done this analysis in the `master` branch of the repository
- [ ] Checked that a similar issue does not exist already
- [ ] If needed, asked first in the [Gitter chat room](https://gitter.im/SysBioChalmers/yeast-GEM) about the issue

*Note: replace [ ] with [X] to check the box. PLEASE DELETE THIS LINE*
9 changes: 9 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
### Main improvements in this PR:
*Try to be as clear as possible: Is it fixing/adding something in the model? Is it an additional test/function/dataset? PLEASE DELETE THIS LINE.*

**I hereby confirm that I have:**

- [ ] Tested my code on my own computer for running the model
- [ ] Selected `devel` as a target branch

*Note: replace [ ] with [X] to check the box. PLEASE DELETE THIS LINE*
91 changes: 62 additions & 29 deletions .standard-GEM.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,36 @@
standard-GEM v0.3
=================

For details about the [aims](), [scope](), and [use case]() of this standard see the [wiki pages of the `standard-GEM` repository](https://github.com/SysBioChalmers/standard-GEM/wiki).
For details about the [aims](https://github.com/SysBioChalmers/standard-GEM/wiki/Aims,-scope-and-terminology#aims), [scope](https://github.com/SysBioChalmers/standard-GEM/wiki/Aims,-scope-and-terminology#scope), and [use case](https://github.com/SysBioChalmers/standard-GEM/wiki/Use-case) of this standard see the [wiki pages of the `standard-GEM` repository](https://github.com/SysBioChalmers/standard-GEM/wiki).

### Terminology
TODO copy from the original file
The [definitions from the wiki](https://github.com/SysBioChalmers/standard-GEM/wiki/Aims,-scope-and-terminology#terminology) are copied below to facilitate understading of this checklist.
```
Based on the ISO guidelines, tweaked for easy understanding.
Requirements: must, must not
Recommendations: should, should not
Possibility and capability: can, cannot
```

### Instructions
This document serves as a checklist for creating an open source genome-scale metabolic model (GEM) on GitHub.
It is recommended that this file is edited with [checkmarks](https://help.github.com/en/github/managing-your-work-on-github/about-task-lists), and kept in the repository for reference. With further updates to `standard-GEM`, one should paste over the new version of this file.
Adherence to the standard is not linked to this file. Instead, the compliance status is visible at ... TODO

This document serves as a checklist for creating an open source genome-scale metabolic model (GEM) on GitHub.
All GEMs that follow the `standard-GEM` must contain this file. This serves as a traceable adherence to the standard. This file must be edited only with [checkmarks](https://help.github.com/en/github/managing-your-work-on-github/about-task-lists). With further updates to `standard-GEM`, one should paste over the new version of this file.

Repository creation
-------------------
- [ ] Navigate to [standard-GEM]() and click on 'Use as template'
- [ ] Navigate to [standard-GEM]() and click on the button `Use this template`
This will copy the contents of the _master_ branch into the new repository.

- [ ] Pick a repository name
The name must be either a common name, KEGG organism, or taxonomy-derived short name, followed by the extension `-GEM` or `-GSMM`. The `-GEM` extension is preferred to ease pronunciation. The name can be prefixed by an abbreviation, eg `ec`, `sec`, `mito`, `pro`.
Example: `ecYeast-GEM` TODO
The name must be either a common name, KEGG organism, or taxonomy-derived short name, followed by the extension `-GEM` or `-GSMM`. The `-GEM` extension is preferred to ease pronunciation. The name can be prefixed by an abbreviation, eg `ec` (enzyme constrained), `sec` (with secretory pathways), `mito` (with mitochondrion pathways), `pro` (with protein structures).
Example: `ecYeast-GEM`

- [ ] Pick a repository description
The description must include the taxonomic classification in full.
Example: `The consensus GEM for Saccharomyces cerevisiae`

- [ ] Add a repository URL
The URL can be the _doi_
The URL can be the _doi_.

- [ ] Add repository tags
The tag `standard-GEM` must be added. Other tags like `genome-scale-models`, `systems-biology` can be added.
Expand All @@ -35,7 +39,7 @@ Tags are not copied from `standard-GEM`, so they need to be added manually.

Repository workflow
-------------------
The GEM repository must have at least two branches: _master_ and _devel_. Commit messages must follow semantic commits adapted for GEMs (TODO reference).
The GEM repository must have at least two branches: _master_ and _devel_. Commit messages must follow semantic commits adapted for GEMs.
A pull request to _master_ must be followed by a release, using the tag format `vX.X.X` where X are numbers, according to semantic versioning principles. The last field (“patch”) can also be used to indicate changes to the repository that do not actually change the GEM itself.


Expand All @@ -44,34 +48,63 @@ For reproducibility, based on the `master` branch create a branch for each paper

File tree
---------
`./` signifies the root of the repository.
`/` signifies the root of the repository.
`.keep` files are used to indicate that the empty folder should not be ignored by _git_.

- [ ] ./.gitignore
This generic [.gitignore](https://git-scm.com/docs/gitignore) was prepared for multiple programming languages.
- [x] `/.gitignore`
The repository must contain a `/.gitignore` file. This generic [.gitignore](https://git-scm.com/docs/gitignore) was prepared for multiple programming languages, and does not require modification.

- [x] `/.github`
The repository must contain a `/.github` folder, in which the contributing guidelines, code of conduct, issue templates and pull request templates must be placed. Defaults are provided and they do not require any modification.

- [ ] ./code
This folder must contain all the code used in generating the model. It must also include a `README.md` file that describes how the folder is organized.
- [ ] `/.github/CONTRIBUTING.md`
This file is provided by the template, but it is empty. It must be filled in with the adequate contributing guideline instructions; a good example is https://github.com/SysBioChalmers/yeast-GEM/blob/master/.github/CONTRIBUTING.md.

- [ ] `/code/README.md`
The repository must contain a `/code` folder. This folder must contain all the code used in generating the model. It must also include a `README.md` file that describes how the folder is organized.

- [ ] ./data
This folder must contain the data used in generating the model. It must also include a `README.md` file that describes how the folder is organized.
- [ ] `/data/README.md`
The repository must contain a `/data` folder. This folder contains the data used in generating the model. It must also include a `README.md` file that describes how the folder is organized.

- [ ] ./modelFiles
This folder must contain all the model files, in multiple formats, according to the guidelines below. As a general guideline, binary formats (`.mat`, `.xlsx`) must not exist on any other branches than _master_. Otherwise, with time, the size of the repository can create difficulties.
All model files must be named the same as the repository without the postfix `-GEM`, and with the appropriate extension.
- [ ] `/modelFiles`
The repository must contain `/modelFiles` folder.
This folder must contain the model files, in multiple formats, according to the guidelines below. As a general guideline, binary formats (`.mat`, `.xlsx`) must not exist on any other branches than _master_. Otherwise, with time, the size of the repository can create difficulties.
All model files must be named the same as the repository, and with the appropriate extension.
Example: `yeast-GEM.mat`
| Model file format | _master_ branch | _devel_ and other branches |
| ----------------- | --------------- | -------------------------- |
| Matlab (.mat) | should | must not |
| sbtab (.tsv) | can | can |
| Text file (.txt) | must | can |
| Excel (.xlsx) | must | must not |
| SBML (.xml) | must | can |
| YAML (.yml) | must | can |
| JSON `.json` | must | can |
| Matlab `.mat` | should | must not |
| sbtab `.tsv` | can | can |
| Text file `.txt` | must | can |
| Excel `.xlsx` | must | must not |
| SBML `.xml` | must | can |
| YAML `.yml` | must | can |


- [x] `/docs/ `
The repository can contain a `/docs/` folder. A default is provided by the `standard-GEM` template. Its purpose is to instruct GitHub Pages to create a webpage from the main `/README.md` in the repository. This webpage serves as a friendly landing page that requires no maintenance, since it will always be in sync with the `/README.md`.
The configuration of this webpage is specified by the `_config.yml` file, and can be modified to the desire of the repository owners. As specified in this file, the icon at `/docs/icon.png` will be used on this webpage.
One need to instruct GitHub to create a website by the following steps:
1. navigate to the repository settings
2. scroll down to the `GitHub Pages` section
3. select as `Source` the `master branch /docs folder`
4. the website is now available at `http(s)://[organization or user].github.io/[repository name]`, for example `https://sysbiochalmers.github.io/yeast-GEM/`

- [x] `/LICENSE.md`
The repository must contain a license file. The default license is [CC-BY 4.0 International](https://creativecommons.org/licenses/by/4.0/). Unless another license is desired, the file does not require modification.

- [ ] `/README.md`
The repository must contain a `README.md` file. A default file is provided, and the adequate contents must be filled in.
The `/README.md` file must include a version badge. A default is provided in the file.
Additionally, the `/README.md` file should contain Zenodo badge. As soon as the first public release is in made, the repository must be archived via Zenodo, and the corresponding badge be updated. A default is provided in the file.
The `/README.md` can contain a contact badge, for example [Gitter](https://gitter.io). When setting up the Gitter chat room, the GitHub activity should be synced with Gitter in order to see the latest updates of the repository in the chat room. A default for this badge is provided in the file.

- [x] `/version.txt`
The repository must contain this file, which is required for the version badge in the `/README.md`. The value refers to the version of the GEM, not of the `standard-GEM`. The value must be updated with each release.

- [ ] Files for continuous integration testing
The repository can be set up for continuous integration testing using memote with eg. Travis CI (.travis.yml), Jenkins (Jenkinsfile), GitHub Actions (TODO).
The repository can be set up for continuous integration testing using memote with eg. Travis CI (`.travis.yml`), Jenkins (`Jenkinsfile`), GitHub Actions (under `.github/workflows`).

- [ ] _memote_ report
The memote report should be present on the _master_ branch, in `.html` format.
The repository should contain a _memote_ report on the _master_ branch, in `.html` format.
Loading