Skip to content

Free Software

Choosing the project privacy

Most free software projects should be public from the start, especially if they are under an open-source license or meant to be released under one in the future.

If the repository contains anything that shouldn't be visible to the public eye, then that content should be better isolated from the project in order to keep the project publicly available.

Choosing a repository management service


GitLab is open sourced. Meanwhile, GitHub is closed and proprietary. Therefore, most projects created should be on GitLab.

However, creating the repository on GitLab is a bit tricky, since there's a lot of different groups inside some organizations. Comparing the project with the group names will provide a good idea where it best belongs.

For example, if the project belongs to a client, then it should be under client/<client name>/<project name>. If a project is documentation repository or learning content, then it should be under documentation/<project name>. Meanwhile, if a project is a tool developed by OpenCraft for OpenCraft, then dev/<project name> is the right place for it.


When projects contain code that is meant to be merged into one of the projects from the edX GitHub organization, then they should be created on GitHub.

After creating your repository, you'll want to make sure that the members in your organization have the necessary permissions to make changes to the repository. In order to make sure your team members have the necessary privileges, follow the following steps.

  1. Open the repository.
  2. Go to the repository settings.
  3. Go to "Manage access" on the left sidebar.
  4. Click on "invite teams or people".
  5. Invite opencraft-dev.
  6. Choose the Admin role.

Running a Free Software project

An outside contributor is someone who proposes a change to a Free Software repository for which OpenCraft is the maintainer. They may fix or report a bug, propose or implement a new feature. OpenCraft welcomes and encourages such contributions, even though they may be unplanned and outside the roadmap. The How to Run a Successful Free Software Project book covers everything there is to know and this section is only about OpenCraft specifics:

  • If, by chance, the contribution exactly matches an existing Xh ticket from the current sprint that hasn't been started, it essentially is an Xh gift to OpenCraft and is therefore worth Xh of review time. Because if it was not for the contribution an OpenCraft team member would have had to do it and spend Xh anyways.

  • If that is not the case, for each contribution a dedicated ticket timeboxed to 1h can be created in the cell that will be following up on the contribution. The ticket should use the Contributions account and be added to the Core Contributors1 epic.

  • The Community Liaison role is responsible for following up on community contributions and scheduling tickets as necessary.

  1. Private for OpenCraft Employees 

Last update: 2023-09-12