Commit fbee8dda authored by Alan O'Cais's avatar Alan O'Cais

Add how to contribute to main page

parent 6ad2b8cb
......@@ -12,9 +12,8 @@ The E-CAM Classical MD Module Library
.. sidebar:: General Information
.. contents:: :local:
* :ref:`search`
* :ref:`search`
This is a collection of the modules that have been created by E-CAM community within the area of Classical MD.
......@@ -35,3 +34,97 @@ The first Classical MD ESDW in Traumkirchen in June 2016 was the starting point
Contributing to this documentation
==================================
GitLab account
--------------
If you do not have a (free) GitLab account yet on the E-CAM GitLab service, you'll need to get one via https://gitlab.e-cam2020.eu/ .
Fork the repository
-------------------
First, you'll need to fork the repository on GitLab you want to work with. Go to https://gitlab.e-cam2020.eu/E-CAM/Classical-MD-Modules , and click the grey 'Fork' button under the repository name.
SSH public key @ GitLab
-----------------------
You also need to register an SSH public key, so you can easily clone, push to and pull from your repository. This can be done via https://gitlab.e-cam2020.eu/profile/keys if you're logged in on GitLab.
In the following it is assumed that an SSH public key has been registered, since it is a requirement for cloning/pushing via the git protocol.
Clone your fork of the repository
---------------------------------
Clone your fork of the repository to your favorite workstation.
.. code-block:: bash
git clone ssh://git@gitlab.e-cam2020.eu:10022/<Your GitLab username>/Classical-MD-Modules.git
Pull the master branch from the main repository:
.. code-block:: bash
cd Classical-MD-Modules
git remote add gitlab_ecam https://git@gitlab.e-cam2020.eu/E-CAM/Classical-MD-Modules.git
git pull gitlab_ecam master
Keep your master branch up-to-date
----------------------------------
Make sure you update it every time you create a feature branch (see below):
.. code-block:: bash
git checkout master
git pull gitlab_ecam master
Branching
---------
Pick a branch name for your work that makes sense, so you can track things easily and make sense if you end up having several branches in flight at once (each PR is a new branch).
Examples:
``update_gromacs_module``
``new_esdw_lammps_module``
``industry_devel_module``
Create a feature branch for your work (after updating your master), and check it out
.. code-block:: bash
git checkout master
git branch BRANCH_NAME
git checkout BRANCH_NAME
Make sure to always base your features branches on master!
After creating the branch, implement your contributions: new modules, enhancements or updates to existing modules, bug fixes, structure changes, whatever you like. Make sure you commit your work, and try to do it in bite-size chunks, so the commit log remains clear.
For example:
.. code-block:: bash
git add modules/gromacs_gpu/readme.rst
git commit -m "add details on GPU support within GROMACS"
If you are working on several things at the same time, try and keep things isolated in separate branches, to keep it manageable (both for you, and for reviewing your contributions).
Contributing back your input
----------------------------
When you've finished the implementation of a particular contribution, here's how to get it into the main repository.
Push your branch to *your* copy of the repository on GitLab
.. code-block:: bash
git push origin <BRANCH_NAME>
Issue a *Merge Request* for your branch into the main repository. To do this go to https://gitlab.e-cam2020.eu/Your_GitLab_Username/Classical-MD-Modules/merge_requests and select the *New Merge Request* button.
Make sure the branch you just pushed is selected (not master!) issue a merge request for your branch to the master branch of the main repository.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment