Skip to content

Latest commit

 

History

History
105 lines (56 loc) · 4.53 KB

CONTRIBUTING.md

File metadata and controls

105 lines (56 loc) · 4.53 KB

Contributing to Solid

Solid is a living framework for all basic BuzzFeed styling and we want every BuzzFeed developer to feel comfortable pitching in!

Getting Started

1. Set Up

You must have an account with Github and git must be installed on your computer.

2. Fork the Repo Locally

note: BuzzFeed contributors can ignore this step and clone the repo directly

Visit https://github.com/buzzfeed/solid and click the fork button.

Next, clone this fork down to your local PC. Now that you have a local fork of the repo you'll want to keep it in sync. For a deeper dive into repo forks check out github's forking documentation.

3. Check Out a New Branch

Create a fresh branch off master with a short, descriptive name.

$ git checkout -b my-feature-or-bug-branch

BuzzFeed employees are encouraged to create a branch with a name that matches the prefix of their corresponding Jira card. For example:

$ git checkout -b SOLID-300-change-fill-red-variable

4. Write Your Code!

Do your best to follow the SCSS patterns and examples laid out in the Solid docs.

5. Write Release Notes

Release notes can be found in release-notes/. Release notes must be named year-month-day-release number.html and are written in Yaml front matter. Name your release concisely and consider the changes it includes. Jokes, on occasion, are OK. Please see existing release notes for examples.

6. Bump the release number in package.json

Release numbers follow a semantic versioning scheme of major.minor.patch. This allows users to safely update Solid versions without breaking their app.

Major Version: Includes serious breaking/architectural changes.

Minor Version: Adds new functionality.

Patch: Reserved for bug fixes and small changes. Users should feel safe staying up to the most recent patch version.

Example: if the current Solid version is 2.1.0 and I am drafting a new release which adds a new button color, the new version would be 2.2.0.

7. Stage and Commit Your Changes

$ git add .
$ git commit -m "fixes bug xxx"

This will commit your changes to your local copy of the repo, (distinct from your fork on Github).

8. Push It

Up until now, you've been working locally. When you're ready to share your branch, you will need to push it up to buzzfeed/solid on Github. (Your local branches aren't automatically synchronized to the remotes you write to – you have to explicitly push the branches you want to share.)

$ git push origin my-feature-or-bug-branch

9. Submit a Pull Request

Once you're ready to submit your feature or bug, go to your fork on the web (https://github.com/YOUR_GITHUB_USERNAME/solid), and click the Pull Requests nav item at the top right.

Next, click the green New pull request button and select the following from the dropdowns:

  • base fork: buzzfeed/solid
  • base: master
  • head fork: YOUR_GITHUB_USERNAME/solid
  • compare: my-feature-or-bug-branch

If all looks good, click the green Create pull request button.

You should add a concise descriptive comment about what is in this merge, and then submit. From github's open source contribution documentation:

Make sure to be clear about what problem is occurring and how someone can recreate that problem or why your feature will help. Then be equally as clear about the steps you took to make your changes.

Someone from the team will review your request, and work with you to ensure there will be no problems on merge. Once everything is good someone from the team will merge your change in!

10. Merge the PR back into master. (BuzzFeed employees only)

11. Run NPM Publish to publish the latest version with your newly added changes. (BuzzFeed employees only)

You'll need access to Solid on NPM in order to complete this step. If you don't have access, someone in #solid on Slack will be able to grant you access.

Make sure to communicate any changes you make to library to maintain transparency and awareness for those developing with Solid.

If you want to test these changes or deploy this release to https://solid.buzzfeed.com, as well as make any changes to the documentation, see the solid_docs in mono.