In general terms, projects on GitHub will fall under one of the three main types described below – and the key considerations will be slightly different depending on which category the project is in.
There are two basic approaches, with a number of potential variations in-between:
1."Throw it over the wall."
You have some code, and you want to make it available because it might be useful to others, but you don't want an open-ended commitment to maintaining an active open source project. Or...
2."Create and run a sustainable project."
You have some code, and want to make it available and then run it as an active project: accepting fixes, soliciting code contributions, adding new maintainers, participating in user and developer discussions, doing regular releases, etc.
In either case, the basic steps in preparing to release the code are similar (although the implications for project management and resourcing are not – and are beyond the scope of this overview). Key considerations in these scenarios include:
- Making sure the province owns or has sufficient rights over the code
- if any of it was written by a contractor, you will need to consult with IPP to ensure you have adequately assessed the intellectual property provisions in those contracts.
- If any of it is from another open source project, you will need to ensure you adhere to the existing licensing provisions and ensure license compatibility when you select a license to apply to your project.
- ·Ensuring there are no other Intellectual Property considerations in the code or documentation (such as patent rights or trademarks)
- Ensuring there are no restrictions on releasing the code or documentation imposed by legislation, policy or contracts
- Vetting any library dependencies, sample or config data to ensure it is appropriate for release or is separated out and applying a license boiler plate if needed.
- Choosing an open source license and confirm your authority to license (see Licenses)
- Creating minimum content (README.md, CONTRIBUTING.md and LICENSE files)
If you are intending to maintain an active project, you will need to ensure you have established the appropriate processes and terms to manage contributions (described in "initiating a new project" below).
You may have a code development initiative that you'd like to manage as an open source, collaborative project. Key considerations for new projects include:
- Choosing an open source license and confirm your authority to license (see Licenses)
- Determining the mechanics of how contributions will be made/managed and ensuring this information is included in the "Contributing" file in the repository.
- Creating minimum content (README.md, CONTRIBUTING.md and LICENSE files)
There may be circumstances in which it is useful and appropriate for employees to make contributions to non-BC government repositories as a part of their work. In these cases, key considerations include:
-
Making sure contributions are relevant and are of a size and scope consistent with your priorities (this may involve checking with your supervisor)
-
Making sure the licensing provisions of the project you are contributing to are appropriate (for example, it is licensed under an OSI approved license and that you are not required to assign copyright to the project).
- If the project requires signing of a contributor agreement, you must seek advice from Legal Services as to whether the terms are appropriate.
- If the project is using a reciprocal or "copyleft" license, such as GPL or Mozilla, you must ensure you understand the requirements for publishing any modifications you make to the code
-
Confirm your authority to license (see Licenses).
Employees may also make contributions of non-BC government owned intellectual property rights outside their professional roles by using their personal email linked to their GitHub account.
Go back to the Contents List or continue reading Appropriate Use