<pre style='margin:0'>
Lawrence Velázquez (larryv) pushed a commit to branch master
in repository macports-base.
</pre>
<p><a href="https://github.com/macports/macports-base/commit/86e2a063410019a0075405792274dc91c6b34ae3">https://github.com/macports/macports-base/commit/86e2a063410019a0075405792274dc91c6b34ae3</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 86e2a063410019a0075405792274dc91c6b34ae3
</span>Author: Lawrence Velázquez <larryv@macports.org>
AuthorDate: Thu Nov 17 21:04:30 2016 -0500
<span style='display:block; white-space:pre;color:#404040;'> ReleaseProcess: Fix lists
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Indent text and sublists by four spaces.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> http://brettterpstra.com/2015/08/24/write-better-markdown/#indentation
</span>---
portmgr/ReleaseProcess.md | 160 +++++++++++++++++++++++-----------------------
1 file changed, 79 insertions(+), 81 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/portmgr/ReleaseProcess.md b/portmgr/ReleaseProcess.md
</span><span style='display:block; white-space:pre;color:#808080;'>index 3e43d4c..5844917 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/portmgr/ReleaseProcess.md
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/portmgr/ReleaseProcess.md
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,25 +7,25 @@ This file documents the evolving MacPorts release process.
</span>
There are several goals in the release process:
<span style='display:block; white-space:pre;background:#ffe0e0;'>- * Make a specific version of MacPorts available to users.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Archive the materials (code, documentation, etc) that compose the release.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Replicatability: enable the release to be regenerated.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Consistency: codify naming, network locations, etc, for released
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- components.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Ensure that the user base and public is notified of the release.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Make a specific version of MacPorts available to users.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Archive the materials (code, documentation, etc) that compose the release.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Replicatability: enable the release to be regenerated.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Consistency: codify naming, network locations, etc, for released
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ components.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Ensure that the user base and public is notified of the release.
</span>
## Steps to a Release ##
The following steps to a release are documented in more detail below:
<span style='display:block; white-space:pre;background:#ffe0e0;'>- * Create a release branch to carry the release.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Prepare the code for release.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Tag the release.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Create release products: tarballs and installers.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Post release products.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Make release version available through selfupdate.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Notify public of the release.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Create a release branch to carry the release.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Prepare the code for release.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Tag the release.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Create release products: tarballs and installers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Post release products.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Make release version available through selfupdate.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Notify public of the release.
</span>
### Create a Release Branch ###
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -33,13 +33,13 @@ The following steps to a release are documented in more detail below:
</span> For each major release (i.e. 1.9.x, 2.0.x, etc.) an appropriate branch is
created with a consistent name. To do this, two things are required:
<span style='display:block; white-space:pre;background:#ffe0e0;'>- * Choose the git revision from which to create the branch, most likely based
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- off master.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Create the branch (e.g. release-2.0) with git. The following commands
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- assume the remote "origin" points to macports/macports-base on GitHub.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Choose the git revision from which to create the branch, most likely based
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ off master.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Create the branch (e.g. release-2.0) with git. The following commands
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ assume the remote "origin" points to macports/macports-base on GitHub.
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- git branch release-2.0 origin/master
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- git push origin release-2.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ git branch release-2.0 origin/master
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ git push origin release-2.0
</span>
The actual release, alpha or beta releases, release candidates, and any point
releases will all live on this branch. Releases of any kind will need to be
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -58,25 +58,25 @@ setting the patch-level version to 99, e.g. 2.0.99 in config/macports_version.
</span> In preparation for a release, several things should be completed within the
code:
<span style='display:block; white-space:pre;background:#ffe0e0;'>- * Update the file ChangeLog in both master and the release branch to reflect
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- the appropriate changes.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Update the file config/macports_version with the target release number. The
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- content of this file is recorded as the MacPorts version at MacPorts build
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- time, as displayed by the port command, and it's also used by the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- selfupdate procedure to determine whether a newer version of code is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- available. It should be different between master and the release branch,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- the former greater to differentiate it from the latter.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Preserve config/mp_version and config/dp_version at the 1.800 or 1.710
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fixed values, respectively, if selfupdate backwards compatibility with old
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- MacPorts installations is still desired. (see
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- https://trac.macports.org/changeset/43571/trunk/base or ce8a77c)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Update the autoconf 'configure' script through the provided base/autogen.sh
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- script once the version number in mp_version has been changed, since the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- former reads the latter.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Make sure that these and any other changes or bug fixes are made on and/or
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- merged between the release branch and master as needed. For instance, if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- you've made changes to ChangeLog only on the release branch, those changes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- should be merged back into master as well.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Update the file ChangeLog in both master and the release branch to reflect
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ the appropriate changes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Update the file config/macports_version with the target release number.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ The content of this file is recorded as the MacPorts version at MacPorts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build time, as displayed by the port command, and it's also used by the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ selfupdate procedure to determine whether a newer version of code is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ available. It should be different between master and the release branch,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ the former greater to differentiate it from the latter.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Preserve config/mp_version and config/dp_version at the 1.800 or 1.710
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fixed values, respectively, if selfupdate backwards compatibility with old
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MacPorts installations is still desired. (see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ https://trac.macports.org/changeset/43571/trunk/base or ce8a77c)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Update the autoconf 'configure' script through the provided
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ base/autogen.sh script once the version number in mp_version has been
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ changed, since the former reads the latter.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Make sure that these and any other changes or bug fixes are made on and/or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ merged between the release branch and master as needed. For instance, if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ you've made changes to ChangeLog only on the release branch, those changes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ should be merged back into master as well.
</span>
### Tag the Release ###
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -88,10 +88,10 @@ release, an additional tag is created that names the same sources.
</span>
Tagging conventions:
<span style='display:block; white-space:pre;background:#ffe0e0;'>- * v2.0.0-beta2 (beta 2 for release 2.0.0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * v2.0.0-rc1 (release candidate 1 for release 2.0.0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * v2.0.0 (tagged release 2.0.0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * v2.0.1 (2.0.1 release)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* v2.0.0-beta2 (beta 2 for release 2.0.0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* v2.0.0-rc1 (release candidate 1 for release 2.0.0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* v2.0.0 (tagged release 2.0.0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* v2.0.1 (2.0.1 release)
</span>
We first create an annotated tag pointing to the release branch to make up the
final release. Annotated tags preserve who made the tag and when. Additionally
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -181,30 +181,30 @@ extensive testing, which is mainly why this step of the release process is not
</span> automated through a Makefile target or similar. A good way of validating the
installer is to first create the destroot of the port and examine it for:
<span style='display:block; white-space:pre;background:#ffe0e0;'>- * Linking: libraries and binaries should not be linked against anything
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- that's not present by default on a vanilla Mac OS X installation
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- + developer tools, excluding even the MacPorts installation prefix; this
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- can be accomplished through the use of otool's -L flag. Currently the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- libraries and binaries in need of linking validation are:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${destroot}/opt/local/bin/daemondo
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${destroot}/opt/local/share/macports/Tcl/darwintrace1.0/darwintrace.dylib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${destroot}/opt/local/share/macports/Tcl/macports1.0/MacPorts.dylib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${destroot}/opt/local/share/macports/Tcl/pextlib1.0/Pextlib.dylib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${destroot}/opt/local/share/macports/Tcl/registry2.0/registry.dylib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Universal building: All the files that need linking confirmation in the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- step above also need to be confirmed to be universal (i386/ppc on 10.5 and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- earlier, i386/x86_64 on 10.6 and later). A way to do this is with the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file(1) command:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Linking: libraries and binaries should not be linked against anything
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ that's not present by default on a vanilla Mac OS X installation +
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ developer tools, excluding even the MacPorts installation prefix; this can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ be accomplished through the use of otool's -L flag. Currently the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libraries and binaries in need of linking validation are:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * ${destroot}/opt/local/bin/daemondo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * ${destroot}/opt/local/share/macports/Tcl/darwintrace1.0/darwintrace.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * ${destroot}/opt/local/share/macports/Tcl/macports1.0/MacPorts.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * ${destroot}/opt/local/share/macports/Tcl/pextlib1.0/Pextlib.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * ${destroot}/opt/local/share/macports/Tcl/registry2.0/registry.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Universal building: All the files that need linking confirmation in the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ step above also need to be confirmed to be universal (i386/ppc on 10.5 and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ earlier, i386/x86_64 on 10.6 and later). A way to do this is with the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file(1) command:
</span> file ${destroot}/opt/local/bin/daemondo:
${destroot}/opt/local/bin/daemondo: Mach-O universal binary with 2 architectures
${destroot}/opt/local/bin/daemondo (for architecture ppc): Mach-O executable ppc
${destroot}/opt/local/bin/daemondo (for architecture i386): Mach-O executable i386
<span style='display:block; white-space:pre;background:#ffe0e0;'>- * tclsh invocation: all scripts installed in ${destroot}/opt/local/bin should
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- invoke the tclsh shell through a call like:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* tclsh invocation: all scripts installed in ${destroot}/opt/local/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ should invoke the tclsh shell through a call like:
</span> #!/opt/local/bin/port-tclsh
<span style='display:block; white-space:pre;background:#ffe0e0;'>- thus ensuring that our bundled Tcl interpreter is used in our scripts.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Miscellaneous: anything else that might seem out of the ordinary for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- a fully default-configured MacPorts installation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ thus ensuring that our bundled Tcl interpreter is used in our scripts.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* Miscellaneous: anything else that might seem out of the ordinary for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ a fully default-configured MacPorts installation.
</span>
Once the above requirements have been positively asserted, the one remaining
test is to make sure that the dmg mounts in the Finder when double-clicked,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -233,26 +233,24 @@ repository.
</span> Once the release has been posted, notification of the release should be
sent/posted to the following places:
<span style='display:block; white-space:pre;background:#ffe0e0;'>- * The macports-announce@, macports-users@ and macports-dev@ mailing lists.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * The MacPorts website, by adapting the $macports_version_major and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $macports_version_latest variables as appropriate in the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- includes/common.inc file in the macports-www repository.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * The website's news section at https://macports.github.io/news/,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- see the macports.github.io repository
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * The &macports-version; entity in xml/installing.xml and xml/using.xml in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- the guide repository.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-External websites:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * [http://sourceforge.net/projects/macports/ sourceforge]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (submitter: portmgr@)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * [https://www.macupdate.com/app/mac/21309/macports MacUpdate]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (submitter: ???)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * [http://twitter.com/macports twitter]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (submitter: raimue@)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * [https://plus.google.com/communities/110287630398071712872 Google+ Community]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (submitter: raimue@)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * (Where else?)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* The macports-announce@, macports-users@ and macports-dev@ mailing lists.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* The MacPorts website, by adapting the $macports_version_major and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $macports_version_latest variables as appropriate in the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ includes/common.inc file in the macports-www repository.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* The website's news section at https://macports.github.io/news/, see the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ macports.github.io repository
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* The &macports-version; entity in xml/installing.xml and xml/using.xml in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ the guide repository.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* External websites
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * [http://sourceforge.net/projects/macports/ sourceforge]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (submitter: portmgr@)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * [https://www.macupdate.com/app/mac/21309/macports MacUpdate]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (submitter: ???)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * [http://twitter.com/macports twitter]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (submitter: raimue@)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * [https://plus.google.com/communities/110287630398071712872 Google+ Community]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (submitter: raimue@)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * (Where else?)
</span>
### Use of new features in Portfiles ###
</pre><pre style='margin:0'>
</pre>