Taking open-source to the next level at Bitrise — Step by step

If the Step Library is the brain of each and every build running on Bitrise, the open-source community must be the heart of it, playing a key role in the success of our product. That's why we have some plans to do more amazing things.


One of the reasons I joined Bitrise was the awesome community and the fact that most of the codebase here is actually open-sourced. If the
Step Library is the brain of each and every build running on Bitrise, the open-source community must be the heart of it, playing a key role in the success of our product. That's why we have some plans to do more amazing things.

A new team dedicated to the Step Library

As an Engineering Manager, I'm helping the CoreSteps Team. We started this team last year with a mission to have a community-first team of mobile experts, leading the way of the mobile CI/CD in the world through our steps.

Working on the Steps itself is quite an exciting challenge, as up-to-date mobile engineering knowledge is required, but the team itself doesn't actually develop mobile apps.

And we are aware that making the source code public won't make the Step Library an actual open-source project. So we had a few brainstorming sessions and came up with an action plan on expanding the program — here’s a sneak peek into what we’ve been working on and what’s coming in the next few months. Enjoy!

But first: data!

Before doing anything, we wanted to make sure that from all the data we have, we can set up some meaningful metrics. This way we can measure and track the team's impact, but more importantly, we'll also be confident in our priorities.

So, in close collaboration with our Data Team, we track the following contributions metrics in a dashboard that is accessible for everyone at the company:

  • Number of open, accepted, and rejected PRs
  • Number of comments & reactions on PRs
  • Number of open and closed Issues
  • Number of comments & reactions on Issues
  • Ratio of accepted and rejected PRs
  • Age of PRs

With these metrics, the team can easily assess the current situation, identify issues early on, and focus on the most important topics first.

What’s next

Based on the discoveries we made early on, we set the following things on our roadmap:

  • Improve the speed and efficiency of managing open-source contributions: We plan to increase the speed of resolving and reacting to contributions by continuously tracking and evaluating new submissions.
  • Make the overall process of contributions easier: We’ll update the Contribution Guidelines in the upcoming weeks and create templates for PRs and Issues to make the process transparent and accessible for everyone.
  • Enhance the conversation with the open-source community: We have a wonderful user community here at Bitrise and, in the upcoming weeks, we plan to share a Public Roadmap on our community Slack. Building and nurturing that connection is really important to us, so together with our Developer Advocates and Bitrise Experts, we’ll communicate important changes and decisions we make regarding our open-source projects.

Let's dig deeper! 👀

Improve the speed and efficiency of managing the open-source contributions

I think this is the very basis of all the other things. In the long run, we'd like to have a self-sufficient community around our steps, and it starts with resolving all the current open PRs and Issues.

We made an inventory and prioritized all the open contributions based on factors such as the number of reactions, activity, number of days since creation, the Step's popularity and type of the contribution. We also factored in our current strategy and goals to further prioritize the contributions. The team even made an automated tool for this:


1/284 (23.406183) PR#88 @ Deploy to iTunes Connect Step  https://github.com/bitrise-steplib/steps-deploy-to-itunesconnect-deliver/pull/88  
TypeScore:            10.000000  
ActivityScore:         0.000000  
AgeScore:              0.006183  
StepPlatformScore:     7.000000  
StepContributionScore: 6.400000  
-------------------------------  
TotalScore:           23.406183           
2/284 (23.325031)
...
Copy code

An example output of the automated tool made by @godrei from the CoreSteps team.

In all of our sprints, we allocate dedicated time for reviewing the selected PRs, communicating with our contributors, and investigating or fixing the selected issues.

Once we get to a manageable amount of contributions, we'll be able to react quickly for each new one. Our plan is to set a reasonable SLA for this.

Make the overall process of contributing easier

Based on the feedback we received from the community, contributing to our open-source repositories will be less complicated.

As a first step, we introduced some templates for the new PRs and Issues. This helps us in getting the most important answers regarding a new contribution and helps our community as we set clear expectations for the overall process.

We also started to review and update our Contribution Guideline, focusing on issues and fixing bugs first. Our plan is to improve this guideline in terms of adding new features and have a unified coding guideline as well.

Enhance the conversation with the open-source community

While eager to receive more and more contributions, we realized that our current open-source ecosystem is not necessarily ready for that.

In many cases, we struggled to accept contributions as we had different plans on our roadmap with the given Step.

But we shouldn’t reject something based on ideas we never shared before.

That's why we'd like to create a public roadmap, involving the community as much as we can. This way we can communicate our priorities and create better alignment between Bitrise and contributors, especially with pull requests.

Closing anything without actually solving a problem is always hard—but we'd like to avoid having lots of stale contributions and we will make sure to give a detailed and transparent reasoning once we decide to close or reject something.

In our Experts Program, highly skilled mobile devs from all over the world are actively contributing to our community with knowledge sharing and also working with us to make sure our vision stays as close to our mobile devs’ needs as possible.

Our Developer Advocates, Kevin Toms and Moataz Nabil will be part of the community, and their goal is staying in the loop with folks building on Bitrise and helping us help you, the community.

That's it! To be honest, for us, these topics are very exciting, and we hope that we can level-up our open-source community while learning lots of things along the way. What do you think? If you've ever contributed before or you’re planning to do so, is there anything you can suggest we should change or we should think about differently? Do you have any feedback? Let us know!

Happy building! 🚀

Thanks to all members of the CoreSteps team and fellow Bitrisers Danielle Vass and Dora Pinter for reviewing this post.

Explore more topics

App development

Learn how Bitrise makes mobile development better.

Community

Join Bitrise engineers, technology experts, power users, and partners.

Company

Company updates on how we build better mobile applications, faster.

Insights

Mobile development insights and best practices.

Mobile DevOps

Learn a unique set of practices and improve your app development process.

Releases

Stay tuned for the last updates, new features, and improvements.

Get the latest from Bitrise

Join other Mobile DevOps and engineers who receive regular emails from Bitrise, filled with tips, strategies, news, and ideas.