cernopendata / cms-opendata-guide

CMS Open Data Guide
https://cms-opendata-guide.web.cern.ch
9 stars 16 forks source link

CMS Open Data Guide

MkDocs documentation for the CMS Open Data Guide.

The Guide's philosophy

The main purpose of the CMS Open Data Guide is to facilitate the understanding of the CMS open data, its tools, and their usage for research.

How to contribute

Everyone is welcome to help build and/or improve this guide. If you find a bug or want to make a suggestion, please fill out an issue. If you would like to contribute, there are two options depending on whether you are already a collaborator of the project or not.

If you are a collaborator already

  1. If you found a topic of your interest but there is no associated issue yet in the "To do" board of an open project, please comment on the corresponding checklist and tag one of the coordinators of the project. The coordinator will then interact with you to create an appropiate issue in the "To do" list so you can follow the rest of the steps below.
  2. If there is already an open issue, within the "To do" board of an open project, that you are interested in working on, you can assign it to yourself and move it to the "In progress" board. Remember that you could also move an open issue to the "Discussion" or the "Need info" boards.
  3. Check whether the topic, corresponding to the issue, has already a page in the file that steers the structure of the guide.
  4. If there is no such a page, contact one of the coordinators of the project to create it for you or to agree to create it yourself. You could just make a comment in your issue, tagging a coordinator therein, which will trigger the discussion.
  5. Once the appropiate page exists, you can start writing the relevant information either directly into the repository on the webpage or (preferably) on your own, local github area.
    • Please follow the content guidelines below.
    • If working locally, feel free to test it first following the local testing instructions below.
    • Make sure to check for missing new lines at EOF and trailing white spaces. A simple way to check is by using the git diff and/or git diff --check commands.
    • Please test locally for style issues by running the command ./run-tests.sh --check-docstyle (Note that you might need to install awesome_bot)
    • When ready, push to the master branch to trigger the automatic deployment.
    • Please close the issue when done.
  6. The page you are creating should, in most cases, be accompanied by a workshop tutorial lesson or exercise. Ideally, the issue the page is addressing should point (if necessary) to the corresponding issue in the cms-opendata-workshop organization.

If you are not a collaborator yet

Make a direct pull request or (preferably) contact us first.

Content guidelines

Please follow these simple guidelines:

Test locally

Make sure you have installed the virtualenv and virtualenvwrapper packages. Be sure to source the included virtualenvwrapper.sh script, or add it to your path in your .bashrc. For example, if virtualenvwrapper.sh was installed in /usr/local/bin, then you could type

$ source /usr/local/bin/virtualenvwrapper.sh

You may need to set the variable VIRTUALENVWRAPPER_PYTHON to your python path (verify it with which python or which python3) with:

$ export VIRTUALENVWRAPPER_PYTHON='/usr/bin/python3'

Once you have the virtualenvwrapper installed, you can list your virtual environments by typing workon

If this is your first virtual environment, when you type workon, the output will be empty. But, after installing one (as you will below), you will be able to choose it from the list. For example if you create a virtual environment called cms-opendata-guide, you can work in that environment by typing

$ workon cms-opendata-guide

You can create a virtual environment called cms-data-guide, install dependencies via pip, start up a mkdocs server, and then open a local browser by:

$ mkvirtualenv cms-opendata-guide
$ pip install -r requirements.txt
$ mkdocs serve
$ firefox http://127.0.0.1:8000

You can exit from the virtual environment with deactivate.

You can run local tests executing ./run-tests.sh. Testing requires a ruby installation. You will also need to install the ruby gem awesome_bot by issuing gem install awesome_bot and make sure that gem in accessible on your path. In addition, npx is also required by the test script. For this one should install nodejs and npm, and install it using the node package manager (npm) as npm i npx.

Note on markdown

Markdownlint is used to check your markdown. However, it does not allow inline HTML. To temporarily allow it, you can wrap your inline HTML as follows:

<!-- markdownlint-disable -->
write your inline HTML code here
<!-- markdownlint-restore -->

Deploy

Documentation site is deployed on OpenShift.

Once a new commit is pushed to master, OpenShift will automatically trigger a new build with the latest changes.