Skip to content

Commit 9c9d5bd

Browse files
committed
Added project management docs.
1 parent b8bdf81 commit 9c9d5bd

File tree

3 files changed

+137
-0
lines changed

3 files changed

+137
-0
lines changed

docs/index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ General guides to using REST framework.
199199
* [REST, Hypermedia & HATEOAS][rest-hypermedia-hateoas]
200200
* [Third Party Resources][third-party-resources]
201201
* [Contributing to REST framework][contributing]
202+
* [Project management][project-management]
202203
* [2.0 Announcement][rest-framework-2-announcement]
203204
* [2.2 Announcement][2.2-announcement]
204205
* [2.3 Announcement][2.3-announcement]
@@ -317,6 +318,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
317318
[browsableapi]: topics/browsable-api.md
318319
[rest-hypermedia-hateoas]: topics/rest-hypermedia-hateoas.md
319320
[contributing]: topics/contributing.md
321+
[project-management]: topics/project-management.md
320322
[third-party-resources]: topics/third-party-resources.md
321323
[rest-framework-2-announcement]: topics/rest-framework-2-announcement.md
322324
[2.2-announcement]: topics/2.2-announcement.md

docs/topics/project-management.md

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
# Project management
2+
3+
> "No one can whistle a symphony; it takes a whole orchestra to play it"
4+
>
5+
> — Halford E. Luccock
6+
7+
This document outlines our project management processes for REST framework.
8+
9+
The aim is to ensure that the project has a high
10+
["bus factor"][bus-factor], and can continue to remain well supported for the foreseeable future. Suggestions for improvements to our process are welcome.
11+
12+
---
13+
14+
## Maintenance team
15+
16+
We have a quarterly maintenance cycle where new members may join the maintenance team. We currently cap the size of the team at 5 members, and may encourage folks to step out of the team for a cycle to allow new members to participate.
17+
18+
#### Current team
19+
20+
The [maintenance team for Q1 2015](https://github.com/tomchristie/django-rest-framework/issues/2190):
21+
22+
* [@tomchristie](https://github.com/tomchristie/)
23+
* [@xordoquy](https://github.com/xordoquy/) (Release manager.)
24+
* [@carltongibson](https://github.com/carltongibson/)
25+
* [@kevin-brown](https://github.com/kevin-brown/)
26+
* [@jpadilla](https://github.com/jpadilla/)
27+
28+
#### Maintenance cycles
29+
30+
Each maintenance cycle is initiated by an issue being opened with the `Process` label.
31+
32+
* To be considered for a maintainer role simply comment against the issue.
33+
* Existing members must explicitly opt-in to the next cycle by check-marking their name.
34+
* The final decision on the incoming team will be made by `@tomchristie`.
35+
36+
Members of the maintenance team will be added as collaborators to the repository.
37+
38+
The following template should be used for the description of the issue, and serves as the formal process for selecting the team.
39+
40+
This issue is for determining the maintenance team for the *** period.
41+
42+
Please see the [Project management](http://www.django-rest-framework.org/topics/project-management/) section of our documentation for more details.
43+
44+
---
45+
46+
#### Renewing existing members.
47+
48+
The following people are the current maintenance team. Please checkmark your name if you wish to continue to have write permission on the repository for the *** period.
49+
50+
- [ ] @***
51+
- [ ] @***
52+
- [ ] @***
53+
- [ ] @***
54+
- [ ] @***
55+
56+
---
57+
58+
#### New members.
59+
60+
If you wish to be considered for this or a future date, please comment against this or subsequent issues.
61+
62+
#### Responsibilities of team members
63+
64+
Team members have the following responsibilities.
65+
66+
* Add triage labels and milestones to tickets.
67+
* Close invalid or resolved tickets.
68+
* Merge finalized pull requests.
69+
* Build and deploy the documentation, using `mkdocs gh-deploy`.
70+
71+
Further notes for maintainers:
72+
73+
* Code changes should come in the form of a pull request - do not push directly to master.
74+
* Maintainers should typically not merge their own pull requests.
75+
* Each issue/pull request should have exactly one label once triaged.
76+
* Search for un-triaged issues with [is:open no:label][un-triaged].
77+
78+
It should be noted that participating actively in the REST framework project clearly **does not require being part of the maintenance team**. Almost every import part of issue triage and project improvement can be actively worked on regardless of your collaborator status on the repository.
79+
80+
---
81+
82+
## Release process
83+
84+
The release manager is selected on every quarterly maintenance cycle.
85+
86+
* The manager should be selected by `@tomchristie`.
87+
* The manager will then have the maintainer role added to PyPI package.
88+
* The previous manager will then have the maintainer role removed from the PyPI package.
89+
90+
Our PyPI releases will be handled by either the current release manager, or by `@tomchristie`. Every release should have an open issue tagged with the `Release` label and marked against the appropriate milestone.
91+
92+
The following template should be used for the description of the issue, and serves as a release checklist.
93+
94+
Release manager is @***.
95+
Pull request is #***.
96+
97+
Checklist:
98+
99+
- [ ] Create pull request for [release notes](https://github.com/tomchristie/django-rest-framework/blob/master/docs/topics/release-notes.md) based on the [*.*.* milestone](https://github.com/tomchristie/django-rest-framework/milestones/***).
100+
- [ ] Ensure the pull request increments the version to `*.*.*` in [`restframework/__init__.py`](https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/__init__.py).
101+
- [ ] Confirm with @tomchristie that release is finalized and ready to go.
102+
- [ ] Ensure that release date is included in pull request.
103+
- [ ] Merge the release pull request.
104+
- [ ] Push the package to PyPI with `./setup.py publish`.
105+
- [ ] Tag the release, with `git tag -a *.*.* -m 'version *.*.*'; git push --tags`.
106+
- [ ] Deploy the documentation with `mkdocs gh-deploy`.
107+
- [ ] Make a release announcement on the [discussion group](https://groups.google.com/forum/?fromgroups#!forum/django-rest-framework).
108+
- [ ] Make a release announcement on twitter.
109+
- [ ] Close the milestone on GitHub.
110+
111+
When pushing the release to PyPI ensure that your environment has been installed from our development `requirement.txt`, so that documentation and PyPI installs are consistently being built against a pinned set of packages.
112+
113+
---
114+
115+
## Project ownership
116+
117+
The PyPI package is owned by `@tomchristie`. As a backup `@j4mie` also has ownership of the package.
118+
119+
If `@tomchristie` ceases to participate in the project then `@j4mie` has responsibility for handing over ownership duties.
120+
121+
#### Outstanding management & ownership issues
122+
123+
The following issues still need to be addressed:
124+
125+
* [Consider moving the repo into a proper GitHub organization][github-org].
126+
* Ensure `@jamie` has back-up access to the `django-rest-framework.org` domain setup and admin.
127+
* Document ownership of the [live example][sandbox] API.
128+
* Document ownership of the [mailing list][mailing-list] and IRC channel.
129+
130+
[bus-factor]: http://en.wikipedia.org/wiki/Bus_factor
131+
[un-triaged]: https://github.com/tomchristie/django-rest-framework/issues?q=is%3Aopen+no%3Alabel
132+
[github-org]: https://github.com/tomchristie/django-rest-framework/issues/2162
133+
[sandbox]: http://restframework.herokuapp.com/
134+
[mailing-list]: https://groups.google.com/forum/#!forum/django-rest-framework

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ pages:
4646
- ['topics/rest-hypermedia-hateoas.md', 'Topics', 'REST, Hypermedia & HATEOAS']
4747
- ['topics/third-party-resources.md', 'Topics', 'Third Party Resources']
4848
- ['topics/contributing.md', 'Topics', 'Contributing to REST framework']
49+
- ['topics/project-management.md', 'Topics', 'Project management']
4950
- ['topics/rest-framework-2-announcement.md', 'Topics', '2.0 Announcement']
5051
- ['topics/2.2-announcement.md', 'Topics', '2.2 Announcement']
5152
- ['topics/2.3-announcement.md', 'Topics', '2.3 Announcement']

0 commit comments

Comments
 (0)