<pre style='margin:0'>
Rainer Müller (raimue) pushed a commit to branch master
in repository macports-base.

</pre>
<p><a href="https://github.com/macports/macports-base/commit/55ae3c40fdd4100ff1fc00d43b7ad6cc79adfe38">https://github.com/macports/macports-base/commit/55ae3c40fdd4100ff1fc00d43b7ad6cc79adfe38</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 55ae3c40fdd4100ff1fc00d43b7ad6cc79adfe38
</span>Author: Rainer Müller <raimue@macports.org>
AuthorDate: Thu Nov 10 22:10:07 2016 +0100

<span style='display:block; white-space:pre;color:#404040;'>    ReleaseProcess: rewrap, layout fixes
</span>---
 portmgr/ReleaseProcess | 211 ++++++++++++++++++++++++++++---------------------
 1 file changed, 122 insertions(+), 89 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/portmgr/ReleaseProcess b/portmgr/ReleaseProcess
</span><span style='display:block; white-space:pre;color:#808080;'>index 968d155..b9618a0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/portmgr/ReleaseProcess
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/portmgr/ReleaseProcess
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -29,53 +29,61 @@ The following steps to a release are documented in more detail below:
</span> 
 === Create a Release Branch ===
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-For each major release (i.e. 1.9.x, 2.0.x, etc.) an appropriate branch is created with
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-a consistent name. To do this, two things are required:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+For each major release (i.e. 1.9.x, 2.0.x, etc.) an appropriate branch is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+created with a consistent name. To do this, two things are required:
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>- * Choose the git revision from which to create the branch, most likely based off master.
</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>  * Create the branch (e.g. release-2.0) with git. The following commands assume
    the remote "origin" points to macports/macports-base on GitHub.
 
     git branch release-2.0 origin/master
     git push origin release-2.0
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The actual release, alpha or beta releases, release candidates, and any point releases will all
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-live on this branch. Releases of any kind will need to be tagged appropriately and point to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-commits on this branch.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The actual release, alpha or beta releases, release candidates, and any point
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+releases will all live on this branch. Releases of any kind will need to be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+tagged appropriately and point to commits on this branch.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Only this base repository, not the ports tree kept in another repository, will be branched for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-a given release.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Only this base repository, not the ports tree kept in another repository, will
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+be branched for a given release.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Once master is to be used for development of the next major version, increase its version information to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-indicate it's moved past the release version by setting the patch-level version to 99, e.g. 2.0.99 in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-config/macports_version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Once master is to be used for development of the next major version, increase
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+its version information to indicate it's moved past the release version by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+setting the patch-level version to 99, e.g. 2.0.99 in config/macports_version.
</span> 
 
 === Prepare the code for Release ===
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-In preparation for a release, several things should be completed within the code:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Update the file ChangeLog in both trunk and the release branch to reflect 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 content of this file
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   is recorded as the MacPorts version at MacPorts build time, as displayed by the port command, and it's
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   also used by the selfupdate procedure to determine whether a newer version of code is available.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   It should be different between trunk and the release branch, the former greater to differentiate it from
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   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 fixed values, respectively, 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if selfupdate backwards compatibility with old MacPorts installations is still desired.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+In preparation for a release, several things should be completed within the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+code:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Update the file ChangeLog in both trunk and the release branch to reflect the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   appropriate changes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Update the file config/macports_version with the target release number. The
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   content of this file is recorded as the MacPorts version at MacPorts build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   time, as displayed by the port command, and it's also used by the selfupdate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   procedure to determine whether a newer version of code is available. It
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   should be different between trunk and the release branch, the former greater
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   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 fixed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   values, respectively, if selfupdate backwards compatibility with old MacPorts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   installations is still desired.
</span>    (see https://trac.macports.org/changeset/43571/trunk/base or ce8a77c)
<span style='display:block; white-space:pre;background:#ffe0e0;'>- * Update the autoconf 'configure' script through the provided base/autogen.sh script once the version number
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   in mp_version has been changed, since the 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 merged between the release branch
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   and trunk as needed. For instance, if you've made changes to ChangeLog only on the release branch,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   those changes should be merged back into trunk as well.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Update the autoconf 'configure' script through the provided base/autogen.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   script once the version number in mp_version has been changed, since the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   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 trunk 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 trunk as well.
</span> 
 
 === Tag the Release ===
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Once the release is ready, it must be tagged so that the release components may be fetched in the future,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-to ensure replicability. Generally, a release candidate is first tagged and built. When and if it is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-approved as the actual release, an additional tag is created that names the same sources.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Once the release is ready, it must be tagged so that the release components may
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+be fetched in the future, to ensure replicability. Generally, a release
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+candidate is first tagged and built. When and if it is approved as the actual
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+release, an additional tag is created that names the same sources.
</span> 
 Tagging conventions:
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -84,16 +92,18 @@ Tagging conventions:
</span>  * v2.0.0 (tagged release 2.0.0)
  * v2.0.1 (2.0.1 release)
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-We first create an annotated tag pointing to the release branch to make up the final release. Annotated
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-tags preserve who made the tag and when. Additionally the tag should be signed with GPG by using the `-s`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-flag in order to allow later verification of the signature.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+We first create an annotated tag pointing to the release branch to make up the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+final release. Annotated tags preserve who made the tag and when. Additionally
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+the tag should be signed with GPG by using the `-s` flag in order to allow later
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+verification of the signature.
</span> 
  git tag -a -s v2.0.0 release-2.0
  git push origin v2.0.0
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Although only base repository is branched and tagged for a given major release, we also create a separate
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-tag in the ports tree at the time the final release tag is created for a major release (x.y.0). This
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-intends to provide a set of ports intended to work with that release.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Although only base repository is branched and tagged for a given major release,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+we also create a separate tag in the ports tree at the time the final release
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+tag is created for a major release (x.y.0). This intends to provide a set of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ports intended to work with that release.
</span> 
  git clone macports/macports-ports macports-ports
  cd macports-ports
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -103,36 +113,40 @@ intends to provide a set of ports intended to work with that release.
</span> 
 === Create & Post Release Tarballs ===
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The release tarballs are .tar.bz2 and .tar.gz archives of the base repository. They are named with the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-following naming convention:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The release tarballs are .tar.bz2 and .tar.gz archives of the base repository.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+They are named with the following naming convention:
</span> 
  MacPorts-2.0.0.tar.{bz2,gz} (base repository, corresponding to tag v2.0.0)
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The following commands issued to the top level Makefile will generate all the tarballs and checksums:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The following commands issued to the top level Makefile will generate all the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+tarballs and checksums:
</span> 
  make DISTVER=2.0.0 distfromgit
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The release should be signed with a detached GPG signature in order to allow cryptographic verification:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The release should be signed with a detached GPG signature in order to allow
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cryptographic verification:
</span> 
  for ext in bz2 gz; do
    gpg --sign --detach-sig --armor MacPorts-2.0.0.tar.${ext}
  done
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Additionally, a file with checksums is created, that contains md5, sha1, rmd160, and sha256 checksums
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-for each of the files:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Additionally, a file with checksums is created, that contains md5, sha1, rmd160,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+and sha256 checksums for each of the files:
</span> 
  for type in -md5 -rmd160 -sha1 -sha256; do
   openssl dgst ${type} MacPorts-2.0.0.tar.{gz,bz2} >> MacPorts-2.0.0.chk.txt
  done
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-These tarballs and the checksums are uploaded to the https://distfiles.macports.org/MacPorts/ directory.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-At present, this must be done with the help of the infrastructure team.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+These tarballs and the checksums are uploaded to the https://distfiles.macports.org/MacPorts/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+directory. At present, this must be done with the help of the infrastructure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+team.
</span> 
 
 === Create Release Packages and Disk Image(s) ===
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-The dmg is a Mac OS X disk image that contains a standalone installer, configured in the usual way, named
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-in a consistent fashion and incorporating the OS version for which it was built.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The dmg is a Mac OS X disk image that contains a standalone installer,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configured in the usual way, named in a consistent fashion and incorporating the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+OS version for which it was built.
</span> 
 For 10.6 and newer, we now build flat packages, so an enclosing dmg is not necessary.
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -140,64 +154,72 @@ For 10.6 and newer, we now build flat packages, so an enclosing dmg is not neces
</span>  MacPorts-2.0.0-10.6-SnowLeopard.pkg
  MacPorts-2.0.0-10.7-Lion.pkg
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-To create a pkg or dmg, use the MacPorts port. The Portfile will need to be updated to incorporate the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-proper release version and checksums, and the release tarballs will need to be already uploaded to the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-downloads section of the site (wherefrom the sources are fetched by the MacPorts port to build the pkg
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-for the release). Make sure the ports tree you're using to build the pkgs is fully up to date.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+To create a pkg or dmg, use the MacPorts port. The Portfile will need to be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+updated to incorporate the proper release version and checksums, and the release
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+tarballs will need to be already uploaded to the downloads section of the site
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(wherefrom the sources are fetched by the MacPorts port to build the pkg for the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+release). Make sure the ports tree you're using to build the pkgs is fully up to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+date.
</span> 
  sudo port -d pkg MacPorts
  sudo port -d dmg MacPorts
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Name each pkg/dmg appropriately, and then sign the pkgs with a Developer ID (make sure to use the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Installer certificate, not the Application one):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Name each pkg/dmg appropriately, and then sign the pkgs with a Developer ID
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(make sure to use the Installer certificate, not the Application one):
</span> 
  cd work
  mv MacPorts-2.0.0.pkg unsigned/MacPorts-2.0.0-10.7-Lion.pkg
  productsign --sign "Developer ID Installer: John Doe" unsigned/MacPorts-2.0.0-10.7-Lion.pkg MacPorts-2.0.0-10.7-Lion.pkg
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-After signing, generate checksums, which will need to be added to the existing checksums
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-file in the downloads directory:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+After signing, generate checksums, which will need to be added to the existing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums file in the downloads directory:
</span> 
  for type in -md5 -sha1 -ripemd160 -sha256; do
    openssl dgst $type MacPorts-2.0.0-*.{pkg,dmg} >> MacPorts-2.0.0.chk.txt
  done
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-These new products, along with the new checksums, also have to be posted to the appropriate
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-directory of the MacPorts distfiles server. Developers are required to validate the generated installer as
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-thoroughly as possible through extensive testing, which is mainly why this step of the release process
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-is not automated through a Makefile target or similar. A good way of validating the installer is to first
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-create the destroot of the port and examine it for:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * Linking: libraries and binaries should not be linked against anything that's not present by default
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   on a vanilla Mac OS X installation + developer tools, excluding even the MacPorts installation prefix;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   this can be accomplished through the use of otool's -L flag. Currently the libraries and binaries in need
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   of linking validation are:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+These new products, along with the new checksums, also have to be posted to the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+appropriate directory of the MacPorts distfiles server. Developers are required
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+to validate the generated installer as thoroughly as possible through extensive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+testing, which is mainly why this step of the release process is not automated
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+through a Makefile target or similar. A good way of validating the installer is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+to first create the destroot of the port and examine it for:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Linking: libraries and binaries should not be linked against anything that's
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   not present by default on a vanilla Mac OS X installation + developer tools,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   excluding even the MacPorts installation prefix; this can be accomplished
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   through the use of otool's -L flag. Currently the libraries and binaries in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   need of linking validation are:
</span>              ${destroot}/opt/local/bin/daemondo
              ${destroot}/opt/local/share/macports/Tcl/darwintrace1.0/darwintrace.dylib
              ${destroot}/opt/local/share/macports/Tcl/macports1.0/MacPorts.dylib
              ${destroot}/opt/local/share/macports/Tcl/pextlib1.0/Pextlib.dylib
              ${destroot}/opt/local/share/macports/Tcl/registry2.0/registry.dylib
<span style='display:block; white-space:pre;background:#ffe0e0;'>- * Universal building: All the files that need linking confirmation in the step above also need to be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   confirmed to be universal (i386/ppc on 10.5 and earlier, i386/x86_64 on 10.6 and later). A way to do this
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   is with the file(1) command:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Universal building: All the files that need linking confirmation in the step
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   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 file(1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   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 shell invoked by our scripts: all scripts installed in ${destroot}/opt/local/bin (that is port,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   portindex and portmirror) should invoke the tclsh shell through a call like:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * tclsh shell invoked by our scripts: all scripts installed in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ${destroot}/opt/local/bin (that is port, portindex and portmirror) should
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   invoke the tclsh shell through a call like:
</span>              #!/bin/sh
              #\
              exec /usr/bin/tclsh "$0" "$@"
    thus ensuring that the default Mac OS X bundled Tcl is used in our scripts.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- * macports1.0 Tcl package: The macports1.0 Tcl package should be sourced off its location in /opt/local/libexec/macports/lib/macports1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * macports1.0 Tcl package: The macports1.0 Tcl package should be sourced off
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   its location in /opt/local/libexec/macports/lib/macports1.0
</span>    in every single one of our scripts in ${destroot}/opt/local/bin.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- * Miscellaneous: anything else that might seem out of the ordinary for a fully default-configured MacPorts
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   installation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Miscellaneous: anything else that might seem out of the ordinary for a fully
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   default-configured MacPorts installation.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Once the above requirements have been positively asserted, the one remaining test is to make sure that the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-dmg mounts in the Finder when double-clicked, and that the pkg contained therein properly starts up Installer.app
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-when it's double-clicked.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Once the above requirements have been positively asserted, the one remaining
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test is to make sure that the dmg mounts in the Finder when double-clicked, and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+that the pkg contained therein properly starts up Installer.app when it's
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+double-clicked.
</span> 
 
 == Create Release on GitHub ==
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -209,33 +231,44 @@ on GitHub and attach all tarballs and installers to it.
</span> 
 === Make the Release Available through Self-Update ===
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-In order to make the release version available through selfupdate, the config/RELEASE_URL file in the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-base repository needs to be updated with the tag of the release to distribute. This file is read by the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-cron job that makes the code available via rsync. See jobs/mprsyncup in the macports-infra repository.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+In order to make the release version available through selfupdate, the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+config/RELEASE_URL file in the base repository needs to be updated with the tag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+of the release to distribute. This file is read by the cron job that makes the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+code available via rsync. See jobs/mprsyncup in the macports-infra repository.
</span> 
 
 === Notify the Public of the Release ===
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Once the release has been posted, notification of the release should be sent/posted to the following places:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Once the release has been posted, notification of the release should be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sent/posted to the following places:
</span> 
  * The macports-announce@, macports-users@ and macports-dev@ mailing lists.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- * The MacPorts website, by adapting the $macports_version_major and $macports_version_latest variables as
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   appropriate in the includes/common.inc file in the macports-www repository.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * [https://macports.github.io/news/] The website's news section, see macports.github.io repository
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   (submitter: portmgr@)
</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 includes/common.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   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/,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   see the macports.github.io repository 
</span>  * The &macports-version; entity in xml/installing.xml in the guide repository.
 
 External websites:
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>- * [http://sourceforge.net/projects/macports/ sourceforge] (submitted: portmgr@)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * [https://www.macupdate.com/app/mac/21309/macports MacUpdate] (submitter: ???)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * [http://twitter.com/macports twitter] (submitter: raimue@)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * [https://plus.google.com/communities/110287630398071712872 Google+ Community] (submitter: raimue@)
</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>  * (Where else?)
 
 
 === Use of new features in Portfiles ===
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Using new features introduced by a release should be delayed for 14 days. This
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-should allow users to upgrade their installations to the new release. This
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-delay matches the warning about outdated ports tree sources.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Using new features introduced by a release should be delayed for 14 days until
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+being deployed in the ports tree. This should allow users to upgrade their
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+installations to the new release. This delay matches the warning about outdated
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ports tree sources.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# vim:set fenc=utf-8 ft=text tw=80 et:
</span></pre><pre style='margin:0'>

</pre>