This is the handbook for how to open source your projects at if(we).
While this document is written for if(we) team members, it is licensed under the CC-BY-SA license and is free for use by all who wish to release their projects as open source.
- Introduction
- TL;DR
- Legal Stuff
- Contributing
- How to Contribute (aka the CONTRIBUTING file)
- Submitting code
- Coding conventions
- Submitting documentation
- Style guide
- Accepting patches and pull requests
- The AUTHORS file
- Community
- Code of Conduct
- Users
- Contributors
- Communication
- IRC
- Mailing Lists
- Social Networks
- Documentation
- The README file
- User docs
- Usage examples
- Developer docs
- API
- Code examples
- FAQ
- Wiki
- Project website
- Nuts & Bolts
- Source Control
- Issue Tracker
- Packaging, Distribution, & Installation
- Versioning
- Unit Tests
- Continuous Integration
- Project Accounts Authorizations & Passwords
- Communication
- Working with Marcom
- Contributing to this document
- FAQ
- Other Resources
if(we) is dedicated to open source. We believe that we are stronger together than separately and that free and open software and other resources (such as this document) are a rising tide which lifts all boats.
To that end, if(we) tries to open source as many of its internally-developed resources as it can.
However, open sourcing your project is much more than simply dropping your code into a GitHub repository and walking away. There are a lot of legal, procedural, and usability hoops to jump through to open source a project properly. We realize that it can be a daunting task for those who're not familiar with the process. Don't worry: We're here to help.
This document will clarify the process and show you exactly what you need to do not only to release your project as open source, but also to maintain it and its community afterward.
NOTA BENE:
All if(we) projects should use this process. It is standardized in order to make it easier for all current and future team members and to eliminate guesswork. If you need to diverge from the guidelines set forth in this document, please consult with your team lead, manager, and other stakeholders before doing so.
Much words. Many readings. Wow.
We realize that this is a long document and that, really, all you want to do is just get your code released and then get back to making great stuff which enables meaningful connections between people. Honest, we get that and we love it about you.
So we've summed up the entire process in a single itemized list. There are still a lot of steps here, but this list should make it easier for you to dot all your i's and cross all your t's without spending too much time slogging through documentation.
That said, we strongly suggest you read this entire document at least once. Afterward you'll understand not only what to do to open source your project, you'll also understand why.
Keep in mind: The items on the list below are not optional. Please make sure that each step is complete. Don't skip any for any reason. They are all necessary to make sure your project is properly open sourced.
To make it easier to open source your project, we've collected some template files together in the Starter Box directory. You can simply copy the necessary files/text from there.
Here are the steps for open sourcing your project:
- Get approval from your team lead or manager. Including the time required for appropriate documentation, any extra work required to open source.
- Manager must get final approval from Gene (VP of Eng).
- Notify Legal (legal@ifwe.co) of the new project to be open sourced shortly.
- Review and final approval from Gene of the content to be open sourced.
*Review the final project to make sure it is not divulging any sensitive information or valuable intellectual property *Review commit history to make sure it is not divulging sensitive information *Review licenses to confirm that they are compatible with Apache v2.0 License (if the project uses external libraries or codes). - Prepare required documentation:
- README (in either plain text or Markdown format)
- LICENSE (containing both the Apache v2.0 and the CC-BY-SA licenses)
- NOTICES
- CONTRIBUTING (in either plain text or Markdown format)
- Developer's Certificate Of Origin and instructions
- AUTHORS (either in plain text or Markdown format)
- Code of Conduct
- Apply the Ifwe Inc. copyright to all files.
- Apply the Apache v2.0 License to all code.
- Apply the CC-BY-SA License to all documentation.
- Make the repository public in the if(we) organization on GitHub.
- Confirm that any internal processes (continuous integration, etc.) now point to the new public repository.
- End of life the internal (private) repository. 1.Notify Legal that a new project has been released to the world!
README.md: Copyright 2016 Ifwe Inc.
README.md is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
You should have received a copy of the license along with this work. If not, see http://creativecommons.org/licenses/by-sa/4.0/.