Java · Open source

Opensource a Project

Sudeep Bhattarai Founder @ US Legal PRO

December 5th, 2019

Hi - I have written a XML based high level scripting language (backed by Java) that can be used for automation - you can image it to be language for chat bot that person with little to no programming background can learn to create automation. We are using it to automate our internal processes very effectively and I want to open source it but want to do it in a proper way so I can build community around it. I have no proper knowledge of how Open Source community works. What are my choices?

Matt Fletcher Software Developer, formerly at

December 7th, 2019

One of the most natural ways to start open sourcing a project is to choose a license and then share your project on GitHub. GitHub offers public repository accounts for open source projects for free. Steps: 1. Choose an open source license. If you want to force everyone who shares your code to open source their code that links with it, you can pick the GNU General Public License. If you want to force everyone to only share modifications to your code that they distribute, choose the GNU Lesser General Public License. If you want to allow people to use your code without restrictions, choose a more permissive license like MIT or Apache. I encourage you to read up more before choosing, but that's the high level description. 2. Register for a GitHub account with an email that you are ready to share publicly, as they will attach it to your commits. There are other options than GitHub, but that is currently the biggest one. 3. Create a repository for your project. A repository is basically a grouping of all the code for a particular project. You want to create a public repository. 4. Upload your code to the repository, including a copy of the license that you chose. 5. You can put directions for using the code in a file. That uses a basic markup language to display a page at the root of your repository. You can start with just text if you're not ready to learn the details of their markup language. I would start with a basic description of what your code does. And if it comes with unit tests or examples, you can point to those. The GitHub repository will allow people to download your code or fork it and make changes. They can then use a pull request to ask you to incorporate their changes into the root project. You may accept those changes, modify them, or deny them as you feel best supports the project. People can also file issues, where they ask you about using your project or post things they think are bugs. You can make a additional branches of your project. For example, it is not uncommon to make a branch per release. Then you can port security and bug fixes to older releases while only adding features in new releases. Or you can make a development branch where you try out new features that you're not sure will go to your master branch.

Sheeba Pathak Solopreneur

December 19th, 2019

You can try a copy of a book by Jono Bacon on building an engaging community