Skip to content

Latest commit

 

History

History
83 lines (57 loc) · 3.8 KB

CONTRIBUTING.md

File metadata and controls

83 lines (57 loc) · 3.8 KB

General Taskcluster Contribution

We welcome pull requests from everyone. We do expect everyone to adhere to the Mozilla Community Participation Guidelines.

If you're trying to figure out what to work on, here are some places to find suitable projects:

  • Good first bugs: these are scoped to make it easy for first-time contributors to get their feet wet with Taskcluster code.
  • Mentored bugs: these are slightly more involved projects that may require insight or guidance from someone on the Taskcluster team.
  • Full list of open issues: everything else

If the project you're interested in working on isn't covered by a bug or issue, or you're unsure about how to proceed on an existing issue, it's a good idea to talk to someone on the Taskcluster team before you go too far down a particular path. You can find us in the #taskcluster channel on Mozilla's IRC server to discuss. You can also simply add a comment to the issue or bug.

Once you've found an issue to work on and written a patch, submit a pull request. Some things that will increase the chance that your pull request is accepted:

JSON-e Contribution

JSON-e is implemented in several languages. All implementations should behave identically, and the test suite subjects each implementation to the same requirements (in specification.yml). Developing JSON-e will usually require you to make changes in all implementations.

JavaScript

The JavaScript implementation is located in ./js

Within that directory, run yarn install to install the required packages for JSON-e's execution and development. To run the tests use yarn test

Python

The Python implementation is located in ./py.

To test this implementation, install and run tox within that directory. This will test on all supported Python versions. If you have fewer Python versions installed, that's OK -- when you make a PR it will run for all versions.

Go

The Go implementation is located in internal/, with a small stub in jsone.go in the root directory. This follows the usual GoModules form, so running go test ./... in the root dir will run the tests.

Rust

The Rust implementation is in rs/. Within that directory, you will find a Cargo.toml and the usual Rust development tools apply: cargo test, cargo build, and so on.

Documentation

The documentation uses mdBook, with source files in docs/. For the most part, it's fine to modify documentation without running mdbook, following the examples elsewhere in the file.

To use the playground, you will need to roll up the browser-compatible version of JSON-e:

cd js
yarn
yarn rollup

Changelog

When making a pull request with your changes, create a new file in newsfragments/ named after the issue or bug you are working on, with a suffix of .bugfix, .feature, or (for docs-only changes) .doc. The content of this file should be in reStructuredText format. Keep it to a simple sentence, and you should be fine!

For example, newsfragments/201.bugfix might contain Fixed the precedence of the || and 'in' operators. Welcome to the team!