📜 ⬆️ ⬇️

How to start creating an open source project in the new year



Hello to all! New Year time is coming and this is a great opportunity to start your open source project. My name is Dima and I am a Ruby developer, today I want to share my experience in creating an open source solution, tell you in more detail what steps a project should go through, how to choose the functionality for the first release, and what errors I encountered personally when creating my project.

Six months ago, I got the idea of ​​creating my own open source project. Instead of test tasks for interviews, it would be enough for me to send a link to the repository, and the prospect of helping colleagues with solving their everyday problems charged me even more with energy.

I always didn’t like gems to create administrative panels, any extra movement requires redefinition of classes, to change the fields you need to make changes in the files. After reflection and conversation with colleagues, it was decided to create a new library that would be flexible and would not require dashboards or configuration files.
')

Identify goals


Each open source project solves a specific problem. Chat with colleagues, chat rooms, forums, tell us about your idea - all this will help you at the early stage to form a picture of what solutions already exist and to hear criticism from outside. Talk to people who already have their open source projects, they can give very valuable advice, do not be afraid to ask and take initiative.

One of the valuable tips that I received at this stage is to pay attention primarily to the documentation of the project. You may have a very good project, but no one will read the source code and try to understand how it works.

The most important aspect, without which further stages are impossible is motivation. The idea of ​​the project should cling to you first. Most often, people get used to the tools they work with and get into the comfort zone.

Planning


Tasks should be fixed and have a clear picture at what stage the project as a whole is now. Break tasks into subtasks, ideally so that the execution of one task does not take more than 3-4 hours, it is important to enjoy the performance of small tasks, this will help avoid burnout and loss of motivation.

Select a specific task manager taste question. I use the pivotal tracker, the main advantage is the availability of a free version for open source projects, there is sorting tasks by type (feature, bug, chore, release), tasks can be grouped into releases and define deadline.

Another nice feature of the pivotal tracker is github integration. If you follow a specific convention in the naming of commits, then inside the task all related changes to this task will be automatically displayed.

Registration


Each open source project should contain the following things:


The README file not only explains how to use your project, but also what is the goal of your project, how to start using it. If you do not know how to properly form the README, you can view other well-known open source projects or use the template .

The license ensures that others can use, copy and modify the source code of the project. You need to add this file to each repository with your open source project. MIT, Apache 2.0 GPLv3 are the most popular licenses for open source projects, if you are not sure which one to choose, you can use a convenient service .

The CONTRIBUTING file will help other developers to contribute to the project. In the first steps of the project, it is not necessary to pay close attention to this file; you can use the already prepared template from another project.

My mistakes


If we analyze the initial stage, I had an idea, but there was no clear plan. I decided that I want to do this without having a clear idea of ​​how long it can take and a specific representation of the functionality that will be in the first version of the library.

I just had a lot of desire and lack of a clear plan.
Having also read the history of other projects, not only open source, I noticed that at an early stage there are too optimistic plans and an overestimation of my strength and capabilities. Not so easy to find time every day to write a new feature in the project. Most of the tasks had to eventually weed out and leave the required minimum for MVP .

At the moment, my project simple-admin is in the alpha version state, further plans include creating a separate version of the library for hanami.

Source: https://habr.com/ru/post/345936/


All Articles