Author: buildbot
Date: Fri Jan 11 18:19:52 2019
New Revision: 1038874
Log:
Staging update by buildbot for thrift
Modified:
websites/staging/thrift/trunk/content/ (props changed)
websites/staging/thrift/trunk/content/docs/committers/ReleaseManagement.html
websites/staging/thrift/trunk/content/docs/committers/index.html
websites/staging/thrift/trunk/content/sitemap.html
Propchange: websites/staging/thrift/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Fri Jan 11 18:19:52 2019
@@ -1 +1 @@
-1851081
+1851083
Modified:
websites/staging/thrift/trunk/content/docs/committers/ReleaseManagement.html
==============================================================================
---
websites/staging/thrift/trunk/content/docs/committers/ReleaseManagement.html
(original)
+++
websites/staging/thrift/trunk/content/docs/committers/ReleaseManagement.html
Fri Jan 11 18:19:52 2019
@@ -14,7 +14,7 @@
<script src="/static/js/bootstrap-dropdown.js"></script>
<script src="/static/js/bootstrap-tab.js"></script>
- <title>Apache Thrift - "Release Management"</title>
+ <title>Apache Thrift - Release Management</title>
</head>
<body>
<div class="navbar">
@@ -84,386 +84,7 @@
visibility: hidden;
}
h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink,
h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink,
dt:hover > .elementid-permalink { visibility: visible }</style>
-<h1 id="apache-thrift-release-management">Apache Thrift Release Management<a
class="headerlink" href="#apache-thrift-release-management" title="Permanent
link">¶</a></h1>
-<p>Instructions for preparing and distributing a release of Apache Thrift are
fairly complex. These procedures are documented here, and we're working to
automate as much of this as possible. There are few projects like ours that
integrate with 28 programming languages. Given the extreme number of package
management systems that Apache Thrift integrates with (compared to perhaps
any), part of the burden of releasing Apache Thrift is to manually package and
upload some of these <a
href="http://apache.thrift.org/libraries">language-specific packages</a>.</p>
-<p>It is important to note here that Apache Thrift is designed for version
interoperability, so one can use a version 0.7.0 client with a 0.12.0 server.
A particular version number does not make any guarantees as to the features
available in any given language. See the <a
href="https://github.com/apache/thrift/blob/master/LANGUAGES.md">Language
Feature Matrix</a> to learn more.</p>
-<h2 id="concepts">Concepts<a class="headerlink" href="#concepts"
title="Permanent link">¶</a></h2>
-<h3 id="versioning">Versioning<a class="headerlink" href="#versioning"
title="Permanent link">¶</a></h3>
-<p>Apache Thrift and the vast majority of package management systems out there
conform to the <a href="https://semver.org/spec/v2.0.0.html">SemVer 2.0</a>
version numbering specification.</p>
-<p>In terms of releases, the important version numbers for Apache Thrift are
the major and minor. The patch number is used in the following cases:</p>
-<ol>
-<li>There were language-specific critical defects or packaging issues.</li>
-<li>There was something horribly and fundamentally wrong with a x.x.0
release.</li>
-</ol>
-<h4 id="external-package-patches">External Package Patches<a
class="headerlink" href="#external-package-patches" title="Permanent
link">¶</a></h4>
-<p>It is common to have language-specific critical defects or packaging errors
that need to be resolved between releases of Apache Thrift. The project
handles these on a case-by-case basis for languages that have their own <a
href="http://apache.thrift.org/libraries">package management systems</a>. When
a language-specific patch is made, the patch level of the distribution pushed
to the external package manager is bumped.</p>
-<p>As such, there may be cases between Apache Thrift releases where there are
(for example) a <code>0.12.1</code> and <code>0.12.2</code> version of a
Haskell Hackage package, and perhaps also a <code>0.12.3</code> version of a
dlang dub package. You will not find a tag or an official project release in
these cases, however the code changes will be reflected in the release branch
and in master. In these cases we would not release a version of Apache Thrift
nor would we refresh all the external language packages.</p>
-<h4 id="version-in-the-master-branch">Version in the master branch<a
class="headerlink" href="#version-in-the-master-branch" title="Permanent
link">¶</a></h4>
-<p>The master branch will always contain the next anticipated release version.
When a release cycle begins, a branch is cut from master. The release branch
will already have all of the correct versions, and therefore release branches
can be easily merged back into master. (This was not true of releases before
0.12.0).</p>
-<h3 id="code-repository">Code Repository<a class="headerlink"
href="#code-repository" title="Permanent link">¶</a></h3>
-<p>The authoritative repository for Apache Thrift is stored in <a
href="https://github.com/apache/thrift">GitHub</a>. It is mirrored by <a
href="https://gitbox.apache.org/repos/asf?p=thrift.git">GitBox</a>.</p>
-<h3 id="branches">Branches<a class="headerlink" href="#branches"
title="Permanent link">¶</a></h3>
-<p>All code (submitted via pull request or direct push) is committed to the
<code>master</code> branch. Until version 1.0 of Apache Thrift each release
branch was named <code><version></code>, for example in version
<code>0.12.0</code> there is a branch named the same. For version 1.0 releases
any beyond, releases will have a branch named
<code>release/<version></code>.</p>
-<h3 id="tags">Tags<a class="headerlink" href="#tags" title="Permanent
link">¶</a></h3>
-<p>Up to version <code>0.12.0</code> each release of Apache Thrift was tagged
with a <code><version></code> tag. Starting with the <code>0.12.0</code>
release, each release of Apache Thrift will be tagged with a
<code>v<version></code> tag to satisfy external package management tools
(such as ones for dlang and golang). For example the tag of version
<code>0.12.0</code> is <code>v0.12.0</code>.</p>
-<h2 id="release-procedures">Release Procedures<a class="headerlink"
href="#release-procedures" title="Permanent link">¶</a></h2>
-<h3 id="release-schedule">Release Schedule<a class="headerlink"
href="#release-schedule" title="Permanent link">¶</a></h3>
-<p>Apache Thrift has no official release schedule, however the project aims to
release at least twice per year.</p>
-<p>A complete release cycle will take about 1 week to complete, if things go
well, with half of that time waiting for a vote.</p>
-<h3 id="release-manager">Release Manager<a class="headerlink"
href="#release-manager" title="Permanent link">¶</a></h3>
-<p>Before a release cycle begins, someone must nominate themselves on the
development mailing list as the release manager for that release. In order to
be a release manager you must meet the following criteria:</p>
-<ol>
-<li>You are a <a
href="http://people.apache.org/phonebook.html?pmc=thrift">member</a> of the
Apache PMC group.</li>
-<li>Your profile at https://id.apache.org/ is valid and contains a PGP key.
If it does not, see the <a
href="https://www.apache.org/dev/openpgp.html">Apache OpenPGP Instructions</a>.
If your PGP private key creation seems to hang indefinitely while creating
entropy, try these fixes:<ul>
-<li>Generate disk I/O with: <code>dd if=/dev/sda of=/dev/zero</code></li>
-<li>Install the <code>rng-tools</code> package.</li>
-</ul>
-</li>
-<li>Your PGP key is visible in the <a
href="http://people.apache.org/keys/committer/">Apache Committer Keys</a> for
code signing. This list is updated periodically from your Apache ID (see
previous step).</li>
-<li>You have read and agree with the contents of the <a
href="https://www.apache.org/dev/release-distribution.html">ASF Release
Distribution Policy</a>.</li>
-<li>You have access and the ability to use subversion. All distribution
artifacts are released through a subversion commit.</li>
-<li>You can build in the Linux Docker Container, and you have Visual Studio
2017.</li>
-<li>You have sufficient time to complete a release distribution.</li>
-</ol>
-<h3 id="release-candidate">Release Candidate<a class="headerlink"
href="#release-candidate" title="Permanent link">¶</a></h3>
-<p>All Apache Thrift releases go through a 72-hour final release candidate
voting procedure. Votes from members of the Apache Thrift PMC are binding, and
all others are non-binding. For these examples, the <code>master</code> branch
is at version 1.0.0 and that is the next release.</p>
-<ol>
-<li>
-<p>Scrub the Apache Jira backlog. There are a couple things to do:</p>
-<ol>
-<li>
-<p><a
href="https://issues.apache.org/jira/issues/?filter=-1&jql=project%20%3D%20THRIFT%20and%20status%20!%3D%20Closed%20and%20component%20is%20empty">Open
Issues without a Component</a> - make sure everything has an assigned
component, as the release notes are grouped together by language.</p>
-</li>
-<li>
-<p><a
href="https://issues.apache.org/jira/issues/?filter=-1&jql=project%20%3D%20THRIFT%20and%20status%20in%20(OPEN%2C%20%27IN%20PROGRESS%27%2C%20REOPENED)%20and%20fixVersion%20is%20not%20empty">Open
Issues with a Fix Version</a> - these will be issues that someone placed a
fixVersion on in Jira, but have not been resolved or closed yet. They are
likely stale somehow. Resolutions for these issues include resolving or
closing the issue in Jira, or simply removing the fixVersion if the issue
hasn't been fixed.</p>
-</li>
-<li>
-<p><a
href="https://issues.apache.org/jira/issues/?filter=-1&jql=project%20%3D%20THRIFT%20and%20priority%20in%20(blocker)%20and%20status%20not%20in%20(closed)%20order%20by%20component%20ASC">Open
Blocking Issues</a> - blocking issues should block a release. Scrub the list
to see if they are really blocking the release, and if not change their
priority.</p>
-</li>
-<li>
-<p><a
href="https://issues.apache.org/jira/issues/?filter=-1&jql=project%20%3D%20THRIFT%20and%20priority%20in%20(critical)%20and%20status%20not%20in%20(closed)%20and%20type%20not%20in%20(%22wish%22)%20order%20by%20component%20ASC">Open
Critical Issues</a> - this list will end up in the known critical issues list
in the changes file. Scrub it to make sure everything is actually critical.</p>
-</li>
-</ol>
-<p>It is healthy to scrub these periodically, whether or not you are making a
new release.</p>
-</li>
-<li>
-<p>Check that the version number in the <code>master</code> branch matches the
version number of the upcomning release. To check the <code>master</code>
branch version, run:</p>
-<p><code>bash
-thrift$ grep AC_INIT configure.ac | cut -d'[' -f3 | cut -d']' -f1
-1.0.0</code></p>
-<p>If it does not match (this should be extremely rare), you need to submit a
pull request setting the <code>master</code> branch to the desired version of
the upcoming release. In the following example, we prepare to commit a branch
where the version number is changed from <code>1.0.0</code> to
<code>1.1.0</code>:</p>
-<p>```bash
-thrift$ git checkout -b fix-version-for-release
-thrift$ build/veralign.sh 1.0.0 1.1.0</p>
-<h1
id="check-to-see-if-any-of-the-manually-modified-files-needs-changes">check to
see if any of the manually modified files needs changes<a class="headerlink"
href="#check-to-see-if-any-of-the-manually-modified-files-needs-changes"
title="Permanent link">¶</a></h1>
-<p>thrift$ git push ... # make a pull request
-```</p>
-</li>
-<li>
-<p>Create a release branch for the release, in this example
<code>1.0.0</code>:</p>
-<p><code>bash
-thrift$ git checkout master
-thrift$ git pull
-thrift$ git checkout -b "release/1.0.0"
-thrift$ git push</code></p>
-<p>Now there is a <code>release/1.0.0</code> branch in GitHub for Apache
Thrift.</p>
-<p>By creating a release branch we allow work to continue on the
<code>master</code> branch for the next release while we finalize this one.
Note that <code>release/1.0.0</code> and <code>master</code> in this example
are now identical, and therefore it is possible to merge the release branch
back into <code>master</code> at the end of the release!</p>
-</li>
-<li>
-<p>Modify these files manually, inserting the release into them at the
appropriate location. Follow existing patterns in each file:</p>
-<ul>
-<li><code>doap.rdf</code></li>
-<li><code>debian/changelog</code></li>
-</ul>
-</li>
-<li>
-<p>Generate the content for <code>CHANGES.md</code> - this is one of the most
time-consuming parts of the release cycle. It is a lot of work, but the result
is well worth it to the consumers of Apache Thrift:</p>
-<ol>
-<li>
-<p>Find all <a
href="https://issues.apache.org/jira/issues/?filter=-1&jql=project%20%3D%20thrift%20and%20fixVersion%20%3D%201.0.0%20and%20status%20!%3D%20closed">Issues
Fixed but not Closed in 1.0.0</a> (adjust the version in the link to suit your
needs).</p>
-</li>
-<li>
-<p>Export the list of issues to a CSV (Current Fields) and open in Excel (or a
similar spreadsheet).</p>
-</li>
-<li>
-<p>Hide all columns except for the issue id (i.e. THRIFT-nnnn), the component
(first one), and the summary.</p>
-</li>
-<li>
-<p>Sort by component ascending and then by id ascending.</p>
-</li>
-<li>
-<p>Create a fourth column that will contain the contents of each line that
goes into the release notes. Once you have the formula working in one cell
paste it into the other rows to populate them. Use a formula to get the column
to look like this:</p>
-<p><code>vcol
-Issue Component Summary RelNote
-THRIFT-123 C++ - Library Drop C++03
[THRIFT-123](https://issues.apache.org/jira/browse/THRIFT-3978) - Drop
C++03</code></p>
-<p>For example, if the row above was row "B" in EXCEL it would look something
like:</p>
-<p><code>text
-=CONCAT("[", B1, "]",
- "https://issues.apache.org/jira/browse/",
- B1, " - ", B3)</code></p>
-</li>
-<li>
-<p>Create a level 3 section in <code>CHANGES.md</code> under the release for
each component and copy the items from the RelNote column into the changes
file.</p>
-</li>
-<li>
-<p>Find all <a
href="https://issues.apache.org/jira/issues/?filter=-1&jql=project%20%3D%20THRIFT%20and%20priority%20in%20(critical)%20and%20status%20not%20in%20(closed)%20and%20type%20not%20in%20(%22wish%22)%20order%20by%20component%20ASC">Open
Critical Issues</a> and add them to <code>CHANGES.md</code> in the list of
known critical issues for the release.</p>
-</li>
-</ol>
-</li>
-<li>
-<p>Commit all changes to the release branch.</p>
-</li>
-<li>
-<p>Generate the source tarball.</p>
-<ol>
-<li>
-<p>On a linux system get a clean copy of the release branch, for example:</p>
-<p><code>bash
-~$ git clone -b "release/1.0.0" [email protected]:apache/thrift.git
thrift-1.0.0-src</code></p>
-</li>
-<li>
-<p>In the clean copy of the release branch, start a docker build container and
run <code>make dist</code>:</p>
-<p><code>code
-~$ cd thrift-1.0.0-src
-~/thrift-1.0.0-src$ docker run -v $(pwd):/thrift/src:rw \
- -it thrift/thrift-build:ubuntu-bionic /bin/bash
-root@8b4101188aa2:/thrift/src# ./bootstrap.sh && ./configure
&& make dist</code></p>
-<p>The result will be a file named <code>thrift-1.0.0.tar.gz</code>. Check
the size and make sure it is roughly 4MB. It could get larger over time, but
it shouldn't jump by orders of magnitude. Once satisfied you can exit the
docker container with <code>exit</code>.</p>
-</li>
-<li>
-<p>Generate signatures and checksums for the tarball:</p>
-<p>```bash
-gpg --armor --output thrift-1.0.0.tar.gz.asc --detach-sig thrift-1.0.0.tar.gz
-md5sum thrift-1.0.0.tar.gz > thrift-1.0.0.tar.gz.md5
-sha1sum thrift-1.0.0.tar.gz > thrift-1.0.0.tar.gz.sha1
-sha256sum thrift-1.0.0.tar.gz > thrift-1.0.0.tar.gz.sha256</p>
-</li>
-</ol>
-</li>
-<li>
-<p>Generate the Windows Thrift Compiler. This is a statically linked compiler
that is portable and folks find it useful to be able to download one,
especially if they are using third-party distributed runtime libraries for
interpreted languages on Windows. There are two ways to generate this:</p>
-<ul>
-<li>
-<p>Using a Development VM</p>
-<ol>
-<li>On a Windows machine with Visual Studio, pull down the source code and
checkout the release branch.</li>
-<li>Open an x64 Native Tools Command Prompt for VS 2017 and create an
out-of-tree build directory.</li>
-<li>Install the latest version of cmake.</li>
-<li>Install chocolatey and install winflexbison with chocolatey.</li>
-<li>Run cmake to generate an out-of-tree build environment:
- <code>cmd
- C:\build> cmake ..\thrift
-DBISON_EXECUTABLE=c:\ProgramData\chocolatey\lib\winflexbison\tools\win_bison.exe
-DFLEX_EXECUTABLE=c:\ProgramData\chocolatey\lib\winflexbison\tools\win_flex.exe
-DWITH_MT=ON -DWITH_SHARED_LIB=OFF -DWITH_CPP=OFF -DWITH_JAVA=OFF
-DWITH_HASKELL=OFF -DWITH_PYTHON=OFF -DWITH_C_GLIB=OFF -DBUILD_TESTING=OFF
-DBUILD_EXAMPLES=OFF -DBUILD_TUTORIALS=OFF -DBUILD_COMPILER=ON
- C:\build> cmake --build . --config Release</code></li>
-</ol>
-</li>
-<li>
-<p>Using <a href="../build/docker/msvc2017/README.md">Docker for Windows</a>,
follow the instructions for building the compiler.</p>
-</li>
-<li>In both cases:<ol>
-<li>Verify the executable only depends on kernel32.dll using <a
href="http://www.dependencywalker.com/">depends.exe</a>.</li>
-<li>Copy the executable <code>thrift.exe</code> to your linux system where the
signed tarball lives and rename it to <code>thrift-1.0.0.exe</code> (substitute
the correct version, of course).</li>
-<li>Sign the executable the same way you signed the tarball.</li>
-</ol>
-</li>
-</ul>
-</li>
-<li>
-<p>Upload the release artifacts to the Apache Dist/Dev site. This requires
subversion:</p>
-<p><code>bash
-~$ mkdir -p dist/dev
-~$ cd dist/dev
-~/dist/dev$ svn co "https://dist.apache.org/repos/dist/dev/thrift" thrift
-~/dist/dev$ cd thrift</code></p>
-<p>Copy the tarball, windows compiler executable, and 8 additional signing
files into a new directory for the release:</p>
-<p>``` bash
-~/dist/dev/thrift$ mkdir 1.0.0-rc0</p>
-<h1 id="copy-the-files-into-the-directory">copy the files into the directory<a
class="headerlink" href="#copy-the-files-into-the-directory" title="Permanent
link">¶</a></h1>
-<p>~/dist/dev/thrift$ svn add 1.0.0-rc0
-```</p>
-<p>The layout of the files should match the <a
href="https://www.apache.org/dist/thrift/">current release</a>. Once done, add
the release candidate and check it in:</p>
-<p>```bash
-~/dist/dev/thrift$ svn status</p>
-<h1 id="verify-everything-is-correct">verify everything is correct<a
class="headerlink" href="#verify-everything-is-correct" title="Permanent
link">¶</a></h1>
-<p>~/dist/dev/thrift$ svn add 1.0.0-rc0 -m "apache thrift 1.0.0-rc0 in dist
dev" \
- --username <apache-username> --password <apache-password>
-```</p>
-</li>
-<li>
-<p>Verify the release candidate artifacts are available at:</p>
-<p><a
href="https://dist.apache.org/repos/dist/dev/thrift/">https://dist.apache.org/repos/dist/dev/thrift/</a></p>
-</li>
-<li>
-<p>Send a voting announcement message to <code>[email protected]</code>
following this template as a guide:</p>
-<p>```code
-To: [email protected]
-Subject: [VOTE] Apache Thrift 1.0.0-rc0 release candidate</p>
-<hr />
-<p>All,</p>
-<p>I propose that we accept the following release candidate as the official
Apache Thrift 1.0.0 release:</p>
-<p>https://dist.apache.org/repos/dist/dev/thrift/1.0.0-rc0/thrift-1.0.0-rc0.tar.gz</p>
-<p>The release candidate was created from the release/1.0.0 branch and can be
cloned using:</p>
-<p>git clone -b release/1.0.0 https://github.com/apache/thrift.git</p>
-<p>The release candidates GPG signature can be found at:
-https://dist.apache.org/repos/dist/dev/thrift/1.0.0-rc0/thrift-1.0.0-rc0.tar.gz.asc</p>
-<p>The release candidates checksums are:
-md5:
-sha1:
-sha256: </p>
-<p>A prebuilt statically-linked Windows compiler is available at:
-https://dist.apache.org/repos/dist/dev/thrift/1.0.0-rc0/thrift-1.0.0-rc0.exe</p>
-<p>Prebuilt statically-linked Windows compiler GPG signature:
-https://dist.apache.org/repos/dist/dev/thrift/1.0.0-rc0/thrift-1.0.0-rc0.exe.asc</p>
-<p>Prebuilt statically-linked Windows compiler checksums are:
-md5:
-sha1:
-sha256: </p>
-<p>The CHANGES list for this release is available at:
-https://github.com/apache/thrift/blob/release/1.0.0/CHANGES.md</p>
-<p>Please download, verify sig/sum, install and test the libraries and
languages of your choice.</p>
-<p>This vote will close in 72 hours on 2019-07-06 21:00 UTC</p>
-<p>[ ] +1 Release this as Apache Thrift 1.0.0
-[ ] +0
-[ ] -1 Do not release this as Apache Thrift 1.0.0 because...
-```</p>
-</li>
-<li>
-<p>If any issues are brought up with the release candidate, you will need to
package another and reset the voting clock.</p>
-</li>
-</ol>
-<h3 id="official-release">Official Release<a class="headerlink"
href="#official-release" title="Permanent link">¶</a></h3>
-<ol>
-<li>
-<p>Send a message to <code>[email protected]</code> with the voting
results. Use this template as a guide:</p>
-<p>```code
-To: dev~thrift.apache.org
-Subject: [VOTE][RESULT] Release Apache Thrift 1.0.0</p>
-<hr />
-<p>All,</p>
-<p>Including my own vote of +1 we have N binding +1 and no -1.
-The vote for the Apache Thrift 1.0.0 release is
<strong><em>successful</em></strong>.
-Thank you to all who helped test and verify.
-```</p>
-</li>
-<li>
-<p>Use svn to checkout the release part of thrift (similar to dev) and copy
the files over from dev, matching the previous release structure:</p>
-<p>```bash
-~$ mkdir -p dist/release
-~$ cd dist/release
-~/dist/release$ svn co "https://dist.apache.org/repos/dist/release/thrift"
thrift
-~/dist/release$ cd thrift
-~/dist/release/thrift$ mkdir 1.0.0
-~/dist/release/thrift$ cp -p ../../dev/thrift/1.0.0-rc0/* 1.0.0/
-~/dist/release/thrift$ svn status</p>
-<h1 id="verify-everything-is-correct_1">verify everything is correct<a
class="headerlink" href="#verify-everything-is-correct_1" title="Permanent
link">¶</a></h1>
-<p>~/dist/release/thrift$ svn add 1.0.0 -m "Apache Thrift 1.0.0 official
release" \
- --username <apache-username> --password <apache-password>
-```</p>
-<p><strong>NOTE</strong> One you check in, you need to wait about a day for
all the mirrors to update. You cannot send the announcement email or update
the web site until the mirrors are updated.</p>
-</li>
-<li>
-<p>Create and push a tag for the release, for example "v1.0.0".</p>
-<p><strong>NOTE:</strong> All new releases must have the "v" prefix to satisfy
third party package managers (dlang dub, golang, etc..)</p>
-<p><code>bash
-~/thrift$ # make sure you are on the release branch
-~/thrift$ git checkout release/1.0.0
-~/thrift$ git pull
-~/thrift$ git tag v1.0.0
-~/thrift$ git push --tags</code></p>
-</li>
-<li>
-<p>Create a new release from the <a
href="https://github.com/apache/thrift/tags">GitHub Tags Page</a>. Attach the
statically built Windows thrift compiler as a binary here.</p>
-</li>
-<li>
-<p>Merge the release branch into master. This ensures all changes made to fix
up the release are in master.</p>
-<p><code>bash
-~/thrift$ git checkout master
-~/thrift$ git pull
-~/thrift$ git merge release/1.0.0</code></p>
-<p>The merge of 1.0.0 into master should proceed as a fast-forward since the
1.0.0 release branch. If there are discrepancies the best thing to do is
resolve them and then submit a pull request. This pull request must be
<em>MERGED</em> and not <em>REBASED</em> after the CI build is successful. You
may want to do this yourself and mark the pull request as <code>[DO NOT
MERGE]</code>.</p>
-</li>
-<li>
-<p>Update the ASF CMS content for thrift to include the new release. Note
over time we will retire this in favor of including all documentation in the
GitHub repository. The page with the variables that are important like the
current release or distribution links is in trunk/lib/path.pm in the ASF CMS
for thrift.</p>
-<ol>
-<li>Go to the <a href="https://cms.apache.org/thrift/">ASF CMS for
Thrift</a>.</li>
-<li>Get a working copy.</li>
-<li>On the top right, click on <code>trunk</code>.</li>
-<li>Navigate into <code>lib</code>.</li>
-<li>Open <code>path.pm</code>.</li>
-<li>Edit</li>
-<li>Change <code>current_release</code> and <code>current_release_date</code>
to reflect the correct information.</li>
-<li>Submit</li>
-<li>Commit</li>
-<li>Submit</li>
-<li>Follow Staging Build until it completes.</li>
-<li>Open the Staged site.</li>
-<li>Ensure the download links work.</li>
-<li>Publish Site.</li>
-</ol>
-</li>
-<li>
-<p>Make an announcement on the dev@ and user@ mailing lists of the release.
There's no template to follow, but you can point folks to the official web site
at https://thrift.apache.org, and to the GitHub site at
https://github.org/apache.thrift.</p>
-</li>
-</ol>
-<h3 id="post-release">Post-Release<a class="headerlink" href="#post-release"
title="Permanent link">¶</a></h3>
-<ol>
-<li>
-<p>Visit https://reporter.apache.org/addrelease.html?thrift and register it.
You will get an automated reminder as the one who committed into dist. This
informs the Apache Board of Directors of releases through project reports.</p>
-</li>
-<li>
-<p>Create a local branch to bump the release number to the next anticipated
release:</p>
-<p><code>bash
-~/thrift$ git checkout -b bump-master
-~/thrift$ build/veralign.sh 1.0.0 1.1.0</code></p>
-<p>The veralign script will set the version number in all of the language
packaging files and headers. You do not need to worry about the manually
modified files at this time. You should however ensure everything is correct
by looking at the diff.</p>
-</li>
-<li>
-<p>Create a pull request to advance master to the next anticipated release.</p>
-</li>
-<li>
-<p>In Apache Jira, select all tickets where the fix version is the release and
the status is not closed (<a
href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20THRIFT%20AND%20fixVersion%20%3D%201.0%20%20and%20status%20!%3D%20Closed">example</a>)
and use the bulk editing tool to close them.</p>
-</li>
-<li>
-<p><strong>FIXME</strong> Ask someone with admin access to Apache Jira to
change the fixVersion in question from unreleased to released, for example:
- https://issues.apache.org/jira/browse/THRIFT-4686</p>
-</li>
-<li>
-<p>Ensure that the <a
href="https://issues.apache.org/jira/projects/THRIFT?selectedItem=com.atlassian.jira.jira-projects-plugin%3Arelease-page&status=unreleased">Jira
release page</a> for the version has the same number of issues in the version
as issues done, and that there are no issues in progress and no issues to do,
and no warnings.</p>
-</li>
-<li>
-<p><a href="https://apache.org/security/committers.html">Report any CVEs</a>
that were fixed. You can email <code>[email protected]</code> if you are not
sure if there are any CVEs to report.</p>
-</li>
-</ol>
-<h4 id="third-party-package-managers">Third Party Package Managers<a
class="headerlink" href="#third-party-package-managers" title="Permanent
link">¶</a></h4>
-<p>See https://thrift.apache.org/lib/ for the current status of each external
package manager's distribution. Information below is from the 0.12.0
release:</p>
-<ul>
-<li>[dart] Releasing this requires a google account.</li>
-<li>You will need to install the same version of dart that is used in the
docker image.</li>
-<li>Go into lib/dart and run "pub publish --dry-run" and resolve any
warnings.</li>
-<li>Run "pub publish" and go through the google account authorization to allow
it.</li>
-<li>[dlang] Within a day, the dlang dub site
https://code.dlang.org/packages/apache-thrift?tab=info
- should pick up the release based on the tag. No action needed.</li>
-<li>[haskell] https://hackage.haskell.org/package/thrift
- https://jira.apache.org/jira/browse/THRIFT-4698</li>
-<li>[npmjs] @jfarrell is the only one who can do this right now.
- https://issues.apache.org/jira/browse/THRIFT-4688</li>
-<li>[perl] A submission to CPAN is necessary (normally jeking3 does this):</li>
-<li>Checkout the release branch or tag on a linux system.</li>
-<li>Fire up the docker build container.</li>
-<li>Run "make clean" and remove any gen-perl directories.</li>
-<li>Inside <code>lib/perl</code> run the script
<code>build-cpan-dist.sh</code>.</li>
-<li>Upload the resulting package. If there's a mistake that needs to be
corrected,
- increase the suffix. (_1, _2, ...) and upload another. You cannot replace
a release on CPAN.</li>
-<li>[php] @jfarrell, @bufferoverflow, @jeking3 are the only ones who can do
this right now.</li>
-<li>Once the release is tagged, one just has to hit the "Update" button to
pick it up.</li>
-<li>[pypi] @jfarrell is the only one who can do this right now.
- https://issues.apache.org/jira/browse/THRIFT-4687</li>
-<li>[rust] Any thrift project committer is allowed to upload a new crate.</li>
-</ul>
-<p>If you have any questions email <code>[email protected]</code>.
-<p class='snippet_footer'>
- This snippet was generated by Apache Thrift's <strong>source tree
docs</strong>:
- <a
href="https://gitbox.apache.org/repos/asf?p=thrift.git;a=blob;f=doc/ReleaseManagement.md;hb=HEAD"</a>doc/ReleaseManagement.md</a>
-</p></p>
+<p><a
href="https://github.com/apache/thrift/blob/master/doc/ReleaseManagement.md">See
it on GitHub</a></p>
</div>
<div class="container">
<hr>
Modified: websites/staging/thrift/trunk/content/docs/committers/index.html
==============================================================================
--- websites/staging/thrift/trunk/content/docs/committers/index.html (original)
+++ websites/staging/thrift/trunk/content/docs/committers/index.html Fri Jan 11
18:19:52 2019
@@ -88,7 +88,7 @@ h2:hover > .headerlink, h3:hover > .head
<li><a href="/docs/committers/AdditionalReading">General articles and links
for committers</a></li>
<li><a href="/docs/committers/HowToCommit">How To Commit</a></li>
<li><a href="/docs/committers/HowToThriftWebsite">How to update the
website</a></li>
-<li><a href="/docs/committers/ReleaseManagement">"Release Management"</a></li>
+<li><a href="/docs/committers/ReleaseManagement">Release Management</a></li>
</ul>
</div>
<div class="container">
Modified: websites/staging/thrift/trunk/content/sitemap.html
==============================================================================
--- websites/staging/thrift/trunk/content/sitemap.html (original)
+++ websites/staging/thrift/trunk/content/sitemap.html Fri Jan 11 18:19:52 2019
@@ -98,7 +98,7 @@ h2:hover > .headerlink, h3:hover > .head
<li><a href="/docs/committers/AdditionalReading">General articles and links
for committers</a></li>
<li><a href="/docs/committers/HowToCommit">How To Commit</a></li>
<li><a href="/docs/committers/HowToThriftWebsite">How to update the
website</a></li>
-<li><a href="/docs/committers/ReleaseManagement">"Release Management"</a></li>
+<li><a href="/docs/committers/ReleaseManagement">Release Management</a></li>
</ul>
</li>
<li><a href="/docs/concepts">Concepts</a></li>