Skip to content

Conversation

@pwendell
Copy link
Contributor

This update contains some code changes to the release scripts that allow easier nightly publishing. I've been using these new scripts on Jenkins for cutting and publishing nightly snapshots for the last month or so, and it has been going well. I'd like to get them merged back upstream so this can be maintained by the community.

The main changes are:

  1. Separates the release tagging from various build possibilities for an already tagged release (release-tag.sh and release-build.sh).
  2. Allow for injecting credentials through the environment, including GPG keys. This is then paired with secure key injection in Jenkins.
  3. Support for copying build results to a remote directory, and also "rotating" results, e.g. the ability to keep the last N copies of binary or doc builds.

I'm happy if anyone wants to take a look at this - it's not user facing but an internal utility used for generating releases.

@SparkQA
Copy link

SparkQA commented Jul 15, 2015

Test build #37307 has finished for PR 7411 at commit d28c240.

  • This patch fails RAT tests.
  • This patch merges cleanly.
  • This patch adds the following public classes (experimental):
    • case class Exchange(newPartitioning: Partitioning, child: SparkPlan) extends UnaryNode

@JoshRosen
Copy link
Contributor

Aw, looks like this conflicted with some recent Maven changes.

@pwendell
Copy link
Contributor Author

pwendell commented Aug 1, 2015

Yeah I need to update this - but it's off the critical path for the release
so it's on hold.

On Sat, Aug 1, 2015 at 10:59 AM, Josh Rosen notifications@github.com
wrote:

Aw, looks like this conflicted with some recent Maven changes.


Reply to this email directly or view it on GitHub
#7411 (comment).

This update contains some code changes to the release scripts that allow easier nightly publishing. I've been using these new scripts on Jenkins for cutting and publishing nightly snapshots for the last month or so, and it has been going well. I'd like to get them merged back upstream so this can be maintained by the community.

The main changes are:
1. Separates the release tagging from various build possibilities for an already tagged release (`release-tag.sh` and `release-build.sh`).
2. Allow for injecting credentials through the environment, including GPG keys. This is then paired with secure key injection in Jenkins.
3. Support for copying build results to a remote directory, and also "rotating" results, e.g. the ability to keep the last N copies of binary or doc builds.

I'm happy if anyone wants to take a look at this - it's not user facing but an internal utility used for generating releases.
@pwendell pwendell force-pushed the release-script-updates branch from d28c240 to 233ce85 Compare August 10, 2015 21:00
@pwendell
Copy link
Contributor Author

Jenkins, test this please.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you can drop these -DzincPort=$ZINC_PORTs as of #7944 right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah true, thanks for pointing that out.

On Mon, Aug 10, 2015 at 2:05 PM, Ryan Williams notifications@github.com
wrote:

In dev/create-release/release-build.sh
#7411 (comment):

  • -H "Content-Type:application/xml" -v \
  • $NEXUS_ROOT/profiles/$NEXUS_PROFILE/start)
  • staged_repo_id=$(echo $out | sed -e "s/.(orgapachespark-[0-9]{4})./\1/")
  • echo "Created Nexus staging repository: $staged_repo_id"
  • tmp_repo=$(mktemp -d spark-repo-XXXXX)
  • Generate random point for Zinc

  • export ZINC_PORT=$(python -S -c "import random; print random.randrange(3030,4030)")
  • build/mvn -DzincPort=$ZINC_PORT -Dmaven.repo.local=$tmp_repo -DskipTests $PUBLISH_PROFILES \
  • -Phive-thriftserver clean install
  • ./dev/change-scala-version.sh 2.11
  • build/mvn -DzincPort=$ZINC_PORT -Dmaven.repo.local=$tmp_repo -Dscala-2.11 \

you can drop these -DzincPort=$ZINC_PORTs as of #7944
#7944 right?


Reply to this email directly or view it on GitHub
https://github.com/apache/spark/pull/7411/files#r36684398.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually since this is still used to build older versions, I think we'll
need to keep it for now, but we can eventually drop it.

On Mon, Aug 10, 2015 at 2:07 PM, Patrick Wendell patrick@databricks.com
wrote:

Yeah true, thanks for pointing that out.

On Mon, Aug 10, 2015 at 2:05 PM, Ryan Williams notifications@github.com
wrote:

