Tweak release docs
Contrast releases to git snapshot tarballs. Mention that releases have some quality-improvement focus, with special non-"dev" version IDs. Explain more about version IDs, using "openocd -v" to see them, etc; Make release milestone info be less specific about timing, and presume we have both a merge window and an RC stage. Rework the release process information to match reality a bit more closely. Reference the version.sh script (in one place the wrong script was referenced). Bugfix branches get special treatment, while non-bugfix releases are more or less what *defines* being the mainline branch. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
This commit is contained in:
parent
333601da4b
commit
1c51f342d7
|
@ -25,14 +25,21 @@ release, this command will package the tree into several popular archive
|
||||||
formats: <code>openocd-\<version\>.{tar.gz,tar.bz2,zip}</code>. If
|
formats: <code>openocd-\<version\>.{tar.gz,tar.bz2,zip}</code>. If
|
||||||
produced properly, these files are suitable for release to the public.
|
produced properly, these files are suitable for release to the public.
|
||||||
|
|
||||||
When released for users, these archives present several important
|
When properly versioned and released for users, these archives present
|
||||||
advantages when contrasted to using the git repository:
|
several important advantages compared to using the source repository
|
||||||
|
(including snapshots downloaded from that repository using gitweb):
|
||||||
|
|
||||||
-# They allow others to package and distribute the code.
|
-# They allow others to package and distribute the code using
|
||||||
-# They build easier for developers, because they contain
|
consistent version labels. Users won't normally need to care
|
||||||
a working configure script that was produced by the Release Manager.
|
whose package they use, just the version of OpenOCD.
|
||||||
-# They prevent users from trying a random work-in-process revision.
|
-# They contain a working configure script and makefiles, which
|
||||||
-# They free developers from answering questions about mainline breakage.
|
were produced as part of creating the archive.
|
||||||
|
-# Because they have been formally released by the project, users
|
||||||
|
don't need to try a random work-in-process revision. Releasing
|
||||||
|
involves spending some time specifically on quality improvments,
|
||||||
|
including bugfixing source code and documentation.
|
||||||
|
-# They provide developers with the flexibility needed to address
|
||||||
|
larger issues, which sometimes involves temporary breakage.
|
||||||
|
|
||||||
Hopefully, this shows several good reasons to produce regular releases,
|
Hopefully, this shows several good reasons to produce regular releases,
|
||||||
but the release processes were developed with some additional design
|
but the release processes were developed with some additional design
|
||||||
|
@ -45,66 +52,111 @@ following properties:
|
||||||
-# Allow scheduling and automation of building and publishing milestones.
|
-# Allow scheduling and automation of building and publishing milestones.
|
||||||
|
|
||||||
The current release processes are documented in the following sections.
|
The current release processes are documented in the following sections.
|
||||||
They attempt to meet these design goals, but there may improvements
|
They attempt to meet these design goals, but improvements may still
|
||||||
remaining to be made toward automating the process.
|
need to be made.
|
||||||
|
|
||||||
@section releaseversions Release Versions
|
@subsection version_labels Version Labels
|
||||||
|
|
||||||
|
Users can display the OpenOCD version string in at least two
|
||||||
|
ways. The command line <code>openocd -v</code> invocation
|
||||||
|
displays it; as does the Tcl <code>version</code> command.
|
||||||
|
|
||||||
|
Labels for released versions look like <em>0.3.0</em>, or
|
||||||
|
<em>0.3.0-rc1</em> for a preliminary release.
|
||||||
|
Non-released (developer) versions look like <em>0.3.0-dev</em>,
|
||||||
|
or <em>0.3.0-rc1-dev</em>.
|
||||||
|
In all cases, additional tags may be appended to those base
|
||||||
|
release version labels.
|
||||||
|
|
||||||
|
The <code>tools/release/version.sh</code> script is used to
|
||||||
|
manipulate version IDs found in the source tree.
|
||||||
|
|
||||||
|
@subsubsection releaseversions Release Versions and Tags
|
||||||
|
|
||||||
The OpenOCD version string is composed of three numeric components
|
The OpenOCD version string is composed of three numeric components
|
||||||
separated by two decimal points: @c x.y.z, where @c x is the @a major
|
separated by two decimal points: @c x.y.z, where @c x is the @a major
|
||||||
version number, @c y is the @a minor number, and @c z is the @a micro.
|
version number, @c y is the @a minor number, and @c z is the @a micro.
|
||||||
|
For any <em>bug-fix</em> release, the micro version number will be non-zero
|
||||||
For a <i>bug-fix</i> release, the micro version number will be non-zero
|
|
||||||
(<code>z > 0</code>). For a <i>minor release</i>, the micro version
|
(<code>z > 0</code>). For a <i>minor release</i>, the micro version
|
||||||
number will be zero (<code>z = 0</code>). For a <i>major releases</i>,
|
number will be zero (<code>z = 0</code>). For a <i>major releases</i>,
|
||||||
the minor version will @a also be zero (<code>y = 0, z = 0</code>).
|
the minor version will @a also be zero (<code>y = 0, z = 0</code>).
|
||||||
|
|
||||||
@subsection releaseversiontags Version Tags
|
After these required numeric components, release version strings
|
||||||
|
may contain tags such as as <em>-rc1</em> or <em>-rc2</em>.
|
||||||
|
These 'rc' tags indicate "release candidate" versions of the package.
|
||||||
|
Like the major/minor/micro numbers, these tags will be manipulated
|
||||||
|
by the automated release process.
|
||||||
|
|
||||||
After these required numeric components, the version string may contain
|
The release process includes version number manipulations to the tree
|
||||||
one or more <i>version tags</i>, such as '-rc1' or '-dev'.
|
being released, ensuring that all numbers are incremented (or rolled
|
||||||
|
over) at the right time and in the proper locations of the repository.
|
||||||
|
One of those manipulations creates a repository tag matching that
|
||||||
|
release's version label.
|
||||||
|
|
||||||
Mainline and all branches should have the tag '-dev' in
|
@subsubsection releaseversionsdist Packager Versions
|
||||||
their version number. This tag helps developers identify reports
|
|
||||||
created from the git repository, and it can be detected and
|
|
||||||
manipulated by the release script. Specifically, this tag will be
|
|
||||||
removed and re-added during the release process; it should never be
|
|
||||||
manipulated by developers in submitted patches.
|
|
||||||
|
|
||||||
The 'rc' tags indicate a "release candidate" version of the package.
|
|
||||||
This tag will also be manipulated by the automated release process.
|
|
||||||
|
|
||||||
Additional tags may be used as necessary.
|
|
||||||
|
|
||||||
@subsection releaseversionsdist Packager Versions
|
|
||||||
|
|
||||||
Distributors of patched versions of OpenOCD are encouraged to extend the
|
Distributors of patched versions of OpenOCD are encouraged to extend the
|
||||||
version string with a unique version tag when producing external
|
version string with a unique version tag when producing external
|
||||||
releases, as this helps to identify your particular distribution series.
|
releases, as this helps to identify your particular distribution series.
|
||||||
|
Knowing that a release has such patches can be essential to tracking
|
||||||
|
down and fixing bugs.
|
||||||
|
|
||||||
For example, the following command will add a 'foo1' tag to the
|
Packager version tags should always be suffixes to the version
|
||||||
configure.in script of a local copy of the source tree:
|
code from the OpenOCD project, signifying modifications to the
|
||||||
|
original code base. Each packager release should have a unique
|
||||||
|
version.
|
||||||
|
|
||||||
|
For example, the following command will add a 'foo' tag to the
|
||||||
|
configure.in script of a local copy of the source tree, giving
|
||||||
|
a version label like <em>0.3.0-foo</em>:
|
||||||
|
|
||||||
@code
|
@code
|
||||||
tools/release.sh version bump tag foo
|
tools/release/version.sh version tag add foo
|
||||||
@endcode
|
@endcode
|
||||||
|
|
||||||
This command will modify the configure.in script in your working copy
|
This command will modify the configure.in script in your working copy
|
||||||
only. After running the @c bootstrap sequence, the tree can be patched
|
only. After running the @c bootstrap sequence, the tree can be patched
|
||||||
and used to produce your own derived versions. The same command can be
|
and used to produce your own derived versions. You might check that
|
||||||
used each time the derived package is released, incrementing the tag's
|
change into a private branch of your git tree, along with the other
|
||||||
|
patches you are providing.
|
||||||
|
|
||||||
|
You can also "bump" those tags (so "foo1" becomes "foo2" etc)
|
||||||
|
each time a derived package is released, incrementing the tag's
|
||||||
version to facilitate tracking the changes you have distributed.
|
version to facilitate tracking the changes you have distributed.
|
||||||
|
|
||||||
@subsection releaseversionhow Version Processes
|
@code
|
||||||
|
tools/release/version.sh version bump tag foo
|
||||||
|
@endcode
|
||||||
|
|
||||||
The release process includes version number manipulations to the tree
|
Of course, any patches in your branches must be provided to
|
||||||
being released, ensuring that all numbers are incremented at the right
|
your customers, and be in conformance with the GPL. In most
|
||||||
time and in the proper locations of the repository.
|
cases you should also work to merge your improvements to the
|
||||||
|
mainline tree.
|
||||||
|
|
||||||
The version numbers for any branch should increase monotonically
|
@subsubsection version_tags Development Versions and Tags
|
||||||
to the next successive integer, except when reset to zero
|
|
||||||
during major or minor releases. The community should decide when
|
Everything except formal releases should have the tag <em>-dev</em>
|
||||||
major and minor milestones will be released.
|
in their version number. This helps developers identify reports
|
||||||
|
created from non-release versions, and it can be detected and
|
||||||
|
manipulated by the release script. Specifically, this tag will be
|
||||||
|
removed and re-added during the release process; it should never be
|
||||||
|
manipulated by developers in submitted patches.
|
||||||
|
|
||||||
|
Versions built from developer trees may have additional tags.
|
||||||
|
Trees built from git snapshots have <em>snapshot</em> tags.
|
||||||
|
When built from a "live" git tree, tags specify
|
||||||
|
specific git revisions:
|
||||||
|
|
||||||
|
0.3.0-rc1-dev-00015-gf37c9b8-dirty
|
||||||
|
|
||||||
|
indicates a development tree based on git revison f37c9b8
|
||||||
|
(a truncated version of a SHA1 hash) with some non-git
|
||||||
|
patches applied (the <em>dirty</em> tag). This information
|
||||||
|
can be useful when tracking down bugs.
|
||||||
|
(Note that at this writing, the tags do not directly
|
||||||
|
correspond to <code>git describe</code> output. The
|
||||||
|
hash ID can be used with <code>git show</code>, but
|
||||||
|
the preceding segments can't.)
|
||||||
|
|
||||||
@section releasewho Release Manager
|
@section releasewho Release Manager
|
||||||
|
|
||||||
|
@ -132,14 +184,23 @@ the changes to the package version, though the release tools should
|
||||||
manage the tasks of adding or removing any required development branch
|
manage the tasks of adding or removing any required development branch
|
||||||
tags and incrementing the version.
|
tags and incrementing the version.
|
||||||
|
|
||||||
|
These responsibilities matter most towards the end of the release
|
||||||
|
cycle, when the RM creates the first RC and all contributors enter
|
||||||
|
a quality-improvement mode. The RM works with other contributors
|
||||||
|
to make sure everyone knows what kinds of fixes should merge, the
|
||||||
|
status of major issues, and the release timetable.
|
||||||
|
|
||||||
|
In particular, the RM has the final decision on whether a given
|
||||||
|
bug should block the release.
|
||||||
|
|
||||||
@section releasewhen Release Schedule
|
@section releasewhen Release Schedule
|
||||||
|
|
||||||
The OpenOCD release process must be carried out on a periodic basis, so
|
The OpenOCD release process must be carried out on a periodic basis, so
|
||||||
the project can realize the benefits presented in answer to the question,
|
the project can realize the benefits presented in answer to the question,
|
||||||
@ref releasewhy.
|
@ref releasewhy.
|
||||||
|
|
||||||
Starting with the 0.2.0 release, the OpenOCD project should produce a
|
Starting with the 0.2.0 release, the OpenOCD project expects to produce
|
||||||
new minor release every month or two, with a major release once a year.
|
new releases every few months.
|
||||||
Bug fix releases could be provided more frequently. These release
|
Bug fix releases could be provided more frequently. These release
|
||||||
schedule goals may be adjusted in the future, after the project
|
schedule goals may be adjusted in the future, after the project
|
||||||
maintainers and distributors receive feedback and experience.
|
maintainers and distributors receive feedback and experience.
|
||||||
|
@ -155,16 +216,26 @@ beginning of the development cycle through the delivery of the new
|
||||||
release. This section presents guidelines for scheduling key points
|
release. This section presents guidelines for scheduling key points
|
||||||
where the community must be informed of changing conditions.
|
where the community must be informed of changing conditions.
|
||||||
|
|
||||||
If T is the time of the next release, then the following schedule
|
If Tn is the time of release n, then the following schedule
|
||||||
might describe some of the key milestones of the new release cycle:
|
might describe some key T0-to-T1 release cycle milestones.
|
||||||
|
|
||||||
- T minus one month: start of new development cycle
|
- T0 ... End of T0 release cycle. T1 cycle starts, with merge
|
||||||
- T minus two weeks: announce pending mainline closure to new work
|
window opening. Developers begin to merge queued work.
|
||||||
- T minus one week: close mainline to new work, begin testing phase
|
- <em>... several weeks of merge window ...</em>
|
||||||
- T minus two days: call for final bug fixes
|
- RC1 ... Close mainline to new work. Produce RC1
|
||||||
- T minus one day: produce -rc packages and distribute to testers
|
release, begin testing phase; developers are in "bugfix mode",
|
||||||
- T minus one hour: produce final packages and post on-line
|
all other work is queued; send out planned endgame schedule.
|
||||||
- T minus zero: Announce the release to our mailing list and the world.
|
- RC2 ... Produce RC2 and send schedule update to
|
||||||
|
mailing list, listing priorities for remaining fixes
|
||||||
|
- <em>... more RC milestones, until ready ...</em>
|
||||||
|
- T1: End of T1 release cycle. T2 cycle starts, with merge
|
||||||
|
window opening. Developers begin to merge queued work.
|
||||||
|
|
||||||
|
Note that until it happens, any date for T1 is just a goal.
|
||||||
|
Critical bugs prevent releases from happening. We are just
|
||||||
|
beginning to use this window-plus-RCs process, so the lengths
|
||||||
|
of the merge windows versus the RC phase is subject to change.
|
||||||
|
Most projects have RC phases of a month or more.
|
||||||
|
|
||||||
Some additional supplemental communication will be desirable. The above
|
Some additional supplemental communication will be desirable. The above
|
||||||
list omits the step-by-step instructions to daily release management.
|
list omits the step-by-step instructions to daily release management.
|
||||||
|
@ -176,29 +247,21 @@ The next section explains why the OpenOCD project allows significant
|
||||||
flexibility in the part of the development that precedes the release
|
flexibility in the part of the development that precedes the release
|
||||||
process.
|
process.
|
||||||
|
|
||||||
@note The OpenOCD project does not presently produce -rc packages. As
|
|
||||||
such, the step suggested in the list above should be read as trying to
|
|
||||||
stimulate others to test the project build and packaging on as many
|
|
||||||
platforms as possible. This proposition will be palatable once release
|
|
||||||
management tools have been committed to the tree.
|
|
||||||
|
|
||||||
@subsection releasewhenflex Schedule Flexibility
|
@subsection releasewhenflex Schedule Flexibility
|
||||||
|
|
||||||
The Release Manager should attempt to follow the guidelines in this
|
The Release Manager should attempt to follow the guidelines in this
|
||||||
document, but the process of scheduling each release milestone should be
|
document, but the process of scheduling each release milestone should be
|
||||||
community driven at the start. By the end, missing features that were
|
community driven at the start. Features that don't complete before
|
||||||
scheduled for a release must be dropped by the Release Manager, rather
|
the merge window closes can be held (perhaps in some branch) until
|
||||||
than allowing the release cycle to be delayed while waiting for them.
|
the next merge window opens, rather than delaying the release cycle.
|
||||||
|
|
||||||
Despite any assurances this schedule may appear to give, the Release
|
The Release
|
||||||
Manager cannot schedule the work that will be done on the project,
|
Manager cannot schedule the work that will be done on the project,
|
||||||
when it will be submitted, reviewed, and deemed suitable to be committed.
|
when it will be submitted, reviewed, and deemed suitable to be committed.
|
||||||
In this way, the RM cannot act as a priest in a cathedral; OpenOCD uses
|
That is, the RM cannot act as a priest in a cathedral; OpenOCD uses
|
||||||
the bazaar development model. The release schedule must adapt
|
the bazaar development model. The release schedule must adapt
|
||||||
continuously in response to changes in the rate of churn.
|
continuously in response to changes in the rate of work.
|
||||||
|
Fewer releases may be
|
||||||
In particular, the suggested period of "one or two month" reflects some
|
|
||||||
expectation of a fairly high rate of development. Fewer releases may be
|
|
||||||
required if developers contribute less patches, and more releases may be
|
required if developers contribute less patches, and more releases may be
|
||||||
desirable if the project continues to grow and experience high rates of
|
desirable if the project continues to grow and experience high rates of
|
||||||
community contribution. During each cycle, the RM should be tracking
|
community contribution. During each cycle, the RM should be tracking
|
||||||
|
@ -206,48 +269,48 @@ the situation and gathering feedback from the community.
|
||||||
|
|
||||||
@section releasehow Release Process: Step-by-Step
|
@section releasehow Release Process: Step-by-Step
|
||||||
|
|
||||||
The release process may require a few iterations to work out any bugs.
|
The release process is not final; it may need more iterations
|
||||||
Even with the release script, some steps require clear user intervention
|
to work out bugs.
|
||||||
-- and not only by the Release Manager.
|
While there are release scripts, key steps require community
|
||||||
|
support; the Release Manager isn't the only participant.
|
||||||
|
|
||||||
The following steps should be followed to produce each release:
|
The following steps should be followed to produce each release:
|
||||||
|
|
||||||
-# Produce final manual patches to mainline (or release branch):
|
-# Produce final patches to mainline (or a release branch). Nobody
|
||||||
|
except the RM should be committing anything.
|
||||||
-# Finalize @c NEWS file to describe the changes in the release
|
-# Finalize @c NEWS file to describe the changes in the release
|
||||||
- This file is Used to automatically post "blurbs" about the project.
|
- This file is used to automatically post "blurbs" about the project.
|
||||||
- This material should be produced during the development cycle.
|
- This material should be produced during the development cycle.
|
||||||
- Add a new item for each @c NEWS-worthy contribution, when committed.
|
- Add a new item for each @c NEWS-worthy contribution, when committed.
|
||||||
-# Bump library version if our API changed (not yet required)
|
-# Bump library version if our API changed (not yet required)
|
||||||
-# Produce and tag the final revision in the git repository:
|
-# Update and commit the final package version in @c configure.in:
|
||||||
- Update and commit the final package version in @c configure.in :
|
<code>tools/release/version.sh</code> may help ensure the versions
|
||||||
|
are named consistently:
|
||||||
-# Remove @c -dev tag.
|
-# Remove @c -dev tag.
|
||||||
-# Remove @c -rc tag, if producing the final release from an -rc series.
|
-# Update the @c -rc tag:
|
||||||
- Tags must be named consistently:
|
- If producing the final release from an -rc series, remove it
|
||||||
@verbatim
|
- If producing the first RC in a series, add rc1
|
||||||
@endverbatim
|
- If producing the next RC in a series, bump the rc number
|
||||||
- Tag the final commit with a consistent GIT tag name and message:
|
-# Commit that version change.
|
||||||
|
-# Create a git tag for the final commit, with a tag name matching
|
||||||
|
the version string in <code>configure.in</code>:
|
||||||
@verbatim
|
@verbatim
|
||||||
PACKAGE_VERSION="x.y.z"
|
PACKAGE_VERSION="x.y.z"
|
||||||
PACKAGE_TAG="v${PACKAGE_VERSION}"
|
PACKAGE_TAG="v${PACKAGE_VERSION}"
|
||||||
git tag -m "The openocd-${PACKAGE_VERSION} release." "${PACKAGE_TAG}"
|
git tag -m "The openocd-${PACKAGE_VERSION} release." "${PACKAGE_TAG}"
|
||||||
@endverbatim
|
@endverbatim
|
||||||
-# Prepare to resume normal development on the branch:
|
-# Prepare to resume normal development on mainline:
|
||||||
- Restore @c -dev and -@c -rc0 version tags.
|
- Restore @c -dev version tag.
|
||||||
- To start a new major (or minor) release cycle on the @c master branch:
|
- To start a new major (or minor) release cycle on the @c master branch:
|
||||||
- Bump major (or minor) package version, zeroing sub-components.
|
|
||||||
- Add -rc0 version tag:
|
|
||||||
- This insures casual releases from GIT always increase monotonically.
|
|
||||||
- For example, a major increment after releasing 1.2.3 starts 2.0.0-rc0-dev.
|
|
||||||
- Archive @c NEWS file as "<code>doc/news/NEWS-${PACKAGE_VERSION}</code>".
|
- Archive @c NEWS file as "<code>doc/news/NEWS-${PACKAGE_VERSION}</code>".
|
||||||
- Create a new @c NEWS file for the next release
|
- Create a new @c NEWS file for the next release
|
||||||
- To start a bug-fix release on a non-master branch:
|
- Commit those changes, and push the commit and the release tag
|
||||||
-# Bump bug-fix version.
|
to mainline.
|
||||||
- To start another release candidate on a major or minor branch:
|
|
||||||
-# Bump rc tag.
|
|
||||||
-# Produce the package source archives:
|
-# Produce the package source archives:
|
||||||
-# Start with a clean working copy, used for producing releases only.
|
-# <em>Start with a new clone of the source tree</em>, with the
|
||||||
|
release's tag. This is used only for producing these packages.
|
||||||
-# Checkout the appropriate tag:
|
-# Checkout the appropriate tag:
|
||||||
<code>git checkout $(git tag ) "${PACKAGE_VERSION}"</code>
|
<code>git checkout "${PACKAGE_VERSION}"</code>
|
||||||
-# Produce a ChangeLog for the release (using @c git2cl).
|
-# Produce a ChangeLog for the release (using @c git2cl).
|
||||||
-# @c bootstrap, @c configure, and @c make the package.
|
-# @c bootstrap, @c configure, and @c make the package.
|
||||||
-# Run <code>make distcheck</code> to produce the distribution archives.
|
-# Run <code>make distcheck</code> to produce the distribution archives.
|
||||||
|
@ -258,7 +321,7 @@ git tag -m "The openocd-${PACKAGE_VERSION} release." "${PACKAGE_TAG}"
|
||||||
- Place static copies of the following files on the project website:
|
- Place static copies of the following files on the project website:
|
||||||
- @c NEWS: to provide a blurb for each release
|
- @c NEWS: to provide a blurb for each release
|
||||||
- @c ChangeLog: to show exactly what has been changed
|
- @c ChangeLog: to show exactly what has been changed
|
||||||
- User Guide, Developer Manual: to allow easy on-line viewing
|
- User's Guide, Developer Manual: to allow easy on-line viewing
|
||||||
-# Upload packages and post announcements of their availability:
|
-# Upload packages and post announcements of their availability:
|
||||||
-# Release packages into files section of project sites:
|
-# Release packages into files section of project sites:
|
||||||
- SF.net:
|
- SF.net:
|
||||||
|
@ -279,24 +342,23 @@ git tag -m "The openocd-${PACKAGE_VERSION} release." "${PACKAGE_TAG}"
|
||||||
-# Announce updates on freshmeat.net and other trackers.
|
-# Announce updates on freshmeat.net and other trackers.
|
||||||
-# Submit big updates to news feeds (e.g. Digg, Reddit, etc.).
|
-# Submit big updates to news feeds (e.g. Digg, Reddit, etc.).
|
||||||
|
|
||||||
@section releasescript The Release Script
|
To start a bug-fix release branch:
|
||||||
|
-# Create a new branch, starting from a major or
|
||||||
Many of the processes described in the last section are no longer
|
minor release tag
|
||||||
entrusted to humans. Instead, the @c release.sh script provides
|
-# Restore @c -dev version tag.
|
||||||
automation of the mechanical steps.
|
-# Bump micro version number in configure.in
|
||||||
|
-# Backport bugfix patches from mainline into that branch.
|
||||||
Presently, the @c release.sh script automates steps 2 through 4,
|
(Always be sure mainline has the fix first, so it's hard
|
||||||
allowing the Release Manager from perform these tasks in easy steps.
|
to just lose a bugfix.)
|
||||||
|
-# Commit and push those patches.
|
||||||
The following task still need to be automated:
|
-# When desired, release as above ... except note that the next
|
||||||
|
release of a bugfix branch is never a new major or minor release
|
||||||
- Step 5: produce documentation for website using released source archive.
|
|
||||||
- Step 6(a): package archive upload process.
|
|
||||||
- Step 6(b): package announcement e-mail process.
|
|
||||||
- Step 6(c): post files and announce them using releaseforge.
|
|
||||||
|
|
||||||
@subsection releasescriptcmds Release Script Commands
|
@subsection releasescriptcmds Release Script Commands
|
||||||
|
|
||||||
|
The @c release.sh script automates some of the steps involved
|
||||||
|
in making releases, simplifying the Release Manager's work.
|
||||||
|
|
||||||
The release script can be used for two tasks:
|
The release script can be used for two tasks:
|
||||||
- Creating releases and starting a new release cycle:
|
- Creating releases and starting a new release cycle:
|
||||||
@code
|
@code
|
||||||
|
|
Loading…
Reference in New Issue