Bug 1874684 - Part 28: Return DateDuration from DifferenceISODateTime. r=mgaudet
[gecko.git] / remote / doc / marionette / Contributing.md
blobb179d166135b050cadda40533c0e98bac9867f55
1 # Contributing
3 If you are new to open source or to Mozilla, you might like this
4 [tutorial for new Marionette contributors](NewContributors.md).
6 We are delighted that you want to help improve Marionette!
7 ‘Marionette’ means different a few different things, depending
8 on who you talk to, but the overall scope of the project involves
9 these components:
11 * [_Marionette_] is a Firefox remote protocol to communicate with,
12   instrument, and control Gecko-based applications such as Firefox
13   and Firefox for mobile.  It is built in to the application and
14   written in JavaScript.
16   It serves as the backend for the geckodriver WebDriver implementation,
17   and is used in the context of Firefox UI tests, reftesting,
18   Web Platform Tests, test harness bootstrapping, and in many
19   other far-reaching places where browser instrumentation is required.
21 * [_geckodriver_] provides the HTTP API described by the [WebDriver
22   protocol] to communicate with Gecko-based applications such as
23   Firefox and Firefox for mobile.  It is a standalone executable
24   written in Rust, and can be used with compatible W3C WebDriver clients.
26 * [_webdriver_] is a Rust crate providing interfaces, traits
27   and types, errors, type- and bounds checks, and JSON marshaling
28   for correctly parsing and emitting the [WebDriver protocol].
30 By participating in this project, you agree to abide by the Mozilla
31 [Community Participation Guidelines].  Here are some guidelines
32 for contributing high-quality and actionable bugs and code.
34 [_Marionette_]: ./index.rst
35 [_geckodriver_]: /testing/geckodriver/index.rst
36 [_webdriver_]: https://searchfox.org/mozilla-central/source/testing/webdriver/README.md
37 [WebDriver protocol]: https://w3c.github.io/webdriver/webdriver-spec.html#protocol
38 [Community Participation Guidelines]: https://www.mozilla.org/en-US/about/governance/policies/participation/
40 ## Writing code
42 Because there are many moving parts involved remote controlling
43 a web browser, it can be challenging to a new contributor to know
44 where to start.  Please don’t hesitate to [ask questions]!
46 The canonical source code repository is [mozilla-central].  Bugs are
47 filed in the [Testing :: Marionette] component on Bugzilla.  We also
48 have a curated set of [good first bugs] you may consider attempting first.
50 We have collected a lot of good advice for working on Marionette
51 code in our [code style document], which we highly recommend you read.
53 [ask questions]: index.rst#Communication
54 [mozilla-central]: https://searchfox.org/mozilla-central/source/remote/marionette/
55 [Testing :: Marionette]: https://bugzilla.mozilla.org/buglist.cgi?resolution=---&component=Marionette
56 [good first bugs]: https://codetribute.mozilla.org/projects/automation?project%3DMarionette
57 [code style document]: CodeStyle.md
59 ## Next steps
61 * [Building](Building.md)
62 * [Debugging](Debugging.md)
63 * [Testing](Testing.md)
64 * [Patching](Patches.md)
66 ## Other resources
68 * [Code style](CodeStyle.md)
69 * [New Contributor Tutorial](NewContributors.md)