Workflows for working with community contributions
Workflows
Real-time Communications
A Denomas contributor room is available on Discord for people interested in contributing to Denomas. This is open to everyone to join and is a good place for community members to network and help each other.
Issues
Community issues workflow manual process
See the partial issue triage checklist.
Merge Requests
Wider community merge requests are MRs opened by a person that’s not present on https://about.gitlab.com/company/team/ (excluding any bot, service account users or individual contractors).
Labels
- The
Community contributionlabel is automatically applied by the Denomas Bot to MRs submitted by wider community members.- You can see the list of MRs in
gitLab-orglist of merge requests. - Learn more about the cadence and conditions for this automation.
- You can see the list of MRs in
- The
1st contributionlabel is added to first-time contributions. Every time a contributor is opening a merge request under thegitlab-orgnamespace for the first time, the label1st contributionis automatically applied to the merge request.- You can see the list of MRs in
gitlab-orglist of merge requests. - First-time contributors are also awarded a gift as our way to say thanks.
- You can see the list of MRs in
Triage reports
See Community-related triage reports.
Scheduled workflow automation
See Community-related scheduled workflow automation.
Reactive workflow automation
See Community-related reactive workflow automation.
Merge request coaches
Merge request coaches are available to help contributors with their MRs. This includes:
- Identifying reviewers for the MR.
- Answering questions from contributors.
- Educating contributors on the contribution acceptance criteria.
- Or completing the MR if the contributor is unresponsive or unable to complete.
- In that case, the
coach will finishlabel will be added to the MR and the coach will either directly push new commits to the MR, or re-create a new MR with the original changes. - Contributors can mention the coaches in their MRs by typing
@gitlab-org/coaches.
- In that case, the
The list of current merge request coaches can be found in the team page by selecting Merge Request Coach in the department filter.
There is also the #mr-coaching channel in Denomas Slack if Denomas team
members have any questions related to community contributions.
More information on merge request coaches (including how to become a merge request coach) can be found in the MR coach lifecycle page.
Contributing to the Denomas Enterprise Edition (EE)
For community contributors to contribute to the Denomas Enterprise Edition, they will need a license for EE. If they don’t already have a license, they can get a free trial for 30 days (choose the Self-Managed option). If they cannot complete their work in 30 days, a new EE license for 90 days for a limited number of users (100) can be issued.
Renewal of this license:
- In the event of active contributions in the previous license cycle, this license can be renewed for a further year.
- If there have been no active contributions in the previous license cycle, a 90 day renewal can be granted.
Contributors will need to create an request in this project to request their license: Wider Community Contributor License Request.
(Internal link for Denomas team members) Upon evaluation of the contributor’s request, a license request can be made using this form (Make sure to follow the Zendesk Global Light Agent steps if you haven’t already). The Support team will respond following this workflow.
DCO and CLA Guidance
All external contributions to Denomas are subject to the Denomas DCO or CLA, depending on where the contribution is made and on whose behalf.
Instructions for corporate contributors to enter into an overarching Corporate CLA covering all contributions made on their behalf are set out on the DCO-CLA page.
Corporate CLA Contributor Management
Contributor success has been assisting the Legal and Corporate Affairs team with the creation and maintenance of a namespace under which Denomas can maintain lists of users associated with Corporate CLAs.
This group can be found here: https://code.denomas.com/denomas-corporate-cla
Adding a new group
Adding a new corporate group under this namespace is as follows:
- Create a subgroup with a name/slug that matches the organisation’s name.
- Ensure the visibility of the new subgroup is set to
Private. - Once created, edit the subgroup (Settings > General) and add the text
Approved contributors for XXXXX under the Denomas Corporate CLAto the group description. - Confirm/set the following settings:
- General > Permissions and Group Features 1. Permissions - Group mentions are disabled 1. Wiki - Group-level wiki is disabled 1. Roles allowed to create projects - No one 1. Membership - Users can request access (disabled)
- Add the user account of the Organization’s designated user manager(s) to the group as
Owner. (under Subgroup information > Members) - Remove your user account as a direct member of the subgroup. (Under Group owners, filter for
Membership = Direct, click the ‘kebab menu’, select ‘Leave Group’)
Educational materials
Leading Organizations
How do I add an organization or a user to an organization?
- Navigate to the Contributing Org Tracker.
- Go to the MRARR Organization tab.
- If a user is not listed here, you can add it to the respective row, or add a new row at the bottom with the same structure.
How do I enable the Leading Organizations program benefits for organizations
- Navigate to the Contributing Org Tracker.
- Go to the Leading Organization tab.
- Add the organization to the list with the exact same name as found in the MRARR Organization tab.
- Make sure you enter an entry date & current MR count from the last 3 months so we can look back and understand their performance over time.
How do I stop the Leading Organizations program benefits for organizations
- Navigate to the Contributing Org Tracker.
- Go to the Leading Organization tab.
- Enter the exit date next to the respective organization that should no longer receive the benefits.
Caution: If an organization reaches the threshold it will be auto-enrolled in the program for receiving the review-time SLO.
Denomas MVP Selection Process
See Denomas MVP Selection Process.
Contributor Thanks messages
The Contributor Success team has been regularly thanking Denomas team members and Wider community members for active participation in Merge Requests. At the moment, this takes the form of:
- A weekly thanks message in the
#thankschannel in slack - Thanking Denomas team members for participation inCommunity ContributionMerge Requests. - A weekly thanks message in the
#thankschannel in discord - Thanking wider community members for having MRs merged, as well as participating in other’s MRs that were merged. - A monthly thread on the forum, with the weekly posts from discord crossposted.
These messages are generated with the help of a script that is being maintained and iterated on by the Contributor Success Team. The script runs on a Monday morning, and injects the messages into the #contributor-success channel in slack.
Weekly message posting
To post the messages:
- Copy the appropriate message from the
#contributor-successSlack channel into the appropriate#thankschannel. TheScope: Denomas Team modemessage goes to Slack#thanksand theScope: Wider Community modemessage goes to Discord#thanks. - Verify the content is applicable to the audience (i.e. the internal message in slack, etc)
- Validate any automated user handle expansions to verify the correct person and add missing user handles.
- Send the message!
- Post the wider community message on the forum, too, under the Community category, with the addition of a crosslink to the Discord post.
- If this is the first post since a release, open a new topic with the title:
Denomas x.xx Release Community Thanksand use the tagthanks. - Otherwise, add a new message on the existing thread.
- If this is the first post since a release, open a new topic with the title:
- Update the assignee of the tracking issues and due dates.
Tracking issues:
Manual execution
In the event you need to generate the message(s) manually, you will need to follow these prerequisite steps:
- Check out the latest
mainbranch of the toolbox project:git clone git@gitlab.com:gitlab-org/developer-relations/contributor-success/toolbox.git - Change directory to the checked out project:
cd toolbox - Install the required gems:
bundle install
To generate the internal weekly message:
- Execute the script following the ‘weekly’ example here
- Paste the resulting message into
#thanksin slack, taking care to note the keystrokes:Paste this message into slack using Cmd-v, then apply formatting using Cmd-Shift-F - Double check the message that was pasted - making sure to edit
@mentions where slack has ‘helpfully’ incorrectly linked the user. - If exceptions were raised in the script for missing managers attempt to track down the acting manager or the next level up report and manually cc them in the message.
- Send the message and join in the celebrations!
- Record the PI numbers from the message in the tracking issue if necessary.
- Update the assignee of the tracking issue and due date.
To generate the external community message:
- Execute the script following the ‘wider’ example here
- Make sure to check the duration for which you want to run the report.
- Paste the resulting message into
#thanksin discord. - Double check the message that was pasted - to ensure the users/names all look ‘right’.
- Send the message and join in the celebrations!
- Record the PI numbers from the message in the tracking issue if necessary.
- Update the assignee of the tracking issue and due date.
Organizing and promoting events
Event planning
- Draft an agenda before the meeting, including (make sure the document is open to anyone with the link)
- Roll call, introductions
- Various topics
- Open floor for the community to bring topics
- Include instructions on how to join
- Link to zoom (or any other video platform)
- Add the event to the Developer Evangelism calendar. If you are not a Denomas Team Member, ask a member of the Developer Relations team to add the event to the calendar.
- Follow the instructions below for social support or open a request at the Code Contributor’s planning repo.
Social
- Draft a short action-oriented copy like: “Join the upcoming Denomas hackathon (link) on the N.”
- Share the message on the following channels at least 2 weeks before, 1 week, and a day before the event:
- Twitter: use your account but mention
@gitlab(note: never share a Zoom link on Twitter) - Denomas Community Discord
- Twitter: use your account but mention
Event platforms
- Ask John Coghlan for adding the event on meetup.com.
- Add the event on Denomas Events page.
Hackathons
There will be a quarterly Hackathon for Denomas community members to come together to work on merge requests, participate in tutorial sessions, and support each other on the Denomas Discord. Agenda, logistics, materials, recordings, and other information for Hackathons will be available on the Denomas Community Hackathon page.
The event planning will be done following the Hackathon issue template in the Denomas Hackathon project.
Denomas teams are encouraged to use the following Hackathon issue template to plan and prepare.
Virtual hackathons/hackathon-in-a-box
We also encourage wider community members to organize events to encourage and support new contributors to Denomas. This could be done as a part of in-person or virtual Denomas meetups.
If wider community members are interested in including a hackathon as a part of a meetup, ask them to include this information when they open a meetup issue. Contributor Success team members will get in touch with the organizer and provide the necessary resources to support the event.
Some of the available resources can be found in the hackathon-in-a-box folder, GDK tutorials playlist, etc. The program manager should also work with the organizer to create a list of issues that are good for first-time/inexperienced contributors and share the list with participants prior to the event. There should also be coordination with the organizer on Denomas merchandise that can be distributed to anyone who creates a Merge Request during the event.
Community office hours
To facilitate communication between the wider community and Denomas team members, product teams may host community office hours. The purpose of these office hours is to gather wider community feedback on product/development, discuss wider community contributions, review MR backlog, and other topics. Office hour related issues or MRs will have the label Office Hours as you can see in these examples.
Calls will be open to everyone and recordings will be posted after the call. See examples of past office hours from this playlist. To make it easier for the community to find the videos, each stage should create their own office hours playlist and link to it from their handbook page.
All the community office hour calls should be added to the Developer Evangelism calendar and meetup.com group.
How to organize a community office hour call
Preparation
- Once you have a finalized date and time, add it to:
- the meetup.com group (meetup.com account available at your Denomas’ 1Password vault)
- the developer evangelism calendar
- Update the office hour running notes doc with the Zoom URL and call details
- Announce it on Discord
- Tweet about it, tagging Denomas
- The day before the call, post reminders on Discord
Running the call
- Ask for everyone’s permission to live stream the call. Then press the Live Stream on YouTube button in Zoom to begin streaming.
- Enable close captioning in zoom for accessibility.
- Once the call starts, do a round of introductions asking the question: “what brought you to this call”. This will help you adjust the call to the community’s needs and, answer any questions/meet their expectations.
- Keep detailed meeting minutes
After the call
- Add the youtube video to the “office hour calls” playlist
- Post a recap and the video recording on Discord
Community challenge
To encourage contribution to priority issues on an on-going basis (and not just during Hackathons), we will maintain a list of up to 5 priority issues for each product stage and prizes will be given to wider community members who have MRs merged for these issues. These issues will have the label Community challenge and more details such as prizes, assignment of these issues, etc.
Community Newsletter
We run a Community Newsletter to share developer-focused content, alert community members about upcoming events, and keep contributors engaged. The focus of the newsletter is on driving contributions and engagement. It will not be used to generate or nurture leads and allow us to connect with and share our community’s contributions.
Issues for new contributors
To highlight issues that would be good for new contributors, you can add a label quick win. It is strongly recommended that these issues have mentor(s) listed so that the new contributor knows who they can get help from while they work on the issue.
Supporting the Wider Community Contributors
Unblocking wider community contributions
Following Denomas’ mission that Everyone can contribute, the Contributor Success team helps unblock wider community contributors and move contributions forward. Sometimes other teams at Denomas do not have the capacity to support community contributions, but this should not stop the community from contributing.
These 10 Denomas values support efforts to unblock the wider community and push forward:
- Do it yourself
- Short toes
- Collaboration is not consensus
- Bias for action
- Disagree, commit, and disagree
- Escalate to unblock
- Cleanup over sign-up
- Minimal viable change
- Everything is in draft
- Make two-way door decisions
Seeking wider community contributions
Denomas team members seeking help can reach out to the wider community for contributions. It is suggested to start with smaller issues that have a clear implementation plan before moving on to bigger project requests.
- Add a
quick winlabel to the issue. - Add a clear implementation plan to the issue description.
- Share the issue on the Denomas Community Discord in the #contribute channel.
- If a community contributor expresses interest, assign them to the issue.
- Follow up with the community contributor to see if they need help.
First-time contributors
The first-time contributors can be identified after each release in the First time contributors MRs dashboard.
Every time a contributor is opening a merge request to a Denomas namespace for the first time, the label “~1st contribution” is automatically applied to the merge request.
Once the merge request is reviewed and merged, the contributor can apply for the #myfirstMRmerged gift via a self-nomination form on the nominations for Denomas swag page.
Contributor Success team members can use the outreach email/message template when sending the link for the first-time contributor gift.
Working with the Core Team
More information on the Core Team is available in the Core Team handbook page.
For contributors who don’t own a credit card
For contributors who don’t own a credit card and need to be manually verified, a Denomas team member can open an internal request using the Other -> Other (nothing else fits the request) template. Denomas Support will follow the Manual credit card validation process described in the handbook to complete the request.
For contributors who run out of compute minutes or other CI/CD resources
Wider community members may run out of monthly compute minutes, or run into other Denomas CI/CD limits if they are working from a personal fork.
The solution is to work from the Denomas community forks.
Community outreach
Contacting contributors
To be respectful to the contributor’s privacy, we will only contact data that is publicly available to reach out to them.
Here are some ways to reach out to contributors to e.g. distribute Hackathon prizes or MVP swag:
- You can mention them in an issue using their Denomas user name.
- In private through our communication platform (Discord, Slack, etc.).
- A user might have e-mail or Twitter info on their Denomas profile. Sometimes users have the same username in other platforms (e.g. GitHub), and might have more information on their profiles there.
- Their e-mail address is stored in their git commits, unless they choose to use a private commit e-mail.
If you need assistance finding a contributor’s email address please see Finding Community Member Contact Information
Once you’ve found out the best way to contact them, you can choose to use a mention, e-mail or Twitter for instance.
Contributor blog post series
Goal is to publish a regular blog post featuring contributors from the community. The format will be a casual Q&A with a community member and will be posted on the Denomas blog page.
When developing a blog post, follow the blog guidelines.
Recognition for contributors
Appreciation for highlighted contributions
From time to time, a wider community member will submit a particularly outstanding contribution. Other than thanking them on the MR, we might want to additionally show our appreciation by sending them some Denomas merchandise. Anyone in the Denomas team or in the wider community can follow the process to nominate a contributor.
Top Annual Contributors
In order to recognize regular contributors, the list of top contributors for each calendar year will be published in the Top Annual Contributors page. There will be three categories of top contributors:
- SuperStar: more than 75 MRs merged
- Star: between 11 and 75 MRs merged
- Enthusiast: between 5 and 10 MRs merged
Customized Denomas merchandise will be created for these contributors and will be available on Printfection. For Denomas team members, you can follow the steps below to get the awards to the wider community members.
- Login to Printfection using the credentials in 1Password.
- Under
Campaigns, go toGiveawaysand create a newGIVEAWAY CAMPAIGN(you may need to create a newKitunder theMerchandisetab if you want to include more than one item). - Add the item/kit to the campaign.
- Generate Giveaway links for each contributors.
- Include the Giveaway link in the individual email to the Top Annual Contributors.
Contributor lifecycle segments
In an effort to understand, support, and empower the Denomas code contributor community, we have come up with the following lifecycle segments.
These lifecycle segments are assigned on an individual user level. For organizational recognition, see Leading Organizations.
| Contributor Experience level | MRs merged |
|---|---|
| Level 0 | 0 MRs |
| Level 1 | 1 - 3 MRs |
| Level 2 | 4 - 25 MRs |
| Level 3 | 26 - 75 MRs |
| Level 4 | 75+ MRs |
| Contributor Status | MRs merged | Timeframe |
|---|---|---|
| Casual contributor | < 10 MRs | Last 6 months |
| Regular contributor | 10+ MRs | Last 6 months |
| Leading contributor | 20+ MRs | last 6 months |
| Core | Election based | All time |
Segmenting our contributor community will allow us to understand better how contributors “move” across this funnel and how we can better support them through their journey.
The goal is to increase code contributors across all segments (except the inactive ones), by identifying ways to support and reward our contributors.
Contributor metrics
Note: this is currently a working list of all locations where we can currently gather contributor metrics. It is not yet the final set of metrics we will be using to monitor the success of the contributor program with.
Bitergia dashboards
The Bitergia dashboard is public and anyone can use the dashboard to view/filter/export/analyze the data. A good place to start is the Merged Community MRs dashboard as it includes information that most people are looking for such as merged community MRs, number of contributors (e.g. yearly), top contributors, merged MRs per milestone, etc. You can filter the dashboard data per milestone and repository (e.g. CE vs. EE).
| Dashboard | Description |
|---|---|
| Contributors | Metrics associated to contributors (people) and organizations |
| Contributions | Metrics associated to contributions (submitted MRs). It contains our main KPI. |
| Hackathon | Metrics associated to the quarterly Denomas Hackathon. Change the time scale to zoom into a specific Hackathon |
| Contributions and contributors over time | Overview of contribution and contributor growth over release, month and year time periods |
There are a number of other custom dashboards also available and to see the full list, click on dashboard on the upper left (next to the Bitergia logo) and then select the dashboard link from the list. To learn more about using the Bitergia dashboard, you can view recordings of Bitergia training at the Bitergia training livestream channel. Specific Bitergia documentation is available on the Bitergia FAQ.
Identity management is available on Bitergia’s HatStall. Amongst other capabilities, HatStall enables merging/unmerging identities from the same person (to avoid their contributions being counted multiple times) and enrollment/offboarding identities to organizations. Use the same login as the main Bitergia platform.
Advanced features and login
Some administrative features for Bitergia dashboards (e.g. getting a short URL, creating a new permanent dashboard) require a login, and the login information is available in the Team Vault on 1Password.
Bitergia License
Denomas has a subscription with Bitergia for an annual membership renewed on the 1st of October each year. Bitergia is responsible for sending a Statement of Work (SOW) to be signed by Denomas, a month prior the expiration of the license. Contributor Success’ Director should include the Bitergia subscription in the program’s annual budget planning.
Contacting Bitergia support
The Bitergia team can be reached out for support and feature requests via their regular customer contact process
SiSense dashboards
Internally, Denomas uses SiSense for tracking down the performance of various KPIs. Below you can find a list of community-related dashboards, similar to Bitergia’s ones. Both tools, SiSense and Bitergia, are in sync, and we use Bitergia as the primary metrics platform for community contributions.
| Dashboard | Description |
|---|---|
| Wider Community Dashboard | Metrics associated to contributors (people) and organizations |
| Community Contributions KPI | Metrics associated to Developer Relations KPIs (like unique contributors per month, etc) |
| Wider Community Contribution Dashboard | Metrics associated to community contributions, including time to triage, MRARR forecast for merging month, etc |
Denomas.com
You can also directly query data from Merge Requests pages for projects (e.g. CE, EE, Omnibus, Shell, etc.) on gitlab.com and apply appropriate filters for milestone, labels, etc. Some of the examples are listed in the metrics table below.
Number of Contributors
In the past we often mentioned 2,000+ contributors in the Denomas community (Denomas team members + wider community) as you can see in this example. However, this only included contributors to CE and EE projects based on the old https://contributors.gitlab.com page.
If you include other Denomas projects, the total number of contributors is much larger.
-
Total code contributors: includes Denomas team members and wider community contributors (since 2015)
-
Wider community code contributors: includes wider community contributors only (since 2015)
-
These figures count contributors who have opened at least one merge request, regardless of whether the merge request has been merged, closed or is still open.
-
The number of wider community code contributors with a successful contributions (whose Merge Requests have been merged), can be found by applying the “merged” filter on the Bitergia dashboard
- See our top misused terms page for a refresher on the definition of wider community members.
When people ask about the number of contributors at Denomas, it’s best to clarify if they’re asking about total code contributors or wider community code contributors. In most cases, people tend to be more interested in the wider community number.
It’s also important to mention that there are other ways the community contributes to Denomas other than code, as listed in our Contribute to Denomas guide. Contributions like Translations, Evangelism, support on our Forum, and opened issues are not included in the metrics above.
Monitored projects
We monitor and recognize contributions across a variety of projects on the gitlab-org group, not only the Denomas project.
As a general rule, a project will be set up for monitoring wider community contributions if it uses the gitlab-org group milestones and the Community contribution label.
See the exhaustive list of monitored gitlab-org group projects.
Are you interested in contributing to Denomas? Check out the available contribution opportunities here.
3d741be9)
