You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by me...@apache.org on 2015/07/24 12:12:09 UTC

[1/3] mesos git commit: Updated release guide with PyPi instructions; Reformatted, clarified.

Repository: mesos
Updated Branches:
  refs/heads/master b65d3f75e -> 972ceb9e9


Updated release guide with PyPi instructions; Reformatted, clarified.

Review: https://reviews.apache.org/r/36299


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/140e91d0
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/140e91d0
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/140e91d0

Branch: refs/heads/master
Commit: 140e91d06de3837d6dc77a9acfad9338ca3c0788
Parents: b65d3f7
Author: Adam B <ad...@mesosphere.io>
Authored: Fri Jul 24 03:08:15 2015 -0700
Committer: Adam B <ad...@mesosphere.io>
Committed: Fri Jul 24 03:08:15 2015 -0700

----------------------------------------------------------------------
 docs/release-guide.md | 84 +++++++++++++++++++++++++++++++++++++---------
 1 file changed, 68 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/140e91d0/docs/release-guide.md
----------------------------------------------------------------------
diff --git a/docs/release-guide.md b/docs/release-guide.md
index 28a5c92..a946c7e 100644
--- a/docs/release-guide.md
+++ b/docs/release-guide.md
@@ -13,10 +13,16 @@ This guide describes the process of doing an official release of Mesos.
 1. Ensure that you have a GPG key or generate a new one, e.g., using `gpg --gen-key`.
 
 2. Add your GPG public key to the Apache Mesos dist repository in the KEYS file.
