<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/a580b5cd601f8a0b4788d5cefe2270ff4d4e4fbf">https://github.com/macports/macports-base/commit/a580b5cd601f8a0b4788d5cefe2270ff4d4e4fbf</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit a580b5cd601f8a0b4788d5cefe2270ff4d4e4fbf
</span>Author: Lawrence Velázquez <larryv@macports.org>
AuthorDate: Thu Nov 17 21:07:43 2016 -0500
<span style='display:block; white-space:pre;color:#404040;'> ReleaseProcess: Use Markdown verbatim blocks
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> These must be indented by at least four spaces.
</span>---
portmgr/ReleaseProcess.md | 54 +++++++++++++++++++++++++----------------------
1 file changed, 29 insertions(+), 25 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 5844917..2066ab6 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;'>@@ -98,18 +98,18 @@ final release. Annotated tags preserve who made the tag and when. Additionally
</span> the tag should be signed with GPG by using the `-s` flag in order to allow
later verification of the signature.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- git tag -a -s v2.0.0 release-2.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- git push origin v2.0.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ git tag -a -s v2.0.0 release-2.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ git push origin v2.0.0
</span>
Although only base repository is branched and tagged for a given major
release, we also create a separate tag in the ports tree at the time the final
release tag is created for a major release (x.y.0). This intends to provide
a set of ports intended to work with that release.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- git clone macports/macports-ports macports-ports
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- cd macports-ports
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- git tag -a -s v2.0.0-archive origin/master
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- git push origin v2.0.0-archive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ git clone macports/macports-ports macports-ports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cd macports-ports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ git tag -a -s v2.0.0-archive origin/master
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ git push origin v2.0.0-archive
</span>
### Create & Post Release Tarballs ###
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -117,12 +117,12 @@ a set of ports intended to work with that release.
</span> The release tarballs are .tar.bz2 and .tar.gz archives of the base repository.
They are named with the following naming convention:
<span style='display:block; white-space:pre;background:#ffe0e0;'>- MacPorts-2.0.0.tar.{bz2,gz} (base repository, corresponding to tag v2.0.0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MacPorts-2.0.0.tar.{bz2,gz} (base repository, corresponding to tag v2.0.0)
</span>
The following commands issued to the top level Makefile will generate all the
tarballs and checksums:
<span style='display:block; white-space:pre;background:#ffe0e0;'>- make dist DISTVER=2.0.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ make dist DISTVER=2.0.0
</span>
The release should be signed with a detached GPG signature in order to allow
cryptographic verification. To do this automatically, use the additional
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -130,7 +130,7 @@ argument DISTGPGID= on the make command. The value specifies a key ID either
</span> in hexadecimal format or a email address matching exactly one key. For
details, see HOW TO SPECIFY A USER ID in gpg(1) for details.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- make dist DISTVER=2.0.0 DISTGPGID=<handle>@macports.org
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ make dist DISTVER=2.0.0 DISTGPGID=<handle>@macports.org
</span>
These tarballs and the checksums are uploaded to the
https://distfiles.macports.org/MacPorts/ directory. At present, this must be
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -146,9 +146,9 @@ the 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:#ffe0e0;'>- MacPorts-2.0.0-10.5-Leopard.dmg
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- MacPorts-2.0.0-10.6-SnowLeopard.pkg
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- MacPorts-2.0.0-10.7-Lion.pkg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* MacPorts-2.0.0-10.5-Leopard.dmg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* MacPorts-2.0.0-10.6-SnowLeopard.pkg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+* MacPorts-2.0.0-10.7-Lion.pkg
</span>
To create a pkg or dmg, use the MacPorts port. The Portfile will need to be
updated to incorporate the proper release version and checksums, and the
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -157,22 +157,22 @@ the site (wherefrom the sources are fetched by the MacPorts port to build the
</span> pkg for the release). Make sure the ports tree you're using to build the pkgs
is fully up to date.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- sudo port -d pkg MacPorts
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sudo port -d dmg MacPorts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sudo port -d pkg MacPorts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sudo port -d dmg MacPorts
</span>
Name each pkg/dmg appropriately, and then sign the pkgs with a Developer ID
(make sure to use the Installer certificate, not the Application one):
<span style='display:block; white-space:pre;background:#ffe0e0;'>- cd work
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mv MacPorts-2.0.0.pkg unsigned/MacPorts-2.0.0-10.7-Lion.pkg
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cd work
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mv MacPorts-2.0.0.pkg unsigned/MacPorts-2.0.0-10.7-Lion.pkg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 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>
After signing, generate checksums, which will need to be added to the existing
checksums file in the downloads directory:
<span style='display:block; white-space:pre;background:#ffe0e0;'>- for type in -md5 -sha1 -ripemd160 -sha256; do
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- openssl dgst $type MacPorts-2.0.0-*.{pkg,dmg} >> MacPorts-2.0.0.chk.txt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- done
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for type in -md5 -sha1 -ripemd160 -sha256; do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ openssl dgst $type MacPorts-2.0.0-*.{pkg,dmg} >> MacPorts-2.0.0.chk.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ done
</span>
These new products, along with the new checksums, also have to be posted to
the appropriate directory of the MacPorts distfiles server. Developers are
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -195,13 +195,17 @@ installer is to first create the destroot of the port and examine it for:
</span> step above also need to be confirmed to be universal (i386/ppc on 10.5 and
earlier, i386/x86_64 on 10.6 and later). A way to do this is with the
file(1) command:
<span style='display:block; white-space:pre;background:#ffe0e0;'>- file ${destroot}/opt/local/bin/daemondo:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${destroot}/opt/local/bin/daemondo: Mach-O universal binary with 2 architectures
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${destroot}/opt/local/bin/daemondo (for architecture ppc): Mach-O executable ppc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${destroot}/opt/local/bin/daemondo (for architecture i386): Mach-O executable i386
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $ file ${destroot}/opt/local/bin/daemondo:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${destroot}/opt/local/bin/daemondo: Mach-O universal binary with 2 architectures
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${destroot}/opt/local/bin/daemondo (for architecture ppc): Mach-O executable ppc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${destroot}/opt/local/bin/daemondo (for architecture i386): Mach-O executable i386
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> * tclsh invocation: all scripts installed in ${destroot}/opt/local/bin
should invoke the tclsh shell through a call like:
<span style='display:block; white-space:pre;background:#ffe0e0;'>- #!/opt/local/bin/port-tclsh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #!/opt/local/bin/port-tclsh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> thus ensuring that our bundled Tcl interpreter is used in our scripts.
* Miscellaneous: anything else that might seem out of the ordinary for
a fully default-configured MacPorts installation.
</pre><pre style='margin:0'>
</pre>