|
| 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