Hosting the site source files on GitHub, and using a static site creation approach, was intended to make updates to SBML.org easier. Not only can anyone report problems and suggest changes (via the GitHub issue tracking system); edits to the site can be made directly by committing changes to files on GitHub, and live server updates can be automated so that changes made to the git repository result in updates to the actual SBML.org site. To make this work requires some procedures and conventions to be adopted.
In order to maintain a high standard of quality in the public SBML.org site, we keep a separate preview server where proposed changes to the site can be viewed, live, before committing them on the real SBML.org site. The preview server reflects exactly the versions of the files as they appear in the develop
branch, while the live server reflects the files that are in master branch
.
There are only a few simple oveall principles in the approach:
- The
master
branch of the git repository and the live SBML.org site should always be synchronized: what you see in themaster
branch should be the files that are used to generate the SBML.org site contents, with the exception of content drawn from external sources such as the SBML Level 3 Packages Google spreadsheet. - The
develop
branch of the git repository should similarly be always synchronized with the preview server for SBML.org (again, with the exception of content drawn from external sources). - Changes to
master
should never be made directly: they should always be previewed by merging them into thedevelop
branch first and examining the results on the preview server. In other words, the path of changes should always bedevelop
➜master
. - Non-trivial changes to content (made to the
develop
branch) should be reviewed by someone other than the proposer before merging the changes intodevelop
. Although the separation of the preview server (which reflects thedevelop
branch) and the live server (which reflects themaster
branch) means there is a chance to catch problems before they hit the live site, the merges fromdevelop
tomaster
are likely to involve multiple changes all at once, and thus it is easier and safer to examine change requests when they first come in.
Depending on how you like to work, there are three ways you can propose changes to the site:
- Open an issue to make a request or report a problem.
- Start editing a file directly on GitHub. GitHub will automatically fork the repository and open a pull request for changes against the SBML.org repository. Remember to make the branch from the
develop
branch. - (If you are working on your local computer) Create a new branch off of the
develop
branch, make your changes, commit the changes to the branch, push to GitHub, and open a pull request in GitHub.
If you are an SBML Team member or an SBML Editor, feel free to review change proposals using the GitHub facilities for reviewing pull requests. If the changes seem appropriate, worthwhile and error-free, you can go ahead and merge the pull request into the develop
branch. If you make the merge on GitHub itself, the changes should automatically get reflected on the preview server after a delay of 5–10 minutes. If you make the changes on your local computer, push the changes to GitHub; after that, the preview server should pick them after a similar delay.
(Forthcoming.)