-  - Fetch the svn repository `svn co https://dist.apache.org/repos/dist/release/mesos`
-  - Append your public key using one of methods described in KEYS,
-    e.g., `(gpg --list-sigs <your name> && gpg --armor --export <your name>) >> KEYS`.
-  - Push the commit: `svn ci`
+
+    - Fetch the svn repository:<br>
+      `svn co https://dist.apache.org/repos/dist/release/mesos`
+
+    - Append your public key using one of methods described in KEYS,
+      e.g.,<br>
+      `(gpg --list-sigs <your name> && gpg --armor --export <your name>) >> KEYS`.
+
+    - Push the commit:<br>
+      `svn ci`
 
 3. Submit your GPG public key to a keyserver, e.g., [MIT PGP Public Key Server](https://pgp.mit.edu).
 
@@ -51,17 +57,26 @@ This guide describes the process of doing an official release of Mesos.
 1. Go to [Apache Jira](https://issues.apache.org/jira/browse/MESOS) and make sure that
    the CHANGELOG for the release version is up to date.
 
-    > NOTE: You should move all **Unresolved** tickets marked with `Fix Version` as the
-            release version to the next release version.
+    > NOTE: You should move all **Unresolved** tickets marked with `Fix Version`
+      or `Target Version` as the release version to the next release version.
+
+    > PROTIP: Use a JIRA dashboard [(example)](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12326227)
+      to track the progress of targeted issues as the release date approaches.
 
     > PROTIP: Use `bulk edit` option in JIRA to move the tickets and make sure to
-              **uncheck** the option that emails everyone about the move.
+      **uncheck** the option that emails everyone about the move.
 
-2. Update and commit the `CHANGELOG` for the release.
+2. Update and commit the `CHANGELOG` for the release. For major releases we like to call
+   out any major features, API changes, or deprecations.
 
     > NOTE: You should use JIRA to generate the CHANGELOG for you. Click on the release
-     version in [JIRA](https://issues.apache.org/jira/browse/MESOS#selectedTab=com.atlassian.jira.plugin.system.project%3Aversions-panel) and click
-     on the `Release Notes`. Make sure to configure the release notes in text format.
+      version in [JIRA](https://issues.apache.org/jira/browse/MESOS#selectedTab=com.atlassian.jira.plugin.system.project%3Aversions-panel) and click
+      on the `Release Notes`. Make sure to configure the release notes in text format.
+
+    > NOTE: The JIRA Release Notes will list only tickets with `Fix Version` set
+      to that version. You should check for any Resolved tickets that have
+      `Target Version` set but not `Fix Version`. Also check for any Unresolved
+      or `Duplicate`/`Invalid` tickets that incorrectly set the `Fix Version`.
 
 3. If not already done, update and commit `configure.ac` for the release.
 
@@ -71,14 +86,15 @@ This guide describes the process of doing an official release of Mesos.
 5. Update and commit `docs/upgrades.md` with instructions about how to upgrade
    a live cluster from the previous release version to this release version.
 
-6. If this is a major release please write and commit documentation for this feature.
+6. If this is a major release, please ensure that user documentation has been
+   added for any new features.
 
 
 ## Tagging the release candidate
 
 1. Ensure that you can build and pass all the tests.
 
-        $ make -j3 distcheck
+        $ sudo make -j3 distcheck
 
 2. First tag the required SHA locally.
 
@@ -95,6 +111,9 @@ This guide describes the process of doing an official release of Mesos.
     > NOTE: This script assumes that you have the requisite permissions to deploy the JAR. For
       instructions on how to set it up, please refer to `src/java/MESOS-MAVEN-README`.
 
+    > NOTE: gnu-sed (Linux) requires `-i''` instead of the `-i ''` (space-separated) that default OSX uses.
+      You may need to modify your local copy of tag.sh for it to complete successfully.
+
 4. It is not uncommon to release multiple release candidates, with increasing release candidate
    version, if there are bugs found.
 
@@ -111,6 +130,24 @@ This guide describes the process of doing an official release of Mesos.
 
 3. The release script also spits out an email template that you could use to send the vote email.
 
+    > NOTE: The `date -v+3d` command does not work on some platforms (e.g. Ubuntu),
+      so you may need to fill in the vote end date manually. The vote should last
+      for 3 business days instead of 3 calendar days anyway. Sometimes we prefer a
+      weeklong vote, to allow more time for integration testing.
+
+## Preparing a new release candidate
+
+1. If the vote does not pass (any -1s or showstopper bugs), track the issues as new JIRAs for the release.
+
+2. When all known issues are resolved, update the CHANGELOG with the newly fixed JIRAs.
+
+3. Once all patches are committed to master, cherry-pick them on top of the previous release candidate tag.
+   This is the same process used for point releases (e.g. 0.22.1) as well.
+
+        $ git checkout X.Y.Z-rcR
+        $ git cherry-pick abcdefgh...
+
+4. Now go back up to the "Tagging the release candidate" section and repeat.
 
 ## Releasing the release candidate
 
@@ -129,9 +166,14 @@ This guide describes the process of doing an official release of Mesos.
 
 ## Updating the website
 
-1. After a successful release please update the website pointing to the new release.
+1. After a successful release, please update the website pointing to the new release.
+   See our [website README](http://svn.apache.org/repos/asf/mesos/site/) and
+   the general [Apache project website guide](https://www.apache.org/dev/project-site.html)
+   for details on how to build and publish the website.
 
-2. It is also recommended to write a blog post announcing the feature.
+        $ svn co https://svn.apache.org/repos/asf/mesos/site mesos-site
+
+2. Write a blog post announcing the new release and its features and major bug fixes.
 
 ## Remove old releases from svn
 
@@ -143,11 +185,21 @@ Per the guidelines [when to archive](http://www.apache.org/dev/release.html#when
 
 ## Set the release date
 
-1. Find the released Mesos version on https://issues.apache.org/jira/plugins/servlet/project-config/MESOS/versions, and update the release date.
+1. Find the released Mesos version on https://issues.apache.org/jira/plugins/servlet/project-config/MESOS/versions, and "release" it with the correct release date.
 
 ## Update external tooling
 
-1. Update the Mesos Homebrew package.
+Upload the mesos.interface package to PyPi.
+
+  1. Create/use a PyPi account with access to the [mesos.interface submit form](https://pypi.python.org/pypi?name=mesos.interface&:action=submit_form).
+     You may need to ask a current package owner to add you as an owner/maintainer.
+  1. Setup your [`~/.pypirc`](https://docs.python.org/2/distutils/packageindex.html#pypirc) with your PyPi username and password.
+  1. After a successful Mesos `make` (any architecture), cd to `build/src/python/interface`.
+  1. Run `python setup.py register` to register this package.
+  1. Run `python setup.py bdist_egg upload` to upload the egg for this package.
+
+Update the Mesos Homebrew package.
+
   1. Update the [Homebrew formula for Mesos](https://github.com/Homebrew/homebrew/blob/master/Library/Formula/mesos.rb) and test.
   1. Submit a PR to the [Homebrew repo](https://github.com/Homebrew/homebrew).
   1. Once accepted, verify that `brew install mesos` works.


[2/3] mesos git commit: Fixed typo in tag script comment.

Posted by me...@apache.org.
Fixed typo in tag script comment.


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/064c3a0e
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/064c3a0e
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/064c3a0e

Branch: refs/heads/master
Commit: 064c3a0e7377bd1327b40a6e93bb58b001788a7e
Parents: 140e91d
Author: Adam B <ad...@mesosphere.io>
Authored: Fri Jul 24 03:10:44 2015 -0700
Committer: Adam B <ad...@mesosphere.io>
Committed: Fri Jul 24 03:10:44 2015 -0700

----------------------------------------------------------------------
 support/tag.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/064c3a0e/support/tag.sh
----------------------------------------------------------------------
diff --git a/support/tag.sh b/support/tag.sh
index 73847b9..9d37c81 100755
--- a/support/tag.sh
+++ b/support/tag.sh
@@ -26,7 +26,7 @@ read -p "Hit enter to continue ... "
 WORK_DIR=`mktemp -d /tmp/mesos-tag-XXXX`
 atexit "rm -rf ${WORK_DIR}"
 
-# Get the absolulte path of the local git clone.
+# Get the absolute path of the local git clone.
 MESOS_GIT_LOCAL=$(cd "$(dirname $0)"/..; pwd)
 
 pushd ${WORK_DIR}


[3/3] mesos git commit: Updated docs to use standard US-ASCII.

Posted by me...@apache.org.
Updated docs to use standard US-ASCII.


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/972ceb9e
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/972ceb9e
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/972ceb9e

Branch: refs/heads/master
Commit: 972ceb9e98080ce98e78f735f924098b71e1ed0b
Parents: 064c3a0
Author: Adam B <ad...@mesosphere.io>
Authored: Fri Jul 24 03:11:33 2015 -0700
Committer: Adam B <ad...@mesosphere.io>
Committed: Fri Jul 24 03:11:33 2015 -0700

----------------------------------------------------------------------
 docs/app-framework-development-guide.md | 2 +-
 docs/fetcher-cache-internals.md         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/972ceb9e/docs/app-framework-development-guide.md
----------------------------------------------------------------------
diff --git a/docs/app-framework-development-guide.md b/docs/app-framework-development-guide.md
index 17cfec2..db0181c 100644
--- a/docs/app-framework-development-guide.md
+++ b/docs/app-framework-development-guide.md
@@ -246,6 +246,6 @@ The `name` field is a string that that provides the service discovery system wit
 
 The `environment`, `location`, and `version` fields provide first class support for common attributes used to differentiate between similar services in large deployments. The `environment` may receive values such as `PROD/QA/DEV`, the `location` field may receive values like `EAST-US/WEST-US/EUROPE/AMEA`, and the `version` field may receive values like v2.0/v0.9. The exact use of these fields is up to the service discovery system.
 
-The `ports` field allows the framework to identify the ports a task listens to and explicitly name the functionality they represent and the layer-4 protocol they use (TCP, UDP, or other). For example, a Cassandra task will define ports like `“7000,Cluster,TCP”`, `“7001,SSL,TCP”`, `“9160,Thrift,TCP”`, `“9042,Native,TCP”`, and `“7199,JMX,TCP”`. It is up to the service discovery system to use these names and protocol in appropriate ways, potentially combining them with the `name` field in DiscoveryInfo.
+The `ports` field allows the framework to identify the ports a task listens to and explicitly name the functionality they represent and the layer-4 protocol they use (TCP, UDP, or other). For example, a Cassandra task will define ports like `"7000,Cluster,TCP"`, `"7001,SSL,TCP"`, `"9160,Thrift,TCP"`, `"9042,Native,TCP"`, and `"7199,JMX,TCP"`. It is up to the service discovery system to use these names and protocol in appropriate ways, potentially combining them with the `name` field in DiscoveryInfo.
 
 The `labels` field allows a framework to pass arbitrary labels to the service discovery system in the form of key/value pairs. Note that anything passed through this field is not guaranteed to be supported moving forward. Nevertheless, this field provides extensibility. Common uses of this field will allow us to identify use cases that require first class support.

http://git-wip-us.apache.org/repos/asf/mesos/blob/972ceb9e/docs/fetcher-cache-internals.md
----------------------------------------------------------------------
diff --git a/docs/fetcher-cache-internals.md b/docs/fetcher-cache-internals.md
index c696f15..327cbc3 100644
--- a/docs/fetcher-cache-internals.md
+++ b/docs/fetcher-cache-internals.md
@@ -87,7 +87,7 @@ The implementation is oriented at this control flow but its code structure canno
 - b) Wait for size fetching combined and then space reservation for new cache entries.
 
 2. After making fetcher cache items and running mesos-fetcher.
-- Complete new cache items with success/failure, which as an important side-effect informs concurrent fetch runs’ futures in phase 1/a.
+- Complete new cache items with success/failure, which as an important side-effect informs concurrent fetch runs' futures in phase 1/a.
 
 The futures for phase 1 are not shared outside one fetch run. They exclusively guard asynchronous operations for the same fetch run. Their type parameter does not really matter. But each needs to correspond to one URI and eventual fetch item somehow. Multiple variants have been proposed for this. The complexity remains about the same.