-
-
Notifications
You must be signed in to change notification settings - Fork 646
ReleaseProcess
James Teh edited this page Nov 9, 2015
·
11 revisions
This document provides rough guidelines for the process of developing NVDA releases. All current and potential developers and translators should read and follow this document. These guidelines may be broken under special circumstances. Any concerns should be discussed with the lead developers: Michael (Mick) Curran (mdcurran), James (Jamie) Teh (jteh).
This is the general release workflow. Information for specific community groups is provided in later sections.
- Work should be done in topic branches.
- The "next" branch contains items being tested for possible inclusion in upcoming releases. Once an item is ready for testing for inclusion in an upcoming release, it should be merged into the next branch.
- The "master" branch contains items that will be in the next release. When an item has been tested on the next branch without any commits and unresolved problems for 2 weeks, it may be merged into the master branch.
- 3 weeks before the release is due, the master branch will enter a translatable string freeze for 2 weeks. That is, no changes to text strings that affect translations are allowed. Minor spelling or grammatical fixes may be made to documentation files, but gettext strings in the code should not be changed at all.
- Only bug fixes and translation updates should be committed to the master branch.
- After the translatable string freeze, the "rc" branch will be created based on the master branch. The master branch will continue with normal [#Development development].
- The first release candidate will immediately be released from the rc branch.
- After this, only major bug fixes should be committed to the rc branch.
- Subsequent release candidates may be released.
- The final release can only be made if there have been no commits and at least 1 week since the last release candidate.
- If priority should be given to a ticket for inclusion in a specific release, its milestone should be set to the appropriate release milestone (e.g. 2014.4).
- Once code for a ticket is merged into the next branch, the ticket's status should be set to "incubating".
- Once the code for an incubating ticket graduates to the master branch, the milestone should be set to the next release milestone (e.g. 2013.2) and it should be closed as fixed.
- Tickets for bug fixes for an rc should have their milestone set to the relevant release (e.g. 2013.2).
- Generally, final releases will be due around 22 February, 22 May, 22 August and 22 November. The exact date for each release will be determined by the lead developers.
- Under rare circumstances, a maintenance release (e.g. 2013.1.1) may be made.
- A maintenance release may only include fixes for crashes and major security issues.
- Maintenance releases are made from the rc branch.
- Tickets should be created for most issues.
- All new work should be based on the master branch unless it is for a maintenance release.
- Work should be done in a separate topic branch.
- While patches are acceptable, branches are preferred, as they are easier to track and merge.
- Any relevant documentation should be included in the topic branch.
- New commands, drivers, settings, dialogs, etc. must be documented in the User Guide.
- All translation should be based on the master branch.
- Translators should ensure their translation is up to date a day before the translatable string freeze ends in order for it to be included in the upcoming final release. The lead developers will announce the deadline when the freeze begins, but it will generally be close to UTC 00:00 on 14 February, 14 May, 14 August and 14 November. Work submitted after this time will not be included in the upcoming release.
- The master branch is beta quality. It includes code that will be in the next release and has been tested without reported issues for at least a few weeks.
- The next branch is bleeding edge. It includes code that is being tested for possible inclusion in upcoming releases, but it may not yet be tested much (if at all) and there may be major bugs.
- FAQ
- Application Support
- Connect
- Guides
- Extra Voices
- Log Files And Crash Dumps
- Log Levels (move to userguide / delete?)
This section will be moved to the NVDA repository as a priority
- Internals
- Notes Adding support for aria attributes to browsers
- Using COM with NVDA and Microsoft Word