There are many ways to be a contributor, and we're here to help you on your way! You may:


Contributing

This section is designed to help you make an edit if you aren't familiar with using GitHub and want to make a change to any repository.

Basic Change Flow

If you're not familiar with GitHub and Git, here are a few simple steps you can use to get going and contribute to the repository without ever touching the command line.

There is also a Video Walkthrough of how to do this if you prefer to learn over video.

  1. Fork the repo into your account

  2. Find the file you want to edit. Click the pen tool on the top right of the file to edit it. If you want to add a file, click "Add File". Click "Create new branch". Learn More

  3. Make your changes. When you are ready, click Pull Request on the bar above the file. Then create New Pull Request and choose to set the request to merge to the main branch. Put any information you want to describe your changes in the description, and you're done! Learn More.

Updating your PR on Changes Requested

If you've gotten some comments about needing to fix a PR, the process is really simple. You do NOT need to create a new PR.

  1. Go to the file in your branch that you want to edit.

  2. Click the edit button ( step 2 from when you created the initial edit )

  3. Make edits, but this time, instead of creating a new branch, commit to the same branch. Your changes will propagate to the PR.

  4. You may want to re-request a review. Click the sync button to do so:


Advanced Change Flow

As a more advanced user, there are a few ways you can manage your GitHub repository:

  1. You can use the GitHub web editor
  2. You can use GitHub Desktop
  3. You can use the CLI
  4. Something else! Git is extremely powerful if you want to spend time researching.

Commits

Branching:

Tagging

Pull Requests

The below documents some basic best practices for your pull requests.

Review

Issues

Labels

Priority Labels

Priority labels are used to describe the impact and focus of the issue. Higher priority means it is more likely to find focus within the group.

PriorityLabelUsage
prioritycriticalProgress on this issue is critical to the group's forward progress.
priorityhighIt is important for the group to resolve this issue soon.
prioritymediumThis issue is important to resolve before the next release.
prioritylowThis issue is "nice to have" for the next release, but could be deferred if time runs out.

Type Labels

Type labels are labels the define the nature of the issue and/or the correction itself.

TypeLabelUsage
typeeditorialThe issue only involves wording and not normative content.
typecontentThe issue involves normative content; resolution requires group consensus.
typecorrectionThe issue is fixing a recognized problem in the current version.
typeformattingThe issue involves fixing formatting.
typefigureThe issue involves a figure that it missing or needs to be revised.
typeadminThe issue is administrative and NOT about the deliverable.

Status Labels

Status labels are labels that are used to help identify the current state of the issue, so that we may accurately classify the work to do on it.

StatusLabelUsage
statusunassignedThe issue is new and has not yet been assigned to anyone.
statusin-progressThe issue has been assigned and work is in progress.
statusneeds-reviewA resolution (or concrete step forward) has been proposed and needs review.
statusblockedProgress is currently blocked; the block should be explained in a comment.
statuson-holdProgress is currently on hold; the reason should be explained in a comment.
statusdeferredConsensus has been reached that this issue can be deferred to a subsequent version.
statusabandonedConsensus has been reached that this issue can be abandoned.
statusPR-neededConsensus has been reached and this issue is now waiting for a PR to be submitted.
statusPR-in-progressThe issue is linked to a PR that is in progress
statusPR-completedThe issue is linked to a PR that is complete and waiting for review.
statusPR-acceptedThe issue is linked to a PR that has been accepted and is waiting for merge.
statusPR-mergedThe issue is linked to a PR that has been merged; this issue can now be closed.
statusstatus: last-callThe issue has been resolved by some other mechanism documented in the comments and is now in the 5-day last call.


Attribution:

Originally written by Andor Kesselman for the TechArch repo (https://github.com/trustoverip/TechArch/blob/main/CONTRIBUTING.md)