Skip to content

Latest commit

 

History

History
110 lines (74 loc) · 4.26 KB

CONTRIBUTING.md

File metadata and controls

110 lines (74 loc) · 4.26 KB

General contribution guidelines

The contribution guidelines are based on the guidelines provided by Software and Data Carpentry.

Stencila is an open-source community-driven project. We encourage and welcome contributions from all community members.

If you are comfortable with Git and GitHub, you can submit a pull request (PR). In Stencila we follow a commonly used workflow for contributing to open source projects (see also GitHub instructions).

If you have specific suggestions or have found a bug, please create an issue. If you have any issue related to security, please send us an email at [email protected], rather than create a Github issue.

If you don't want to use GitHub, please tell us what you think on our chat on Gitter or have your say on our our Community Forum.

Licensing and contributor agreement

By contributing, you agree that we may redistribute your work under our license. Everyone involved with Stencila agrees to abide by our code of conduct.

Development

Run director

To run the director locally:

make director-run

This will setup virtual environment installing all required packages. Note You need to have python3 and pip3 installed on your machine.

When you are running the director for the first time, you will need to set up the database for Django. For the development we use sqlite3. In oder to get that done:

make director-create-devdb

You should now be set up for development and access the development server at http://127.0.0.1:8000/

To run the director in Docker:

make director-build director-rundocker

Note This will first build the Docker file (hub-director) and then run director in that Docker container. If you make changes to the source code after you build the, Docker file they will not be reflected in the container. You will have to rebuild it. Hence, it is recommended that you develop the Hub in your local environment.

Run editor

To run the editor locally:

make editor-run

Or, to run the editor in Docker:

make editor-build editor-rundocker

Run router

The router is configured to listen on port 3000 (to avoid clashing with other web servers which may already be listening to port 80)

make router-build router-rundocker

Now, you should be able to access the the Hub at http://localhost:3000.

Deployment

Docker containers (stencila/hub-director, stencila/hub-editor, stencila/hub-router) are used for deployment.

GitHub Issue Workflow

The general issues workflow is:

  • Issue is raised and has Bug label set
  • A developer is (self) assigned to the Issue
  • Issue is fixed, and when committed/merged to master, a Awaiting Staging Release label is added to the Issue
  • A release is done to staging (hub-test)
  • The Issue's Awaiting Staging Release is changed to Staging Test Required
  • The Issue raiser tests the Issue in staging and removes the Staging Test Required Label
    • If the test is successful an Awaiting Production Release Label is applied
    • If the test fails, the Issue is assigned back to the developer, and the process starts again
  • After a release to production takes place, the Awaiting Production Release Label is removed and the Production Test Required Label is applied
  • The tester tests in production and then closes the Issue

Get in touch!

You can chat with the team at our [community forum][community-forum], on Twitter @Stencila, Gitter, or email to [email protected]