| <?xml version="1.0" encoding="utf-8" ?> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| <meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" /> |
| <title>shFlags 1.0.x README</title> |
| <style type="text/css"> |
| |
| /* |
| :Author: David Goodger |
| :Contact: goodger@users.sourceforge.net |
| :Date: $Date$ |
| :Revision: $Revision$ |
| :Copyright: This stylesheet has been placed in the public domain. |
| :Modified by: Kate Ward <kate.ward@forestent.com> |
| |
| Default cascading style sheet for the HTML output of Docutils. |
| |
| See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to |
| customize this style sheet. |
| */ |
| |
| /* used to remove borders from tables and images */ |
| .borderless, table.borderless td, table.borderless th { |
| border: 0 } |
| |
| table.borderless td, table.borderless th { |
| /* Override padding for "table.docutils td" with "! important". |
| The right padding separates the table cells. */ |
| padding: 0 0.5em 0 0 ! important } |
| |
| .first { |
| /* Override more specific margin styles with "! important". */ |
| margin-top: 0 ! important } |
| |
| .last, .with-subtitle { |
| margin-bottom: 0 ! important } |
| |
| .hidden { |
| display: none } |
| |
| a.toc-backref { |
| text-decoration: none ; |
| color: black } |
| |
| blockquote.epigraph { |
| margin: 2em 5em ; } |
| |
| dl.docutils dd { |
| margin-bottom: 0.5em } |
| |
| /* Uncomment (and remove this text!) to get bold-faced definition list terms |
| dl.docutils dt { |
| font-weight: bold } |
| */ |
| |
| div.abstract { |
| margin: 2em 5em } |
| |
| div.abstract p.topic-title { |
| font-weight: bold ; |
| text-align: center } |
| |
| div.admonition, div.attention, div.caution, div.danger, div.error, |
| div.hint, div.important, div.note, div.tip, div.warning { |
| margin: 2em ; |
| border: medium outset ; |
| padding: 1em } |
| |
| div.admonition p.admonition-title, div.hint p.admonition-title, |
| div.important p.admonition-title, div.note p.admonition-title, |
| div.tip p.admonition-title { |
| font-weight: bold ; |
| font-family: sans-serif } |
| |
| div.attention p.admonition-title, div.caution p.admonition-title, |
| div.danger p.admonition-title, div.error p.admonition-title, |
| div.warning p.admonition-title { |
| color: red ; |
| font-weight: bold ; |
| font-family: sans-serif } |
| |
| /* Uncomment (and remove this text!) to get reduced vertical space in |
| compound paragraphs. |
| div.compound .compound-first, div.compound .compound-middle { |
| margin-bottom: 0.5em } |
| |
| div.compound .compound-last, div.compound .compound-middle { |
| margin-top: 0.5em } |
| */ |
| |
| div.dedication { |
| margin: 2em 5em ; |
| text-align: center ; |
| font-style: italic } |
| |
| div.dedication p.topic-title { |
| font-weight: bold ; |
| font-style: normal } |
| |
| div.figure { |
| margin-left: 2em ; |
| margin-right: 2em } |
| |
| div.footer, div.header { |
| clear: both; |
| font-size: smaller } |
| |
| div.line-block { |
| display: block ; |
| margin-top: 1em ; |
| margin-bottom: 1em } |
| |
| div.line-block div.line-block { |
| margin-top: 0 ; |
| margin-bottom: 0 ; |
| margin-left: 1.5em } |
| |
| div.sidebar { |
| margin-left: 1em ; |
| border: medium outset ; |
| padding: 1em ; |
| background-color: #ffffee ; |
| width: 40% ; |
| float: right ; |
| clear: right } |
| |
| div.sidebar p.rubric { |
| font-family: sans-serif ; |
| font-size: medium } |
| |
| div.system-messages { |
| margin: 5em } |
| |
| div.system-messages h1 { |
| color: red } |
| |
| div.system-message { |
| border: medium outset ; |
| padding: 1em } |
| |
| div.system-message p.system-message-title { |
| color: red ; |
| font-weight: bold } |
| |
| div.topic { |
| margin: 2em } |
| |
| h1.section-subtitle, h2.section-subtitle, h3.section-subtitle, |
| h4.section-subtitle, h5.section-subtitle, h6.section-subtitle { |
| margin-top: 0.4em } |
| |
| h1.title { |
| text-align: center } |
| |
| h2.subtitle { |
| text-align: center } |
| |
| hr.docutils { |
| width: 75% } |
| |
| img.align-left { |
| clear: left } |
| |
| img.align-right { |
| clear: right } |
| |
| ol.simple, ul.simple { |
| margin-bottom: 1em } |
| |
| ol.arabic { |
| list-style: decimal } |
| |
| ol.loweralpha { |
| list-style: lower-alpha } |
| |
| ol.upperalpha { |
| list-style: upper-alpha } |
| |
| ol.lowerroman { |
| list-style: lower-roman } |
| |
| ol.upperroman { |
| list-style: upper-roman } |
| |
| p.attribution { |
| text-align: right ; |
| margin-left: 50% } |
| |
| p.caption { |
| font-style: italic } |
| |
| p.credits { |
| font-style: italic ; |
| font-size: smaller } |
| |
| p.label { |
| white-space: nowrap } |
| |
| p.rubric { |
| font-weight: bold ; |
| font-size: larger ; |
| color: maroon ; |
| text-align: center } |
| |
| p.sidebar-title { |
| font-family: sans-serif ; |
| font-weight: bold ; |
| font-size: larger } |
| |
| p.sidebar-subtitle { |
| font-family: sans-serif ; |
| font-weight: bold } |
| |
| p.topic-title { |
| font-weight: bold } |
| |
| pre.address { |
| margin-bottom: 0 ; |
| margin-top: 0 ; |
| font-family: serif ; |
| font-size: 100% } |
| |
| pre.literal-block, pre.doctest-block { |
| margin-left: 2em ; |
| margin-right: 2em ; |
| background-color: #eeeeee } |
| |
| span.classifier { |
| font-family: sans-serif ; |
| font-style: oblique } |
| |
| span.classifier-delimiter { |
| font-family: sans-serif ; |
| font-weight: bold } |
| |
| span.interpreted { |
| font-family: sans-serif } |
| |
| span.option { |
| white-space: nowrap } |
| |
| span.pre { |
| white-space: pre } |
| |
| span.problematic { |
| color: red } |
| |
| span.section-subtitle { |
| /* font-size relative to parent (h1..h6 element) */ |
| font-size: 80% } |
| |
| table.citation { |
| border-left: solid 1px gray; |
| margin-left: 1px } |
| |
| table.docinfo { |
| margin: 2em 4em } |
| |
| /* |
| table.docutils { |
| margin-top: 0.5em ; |
| margin-bottom: 0.5em } |
| */ |
| |
| table.footnote { |
| border-left: solid 1px black; |
| margin-left: 1px ; |
| font-size: 80% } |
| } |
| |
| table.docutils td, table.docutils th, |
| table.docinfo td, table.docinfo th { |
| padding-left: 0.5em ; |
| padding-right: 0.5em ; |
| vertical-align: top } |
| |
| table.docutils th.field-name, table.docinfo th.docinfo-name { |
| font-weight: bold ; |
| text-align: left ; |
| white-space: nowrap ; |
| padding-left: 0 } |
| |
| h1 tt.docutils, h2 tt.docutils, h3 tt.docutils, |
| h4 tt.docutils, h5 tt.docutils, h6 tt.docutils { |
| font-size: 100% } |
| |
| /* |
| tt.docutils { |
| background-color: #eeeeee } |
| */ |
| |
| ul.auto-toc { |
| list-style-type: none } |
| |
| /* customizations by kward */ |
| |
| h1 { font-size: 133%; border-top:1px solid #CCCCFF; } |
| h1.title { font-size: 150%; border-top:0px; padding-top: 1em; } |
| /* div.document { font-size: 90% } */ |
| |
| </style> |
| </head> |
| <body> |
| <div class="document" id="shflags-1-0-x-readme"> |
| <h1 class="title">shFlags 1.0.x README</h1> |
| |
| <div class="section" id="code-google-com"> |
| <h1>code.google.com</h1> |
| <p>This project is stored on code.google.com as <a class="reference external" href="http://code.google.com/p/shflags/">http://code.google.com/p/shflags/</a>. |
| Documentation is available there, as are all releases and source code. The |
| source code is stored in Subversion and can be accessed using the following |
| information.</p> |
| <p>Browse the code in a web browser:</p> |
| <ul class="simple"> |
| <li><a class="reference external" href="http://code.google.com/p/shflags/source/browse">http://code.google.com/p/shflags/source/browse</a></li> |
| <li>svn > trunk > source > 1.0</li> |
| </ul> |
| <p>Check out the code locally</p> |
| <pre class="literal-block"> |
| $ svn checkout http://shflags.googlecode.com/svn/trunk/ shflags-read-only |
| </pre> |
| <p>Documentation is available on the web at |
| <a class="reference external" href="http://code.google.com/p/shflags/wiki/Documentation10x">http://code.google.com/p/shflags/wiki/Documentation10x</a>.</p> |
| </div> |
| <div class="section" id="making-a-release"> |
| <h1>Making a release</h1> |
| <p>For these steps, it is assumed we are working with release 1.0.0.</p> |
| <p>Steps:</p> |
| <ul class="simple"> |
| <li>write release notes</li> |
| <li>update version</li> |
| <li>finish changelog</li> |
| <li>check all the code in</li> |
| <li>tag the release</li> |
| <li>export the release</li> |
| <li>create tarball</li> |
| <li>md5sum the tarball and sign with gpg</li> |
| <li>update website</li> |
| <li>post to code.google.com and Freshmeat</li> |
| </ul> |
| <div class="section" id="write-release-notes"> |
| <h2>Write Release Notes</h2> |
| <p>This should be pretty self explainatory. Use one of the release notes from a |
| previous release as an example.</p> |
| <p>To get the versions of the various shells, run the <cite>bin/version_info.sh</cite> |
| command.</p> |
| <pre class="literal-block"> |
| $ bin/shell_versions.sh |
| os:Mac OS X version:10.5.3 |
| shell:/bin/bash version:3.2.17(1)-release |
| shell:/bin/dash version:not_installed |
| shell:/bin/ksh version:M-1993-12-28 |
| shell:/bin/pdksh version:not_installed |
| shell:/bin/zsh version:4.3.4 |
| </pre> |
| </div> |
| <div class="section" id="update-version"> |
| <h2>Update Version</h2> |
| <p>Edit <tt class="docutils literal"><span class="pre">src/shflags</span></tt> and change the version number in the <tt class="docutils literal"><span class="pre">FLAGS_VERSION</span></tt> |
| variable.</p> |
| </div> |
| <div class="section" id="finish-documentation"> |
| <h2>Finish Documentation</h2> |
| <p>Make sure that any remaning changes get put into the <tt class="docutils literal"><span class="pre">CHANGES-X.X.txt</span></tt> file.</p> |
| <p>Finish writing the <tt class="docutils literal"><span class="pre">RELEASE_NOTES-X.X.X.txt</span></tt>. Once it is finished, run it |
| through the <strong>fmt</strong> command to make it pretty. (This assumes the lines weren't |
| already wrapped at 80 chars when the file was edited.)</p> |
| <pre class="literal-block"> |
| $ fmt -w 80 RELEASE_NOTES-2.0.0.txt >RELEASE_NOTES-2.0.0.txt.new |
| $ mv RELEASE_NOTES-2.0.0.txt.new RELEASE_NOTES-2.0.0.txt |
| </pre> |
| <p>We want to have an up-to-date version of the documentation in the release, so |
| we'd better build it.</p> |
| <pre class="literal-block"> |
| $ pwd |
| .../shflags/source/1.0 |
| $ rst2html --stylesheet-path=doc/rst2html.css README.txt >README.html |
| </pre> |
| </div> |
| <div class="section" id="check-in-all-the-code"> |
| <h2>Check In All the Code</h2> |
| <p>This step is pretty self-explainatory</p> |
| <pre class="literal-block"> |
| $ pwd |
| .../shflags/source/1.0 |
| $ svn ci -m "finalizing 1.0.0 release" |
| </pre> |
| </div> |
| <div class="section" id="tag-the-release"> |
| <h2>Tag the Release</h2> |
| <pre class="literal-block"> |
| $ cd .. |
| $ pwd |
| .../shflags/source |
| $ ls |
| 1.0 |
| $ svn cp -m "Release 1.0.0" 1.0 https://shflags.googlecode.com/svn/tags/1.0.0 |
| </pre> |
| </div> |
| <div class="section" id="export-the-release"> |
| <h2>Export the Release</h2> |
| <pre class="literal-block"> |
| $ cd ../builds |
| $ pwd |
| .../shflags/builds |
| $ svn export https://shflags.googlecode.com/svn/tags/1.0.0 shflags-1.0.0 |
| </pre> |
| </div> |
| <div class="section" id="create-tarball"> |
| <h2>Create Tarball</h2> |
| <pre class="literal-block"> |
| $ tar cfz ../releases/shflags-1.0.0.tgz shflags-1.0.0 |
| </pre> |
| </div> |
| <div class="section" id="md5sum-the-tarball-and-sign-with-gpg"> |
| <h2>md5sum the Tarball and Sign With gpg</h2> |
| <pre class="literal-block"> |
| $ cd ../releases |
| $ md5sum shflags-1.0.0.tgz >shflags-1.0.0.tgz.md5 |
| $ gpg --default-key kate.ward@forestent.com --detach-sign shflags-1.0.0.tgz |
| </pre> |
| </div> |
| <div class="section" id="post-the-release"> |
| <h2>Post the release</h2> |
| <p>To post the release, the ProjectInfo page needs to be updated with the release |
| info (release, date, and MD5), and the release with GPG signature needs to |
| uploaded.</p> |
| </div> |
| <div class="section" id="post-to-freshmeat"> |
| <h2>Post to Freshmeat</h2> |
| <ul class="simple"> |
| <li><a class="reference external" href="http://freshmeat.net/">http://freshmeat.net/</a></li> |
| </ul> |
| </div> |
| </div> |
| <div class="section" id="appendix"> |
| <h1>Appendix</h1> |
| <div class="section" id="related-documentation"> |
| <h2>Related Documentation</h2> |
| <table class="docutils field-list" frame="void" rules="none"> |
| <col class="field-name" /> |
| <col class="field-body" /> |
| <tbody valign="top"> |
| <tr class="field"><th class="field-name">google-gflags:</th><td class="field-body"><a class="reference external" href="http://code.google.com/p/google-gflags/">http://code.google.com/p/google-gflags/</a></td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <div class="section" id="miscellaneous"> |
| <h2>Miscellaneous</h2> |
| <p>This document is written using the Restructured Text format to make it easily |
| parsable into an HTML file.</p> |
| <!-- generate HTML using rst2html from Docutils of --> |
| <!-- http://docutils.sourceforge.net/ --> |
| <!-- --> |
| <!-- vim:syntax=rst:textwidth=80 --> |
| <!-- $Revision$ --> |
| </div> |
| </div> |
| </div> |
| </body> |
| </html> |