mermaid
Version:
Markdownish syntax for generating flowcharts, sequence diagrams and gantt charts.
154 lines (153 loc) • 6.88 kB
HTML
<html>
<head>
<title>RELEASE.md</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" media="all" href="../../doc-style.css" />
<script src="../../doc-filelist.js"></script>
<script>
var relativeDir = "../../", thisFile = "Users/knut/Documents/source/mermaid/bower_components/jasmine/RELEASE.md", defaultSidebar = true;
</script>
<script src="../../doc-script.js"></script>
<script src="../../mermaid.js"></script>
<link rel="stylesheet" href="../../mermaid.css" />
</head>
<body>
<div id="sidebar_wrapper">
<div id="sidebar_switch">
<span class="tree">Files</span>
<span class="headings">Headings</span>
</div>
<div id="tree"></div>
<div id="headings">
<div class="heading h1">
<a href="#How to work on a Jasmine Release">How to work on a Jasmine Release</a>
</div>
<div class="heading h2">
<a href="#Development">Development</a>
</div>
<div class="heading h3">
<a href="#Git Rules">Git Rules</a>
</div>
<div class="heading h3">
<a href="#Version">Version</a>
</div>
<div class="heading h2">
<a href="#Release">Release</a>
</div>
<div class="heading h3">
<a href="#Build standalone distribution">Build standalone distribution</a>
</div>
<div class="heading h3">
<a href="#Release the Python egg">Release the Python egg</a>
</div>
<div class="heading h3">
<a href="#Release the Ruby gem">Release the Ruby gem</a>
</div>
<div class="heading h3">
<a href="#Release the NPM">Release the NPM</a>
</div>
<div class="heading h3">
<a href="#Finally">Finally</a>
</div>
</div>
</div>
<div id="sidebar-toggle"></div>
<div id="container"><div class="docs markdown"><div class="pilwrap" id="How to work on a Jasmine Release">
<h1>
<a href="#How to work on a Jasmine Release" name="How to work on a Jasmine Release" class="pilcrow">¶</a>
How to work on a Jasmine Release</h1>
</div>
<div class="pilwrap" id="Development">
<h2>
<a href="#Development" name="Development" class="pilcrow">¶</a>
Development</h2>
</div>
<p><strong><em>Jasmine Core Maintainers Only</em></strong></p>
<p>Follow the instructions in <code>CONTRIBUTING.md</code> during development.</p>
<div class="pilwrap" id="Git Rules">
<h3>
<a href="#Git Rules" name="Git Rules" class="pilcrow">¶</a>
Git Rules</h3>
</div>
<p>Please work on feature branches.</p>
<p>Please attempt to keep commits to <code>master</code> small, but cohesive. If a feature is contained in a bunch of small commits (e.g., it has several wip commits or small work), please squash them when merging back to <code>master</code>.</p>
<div class="pilwrap" id="Version">
<h3>
<a href="#Version" name="Version" class="pilcrow">¶</a>
Version</h3>
</div>
<p>We attempt to stick to <a href="http://semver.org/">Semantic Versioning</a>. Most of the time, development should be against a new minor version - fixing bugs and adding new features that are backwards compatible.</p>
<p>The current version lives in the file <code>/package.json</code>. This file should be set to the version that is <em>currently</em> under development. That is, if version 1.0.0 is the current release then version should be incremented say, to 1.1.0.</p>
<p>This version is used by both <code>jasmine.js</code> and the <code>jasmine-core</code> Ruby gem.</p>
<p>Note that Jasmine should <em>not</em> use the "patch" version number. Let downstream projects rev their patch versions as needed, keeping their major and minor version numbers in sync with Jasmine core.</p>
<div class="pilwrap" id="Release">
<h2>
<a href="#Release" name="Release" class="pilcrow">¶</a>
Release</h2>
</div>
<p>When ready to release - specs are all green and the stories are done:</p>
<ol>
<li>Update the release notes in <code>release_notes</code> - use the Anchorman gem to generate the markdown file and edit accordingly</li>
<li>Update the version in <code>package.json</code> to a release candidate</li>
<li>Update any links or top-level landing page for the Github Pages</li>
</ol>
<div class="pilwrap" id="Build standalone distribution">
<h3>
<a href="#Build standalone distribution" name="Build standalone distribution" class="pilcrow">¶</a>
Build standalone distribution</h3>
</div>
<ol>
<li>Build the standalone distribution with <code>grunt buildStandaloneDist</code></li>
<li>Make sure you add the new ZIP file to git<ol>
<li>Should we still do this? Given we want to use guthub releases...</li>
</ol>
</li>
</ol>
<div class="pilwrap" id="Release the Python egg">
<h3>
<a href="#Release the Python egg" name="Release the Python egg" class="pilcrow">¶</a>
Release the Python egg</h3>
</div>
<ol>
<li><code>python setup.py register sdist upload</code> You will need pypi credentials to upload the egg.</li>
</ol>
<div class="pilwrap" id="Release the Ruby gem">
<h3>
<a href="#Release the Ruby gem" name="Release the Ruby gem" class="pilcrow">¶</a>
Release the Ruby gem</h3>
</div>
<ol>
<li>Copy version to the Ruby gem with <code>grunt build:copyVersionToGem</code></li>
<li><strong>NOTE</strong>: You will likely need to point to a local jasmine gem in order to run tests locally. <em>Do not</em> push this version of the Gemfile.</li>
<li><strong>NOTE</strong>: You will likely need to push a new jasmine gem with a dependent version right after this release.</li>
<li>Push these changes to GitHub and verify that this SHA is green</li>
<li><code>rake release</code> - tags the repo with the version, builds the <code>jasmine-core</code> gem, pushes the gem to Rubygems.org. In order to release you will have to ensure you have rubygems creds locally.</li>
</ol>
<div class="pilwrap" id="Release the NPM">
<h3>
<a href="#Release the NPM" name="Release the NPM" class="pilcrow">¶</a>
Release the NPM</h3>
</div>
<ol>
<li><code>npm adduser</code> to save your credentials locally</li>
<li><code>npm publish .</code> to publish what's in <code>package.json</code></li>
</ol>
<div class="pilwrap" id="Finally">
<h3>
<a href="#Finally" name="Finally" class="pilcrow">¶</a>
Finally</h3>
</div>
<ol>
<li>Visit the <a href="https://github.com/pivotal/jasmine/releases">Releases page for Jasmine</a>, find the tag just pushed.<ol>
<li>Paste in a link to the correct release notes for this release. The link should reference the blob and tag correctly, and the markdown file for the notes.</li>
<li>If it is a pre-release, mark it as such.</li>
<li>Attach the standalone zipfile</li>
</ol>
</li>
</ol>
<p>There should be a post to Pivotal Labs blog and a tweet to that link.</p>
</div>
</div>
</body>
</html>