Added: incubator/brooklyn/site/developers/committers/release-process/publish-temp.html URL: http://svn.apache.org/viewvc/incubator/brooklyn/site/developers/committers/release-process/publish-temp.html?rev=1693576&view=auto ============================================================================== --- incubator/brooklyn/site/developers/committers/release-process/publish-temp.html (added) +++ incubator/brooklyn/site/developers/committers/release-process/publish-temp.html Fri Jul 31 11:54:14 2015 @@ -0,0 +1,782 @@ +<!-- +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>Publish to the staging area - 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>Publish to the staging area</h1> + <h2 id="publish-the-source-and-binary-distributions-to-the-pre-release-area">Publish the source and binary distributions to the pre-release area</h2> + +<p>You will need to have checked out the Apache distribution Subversion repository located at +https://dist.apache.org/repos/dist/dev/incubator/brooklyn. Please refer to <a href="prerequisites.html">Prerequisites</a> for +information.</p> + +<p>In your workspace for the <code>dist.apache.org</code> repo, create a directory with the artifact name and version:</p> + +<div class="highlight"><pre><code class="language-bash" data-lang="bash">mkdir 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> + +<p>Copy into this directory all of the artifacts from the previous step - <code>-src</code> and <code>-bin</code>, <code>.tar.gz</code> and <code>.zip</code>, and all +associated <code>.md5</code>, <code>.sha1</code>, <code>.sha256</code> and <code>.asc</code> signatures. Then commit:</p> + +<div class="highlight"><pre><code class="language-bash" data-lang="bash">svn add 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> +svn commit --message <span class="s2">"Add apache-brooklyn-${VERSION_NAME}-rc${RC_NUMBER} to dist/dev/incubator/brooklyn"</span></code></pre></div> + +<h2 id="close-the-staging-repository-on-apaches-nexus-server">Close the staging repository on Apacheâs Nexus server</h2> + +<p><em>Closing</em> the staging repository locks it from further changes, and provides a public URL for the repository that can +be used for downloading the artifacts.</p> + +<p>Go to the Apache Nexus server at <a href="https://repository.apache.org/">https://repository.apache.org/</a> and log in using the +link in the top right (the credentials are the same as your Git and Jenkins credentials). Go to the âStaging +Repositoriesâ page, and tick the repository with the name starting <code>orgapachebrooklyn</code>. Click the <strong>Close</strong> button. +Provide a description which includes the version and release candidate, e.g. <code>Apache Brooklyn 0.7.0-incubating-rc1</code>.</p> + + </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">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 active">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/publish-temp.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/publish.html URL: http://svn.apache.org/viewvc/incubator/brooklyn/site/developers/committers/release-process/publish.html?rev=1693576&view=auto ============================================================================== --- incubator/brooklyn/site/developers/committers/release-process/publish.html (added) +++ incubator/brooklyn/site/developers/committers/release-process/publish.html Fri Jul 31 11:54:14 2015 @@ -0,0 +1,856 @@ +<!-- +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>Publish to the public - 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>Publish to the public</h1> + <h2 id="publish-the-source-and-binary-distributions-to-the-pre-release-area">Publish the source and binary distributions to the pre-release area</h2> + +<p>You will need to have checked out the Apache distribution Subversion repository located at +https://dist.apache.org/repos/dist/release/incubator/brooklyn. Please refer to <a href="prerequisites.html">Prerequisites</a> for +information.</p> + +<p>In your workspace for the <code>dist.apache.org</code> repo, create a directory with the artifact name and version:</p> + +<div class="highlight"><pre><code class="language-bash" data-lang="bash">mkdir apache-brooklyn-<span class="k">${</span><span class="nv">VERSION_NAME</span><span class="k">}</span></code></pre></div> + +<p>Refer back to the pre-release area Subversion (see <a href="publish-temp.html">Publish to the staging area</a>), and copy all of +the release candidate artifacts - <code>-src</code> and <code>-bin</code>, <code>.tar.gz</code> and <code>.zip</code>, and all associated <code>.md5</code>, <code>.sha1</code>, <code>.sha256</code> +and <code>.asc</code> signatures - into this new folder.</p> + +<p>Rename all of the files to remove the <code>-rcN</code> designation. If you have the <code>mmv</code> tool installed, this can be done with +this command:</p> + +<div class="highlight"><pre><code class="language-bash" data-lang="bash">mmv -v <span class="s1">'*-rc'</span><span class="nv">$RC_NUMBER</span><span class="s1">'-*'</span> <span class="s1">'#1-#2'</span></code></pre></div> + +<p>The hash files will need patching to refer to the filenames without the <code>-rcN</code> designation:</p> + +<div class="highlight"><pre><code class="language-bash" data-lang="bash">sed -i.bak <span class="s1">'s/-rc'</span><span class="nv">$RC_NUMBER</span><span class="s1">'-/-/'</span> *.md5 *.sha1 *.sha256 +rm -f *.bak</code></pre></div> + +<p>Note that the PGP signatures do not embed the filename so they do not need to be modified</p> + +<p>As a final check, re-test the hashes and signatures:</p> + +<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="k">for</span> ext in -src.tar.gz -src.zip -bin.tar.gz -bin.zip<span class="p">;</span> <span class="k">do</span> + <span class="nv">artifact</span><span class="o">=</span>apache-brooklyn-<span class="k">${</span><span class="nv">VERSION_NAME</span><span class="k">}${</span><span class="nv">ext</span><span class="k">}</span> + md5sum -c <span class="k">${</span><span class="nv">artifact</span><span class="k">}</span>.md5 + shasum -a1 -c <span class="k">${</span><span class="nv">artifact</span><span class="k">}</span>.sha1 + shasum -a256 -c <span class="k">${</span><span class="nv">artifact</span><span class="k">}</span>.sha256 + gpg2 --verify <span class="k">${</span><span class="nv">artifact</span><span class="k">}</span>.asc <span class="k">${</span><span class="nv">artifact</span><span class="k">}</span> +<span class="k">done</span></code></pre></div> + +<p>Then, add them to Subversion and commit.</p> + +<div class="highlight"><pre><code class="language-bash" data-lang="bash">svn add apache-brooklyn-<span class="k">${</span><span class="nv">VERSION_NAME</span><span class="k">}</span> +svn commit --message <span class="s2">"Add apache-brooklyn-${VERSION_NAME} to dist/release/incubator/brooklyn"</span></code></pre></div> + +<h2 id="publish-the-staging-repository-on-apaches-nexus-server">Publish the staging repository on Apacheâs Nexus server</h2> + +<p><em>Releasing</em> the staging repository causes its contents to be copied to the main Apache Nexus repository. This in turn +is propagated to Maven Central, meaning all of our users can access the artifacts using a default Maven configuration +(thereâs no need to add a <code><repository></code> to their <code>pom.xml</code> or <code>~/.m2/settings.xml</code>).</p> + +<p>Go to the Apache Nexus server at <a href="https://repository.apache.org/">https://repository.apache.org/</a> and log in using the +link in the top right (the credentials are the same as your Git and Jenkins credentials). Go to the âStaging +Repositoriesâ page, and tick the repository with the name starting <code>orgapachebrooklyn</code>. Click the <strong>Release</strong> button. +Provide a description which includes the version, e.g. <code>Apache Brooklyn 0.7.0-incubating</code>.</p> + +<h2 id="update-the-website">Update the website</h2> + +<p><em>Instructions on uploading to the website are beyond the scope of these instructions. Refer to the appropriate +instructions.</em></p> + +<h3 id="publish-documentation-for-the-new-release">Publish documentation for the new release</h3> + +<p>Go to the release branch and perform a build:</p> + +<div class="highlight"><pre><code class="language-bash" data-lang="bash">git checkout <span class="k">${</span><span class="nv">VERSION_NAME</span><span class="k">}</span> +mvn clean install -DskipTests</code></pre></div> + +<p>Generate the permalink docs for the release:</p> + +<div class="highlight"><pre><code class="language-bash" data-lang="bash"><span class="nb">cd </span>docs +./_build/build.sh guide-version</code></pre></div> + +<p>Now publish _site/v/<em>${VERSION_NAME}</em> to the public website.</p> + +<p>Update the âlatestâ docs to this release:</p> + +<div class="highlight"><pre><code class="language-bash" data-lang="bash">./_build/build.sh guide-latest</code></pre></div> + +<p>Now publish _site/v/latest to the public website.</p> + +<h3 id="update-the-main-website-to-link-to-the-new-release">Update the main website to link to the new release</h3> + +<p>This should be done on the <code>master</code> branch:</p> + +<div class="highlight"><pre><code class="language-bash" data-lang="bash">git checkout master</code></pre></div> + +<ol> + <li>Edit the file <code>docs/_config.yml</code> - change <code>brooklyn-stable-version</code> to be the newly-release version, and +<code>brooklyn-version</code> to be the current SNAPSHOT version on the master branch.</li> + <li>Edit the file <code>docs/website/download/verify.md</code> to add links to the MD5/SHA1/SHA256 hashes and PGP signatures for the +new version.</li> + <li>Edit the file <code>docs/website/meta/versions.md</code> to add the new version.</li> + <li>Build the updated site with <code>./_build/build.sh website-root</code> and upload to the website.</li> +</ol> + +<h2 id="tag-the-release-in-git">Tag the release in git</h2> + +<p>Make a signed tag for this release, based on the tag for the release candidate, 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}"</span> apache-brooklyn-<span class="k">${</span><span class="nv">VERSION_NAME</span><span class="k">}</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></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">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 active">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/publish.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>
