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.

No items found.
The Mobile DevOps Newsletter

Explore more topics

App Development

Learn how to optimize your mobile app deployment processes for iOS, Android, Flutter, ReactNative, and more

Bitrise & Community

Check out the latest from Bitrise and the community. Learn about the upcoming mobile events, employee spotlights, women in tech, and more

Mobile App Releases

Learn how to release faster, better apps on the App Store, Google Play Store, Huawei AppGallery, and other app stores

Mobile DevOps

Learn Mobile DevOps best practices such as DevOps for iOS, Android, and industry-specific DevOps tips for mobile engineers

Mobile Testing & Security

Learn how to optimize mobile testing and security — from automated security checks to robust mobile testing and more.

Product Updates

Check out the latest product updates from Bitrise — Build Insights updates, product news, and more.

The Mobile DevOps Newsletter

Join 1000s of your peers. Sign up to receive Mobile DevOps tips, news, and best practice guides once every two weeks.