Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 105 lines (71 sloc) 2.824 kB
40c2d2d @davedash more docs
davedash authored
1 Development Process
2 ===================
3
640fa7d @willkg Cleanup pass
willkg authored
4 This document outlines the development process for most projects.
d43f601 @willkg Turns a note into a Note.
willkg authored
5
6 .. Note::
7
8 **Not every project follows this**---notably *Socorro* and *Elmo*.
9 Check with your team lead or manager for clarification and then
10 fork this.
40c2d2d @davedash more docs
davedash authored
11
1556c33 @davedash Dev Process
davedash authored
12 .. index:: release cycle
13
40c2d2d @davedash more docs
davedash authored
14 Release Cycles
15 --------------
1556c33 @davedash Dev Process
davedash authored
16
6c2edca @willkg Converts two-space sequences to one at sentence end
willkg authored
17 Teams work on 1, 2 or 3-week release cycles. Ultimately teams want a
640fa7d @willkg Cleanup pass
willkg authored
18 continuous development process, where code can be developed and placed
19 in production immediately.
1556c33 @davedash Dev Process
davedash authored
20
21 .. index:: bugs, bugs;cycle, milestones
640fa7d @willkg Cleanup pass
willkg authored
22
8115a84 @davedash Bugzilla
davedash authored
23 .. _bug-life:
1556c33 @davedash Dev Process
davedash authored
24
40c2d2d @davedash more docs
davedash authored
25 A Bugs Life
26 -----------
640fa7d @willkg Cleanup pass
willkg authored
27
1556c33 @davedash Dev Process
davedash authored
28 * Most of our work is encapsulated in Bugzilla_.
29 * Bugs represent tasks (bugs or enhancements).
30 * A developer lead will typically group the bugs into milestones.
640fa7d @willkg Cleanup pass
willkg authored
31
32 * Each milestone represent a release.
33 * All work done on a project belong in that milestone.
34
1556c33 @davedash Dev Process
davedash authored
35 * A developer assigned to a bug will typically:
640fa7d @willkg Cleanup pass
willkg authored
36
37 * make a "bug branch" in ``git``
38 * make code changes
39 * commit the code changes
40 * push them to a personal GitHub_ repository
41 * request a review (``r?``):
42
43 * In bugzilla
44 * in IRC
45 * over email
46 * via GitHub_'s pull request system
47
48 * ``http://github.com/davedash/project/compare/mybugbranch``
49 let you see differences between your work and the
50 ``origin``'s ``master``
51
52 * After a positive review (``r+``) code will be merged into ``master`` and
53 pushed to origin.
54 * Most projects avoid ``merge`` commits unless they are necessary.
55 * The bug is marked fixed and a comment to the GitHub_ commit is left in
56 the bug.
57
1556c33 @davedash Dev Process
davedash authored
58 * QA will verify all bugs that have been marked fixed.
59
60
61 .. _Bugzilla: https://bugzilla.mozilla.org/
640fa7d @willkg Cleanup pass
willkg authored
62 .. _GitHub: https://github.com/
1556c33 @davedash Dev Process
davedash authored
63
64 .. index:: QA
65
40c2d2d @davedash more docs
davedash authored
66 QA
67 --
1556c33 @davedash Dev Process
davedash authored
68
6c2edca @willkg Converts two-space sequences to one at sentence end
willkg authored
69 QA will verify that bugs are fixed. If you are working on a bug that
640fa7d @willkg Cleanup pass
willkg authored
70 does not need QA verification mark it with ``[qa-]`` in the whiteboard
71 status.
72
6c2edca @willkg Converts two-space sequences to one at sentence end
willkg authored
73 QA will re-open a bug if they feel it's not complete. They will file
640fa7d @willkg Cleanup pass
willkg authored
74 new bugs if regressions are found within the current milestone.
1556c33 @davedash Dev Process
davedash authored
75
76
77 .. index:: deployment
78
40c2d2d @davedash more docs
davedash authored
79 Deployment
80 ----------
1556c33 @davedash Dev Process
davedash authored
81
393fb35 @Osmose Add link to very useful IT docs for deployment.
Osmose authored
82 Deployment varies heavily by product. A typical project will
640fa7d @willkg Cleanup pass
willkg authored
83 branch ``master`` into ``prod`` and tag the release with the
84 milestone.
1556c33 @davedash Dev Process
davedash authored
85
86 It will then deploy anything in ``prod``.
87
88 A typical push consists of:
89
90 * Branching and tagging.
91 * Notifying the ``l10n`` volunteers.
92 * Filing an IT request (a "push bug").
93 * Including an etherpad of special instructions if needed.
94 * Upon QA and Dev approval code is pushed to production
95 * QA verifies production is working properly
96 * Hotfixes are made if needed
97 * Or a rollback happens.
98
393fb35 @Osmose Add link to very useful IT docs for deployment.
Osmose authored
99 You can also check out `useful documentation`_ from IT about how we deploy
100 websites (requires an LDAP account).
101
102 .. _useful documentation: https://mana.mozilla.org/wiki/display/websites/Home
103
1556c33 @davedash Dev Process
davedash authored
104 We want a "one button" push process that automates the above steps.
Something went wrong with that request. Please try again.