Making it easier for new developers to get started with open source projects
Posted on March 6, 2024 • 5 min read • 868 wordsFrom checkout to commit in under four hours. Uitsmijter aims to make it easier to get started with coding by providing a user-friendly development environment and a comprehensive toolchain.
Open source projects are like a vast field that offers developers a wealth of opportunities to get involved and work together on exciting projects. Beyond the purely social aspect, participation in such projects offers a wide range of benefits. Not only can developers acquire new skills and contribute to the community, but they can also customize the software and optimize it to their own needs.
Helping to shape the code according to one’s own ideas is an incentive for many, especially when it comes to use within a company. By adding new features, fixing bugs and optimizing performance, the software can be customized to meet the exact requirements needed without having to reinvent everything. This flexibility gives developers the opportunity to implement creative ideas and design the software in a unique way. It becomes easier to realize your own project ideas.
Participation in open source projects offers a holistic experience that not only drives technical development, but also promotes exchange and collaboration within the developer community. The developers involved have a larger toolbox from which they can choose. This broad knowledge is in demand in many companies.
However, potential contributors often face challenges that prevent them from actively participating in the first place and building the fundamental knowledge needed to make code changes.
The time it takes a new developer to get to grips with setting up a project before they can make a small code change can vary greatly and depends on various factors. These include the complexity of the project, familiarity with the technologies and tools used, the quality of the existing documentation and the support provided by the maintainers.
This hurdle becomes even more significant when you consider that many enthusiastic developers first gain an overview of various projects in order to acquire basic knowledge. Only when it comes to a specific application they refer back to the respective project and actively participate in the development and maintenance.
At Uitsmijter, we have recognized that these hurdles are generally too high and have made it our mission to inspire developers with our technology and our onboarding process.
Projects should make setting up the development environment as easy as possible by providing automated scripts or configuration files. This can help new developers get started coding quickly without wasting time on configuration. For more complex projects, this goes beyond a simple compiler build.
It’s important to make the setup process fun to help new developers take the first leap and keep them motivated. Good documentation, clear instructions and support from the community will certainly help minimize the time a new developer needs to set up.
To achieve this, we at Uitsmijter have put a lot of effort into the development of our toolchain. This should support developers in the best possible way and at the same time have a certain simplicity so that developers understand it and also like to maintain it.
Uitsmijter provides a set of tools that enable every developer to have a consistent
and reproducible user experience. Since version 0.8.1, Uitsmijter has been built
and tested on both macOS and Linux in a
Docker environment provided for this purpose.
In the second phase of tooling development, two new important commands followed in
version 0.9.2: ./tooling.sh run-cluster
and ./tooling.sh e2e
.
The continuous improvement and refinement of the toolchain has resulted in the Uitsmijter project having a provided set of well formulated and maintainable bash scripts that can check, build, test, end-to-end test, package and bootstrap the project for local testing in the same way within provided containers on Mac and Linux.
As soon as we release version 0.9.6 we will bring further progress to our toolchain: the unified developer environment (UDE). This can, but does not have to be used. Our aim is to ensure that even internal employees are happy to switch over and prefer to use the new tools rather than the usual IDE of their choice (Eat your own dog food).
Version 0.9.6 adds another tooling module: ./tooling.sh code
.
This command opens a
Docker container on the local device,
which starts an online version of Visual Studio Code (based on
coder/code) that is adapted for operation in
the browser. Thanks to the work of Adam Fowler and the
Visual Studio Code Extension for Swift.
All unit tests can be executed and breakpoints can be set. The “Start” button
runs the project as a standalone within the container.
This function can now be tested on the main branch of Uitsmijter.
Check it out:
$ git clone https://github.com/uitsmijter/Uitsmijter.git
$ cd Uitsmijter
$ ./tooling.sh code
The first download of the Docker-Image takes a while…
After the image is downloaded your default browser will open the IDE automatically.
Facilitating onboarding for new developers in open source projects is crucial to encourage diversity of contributions and strengthen the community. Through clear structuring, comprehensive documentation and a supportive onboarding process, projects can overcome challenges and provide new developers with a positive experience that encourages them to actively participate in the project. The IDE integrated into the tooling makes this process a little bit easier, so that a commit can take place with minimal time.