Skip to content

Commit c3dc037

Browse files
authored
Merge pull request dpath-maintainers#116 from akesterson/feature/maintainer_guide
Add maintainers guide
2 parents 1daf8fc + c898bda commit c3dc037

1 file changed

Lines changed: 77 additions & 0 deletions

File tree

MAINTAINERS.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
Who Maintains DPATH
2+
===================
3+
4+
dpath is primarily maintained by Andrew Kesterson <andrew@aklabs.net> and Caleb Case <calebcase@gmail.com>. These two individuals collectively govern the project.
5+
6+
There are several individuals in the community who have taken an active role in helping to maintain the project and submit fixes. Those individuals are shown in the git changelog.
7+
8+
Becoming a Maintainer
9+
=====================
10+
11+
Nobody has to become a maintainer to submit a patch against dpath. Simply send the pull request on github.
12+
13+
If you would like to help triage issues, attend monthly meetings, and become a regular part of the team working on the roadmap, send an email to andrew@aklabs.net and/or calebcase@gmail.com.
14+
15+
Where and How do we communicate
16+
===============================
17+
18+
The dpath maintainers communcate in 3 primary ways:
19+
20+
1. Email, directly to each other.
21+
2. Github via issue and pull request comments
22+
3. A monthly maintainers meeting via telephone
23+
24+
What is the roadmap
25+
===================
26+
27+
dpath has 3 major series: 1.x, 2.x, and 3.x.
28+
29+
1.x is the original dpath release from way way back. It has a util library with a C-like calling convention, lots of assumptions about how it would be used (it was built originally to solve a somewhat narrow use case), and very bad unicode support.
30+
31+
2.x is a transitional branch that intends to fix the unicode support and to introduce some newer concepts (such as the segments library) while still being backwards compatible with 1.x.
32+
33+
3.x is a total reconstruction of the library that does not guarantee backwards compatibility with 1.x.
34+
35+
Finding and Prioritizing Work
36+
=============================
37+
38+
There are GitHub project boards which show the work to be done for a given series:
39+
40+
https://github.com/akesterson/dpath-python/projects/
41+
42+
Each series has a board with 4 columns:
43+
44+
* Backlog. New work for this series appears here.
45+
* To Do. This column represents work that has been prioritized and someone has agreed to do the work when they have an available time slot. Each maintainer should never have more than 1 or 2 things in To Do.
46+
* In Progress. Maintainers are actively working on these issues.
47+
* Done. These issues have been recently completed.
48+
49+
Work is prioritized depending on:
50+
51+
1. The type of work. Bugs almost always get worked before features.
52+
2. The versions impacted by the work. Versions which are already in use get worked first (so 1.x before 2.x before 3.x etc)
53+
3. The relative importance/usefulness of the work. "Really useful" tends to get worked before "nice to have".
54+
4. The amount of time to complete the work. Quick issues tend to get worked sooner than issues that will take a long time to resolve.
55+
56+
There is no specific SLA around dpath, for features or bugs. However, generally speaking:
57+
58+
* All issues get triaged within 1 calendar month
59+
* High priority bugs get addressed on the monthly maintainers call
60+
* Very severe bugs are often fixed out of cycle in less than 30 days
61+
62+
Note that we have not always had anything remotely resembling a rigorous process around this, so there are some bugs that have lingered for several years. This is not something we intend to repeat.
63+
64+
Taking and Completing Work
65+
==========================
66+
67+
Anyone who wants to is welcome to submit a pull request against a given issue. You do not need any special maintainer permissions to say "hey, I know how to solve that, let me send up a PR".
68+
69+
The more complete process goes:
70+
71+
1. Decide what issue(s) you will be working on
72+
2. On the Projects tab on Github, move those items to the To Do column on the appropriate board
73+
3. For the item you are ACTIVELY WORKING, move that item to "In Progress"
74+
4. Create a fork of dpath-python, and name your branch for the work. We name bugfixes as "bugfix/ISSUENUMBER_shortname"; features are named "feature/ISSUENUMBER_shortname".
75+
5. Complete and push your work on your fork. Use tox to test your work against the test suites. Features MUST ship with at least one new unit test that covers the new functionality. Bugfixes MUST ship with one new test (or an updated old test) that guards against regression.
76+
6. Send your pull request
77+
7. If accepted, the maintainers will merge your pull request and close the issue.

0 commit comments

Comments
 (0)