Blog Open Source Contributing to GitLab with ease
August 23, 2018
4 min read

Contributing to GitLab with ease

Everyone can contribute to GitLab, so here are a few tips to make your experience easy and pleasant.

mergerequestsgame.jpg

As a Merge Request Coach, I am happy to
help community contributors feel comfortable when contributing
to GitLab. During my time reviewing merge requests, I’ve learned a bit about
how it feels contributing to GitLab as a newcomer, and I’d like to share
my learnings with you.

Common issues in an MR (merge request)

In the past, I think styling might have been one of the most common issues.
However, we’re improving our CI to run more static analysis, so these issues
are now automatically pointed out. Today, contributors can easily see what
didn’t pass CI, and they can fix the issues very quickly, so this is not as
common as it was in the past.

The biggest issue today might be that many contributors don’t add tests, since
tests often require much more effort than fixing or adding something. If
you’re struggling with adding tests, please don’t worry. Merge request coaches
can tell you how to add tests when we see your contribution, and we’ll work
through it together.

Best practices

  1. If you only remember one best practice, I hope it is to keep this
    reference handy when contributing to GitLab.
    I know it’s super long, but it has all the information you need when it comes
    to making contributions to GitLab.

  2. Get GDK set up
    locally if you haven’t already. Running tests locally is the best way to
    develop and debug, and I highly encourage that you incorporate this into your
    workflow.

  3. Don’t ignore CI. If your pipeline didn’t pass, it’s important to go back and
    identify the problem. Troubleshooting issues is a great way to practice your
    skills and help you learn from mistakes.

  4. Look at the GitLab team page and pick a merge request coach to
    ping if you need help. Merge request coaches guide contributors and will even
    jump in to help finish an MR if a contributor can no longer work on it,
    ensuring that the attribution stays with the original contributor. Our goal is
    to help everyone feel comfortable and empowered to contribute even with
    smallest possible effort. Coaches have other responsibilities and don’t always
    proactively look for contributors who need help, so ping them if you’re stuck
    or ready for a review. If they’re not the right person to ping, they’ll pass
    you over to the right one. We love helping community contributors, and we look
    forward to guiding and working with you.

Little-known features

We recently welcomed
Web IDE to quickly edit multiple files on the web directly without cloning
the whole repository. Web IDE is useful if you just want to make some small
changes online. If you’d like to learn more about Web IDE, please
head over to our documentation.

Since GitLab's development velocity is pretty high, sometimes conflicts can
happen very frequently. Did you know that you can resolve conflicts directly
from the web UI? I really love this feature, because it’s very easy to resolve
simple conflicts, and I don’t need to launch my editor or Git to pull, merge,
and push. With some simple clicks, I can save a lot of time for simple
conflicts.

What everyone should know about MRs

To me, an MR is a tool to interactively develop and explore with other people.
Don’t worry about being perfect in the first version of your MR. We learn
through our mistakes and get better over time.

If you’ve made tons of contributions, we invite you to join our
core team or apply for a full-time position at GitLab.
The MR is one of the most important ways we work together, and we’d love to
collaborate with you.

What to do if you’re struggling

If you’re having some trouble getting the hang of merge requests, I suggest
taking a look at how others work on the MRs. Following other people’s example
can help you understand what they did and why they did it. Reaching out to a
merge request coach, joining discussions, and reviewing others’ code are also
ways to help you get up to speed. I think that interacting with others is a
great way to learn and improve.

We’d love your contributions!

We really enjoy collaborating with community contributors, and we look forward
to working together. If you don't know what you can contribute, please take a
look at Accepting merge requests.
We label some issues to explicitly call out the ones that we won’t schedule
anytime soon, but we still want it. These issues usually have very clear scopes,
so they often just require a simple implementation. They’re nice targets if
you don’t know what to contribute but want to gain experience.

If you would like to see how we handle community contributions, please take a
look at Community contribution.
We put this label on all community contributions, therefore you can easily
find all the past and current community contributions. We look forward to
your future contributions as well!

Cover image by
Victor Freitas, licensed
under CC X.

We want to hear from you

Enjoyed reading this blog post or have questions or feedback? Share your thoughts by creating a new topic in the GitLab community forum. Share your feedback

Ready to get started?

See what your team could do with a unified DevSecOps Platform.

Get free trial

New to GitLab and not sure where to start?

Get started guide

Learn about what GitLab can do for your team

Talk to an expert