I've been meaning to write about this topic for a long time. I was a happy consumer of Open Source software during college and the early years of my career. Suddenly something happened and decided to actively participate in Open Source; it's been a while since then, 12 years give or take a few days as a matter of fact. As part of this adventure I've come across a series of tools and techniques that have helped me to deliver FLOSS (Free/Libre Open Source Software), which I often discuss with people during Hackergarten meetups and in the "hallway track" at several Java conferences.
I would like to share these tools with you, dear reader, as I believe that sharing knowledge is one of the tenets of Open Source. Given the nature of many of the FLOSS projects I've been involved with the tools shown in this series will be mostly related to Java or the JVM, however some of them can be used with non-JVM related projects, others may have a "native" counterpart in another community. All of the tools and services discussed are related to Open Source in one way or another, some are also released as FLOSS, or provide free services/support to FLOSS projects, or deliver some other benefits to FLOSS projects. There will be tools and services that have a commercial aspect, such a paid version with added features. This being said, I'm in no way linked to any of these services nor do I receive money or any other incentives to speak in their favor, I do so on my own and based on the benefits I've received as a FLOSS developer, nothing more.
The tools and services I'll cover fall into the following categories:
- Build: create, compile, package, test, reporting.
- Manage: issue tracking, code reviews, contributions (code).
- Community: announcements, buzz, keep in touch, forums.
- Documentation: readme files, guides, status.
With this list in mind I'll begin with Build tools in the next post.