Adopting Open Source
There are 2 approaches of doing this :
1. Starting an Open Source Project
2. Contributing to an Open Source [Read More]
Starting an Open Source Project
1. GitHub Organization Account
If your project is on GitHub, move your project from your personal account to an Organization and add at least one backup admin. Organizations make it easier to work on projects with external collaborators.
2. Every project should include the following documentation:
a. Open source license
b. README
c. Contributing guidelines
d. Code of conduct
3. License
When you create a new project on GitHub, you are given the option to select a license. To make your GitHub project open source, you must include an open source license.
MIT, Apache 2.0, and GPLv3 are the most popular open source licenses, but there are other options to choose from.
4. Publishing Package to NPM
There are two steps:
1. Create your package
Firstly, you need to have an npm account. Secondly, you have to login to your npm account through the command line.
2. Publish the package
Finally, publish your package with the npm publish command.
Also make sure to have a:
a. Versioning strategy
b. Release Notes
5. Documentation
GitHub’s 2017 Open Source Survey showed incomplete or confusing documentation is the biggest problem for open source users.
6. Test Cases & Automation
Set up automatic tests that will run on all incoming contributions, and ensure that your tests can easily be run locally by contributors. Require that all code contributions pass your tests before they can be submitted. You’ll help set a minimum standard of quality for all submissions. Required status checks on GitHub can help ensure no change gets merged without your tests passing.
If you add tests, make sure to explain how they work in your CONTRIBUTING file.
7. Naming and branding your project
Branding is more than a flashy logo or catchy project name. It’s about how you talk about your project, and who you reach with your message.
a. Adding a page in your website or consider creating a website for your project.
b. Repo specific doc website
c. Twitter handle
8. Avoiding name conflicts
Please do check for open source projects with a similar name, especially in your ecosystem. The name overlaps with a popular existing project might confuse your users & audience.
9. Legal Aspects
a. You’ve talked to your legal department
b. You have a marketing plan for announcing and promoting the project
c. You are committed to managing community interactions (responding to issues, reviewing and merging pull requests)
d. At least two people have administrative access to the project
10. Issue queue
We should have a strategy for this once we are LIVE. This is a very important facet of maintenance.
11. Users of your project
You should have a clear handle to promote your work. A GitHub URL, Twitter handle or IRC channel is a very good way to redirect people to your project.
You can also find your audience on Stack Overflow, Reddit, Hacker News, or Quora. Listen and respond to others’ feedback, rather than simply promoting your work. Offline events are a popular way to promote new projects to audiences.
12. Contributors
Share ownership of your project
People are excited to contribute to projects when they feel a sense of ownership.
Start a CONTRIBUTORS or AUTHORS file in your project that lists everyone who’s contributed to your project
If you don’t want to accept a contribution:
a. Thank them for their contribution
b. Explain why it doesn’t fit into the scope of the project, and offer clear suggestions for improvement, if you’re able. Be kind, but firm.
c. Link to relevant documentation, if you have it.
d. Close the request
13. Forks
Let others build the solutions they need. Forking is highly encouraged.
If a potential contributor has a different opinion on what your project should do, you may want to gently encourage them to work on their own fork.
14. Contribution from your team
You don’t have to contribute code. A common fallacy about contributing to open source is that you need to contribute code only. In fact, it’s often the other parts of a project that are most neglected or overlooked. Ways to contribute :
a. Restructure layouts to improve the project’s usability
b. Put together a style guide to help the project have a consistent visual design
c. Write and improve the project’s documentation
d. Curate a folder of examples showing how the project is used
e. Write tutorials for the project
15. Vision
Write down your project’s vision to have an emotional connect. Start by writing down the goals of your project and add them to your README, or create a separate file called VISION. Also publish any other artifacts that could help, like a project roadmap.
16. Badges for GitHub
The badge was a clear sign of the current status of my project.
You could get a badge indicating the coverage of your tests, which correlates to how well your app is tested.
We can use : https://shields.io/