You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by ri...@apache.org on 2015/07/31 13:54:15 UTC
svn commit: r1693576 [3/6] - in /incubator/brooklyn/site:
developers/committers/ developers/committers/release-process/
documentation/ download/ learnmore/catalog/ meta/
Added: incubator/brooklyn/site/developers/committers/release-process/make-release-artifacts.html
URL: http://svn.apache.org/viewvc/incubator/brooklyn/site/developers/committers/release-process/make-release-artifacts.html?rev=1693576&view=auto
==============================================================================
--- incubator/brooklyn/site/developers/committers/release-process/make-release-artifacts.html (added)
+++ incubator/brooklyn/site/developers/committers/release-process/make-release-artifacts.html Fri Jul 31 11:54:14 2015
@@ -0,0 +1,801 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+
+
+<head>
+
+
+<title>Make the release artifacts - Apache Brooklyn (incubating)</title>
+
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<link href="https://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+<link href="/style/deps/octicons/octicons.css" rel="stylesheet">
+<link href="/style/deps/bootstrap-theme.css" rel="stylesheet">
+
+<link rel="stylesheet" href="/style/css/code.css" type="text/css" media="screen" />
+
+<link href="/style/css/website.css" rel="stylesheet">
+
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
+<script src="https://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
+<script type="text/javascript" src="/style/deps/jquery.cookie.js"></script>
+
+
+</head>
+
+
+<body>
+
+<nav class="navbar navbar-default navbar-fixed-top" id="header" role="navigation">
+ <div class="container-and-sidebars">
+
+ <div class="container-sidebar-left feather">
+ <a href="http://www.apache.org/">
+ <img src="/style/img/feather.png" alt="[Apache]" width="80" class="flip navbar-feather">
+ </a>
+ </div>
+
+ <div class="container container-between-sidebars top-menu">
+ <div class="container-fluid">
+ <!-- Brand and toggle get grouped for better mobile display -->
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="/"><img src="/style/img/apache-brooklyn-logo-244px-wide.png" alt="brooklyn"></a>
+ </div>
+
+ <!-- Collect the nav links, forms, and other content for toggling -->
+ <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
+ <ul class="nav navbar-nav navbar-right">
+
+
+ <li class="dropdown">
+ <a href="/learnmore/index.html">learn more</a>
+ <ul class="dropdown-menu" role="menu">
+ <li>
+ <a href="/learnmore/index.html">Learn More</a>
+ </li>
+ <li class="divider"></li>
+
+ <li>
+
+ <a href="/learnmore/blueprint-tour.html">Blueprint Tour
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/learnmore/features/index.html">Features
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/learnmore/theory.html">Theory
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/learnmore/catalog/index.html">Browse Catalog
+ </a>
+
+ </li>
+
+ </ul>
+ </li>
+
+
+
+ <li class="">
+ <a href="/download/index.html">download</a>
+ </li>
+
+
+
+ <li class="">
+ <a href="/v/latest/start/running.html">get started</a>
+ </li>
+
+
+
+ <li class="dropdown">
+ <a href="/documentation/index.html">documentation</a>
+ <ul class="dropdown-menu" role="menu">
+ <li>
+ <a href="/documentation/index.html">Documentation</a>
+ </li>
+ <li class="divider"></li>
+
+ <li>
+
+ <a href="/v/latest/index.html">User Guide
+ </a>
+
+ <div class="dropdown_section_header"><hr></div>
+
+ </li>
+
+ <li>
+
+ <a href="/v/latest/yaml/creating-yaml.html">YAML Blueprints
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/v/latest/java/index.html">Java Blueprints
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/v/latest/ops/index.html">Operations
+ </a>
+
+ <div class="dropdown_section_header"><hr></div>
+
+ </li>
+
+ <li>
+
+ <a href="/v/latest/dev/index.html">Developer Guide
+ </a>
+
+ </li>
+
+ <li>
+
+ <div class="dropdown_new_section"><hr></div>
+
+ <a href="/documentation/other-docs.html">Other Resources
+ </a>
+
+ </li>
+
+ </ul>
+ </li>
+
+
+
+ <li class="dropdown">
+ <a href="/community/index.html">community</a>
+ <ul class="dropdown-menu" role="menu">
+ <li>
+ <a href="/community/index.html">Community</a>
+ </li>
+ <li class="divider"></li>
+
+ <li>
+
+ <a href="/community/mailing-lists.html">Mailing Lists
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/community/irc.html">IRC
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="https://issues.apache.org/jira/browse/BROOKLYN">Bug Tracker (JIRA)
+ <span class="octicon octicon-link-external"></span></a>
+
+ </li>
+
+ <li>
+
+ <a href="/community/how-to-contribute-docs.html">How to Contribute Documentation
+ </a>
+
+ </li>
+
+ </ul>
+ </li>
+
+
+
+ <li class="dropdown active">
+ <a href="/developers/index.html">developers</a>
+ <ul class="dropdown-menu" role="menu">
+ <li>
+ <a href="/developers/index.html">Developers</a>
+ </li>
+ <li class="divider"></li>
+
+ <li>
+
+ <a href="/developers/how-to-contribute.html">How to Contribute
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/v/latest/dev/index.html">Developer Guide
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/developers/committers/index.html">Committer Guide
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/developers/code-standards.html">Code Standards
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="http://github.com/apache/incubator-brooklyn">GitHub
+ <span class="octicon octicon-link-external"></span></a>
+
+ </li>
+
+ <li>
+
+ <a href="https://issues.apache.org/jira/browse/BROOKLYN">Bug Tracker (JIRA)
+ <span class="octicon octicon-link-external"></span></a>
+
+ </li>
+
+ </ul>
+ </li>
+
+
+ </ul>
+ </div><!-- /.navbar-collapse -->
+ </div><!-- /.container-fluid -->
+ </div><!-- /.container -->
+
+ <div class="container-sidebar-right">
+ <div class="navbar-sidebar-right-icons">
+ <a href="https://github.com/apache/incubator-brooklyn" class="navbar-icon navbar-icon-shift icon-github"
+ data-toggle="tooltip" data-placement="bottom" title="GitHub: apache/incubator-brooklyn"/>
+ <a href="https://twitter.com/#!/search?q=brooklyncentral" class="navbar-icon navbar-icon-shift icon-twitter"
+ data-toggle="tooltip" data-placement="bottom" title="Twitter: @brooklyncentral"/>
+ <a href="http://webchat.freenode.net/?channels=brooklyncentral" class="navbar-icon icon-irc"
+ data-toggle="tooltip" data-placement="bottom" title="IRC: freenode #brooklyncentral"/>
+ <!-- extra a element seems needed as landing page seems to copy the last element here (!?)
+ -->
+ <a href="/" style="width: 0px; height: 0px;"></a>
+ </div>
+ </div>
+
+ </div>
+</nav>
+
+
+<div class="container" id="main_container">
+ <div class="row">
+ <div class="col-md-9" id="content_container">
+ <div id="page_notes"></div>
+ <h1>Make the release artifacts</h1>
+ <p>A release script is provided in <code>release/make-release-artifacts.sh</code>. This script will prepare all the release artifacts.
+It is written to account for several Apache requirements, so you are advised to use it rather than ârolling your ownâ.</p>
+
+<p>The release script will:</p>
+
+<ul>
+ <li><strong>Create source code and binary distribution artifacts</strong> and place them in a directory on your workstation.</li>
+ <li><strong>Create Maven artifacts and upload them to a staging repository</strong> located on the Apache Nexus server.</li>
+</ul>
+
+<p>The script has a single required parameter <code>-r</code> which is given the release candidate number - so <code>-r1</code> will create
+release candidate 1 and will name the artifacts appropriately.</p>
+
+<p>To run the script:</p>
+
+<div class="highlight"><pre><code class="language-bash" data-lang="bash">./release/make-release-artifacts.sh -r<span class="nv">$RC_NUMBER</span></code></pre></div>
+
+<p>It will show you the release information it has deduced, and ask yes-or-no if it can proceed. Please note that the
+script will thoroughly clean the Git workspace of all uncommited and unadded files.</p>
+
+<p>A few minutes into the script you will be prompted for the passphrase to your GnuPG private key. You should only be
+asked this question once; the GnuPG agent will cache the password for the remainder of the build.</p>
+
+<p>Please note that uploading to the Nexus staging repository is a slow process. Expect this stage of the build to take
+2 hours.</p>
+
+<p>The release script will:</p>
+
+<ol>
+ <li>Prepare a staging directory for the source code release</li>
+ <li>Create .tar.gz and .zip artifacts of the source code</li>
+ <li>Invoke Maven to build the source code (including running unit tests), and deploy artifacts to a Maven remote
+repository</li>
+ <li>Save the .tar.gz and .zip artifacts produced by the build of <code>brooklyn-dist</code></li>
+ <li>For each of the produced files, produce MD5, SHA1, SHA256 and GnuPG signatures</li>
+</ol>
+
+<p>At the end of the script, it will show you the files it has produced and their location.</p>
+
+<p>Make a signed tag for this release, and then push the tag:</p>
+
+<div class="highlight"><pre><code class="language-bash" data-lang="bash">git tag -s -m <span class="s2">"Tag release ${VERSION_NAME} release candidate ${RC_NUMBER}"</span> apache-brooklyn-<span class="k">${</span><span class="nv">VERSION_NAME</span><span class="k">}</span>-rc<span class="k">${</span><span class="nv">RC_NUMBER</span><span class="k">}</span>
+git push origin apache-brooklyn-<span class="k">${</span><span class="nv">VERSION_NAME</span><span class="k">}</span>-rc<span class="k">${</span><span class="nv">RC_NUMBER</span><span class="k">}</span></code></pre></div>
+
+
+ </div>
+
+ <div class="col-md-3">
+ <div class="list-group side-menu" id="side-menu">
+
+
+
+
+
+
+ <h4 class=" with_following">
+ <a href="/developers/index.html" class="list-group-item breadcrumb breadcrumb0">
+ Developers
+ </a></h4>
+
+ <h4 class=" with_preceding with_following">
+ <a href="/developers/committers/index.html" class="list-group-item breadcrumb breadcrumb1">
+ Committer Guide
+ </a></h4>
+
+ <h4 class=" with_preceding">
+ <a href="/developers/committers/release-process/index.html" class="list-group-item breadcrumb breadcrumb2">
+ Release Process
+ </a></h4>
+
+
+
+
+
+ <a href="/developers/committers/release-process/prerequisites.html" class="list-group-item">Release Prerequisites
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/environment-variables.html" class="list-group-item">Environment variables for the release
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/release-version.html" class="list-group-item">Release branch and set version
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/make-release-artifacts.html" class="list-group-item active">Make the release artifacts
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/verify-release-artifacts.html" class="list-group-item">Verify the release artifacts
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/publish-temp.html" class="list-group-item">Publish to the staging area
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/vote.html" class="list-group-item">Vote on dev@brooklyn
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/fix-release.html" class="list-group-item">Fix on the release branch
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/vote-ipmc.html" class="list-group-item">Vote on general@incubator
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/publish.html" class="list-group-item">Publish to the public
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/announce.html" class="list-group-item">Announce the release
+ </a>
+
+
+
+
+
+
+
+</div>
+<div id="width_reference"></div>
+
+
+<script language="JavaScript" type="application/javascript">
+
+
+sidemenu_x_sizer=function(){ $('#side-menu').width($('#side-menu').parent().find('#width_reference').outerWidth()); };
+$(sidemenu_x_sizer);
+$(window).resize(sidemenu_x_sizer);
+
+
+sidemenu_y_nonfloater=function(){
+ if ($('#side-menu').outerHeight(true) + $('#header').outerHeight(true) + $('#footer').outerHeight(true) > window.innerHeight ||
+ $('#side-menu').width() >= $('#content_container').width()/2) {
+ $('#side-menu').css('position', 'inherit');
+ } else {
+ // restore if screen has grown
+ $('#side-menu').css('position', 'fixed');
+ }
+};
+$(sidemenu_y_nonfloater);
+$(window).resize(sidemenu_y_nonfloater);
+
+
+
+var sideMenu = $("#side-menu"),
+ sideItems = sideMenu.find("a"),
+ // Anchors corresponding to menu items
+ scrollItems = sideItems.map(function(){
+ var item = $(this).attr("section-target");
+ if (item && item.length) { return item; }
+ });
+
+var highlight_section_last_top = -1;
+var highlight_section_completed = false;
+
+var highlight_section = function() {
+ // Get container scroll position
+ var highlight_section_new_top = $(this).scrollTop();
+ if (highlight_section_new_top == highlight_section_last_top) return;
+ var highlight_section_new_bottom = highlight_section_new_top + $(window).height();
+ var scroll_advancing = (highlight_section_new_top > highlight_section_last_top);
+
+ var last_item = null, active_item = $("#side-menu a.section#active");
+
+ var found_top = false;
+ var displayable_items = scrollItems.map(function(itemI){
+ item = $(scrollItems[itemI]);
+ if (item && item.length) {
+ if (highlight_section_last_top == -1 || !highlight_section_completed) {
+ // just opening page - take item matching hash, or otherwise the first item visible
+ if (item.selector === window.location.hash || (item.offset().top > highlight_section_new_top - 20 && !found_top)) {
+ found_top = true;
+ if (item.selector === window.location.hash && item.offset().top < highlight_section_new_top + 60) {
+ // because of our top header, we need to scroll 64px down from any link
+ $('html, body').animate({scrollTop: item.offset().top - 64}, 0);
+ }
+ return item;
+ }
+ } else if (scroll_advancing) {
+ // if scrolling advance, pick up a section when title starts before 1/3 height
+ if (item.offset().top < highlight_section_new_top + $(window).height()/3)
+ return item;
+
+ // or if containing div is finished (usu the whole main content)
+ div_containing_item = item.closest("div");
+ if (div_containing_item.offset().top + div_containing_item.height() < highlight_section_new_bottom + 15)
+ return item;
+ // or when next title is visible
+ if (last_item && item.offset().top < highlight_section_new_bottom + 15)
+ return last_item;
+ } else {
+ // if scrolling back, pick up a section as soon as the title is visible,
+ if (item.offset().top < highlight_section_new_top)
+ return item;
+ // or if title is before the 2/3 point
+ // (not sure about this, probably want also to have
+ // "AND the id.top is <= displayable_itemsrent_active_it.top" so we don't jump FORWARD a section
+ // when scrolling BACK, with lots of tiny sections)
+ if ((item.offset().top < highlight_section_new_top + 2*$(window).height()/3)
+ && (!active_item || !active_item.offset() || active_item.offset().top >= item.offset().top))
+ return item;
+
+ }
+ last_item = item;
+ }
+ });
+ if (!highlight_section_completed && document.readyState === "complete") {
+ highlight_section_completed = true;
+ }
+ if (!displayable_items.length) {
+ $("#side-menu a.section").removeClass("active");
+ } else {
+ displayable_items = displayable_items[displayable_items.length-1];
+ var id = displayable_items && displayable_items.length ? displayable_items[0].id : "";
+ // Set/remove active class
+ new_active = $("#side-menu a.section").filter("[section-target='#"+id+"']");
+ if (new_active.hasClass("active")) {
+ // nothing needed
+ } else {
+ $("#side-menu a.section").removeClass("active");
+ $("#side-menu a.section").filter("[section-target='#"+id+"']").addClass("active");
+ }
+ }
+
+ highlight_section_last_top = highlight_section_new_top;
+};
+var highlight_new_section = function() {
+ highlight_section_completed = false;
+ highlight_section_last_top = -1;
+ highlight_section();
+}
+
+$(window).scroll(highlight_section);
+$(highlight_new_section);
+
+// detect link change - courtesy http://www.bennadel.com/blog/1520-binding-events-to-non-dom-objects-with-jquery.htm
+ (
+ function( $ ){
+ // Default to the current location.
+ var strLocation = window.location.href;
+ var strHash = window.location.hash;
+ var strPrevLocation = "";
+ var strPrevHash = "";
+
+ // This is how often we will be checkint for
+ // changes on the location.
+ var intIntervalTime = 100;
+
+ // This method removes the pound from the hash.
+ var fnCleanHash = function( strHash ){
+ return(
+ strHash.substring( 1, strHash.length )
+ );
+ }
+
+ // This will be the method that we use to check
+ // changes in the window location.
+ var fnCheckLocation = function(){
+ // Check to see if the location has changed.
+ if (strLocation != window.location.href){
+
+ // Store the new and previous locations.
+ strPrevLocation = strLocation;
+ strPrevHash = strHash;
+ strLocation = window.location.href;
+ strHash = window.location.hash;
+
+ // The location has changed. Trigger a
+ // change event on the location object,
+ // passing in the current and previous
+ // location values.
+ $( window.location ).trigger(
+ "change",
+ {
+ currentHref: strLocation,
+ currentHash: fnCleanHash( strHash ),
+ previousHref: strPrevLocation,
+ previousHash: fnCleanHash( strPrevHash )
+ }
+ );
+
+ }
+ }
+
+ // Set an interval to check the location changes.
+ setInterval( fnCheckLocation, intIntervalTime );
+ }
+ )( jQuery );
+// and trigger highlight section on link change
+$(window.location).bind("change", highlight_new_section);
+
+</script>
+
+ </div>
+ </div>
+</div>
+
+<div id="footer">
+ <div class="container">
+ <div class="row">
+ <div class="col-md-10 text-muted">
+ Apache Brooklyn is distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+ License v2.0</a>.
+ <br />
+ Apache Brooklyn is currently undergoing Incubation at The Apache Software
+ Foundation.
+ </div>
+ <div class="col-md-2">
+ <a class="btn btn-sm btn-default" href="https://github.com/apache/incubator-brooklyn/edit/master/docs/website/developers/committers/release-process/make-release-artifacts.md">Edit This Page</a>
+ <a href="https://brooklyn.incubator.apache.org/community/how-to-contribute-docs.html"
+ data-toggle="tooltip" data-placement="top" title="How to Edit Documentation" data-delay="400"/>
+ <span class="octicon octicon-question octicon-footer"></span>
+ </a>
+ </div>
+ </div>
+ </div>
+</div>
+
+
+
+
+
+<script src="//cdnjs.cloudflare.com/ajax/libs/zeroclipboard/1.3.1/ZeroClipboard.min.js"></script>
+
+<script language="JavaScript" type="application/javascript">
+ fix_padding_function = function () {
+ $('body').css('padding-top', parseInt($('#header').css("height"))+10);
+ $('body').css('padding-bottom', parseInt($('#footer').css("height"))+10);
+ };
+ $(window).resize(fix_padding_function);
+ $(window).load(fix_padding_function);
+
+ $(function () {
+ $('[data-toggle="tooltip"]').tooltip({ delay: { show: 600, hide: 100 }})
+ });
+
+/* generate anchors for headers, a la github and http://blog.parkermoore.de/2014/08/01/header-anchor-links-in-vanilla-javascript-for-github-pages-and-jekyll/ */
+var anchorForId = function (id, text) {
+ var anchor = document.createElement("a");
+ anchor.className = "header-link";
+ anchor.href = "#" + id;
+ anchor.innerHTML = "<i class=\"fa fa-link\"></i>";
+ return anchor;
+};
+
+var linkifyAnchors = function (level, containingElement) {
+ var headers = contentBlock.find("h" + level);
+ for (var h = 0; h < headers.length; h++) {
+ var header = headers[h];
+ if (typeof header.id !== "undefined" && header.id !== "") {
+ header.appendChild(anchorForId(header.id, $(header).text()));
+ }
+ }
+};
+
+$(function () {
+ contentBlock = $("#content_container");
+ if (!contentBlock) return;
+ for (var level = 1; level <= 6; level++) {
+ linkifyAnchors(level, contentBlock);
+ }
+});
+
+<!-- Clipboard support -->
+ ZeroClipboard.config({ moviePath: '//cdnjs.cloudflare.com/ajax/libs/zeroclipboard/1.3.1/ZeroClipboard.swf' });
+
+$(function() {
+ $('div.highlight').prepend(
+ $('<div class="clipboard_container" title="Copy to Clipboard">'+
+ '<div class="fa clipboard_button">'+
+ '<div class="on-active"><div>Copied to Clipboard</div></div>'+
+ '</div></div>'));
+ $('div.clipboard_container').each(function(index) {
+ var clipboard = new ZeroClipboard();
+ clipboard.clip( $(this).find(":first")[0], $(this)[0] );
+ var target = $(this).next();
+ var txt = target.text().trim();
+ if (target.find('code.bash')) {
+ // Strip out bash prompts from the start of each line (i.e. '$' or '%' characters
+ // at the very start, or immediately following any newline). Correctly handles continuation
+ // lines, where a leading '$' or '%' is *not* a prompt character.
+ txt = txt.replace(/(^|[^\\]\n)[$%] /g, "$1");
+ }
+ clipboard.on( 'dataRequested', function (client, args) {
+ client.setText( txt );
+ });
+ });
+});
+
+<!-- search -->
+ $(function() {
+ $('#simple_google')
+ .submit(function() {
+ $('input[name="q"]').val("site:" + document.location.hostname + " " + $('input[name="brooklyn-search"]').val());
+ return true;
+ });
+ $('input[name="brooklyn-search"]').focus(function() {
+ if ($(this).val() === $(this).attr('placeholder')) {
+ $(this).val('');
+ }
+ })
+ .blur(function() {
+ if ($(this).val() === '') {
+ $(this).val($(this).attr('placeholder'));
+ }
+ })
+ .blur();
+ });
+
+
+ <!-- analytics -->
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-30530918-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+
+
+<!-- page warning (for archive pages) -->
+
+
+ function get_user_versions() {
+ return $.cookie("brooklyn_versions") ? $.cookie("brooklyn_versions").split(",") : [];
+ };
+ function set_user_version(version) {
+ var version_cookie = get_user_versions();
+ version_cookie.push(version);
+ $.cookie('brooklyn_versions', version_cookie, { expires: 365, path: '/' });
+ $('#page_notes').fadeOut();
+ event.preventDefault ? event.preventDefault() : event.returnValue = false;
+ };
+ function set_user_versions_all() {
+ var version_cookie = get_user_versions();
+ version_cookie.push("ALL");
+ $.cookie('brooklyn_versions', version_cookie, { expires: 365, path: '/' });
+ $('#page_notes').fadeOut();
+ event.preventDefault ? event.preventDefault() : event.returnValue = false;
+ };
+ function clear_user_versions() {
+ $.removeCookie('brooklyn_versions', { path: '/' });
+ $('#page_notes').fadeIn('slow');
+ event.preventDefault ? event.preventDefault() : event.returnValue = false;
+ };
+
+</script>
+
+</body>
+
+</html>
Added: incubator/brooklyn/site/developers/committers/release-process/prerequisites.html
URL: http://svn.apache.org/viewvc/incubator/brooklyn/site/developers/committers/release-process/prerequisites.html?rev=1693576&view=auto
==============================================================================
--- incubator/brooklyn/site/developers/committers/release-process/prerequisites.html (added)
+++ incubator/brooklyn/site/developers/committers/release-process/prerequisites.html Fri Jul 31 11:54:14 2015
@@ -0,0 +1,858 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+
+
+<head>
+
+
+<title>Release Prerequisites - Apache Brooklyn (incubating)</title>
+
+<meta http-equiv="content-type" content="text/html; charset=utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<link href="https://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
+<link href="/style/deps/octicons/octicons.css" rel="stylesheet">
+<link href="/style/deps/bootstrap-theme.css" rel="stylesheet">
+
+<link rel="stylesheet" href="/style/css/code.css" type="text/css" media="screen" />
+
+<link href="/style/css/website.css" rel="stylesheet">
+
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
+<script src="https://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
+<script type="text/javascript" src="/style/deps/jquery.cookie.js"></script>
+
+
+</head>
+
+
+<body>
+
+<nav class="navbar navbar-default navbar-fixed-top" id="header" role="navigation">
+ <div class="container-and-sidebars">
+
+ <div class="container-sidebar-left feather">
+ <a href="http://www.apache.org/">
+ <img src="/style/img/feather.png" alt="[Apache]" width="80" class="flip navbar-feather">
+ </a>
+ </div>
+
+ <div class="container container-between-sidebars top-menu">
+ <div class="container-fluid">
+ <!-- Brand and toggle get grouped for better mobile display -->
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="/"><img src="/style/img/apache-brooklyn-logo-244px-wide.png" alt="brooklyn"></a>
+ </div>
+
+ <!-- Collect the nav links, forms, and other content for toggling -->
+ <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
+ <ul class="nav navbar-nav navbar-right">
+
+
+ <li class="dropdown">
+ <a href="/learnmore/index.html">learn more</a>
+ <ul class="dropdown-menu" role="menu">
+ <li>
+ <a href="/learnmore/index.html">Learn More</a>
+ </li>
+ <li class="divider"></li>
+
+ <li>
+
+ <a href="/learnmore/blueprint-tour.html">Blueprint Tour
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/learnmore/features/index.html">Features
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/learnmore/theory.html">Theory
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/learnmore/catalog/index.html">Browse Catalog
+ </a>
+
+ </li>
+
+ </ul>
+ </li>
+
+
+
+ <li class="">
+ <a href="/download/index.html">download</a>
+ </li>
+
+
+
+ <li class="">
+ <a href="/v/latest/start/running.html">get started</a>
+ </li>
+
+
+
+ <li class="dropdown">
+ <a href="/documentation/index.html">documentation</a>
+ <ul class="dropdown-menu" role="menu">
+ <li>
+ <a href="/documentation/index.html">Documentation</a>
+ </li>
+ <li class="divider"></li>
+
+ <li>
+
+ <a href="/v/latest/index.html">User Guide
+ </a>
+
+ <div class="dropdown_section_header"><hr></div>
+
+ </li>
+
+ <li>
+
+ <a href="/v/latest/yaml/creating-yaml.html">YAML Blueprints
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/v/latest/java/index.html">Java Blueprints
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/v/latest/ops/index.html">Operations
+ </a>
+
+ <div class="dropdown_section_header"><hr></div>
+
+ </li>
+
+ <li>
+
+ <a href="/v/latest/dev/index.html">Developer Guide
+ </a>
+
+ </li>
+
+ <li>
+
+ <div class="dropdown_new_section"><hr></div>
+
+ <a href="/documentation/other-docs.html">Other Resources
+ </a>
+
+ </li>
+
+ </ul>
+ </li>
+
+
+
+ <li class="dropdown">
+ <a href="/community/index.html">community</a>
+ <ul class="dropdown-menu" role="menu">
+ <li>
+ <a href="/community/index.html">Community</a>
+ </li>
+ <li class="divider"></li>
+
+ <li>
+
+ <a href="/community/mailing-lists.html">Mailing Lists
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/community/irc.html">IRC
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="https://issues.apache.org/jira/browse/BROOKLYN">Bug Tracker (JIRA)
+ <span class="octicon octicon-link-external"></span></a>
+
+ </li>
+
+ <li>
+
+ <a href="/community/how-to-contribute-docs.html">How to Contribute Documentation
+ </a>
+
+ </li>
+
+ </ul>
+ </li>
+
+
+
+ <li class="dropdown active">
+ <a href="/developers/index.html">developers</a>
+ <ul class="dropdown-menu" role="menu">
+ <li>
+ <a href="/developers/index.html">Developers</a>
+ </li>
+ <li class="divider"></li>
+
+ <li>
+
+ <a href="/developers/how-to-contribute.html">How to Contribute
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/v/latest/dev/index.html">Developer Guide
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/developers/committers/index.html">Committer Guide
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="/developers/code-standards.html">Code Standards
+ </a>
+
+ </li>
+
+ <li>
+
+ <a href="http://github.com/apache/incubator-brooklyn">GitHub
+ <span class="octicon octicon-link-external"></span></a>
+
+ </li>
+
+ <li>
+
+ <a href="https://issues.apache.org/jira/browse/BROOKLYN">Bug Tracker (JIRA)
+ <span class="octicon octicon-link-external"></span></a>
+
+ </li>
+
+ </ul>
+ </li>
+
+
+ </ul>
+ </div><!-- /.navbar-collapse -->
+ </div><!-- /.container-fluid -->
+ </div><!-- /.container -->
+
+ <div class="container-sidebar-right">
+ <div class="navbar-sidebar-right-icons">
+ <a href="https://github.com/apache/incubator-brooklyn" class="navbar-icon navbar-icon-shift icon-github"
+ data-toggle="tooltip" data-placement="bottom" title="GitHub: apache/incubator-brooklyn"/>
+ <a href="https://twitter.com/#!/search?q=brooklyncentral" class="navbar-icon navbar-icon-shift icon-twitter"
+ data-toggle="tooltip" data-placement="bottom" title="Twitter: @brooklyncentral"/>
+ <a href="http://webchat.freenode.net/?channels=brooklyncentral" class="navbar-icon icon-irc"
+ data-toggle="tooltip" data-placement="bottom" title="IRC: freenode #brooklyncentral"/>
+ <!-- extra a element seems needed as landing page seems to copy the last element here (!?)
+ -->
+ <a href="/" style="width: 0px; height: 0px;"></a>
+ </div>
+ </div>
+
+ </div>
+</nav>
+
+
+<div class="container" id="main_container">
+ <div class="row">
+ <div class="col-md-9" id="content_container">
+ <div id="page_notes"></div>
+ <h1>Release Prerequisites</h1>
+ <h2 id="subversion-repositories-for-release-artifacts">Subversion repositories for release artifacts</h2>
+
+<p>Apache releases are posted to dist.apache.org, which is a Subversion repository.</p>
+
+<p>We have two directories here:</p>
+
+<ul>
+ <li>https://dist.apache.org/repos/dist/release/incubator/brooklyn - this is where IPMC approved releases go. Do not upload
+here until we have a vote passed on dev@brooklyn and incubator-general. Check out this folder and name it
+<code>apache-dist-release-brooklyn</code></li>
+ <li>https://dist.apache.org/repos/dist/dev/incubator/brooklyn - this is where releases to be voted on go. Make the release
+artifact, and post it here, then post the [VOTE] thread with links here. Check out this folder and name it
+<code>apache-dist-dev-brooklyn</code>.</li>
+</ul>
+
+<p>Example:</p>
+
+<div class="highlight"><pre><code class="language-bash" data-lang="bash">svn co https://dist.apache.org/repos/dist/release/incubator/brooklyn apache-dist-release-brooklyn
+svn co https://dist.apache.org/repos/dist/dev/incubator/brooklyn apache-dist-dev-brooklyn</code></pre></div>
+
+<p>When working with these folders, <strong>make sure you are working with the correct one</strong>, otherwise you may be publishing
+pre-release software to the global release mirror network!</p>
+
+<h2 id="gpg-keys">GPG keys</h2>
+
+<p>The release manager must have a GPG key to be used to sign the release.</p>
+
+<p>If you have an existing GPG key, but it does not include your Apache email address, you can add your email address as
+described <a href="https://superuser.com/a/293283">in this Superuser.com posting</a>. Otherwise, create a new GPG key giving your
+Apache email address.</p>
+
+<p>Upload your GPG public key (complete with your Apache email address on it) to a public keyserver - e.g. run
+<code>gpg2 --export --armor richard@apache.org</code> and paste it into the âsubmitâ box on http://pgp.mit.edu/</p>
+
+<p>Look up your key fingerprint with <code>gpg2 --fingerprint richard@apache.org</code> - itâs the long sequence of hex numbers
+separated by spaces. Log in to <a href="https://id.apache.org/">https://id.apache.org/</a> then copy-and-paste the fingerprint into
+âOpenPGP Public Key Primary Fingerprintâ. Submit.</p>
+
+<p>Now add your key to the <code>apache-dist-release-brooklyn/KEYS</code> file:</p>
+
+<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">cd </span>apache-dist-release-brooklyn
+<span class="o">(</span>gpg2 --list-sigs richard@apache.org <span class="o">&&</span> gpg2 --armor --export richard@apache.org<span class="o">)</span> >> KEYS
+svn commit -m <span class="s1">'Update incubator/brooklyn/KEYS'</span></code></pre></div>
+
+<p>References: <a href="https://mail-archives.apache.org/mod_mbox/incubator-general/201410.mbox/%3CCAOGo0VawupMYRWJKm%2Bi%2ByMBqDQQtbv-nQkfRud5%2BV9PusZ2wnQ%40mail.gmail.com%3E">Post on the general@incubator list</a></p>
+
+<h2 id="software-packages">Software packages</h2>
+
+<p>The following software packages are required during the build. Make sure you have them installed.</p>
+
+<ul>
+ <li>A Java Development Kit, version 1.7</li>
+ <li><code>maven</code> and <code>git</code></li>
+ <li><code>xmlstarlet</code> is required by the release script to process version numbers in <code>pom.xml</code> files</li>
+ <li><code>zip</code> and <code>unzip</code></li>
+ <li><code>pinentry</code> for secure entry of GPG passphrases. If you are building remotely on a Linux machine, <code>pinentry-curses</code> is
+recommended; building on a mac, <code>port install pinentry-mac</code> is recommended.</li>
+ <li><code>gnupg2</code>, and <code>gnupg-agent</code> if it is packaged separately (it is on Ubuntu Linux)</li>
+ <li><code>md5sum</code> and <code>sha1sum</code> - these are often present by default on Linux, but not on Mac. MacPorts provides these in the
+package <code>md5sha1sum</code>.</li>
+</ul>
+
+<h2 id="maven-configuration">Maven configuration</h2>
+
+<p>The release will involve uploading artifacts to Apacheâs Nexus instance - therefore you will need to configure your
+Maven install with the necessary credentials.</p>
+
+<p>You will need to add something like this to your <code>~/.m2/settings.xml</code> file:</p>
+
+<div class="highlight"><pre><code class="language-xml" data-lang="xml"><span class="cp"><?xml version="1.0"?></span>
+<span class="nt"><settings</span> <span class="na">xsi:schemaLocation=</span><span class="s">"http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd"</span>
+ <span class="na">xmlns=</span><span class="s">"http://maven.apache.org/SETTINGS/1.1.0"</span>
+ <span class="na">xmlns:xsi=</span><span class="s">"http://www.w3.org/2001/XMLSchema-instance"</span><span class="nt">></span>
+
+ <span class="c"><!-- ... --></span>
+
+ <span class="nt"><servers></span>
+
+ <span class="c"><!-- ... --></span>
+
+ <span class="c"><!-- Required for uploads to Apache's Nexus instance. These are LDAP credentials - the same credentials you</span>
+<span class="c"> - would use to log in to Git and Jenkins (but not JIRA) --></span>
+ <span class="nt"><server></span>
+ <span class="nt"><id></span>apache.snapshots.https<span class="nt"></id></span>
+ <span class="nt"><username></span>xxx<span class="nt"></username></span>
+ <span class="nt"><password></span>xxx<span class="nt"></password></span>
+ <span class="nt"></server></span>
+ <span class="nt"><server></span>
+ <span class="nt"><id></span>apache.releases.https<span class="nt"></id></span>
+ <span class="nt"><username></span>xxx<span class="nt"></username></span>
+ <span class="nt"><password></span>xxx<span class="nt"></password></span>
+ <span class="nt"></server></span>
+
+ <span class="c"><!-- ... --></span>
+
+ <span class="nt"></servers></span>
+
+ <span class="c"><!-- ... --></span>
+
+<span class="nt"></settings></span></code></pre></div>
+
+
+ </div>
+
+ <div class="col-md-3">
+ <div class="list-group side-menu" id="side-menu">
+
+
+
+
+
+
+ <h4 class=" with_following">
+ <a href="/developers/index.html" class="list-group-item breadcrumb breadcrumb0">
+ Developers
+ </a></h4>
+
+ <h4 class=" with_preceding with_following">
+ <a href="/developers/committers/index.html" class="list-group-item breadcrumb breadcrumb1">
+ Committer Guide
+ </a></h4>
+
+ <h4 class=" with_preceding">
+ <a href="/developers/committers/release-process/index.html" class="list-group-item breadcrumb breadcrumb2">
+ Release Process
+ </a></h4>
+
+
+
+
+
+ <a href="/developers/committers/release-process/prerequisites.html" class="list-group-item active">Release Prerequisites
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/environment-variables.html" class="list-group-item">Environment variables for the release
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/release-version.html" class="list-group-item">Release branch and set version
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/make-release-artifacts.html" class="list-group-item">Make the release artifacts
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/verify-release-artifacts.html" class="list-group-item">Verify the release artifacts
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/publish-temp.html" class="list-group-item">Publish to the staging area
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/vote.html" class="list-group-item">Vote on dev@brooklyn
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/fix-release.html" class="list-group-item">Fix on the release branch
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/vote-ipmc.html" class="list-group-item">Vote on general@incubator
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/publish.html" class="list-group-item">Publish to the public
+ </a>
+
+
+
+
+
+ <a href="/developers/committers/release-process/announce.html" class="list-group-item">Announce the release
+ </a>
+
+
+
+
+
+
+
+</div>
+<div id="width_reference"></div>
+
+
+<script language="JavaScript" type="application/javascript">
+
+
+sidemenu_x_sizer=function(){ $('#side-menu').width($('#side-menu').parent().find('#width_reference').outerWidth()); };
+$(sidemenu_x_sizer);
+$(window).resize(sidemenu_x_sizer);
+
+
+sidemenu_y_nonfloater=function(){
+ if ($('#side-menu').outerHeight(true) + $('#header').outerHeight(true) + $('#footer').outerHeight(true) > window.innerHeight ||
+ $('#side-menu').width() >= $('#content_container').width()/2) {
+ $('#side-menu').css('position', 'inherit');
+ } else {
+ // restore if screen has grown
+ $('#side-menu').css('position', 'fixed');
+ }
+};
+$(sidemenu_y_nonfloater);
+$(window).resize(sidemenu_y_nonfloater);
+
+
+
+var sideMenu = $("#side-menu"),
+ sideItems = sideMenu.find("a"),
+ // Anchors corresponding to menu items
+ scrollItems = sideItems.map(function(){
+ var item = $(this).attr("section-target");
+ if (item && item.length) { return item; }
+ });
+
+var highlight_section_last_top = -1;
+var highlight_section_completed = false;
+
+var highlight_section = function() {
+ // Get container scroll position
+ var highlight_section_new_top = $(this).scrollTop();
+ if (highlight_section_new_top == highlight_section_last_top) return;
+ var highlight_section_new_bottom = highlight_section_new_top + $(window).height();
+ var scroll_advancing = (highlight_section_new_top > highlight_section_last_top);
+
+ var last_item = null, active_item = $("#side-menu a.section#active");
+
+ var found_top = false;
+ var displayable_items = scrollItems.map(function(itemI){
+ item = $(scrollItems[itemI]);
+ if (item && item.length) {
+ if (highlight_section_last_top == -1 || !highlight_section_completed) {
+ // just opening page - take item matching hash, or otherwise the first item visible
+ if (item.selector === window.location.hash || (item.offset().top > highlight_section_new_top - 20 && !found_top)) {
+ found_top = true;
+ if (item.selector === window.location.hash && item.offset().top < highlight_section_new_top + 60) {
+ // because of our top header, we need to scroll 64px down from any link
+ $('html, body').animate({scrollTop: item.offset().top - 64}, 0);
+ }
+ return item;
+ }
+ } else if (scroll_advancing) {
+ // if scrolling advance, pick up a section when title starts before 1/3 height
+ if (item.offset().top < highlight_section_new_top + $(window).height()/3)
+ return item;
+
+ // or if containing div is finished (usu the whole main content)
+ div_containing_item = item.closest("div");
+ if (div_containing_item.offset().top + div_containing_item.height() < highlight_section_new_bottom + 15)
+ return item;
+ // or when next title is visible
+ if (last_item && item.offset().top < highlight_section_new_bottom + 15)
+ return last_item;
+ } else {
+ // if scrolling back, pick up a section as soon as the title is visible,
+ if (item.offset().top < highlight_section_new_top)
+ return item;
+ // or if title is before the 2/3 point
+ // (not sure about this, probably want also to have
+ // "AND the id.top is <= displayable_itemsrent_active_it.top" so we don't jump FORWARD a section
+ // when scrolling BACK, with lots of tiny sections)
+ if ((item.offset().top < highlight_section_new_top + 2*$(window).height()/3)
+ && (!active_item || !active_item.offset() || active_item.offset().top >= item.offset().top))
+ return item;
+
+ }
+ last_item = item;
+ }
+ });
+ if (!highlight_section_completed && document.readyState === "complete") {
+ highlight_section_completed = true;
+ }
+ if (!displayable_items.length) {
+ $("#side-menu a.section").removeClass("active");
+ } else {
+ displayable_items = displayable_items[displayable_items.length-1];
+ var id = displayable_items && displayable_items.length ? displayable_items[0].id : "";
+ // Set/remove active class
+ new_active = $("#side-menu a.section").filter("[section-target='#"+id+"']");
+ if (new_active.hasClass("active")) {
+ // nothing needed
+ } else {
+ $("#side-menu a.section").removeClass("active");
+ $("#side-menu a.section").filter("[section-target='#"+id+"']").addClass("active");
+ }
+ }
+
+ highlight_section_last_top = highlight_section_new_top;
+};
+var highlight_new_section = function() {
+ highlight_section_completed = false;
+ highlight_section_last_top = -1;
+ highlight_section();
+}
+
+$(window).scroll(highlight_section);
+$(highlight_new_section);
+
+// detect link change - courtesy http://www.bennadel.com/blog/1520-binding-events-to-non-dom-objects-with-jquery.htm
+ (
+ function( $ ){
+ // Default to the current location.
+ var strLocation = window.location.href;
+ var strHash = window.location.hash;
+ var strPrevLocation = "";
+ var strPrevHash = "";
+
+ // This is how often we will be checkint for
+ // changes on the location.
+ var intIntervalTime = 100;
+
+ // This method removes the pound from the hash.
+ var fnCleanHash = function( strHash ){
+ return(
+ strHash.substring( 1, strHash.length )
+ );
+ }
+
+ // This will be the method that we use to check
+ // changes in the window location.
+ var fnCheckLocation = function(){
+ // Check to see if the location has changed.
+ if (strLocation != window.location.href){
+
+ // Store the new and previous locations.
+ strPrevLocation = strLocation;
+ strPrevHash = strHash;
+ strLocation = window.location.href;
+ strHash = window.location.hash;
+
+ // The location has changed. Trigger a
+ // change event on the location object,
+ // passing in the current and previous
+ // location values.
+ $( window.location ).trigger(
+ "change",
+ {
+ currentHref: strLocation,
+ currentHash: fnCleanHash( strHash ),
+ previousHref: strPrevLocation,
+ previousHash: fnCleanHash( strPrevHash )
+ }
+ );
+
+ }
+ }
+
+ // Set an interval to check the location changes.
+ setInterval( fnCheckLocation, intIntervalTime );
+ }
+ )( jQuery );
+// and trigger highlight section on link change
+$(window.location).bind("change", highlight_new_section);
+
+</script>
+
+ </div>
+ </div>
+</div>
+
+<div id="footer">
+ <div class="container">
+ <div class="row">
+ <div class="col-md-10 text-muted">
+ Apache Brooklyn is distributed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+ License v2.0</a>.
+ <br />
+ Apache Brooklyn is currently undergoing Incubation at The Apache Software
+ Foundation.
+ </div>
+ <div class="col-md-2">
+ <a class="btn btn-sm btn-default" href="https://github.com/apache/incubator-brooklyn/edit/master/docs/website/developers/committers/release-process/prerequisites.md">Edit This Page</a>
+ <a href="https://brooklyn.incubator.apache.org/community/how-to-contribute-docs.html"
+ data-toggle="tooltip" data-placement="top" title="How to Edit Documentation" data-delay="400"/>
+ <span class="octicon octicon-question octicon-footer"></span>
+ </a>
+ </div>
+ </div>
+ </div>
+</div>
+
+
+
+
+
+<script src="//cdnjs.cloudflare.com/ajax/libs/zeroclipboard/1.3.1/ZeroClipboard.min.js"></script>
+
+<script language="JavaScript" type="application/javascript">
+ fix_padding_function = function () {
+ $('body').css('padding-top', parseInt($('#header').css("height"))+10);
+ $('body').css('padding-bottom', parseInt($('#footer').css("height"))+10);
+ };
+ $(window).resize(fix_padding_function);
+ $(window).load(fix_padding_function);
+
+ $(function () {
+ $('[data-toggle="tooltip"]').tooltip({ delay: { show: 600, hide: 100 }})
+ });
+
+/* generate anchors for headers, a la github and http://blog.parkermoore.de/2014/08/01/header-anchor-links-in-vanilla-javascript-for-github-pages-and-jekyll/ */
+var anchorForId = function (id, text) {
+ var anchor = document.createElement("a");
+ anchor.className = "header-link";
+ anchor.href = "#" + id;
+ anchor.innerHTML = "<i class=\"fa fa-link\"></i>";
+ return anchor;
+};
+
+var linkifyAnchors = function (level, containingElement) {
+ var headers = contentBlock.find("h" + level);
+ for (var h = 0; h < headers.length; h++) {
+ var header = headers[h];
+ if (typeof header.id !== "undefined" && header.id !== "") {
+ header.appendChild(anchorForId(header.id, $(header).text()));
+ }
+ }
+};
+
+$(function () {
+ contentBlock = $("#content_container");
+ if (!contentBlock) return;
+ for (var level = 1; level <= 6; level++) {
+ linkifyAnchors(level, contentBlock);
+ }
+});
+
+<!-- Clipboard support -->
+ ZeroClipboard.config({ moviePath: '//cdnjs.cloudflare.com/ajax/libs/zeroclipboard/1.3.1/ZeroClipboard.swf' });
+
+$(function() {
+ $('div.highlight').prepend(
+ $('<div class="clipboard_container" title="Copy to Clipboard">'+
+ '<div class="fa clipboard_button">'+
+ '<div class="on-active"><div>Copied to Clipboard</div></div>'+
+ '</div></div>'));
+ $('div.clipboard_container').each(function(index) {
+ var clipboard = new ZeroClipboard();
+ clipboard.clip( $(this).find(":first")[0], $(this)[0] );
+ var target = $(this).next();
+ var txt = target.text().trim();
+ if (target.find('code.bash')) {
+ // Strip out bash prompts from the start of each line (i.e. '$' or '%' characters
+ // at the very start, or immediately following any newline). Correctly handles continuation
+ // lines, where a leading '$' or '%' is *not* a prompt character.
+ txt = txt.replace(/(^|[^\\]\n)[$%] /g, "$1");
+ }
+ clipboard.on( 'dataRequested', function (client, args) {
+ client.setText( txt );
+ });
+ });
+});
+
+<!-- search -->
+ $(function() {
+ $('#simple_google')
+ .submit(function() {
+ $('input[name="q"]').val("site:" + document.location.hostname + " " + $('input[name="brooklyn-search"]').val());
+ return true;
+ });
+ $('input[name="brooklyn-search"]').focus(function() {
+ if ($(this).val() === $(this).attr('placeholder')) {
+ $(this).val('');
+ }
+ })
+ .blur(function() {
+ if ($(this).val() === '') {
+ $(this).val($(this).attr('placeholder'));
+ }
+ })
+ .blur();
+ });
+
+
+ <!-- analytics -->
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-30530918-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+
+
+<!-- page warning (for archive pages) -->
+
+
+ function get_user_versions() {
+ return $.cookie("brooklyn_versions") ? $.cookie("brooklyn_versions").split(",") : [];
+ };
+ function set_user_version(version) {
+ var version_cookie = get_user_versions();
+ version_cookie.push(version);
+ $.cookie('brooklyn_versions', version_cookie, { expires: 365, path: '/' });
+ $('#page_notes').fadeOut();
+ event.preventDefault ? event.preventDefault() : event.returnValue = false;
+ };
+ function set_user_versions_all() {
+ var version_cookie = get_user_versions();
+ version_cookie.push("ALL");
+ $.cookie('brooklyn_versions', version_cookie, { expires: 365, path: '/' });
+ $('#page_notes').fadeOut();
+ event.preventDefault ? event.preventDefault() : event.returnValue = false;
+ };
+ function clear_user_versions() {
+ $.removeCookie('brooklyn_versions', { path: '/' });
+ $('#page_notes').fadeIn('slow');
+ event.preventDefault ? event.preventDefault() : event.returnValue = false;
+ };
+
+</script>
+
+</body>
+
+</html>