In dev/create-release/release-build.sh
#7411 (comment):

  • -H "Content-Type:application/xml" -v \
  • $NEXUS_ROOT/profiles/$NEXUS_PROFILE/start)
  • staged_repo_id=$(echo $out | sed -e "s/.(orgapachespark-[0-9]{4})./\1/")
  • echo "Created Nexus staging repository: $staged_repo_id"
  • tmp_repo=$(mktemp -d spark-repo-XXXXX)
  • Generate random point for Zinc

  • export ZINC_PORT=$(python -S -c "import random; print random.randrange(3030,4030)")
  • build/mvn -DzincPort=$ZINC_PORT -Dmaven.repo.local=$tmp_repo -DskipTests $PUBLISH_PROFILES \
  • -Phive-thriftserver clean install
  • ./dev/change-scala-version.sh 2.11
  • build/mvn -DzincPort=$ZINC_PORT -Dmaven.repo.local=$tmp_repo -Dscala-2.11 \

you can drop these -DzincPort=$ZINC_PORTs as of #7944
#7944 right?


Reply to this email directly or view it on GitHub
https://github.com/apache/spark/pull/7411/files#r36684398.

@SparkQA
Copy link

SparkQA commented Aug 10, 2015

Test build #40321 has finished for PR 7411 at commit 233ce85.

  • This patch fails Spark unit tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@SparkQA
Copy link

SparkQA commented Aug 10, 2015

Test build #40327 has finished for PR 7411 at commit 74f9beb.

  • This patch fails Spark unit tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@pwendell
Copy link
Contributor Author

Jenkins, retest this please.

@SparkQA
Copy link

SparkQA commented Aug 11, 2015

Test build #40397 has finished for PR 7411 at commit 74f9beb.

  • This patch fails PySpark unit tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@pwendell
Copy link
Contributor Author

Jenkins, retest this please.

@pwendell
Copy link
Contributor Author

Jenkins, test this please.

@pwendell
Copy link
Contributor Author

pwendell commented Aug 11, 2015 via email

@SparkQA
Copy link

SparkQA commented Aug 11, 2015

Test build #40463 has finished for PR 7411 at commit 74f9beb.

  • This patch fails Spark unit tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@JoshRosen
Copy link
Contributor

Jenkins, retest this please.

@SparkQA
Copy link

SparkQA commented Aug 11, 2015

Test build #40500 has finished for PR 7411 at commit 74f9beb.

  • This patch passes all tests.
  • This patch merges cleanly.
  • This patch adds no public classes.

@pwendell
Copy link
Contributor Author

Okay will merge this - I've been keeping things in a separate repo and it's much better to have it in the upstream in case others want to modify it.

asfgit pushed a commit that referenced this pull request Aug 12, 2015
This update contains some code changes to the release scripts that allow easier nightly publishing. I've been using these new scripts on Jenkins for cutting and publishing nightly snapshots for the last month or so, and it has been going well. I'd like to get them merged back upstream so this can be maintained by the community.

The main changes are:
1. Separates the release tagging from various build possibilities for an already tagged release (`release-tag.sh` and `release-build.sh`).
2. Allow for injecting credentials through the environment, including GPG keys. This is then paired with secure key injection in Jenkins.
3. Support for copying build results to a remote directory, and also "rotating" results, e.g. the ability to keep the last N copies of binary or doc builds.

I'm happy if anyone wants to take a look at this - it's not user facing but an internal utility used for generating releases.

Author: Patrick Wendell <patrick@databricks.com>

Closes #7411 from pwendell/release-script-updates and squashes the following commits:

74f9beb [Patrick Wendell] Moving maven build command to a variable
233ce85 [Patrick Wendell] [SPARK-1517] Refactor release scripts to facilitate nightly publishing

(cherry picked from commit 3ef0f32)
Signed-off-by: Patrick Wendell <patrick@databricks.com>
@asfgit asfgit closed this in 3ef0f32 Aug 12, 2015
CodingCat pushed a commit to CodingCat/spark that referenced this pull request Aug 17, 2015
This update contains some code changes to the release scripts that allow easier nightly publishing. I've been using these new scripts on Jenkins for cutting and publishing nightly snapshots for the last month or so, and it has been going well. I'd like to get them merged back upstream so this can be maintained by the community.

The main changes are:
1. Separates the release tagging from various build possibilities for an already tagged release (`release-tag.sh` and `release-build.sh`).
2. Allow for injecting credentials through the environment, including GPG keys. This is then paired with secure key injection in Jenkins.
3. Support for copying build results to a remote directory, and also "rotating" results, e.g. the ability to keep the last N copies of binary or doc builds.

I'm happy if anyone wants to take a look at this - it's not user facing but an internal utility used for generating releases.

Author: Patrick Wendell <patrick@databricks.com>

Closes apache#7411 from pwendell/release-script-updates and squashes the following commits:

74f9beb [Patrick Wendell] Moving maven build command to a variable
233ce85 [Patrick Wendell] [SPARK-1517] Refactor release scripts to facilitate nightly publishing
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants