Skip to content

Latest commit

 

History

History
92 lines (66 loc) · 3.67 KB

CONTRIBUTING.md

File metadata and controls

92 lines (66 loc) · 3.67 KB

Guidance on how to contribute

All contributions to this project will be released under the CC0 public domain dedication. By submitting a pull request or filing a bug, issue, or feature request, you are agreeing to comply with this waiver of copyright interest. Details can be found in our TERMS and LICENCE.

There are two primary ways to help:

  • Using the issue tracker, and…
  • Changing the codebase.

Using the issue tracker

Use the issue tracker to suggest feature requests, report bugs, and ask questions. This is also a great way to connect with the developers of the project as well as others who are interested in this solution.

Use the issue tracker to find ways to contribute. Find a bug or a feature, mention in the issue that you will take on that effort, then follow the Changing the codebase guidance below.

Changing the codebase

If you are a contributor from outside of CFPB, you should fork this repository, make changes in your own fork, and then submit a pull request.

If you are a contributor within CFPB, you may also fork, or follow our documentation for branching.

For timely code reviews of pull requests, please tag @cfpb/cfgov-backends and @cfpb/cfgov-frontends as appropriate for your changes.

All new code should have associated unit tests and/or functional tests that validate implemented features and the presence or lack of defects. The overall test coverage of the codebase should not decrease.

Python code is expected to follow PEP8 and not commit atrocities. JavaScript, CSS/Less, and markup should follow our front-end standards. When in doubt, mimic the styles and patterns in the existing codebase.

Browser support

Outputting browser support metrics

Within the root directory, run npx browserslist to output the set of browser targets given to autoprefixer (CSS) transpiling.

!!! note A browserslist string is used in package.json. See the browserslist docs for information on this string and the defaults.

For JavaScript, esbuild uses the es6 target and our code conditionally includes JavaScript in browsers that support fetch.

!!! note JavaScript may still be delivered to legacy browsers in the form of our analytics and related scripts.

Browser Testing

We run automated browser tests in headless Chrome with yarn cypress run. See our cross browser testing docs for other testing methods.

Satellite app assets

Satellite apps may run within consumerfinance.gov, but manage their own assets within the unprocessed/apps directory. These apps can have their own dependencies within their package.json file.

Resources