33We welcome small patches related to bug fixes, but we do not plan to accept
44major changes to this repository at this time.
55
6+ ## Coordination & Claiming Issues
7+
8+ To avoid duplicate effort and ensure your work can be merged, please follow
9+ these steps:
10+
11+ * ** Check for existing PRs and Issues:** Before starting work, search the
12+ issue tracker and active PRs to see if the feature/bug is already being
13+ addressed.
14+
15+ * ** Claim the issue:** If an issue exists, comment on it expressing your
16+ intent to work on it (e.g., "I'd like to work on this"). A maintainer will
17+ then assign it to you.
18+
19+ * ** Wait for Assignment:** Do not start a large-scale implementation until a
20+ maintainer has acknowledged your comment. This prevents multiple people from
21+ working on the same fix simultaneously.
22+
23+ * ** Stale Assignments:** If an assigned issue hasn't seen progress or
24+ communication for 14 days, the assignment may be cleared to allow others to
25+ contribute.
26+
627## Contributor License Agreement
728
829Contributions to this project must be accompanied by a Contributor License
@@ -25,45 +46,47 @@ information on using pull requests.
2546## Style guide
2647
2748Code in this library generally follows the
28- [ Google Style Guide] ( https://google.github.io/styleguide/pyguide.html ) .
29- We aim to keep APIs, names, and design patterns in line with the broader JAX
30- ecosystem as much as possible, with immutability and functional purity being a
31- key guiding principles we adhere to across our library. Below are some more
32- detailed conventions depending on what is being contributed.
33-
34- 1 . ** Public Facing Functions** : Public facing functions are those that are
35- exposed to the ** users** of JAX Privacy (usually surfaced via \_\_ init\_\_ .py).
36- Public facing functions and classes should ** always** have full docstrings, type
37- annotations, and example usages in the form of
38- [ doctests] ( https://docs.python.org/3/library/doctest.html ) . Doctests
39- provides useful documentation that stays up-to-date with code changes, and
40- is a useful litmus test on the simplicity and usability of the API surface.
41-
42- 1 . ** Internal functions used across files** : For maintainability of the core
43- library, it is sometimes beneficial to define a function in one file and have it
44- be used by another file within the jax_privacy package. These functions are not
45- intended to be consumed by JAX Privacy users (although may be encountered by
46- developers / contributors). These functions should generally have
47- descriptive names, type annotations. Internal functions should have a one-line
48- docstring explaining what they do. A full docstring is encouraged if the
49- function has non-obvious side effects, complex arguments,
50- or implements a multi-step algorithm that isn't clear from the code alone.
51-
52- 1 . ** File-local private functions** : These function should always have a
53- leading "_ ". This signals to developers that the function is not part of the
54- public API and is subject to change without notice. These functions should have
55- 1-line docstrings; type annotations are optional and context-dependent. Example
56- usages are not needed as they can be found in the corresponding _ test.py file.
57-
58- 1 . ** Nested functions** : Functions defined within other functions should
59- generally be as simple as possible; we prefer to keep the boilerplate minimal
60- on these (no docstrings + type annotations), inline comments can be used, but
61- should be used sparingly.
49+ [ Google Style Guide] ( https://google.github.io/styleguide/pyguide.html ) . We aim
50+ to keep APIs, names, and design patterns in line with the broader JAX ecosystem
51+ as much as possible, with immutability and functional purity being a key guiding
52+ principles we adhere to across our library. Below are some more detailed
53+ conventions depending on what is being contributed.
54+
55+ 1 . ** Public Facing Functions** : Public facing functions are those that are
56+ exposed to the ** users** of JAX Privacy (usually surfaced via
57+ \_\_ init\_\_ .py). Public facing functions and classes should ** always** have
58+ full docstrings, type annotations, and example usages in the form of
59+ [ doctests] ( https://docs.python.org/3/library/doctest.html ) . Doctests
60+ provides useful documentation that stays up-to-date with code changes, and
61+ is a useful litmus test on the simplicity and usability of the API surface.
62+
63+ 1 . ** Internal functions used across files** : For maintainability of the core
64+ library, it is sometimes beneficial to define a function in one file and
65+ have it be used by another file within the jax_privacy package. These
66+ functions are not intended to be consumed by JAX Privacy users (although may
67+ be encountered by developers / contributors). These functions should
68+ generally have descriptive names, type annotations. Internal functions
69+ should have a one-line docstring explaining what they do. A full docstring
70+ is encouraged if the function has non-obvious side effects, complex
71+ arguments, or implements a multi-step algorithm that isn't clear from the
72+ code alone.
73+
74+ 1 . ** File-local private functions** : These function should always have a
75+ leading "_ ". This signals to developers that the function is not part of the
76+ public API and is subject to change without notice. These functions should
77+ have 1-line docstrings; type annotations are optional and context-dependent.
78+ Example usages are not needed as they can be found in the corresponding
79+ _ test.py file.
80+
81+ 1 . ** Nested functions** : Functions defined within other functions should
82+ generally be as simple as possible; we prefer to keep the boilerplate
83+ minimal on these (no docstrings + type annotations), inline comments can be
84+ used, but should be used sparingly.
6285
6386## Linting and testing
6487
65- We use ` flake8 ` , ` pylint ` and ` pytype ` for linting and type checking. Please
66- run the following commands locally before submitting a pull request:
88+ We use ` flake8 ` , ` pylint ` and ` pytype ` for linting and type checking. Please run
89+ the following commands locally before submitting a pull request:
6790
6891``` bash
6992$ flake8 jax_privacy/** .py
0 commit comments