215 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
			
		
		
	
	
			215 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
====================
 | 
						|
shUnit2 2.1.x README
 | 
						|
====================
 | 
						|
 | 
						|
code.google.com
 | 
						|
===============
 | 
						|
 | 
						|
This project is stored on code.google.com as http://code.google.com/p/shunit2/.
 | 
						|
All releases as of 2.1.4 and full source are available there. Documentation is
 | 
						|
included as part of the source and each release. Source code is stored in
 | 
						|
Subversion and can be accessed using the following information.
 | 
						|
 | 
						|
Browse the code in a web browser:
 | 
						|
 | 
						|
- http://code.google.com/p/shunit2/source/browse
 | 
						|
- svn > trunk > source > 2.1
 | 
						|
 | 
						|
Check out the code locally ::
 | 
						|
 | 
						|
  $ svn checkout http://shunit2.googlecode.com/svn/trunk/ shflags-read-only
 | 
						|
 | 
						|
 | 
						|
SourceForge
 | 
						|
===========
 | 
						|
 | 
						|
DEPRECATED
 | 
						|
 | 
						|
This project is stored on SourceForge as http://sf.net/projects/shunit2. The
 | 
						|
source code is stored in Subversion and can be accessed using the following
 | 
						|
information.
 | 
						|
 | 
						|
Check out the code locally ::
 | 
						|
 | 
						|
  $ svn co https://shunit2.svn.sourceforge.net/svnroot/shunit2/trunk/source/2.1 shunit2
 | 
						|
 | 
						|
Browse the code in a web browser:
 | 
						|
 | 
						|
- http://shunit2.svn.sourceforge.net/viewvc/shunit2/trunk/source/2.1/
 | 
						|
- http://shunit2.svn.sourceforge.net/svnroot/shunit2/trunk/source/2.1/
 | 
						|
 | 
						|
 | 
						|
Making a release
 | 
						|
================
 | 
						|
 | 
						|
For these steps, it is assumed we are working with release 2.0.0.
 | 
						|
 | 
						|
Steps:
 | 
						|
 | 
						|
- write release notes
 | 
						|
- update version
 | 
						|
- finish changelog
 | 
						|
- check all the code in
 | 
						|
- tag the release
 | 
						|
- export the release
 | 
						|
- create tarball
 | 
						|
- md5sum the tarball and sign with gpg
 | 
						|
- update website
 | 
						|
- post to SourceForge and Freshmeat
 | 
						|
 | 
						|
Write Release Notes
 | 
						|
-------------------
 | 
						|
 | 
						|
This should be pretty self explanatory. Use one of the release notes from a
 | 
						|
previous release as an example.
 | 
						|
 | 
						|
The versions of the various platforms and shells are included when the
 | 
						|
master unit test script is run, or when ``bin/gen_test_results.sh`` is
 | 
						|
used. To determine the versions of the installed shells by hand, use the
 | 
						|
``lib/versions`` script.
 | 
						|
 | 
						|
Alternatively, do the following:
 | 
						|
 | 
						|
+-------+---------+-----------------------------------------------------------+
 | 
						|
| Shell | OS      | Notes                                                     |
 | 
						|
+=======+=========+===========================================================+
 | 
						|
| bash  |         | ``$ bash --version``                                      |
 | 
						|
+-------+---------+-----------------------------------------------------------+
 | 
						|
| dash  | Linux   | ``$ dpkg -l |grep dash``                                  |
 | 
						|
+-------+---------+-----------------------------------------------------------+
 | 
						|
| ksh   |         | ``$ ksh --version``                                       |
 | 
						|
|       |         | -or-                                                      |
 | 
						|
|       |         | ``$ echo 'echo $KSH_VERSION' |ksh``                       |
 | 
						|
|       +---------+-----------------------------------------------------------+
 | 
						|
|       | Cygwin  | see pdksh                                                 |
 | 
						|
|       +---------+-----------------------------------------------------------+
 | 
						|
|       | Solaris | ``$ strings /usr/bin/ksh |grep 'Version'``                |
 | 
						|
+-------+---------+-----------------------------------------------------------+
 | 
						|
| pdksh |         | ``$ strings /bin/pdksh |grep 'PD KSH'``                   |
 | 
						|
|       +---------+-----------------------------------------------------------+
 | 
						|
|       | Cygwin  | look in the downloaded Cygwin directory                   |
 | 
						|
+-------+---------+-----------------------------------------------------------+
 | 
						|
| sh    | Solaris | not possible                                              |
 | 
						|
+-------+---------+-----------------------------------------------------------+
 | 
						|
| zsh   |         | ``$ zsh --version``                                       |
 | 
						|
+-------+---------+-----------------------------------------------------------+
 | 
						|
 | 
						|
Update Version
 | 
						|
--------------
 | 
						|
 | 
						|
Edit ``src/shell/shunit2`` and change the version number in the comment, as well
 | 
						|
as in the ``SHUNIT_VERSION`` variable.
 | 
						|
 | 
						|
Finish Documentation
 | 
						|
--------------------
 | 
						|
 | 
						|
Make sure that any remaining changes get put into the ``CHANGES-X.X.txt`` file.
 | 
						|
 | 
						|
Finish writing the ``RELEASE_NOTES-X.X.X.txt``. If necessary, run it
 | 
						|
through the **fmt** command to make it pretty (hopefully it is already). ::
 | 
						|
 | 
						|
  $ 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
 | 
						|
 | 
						|
We want to have an up-to-date version of the documentation in the release, so
 | 
						|
we'd better build it. ::
 | 
						|
 | 
						|
  $ pwd
 | 
						|
  .../shunit2/source/2.1
 | 
						|
  $ cd doc
 | 
						|
  $ RST2HTML_OPTS='--stylesheet-path=rst2html.css'
 | 
						|
  $ rst2html ${RST2HTML_OPTS} shunit2.txt >shunit2.html
 | 
						|
  $ rst2html ${RST2HTML_OPTS} README.txt >README.html
 | 
						|
 | 
						|
Check In All the Code
 | 
						|
---------------------
 | 
						|
 | 
						|
This step is pretty self-explanatory ::
 | 
						|
 | 
						|
  $ pwd
 | 
						|
  .../shunit2/source/2.0
 | 
						|
  $ svn ci -m "finalizing release"
 | 
						|
 | 
						|
Tag the Release
 | 
						|
---------------
 | 
						|
::
 | 
						|
 | 
						|
  $ pwd
 | 
						|
  .../shunit2/source
 | 
						|
  $ ls
 | 
						|
  2.0  2.1
 | 
						|
  $ svn cp -m "Release 2.0.0" 2.0 https://shunit2.googlecode.com/svn/tags/source/2.0.0
 | 
						|
 | 
						|
Export the Release
 | 
						|
------------------
 | 
						|
::
 | 
						|
 | 
						|
  $ pwd
 | 
						|
  .../shunit2/builds
 | 
						|
  $ svn export https://shunit2.googlecode.com/svn/tags/source/2.0.0 shunit2-2.0.0
 | 
						|
 | 
						|
Create Tarball
 | 
						|
--------------
 | 
						|
::
 | 
						|
 | 
						|
  $ tar cfz ../releases/shunit2-2.0.0.tgz shunit2-2.0.0
 | 
						|
 | 
						|
Sign the Tarball with gpg
 | 
						|
-------------------------
 | 
						|
::
 | 
						|
 | 
						|
  $ cd ../releases
 | 
						|
  $ gpg --default-key kate.ward@forestent.com --detach-sign shunit2-2.0.0.tgz
 | 
						|
 | 
						|
Update Website
 | 
						|
--------------
 | 
						|
 | 
						|
Again, pretty self-explanatory. Make sure to copy the GPG signature file. Once
 | 
						|
that is done, make sure to tag the website so we can go back in time if needed.
 | 
						|
::
 | 
						|
 | 
						|
  $ pwd
 | 
						|
  .../shunit2
 | 
						|
  $ ls
 | 
						|
  source  website
 | 
						|
  $ svn cp -m "Release 2.0.0" \
 | 
						|
  website https://shunit2.googlecode.com/svn/tags/website/20060916
 | 
						|
 | 
						|
Now, update the website. It too is held in Subversion, so **ssh** into the web
 | 
						|
server and use ``svn up`` to grab the latest version.
 | 
						|
 | 
						|
Post to code.google.com and Freshmeat
 | 
						|
-------------------------------------
 | 
						|
 | 
						|
- http://code.google.com/p/shunit2/
 | 
						|
- http://freshmeat.net/
 | 
						|
 | 
						|
 | 
						|
Related Documentation
 | 
						|
=====================
 | 
						|
 | 
						|
Docbook:
 | 
						|
  http://www.docbook.org/
 | 
						|
 | 
						|
Docbook XML
 | 
						|
  docbook-xml-4.4.zip:
 | 
						|
    http://www.docbook.org/xml/4.4/docbook-xml-4.4.zip
 | 
						|
    http://www.oasis-open.org/docbook/xml/4.4/docbook-xml-4.4.zip
 | 
						|
  docbook-xml-4.5.zip:
 | 
						|
    http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip
 | 
						|
Docbook XSL
 | 
						|
  docbook-xsl-1.71.0.tar.bz2:
 | 
						|
    http://prdownloads.sourceforge.net/docbook/docbook-xsl-1.71.0.tar.bz2?download
 | 
						|
  docbook-xsl-1.71.1.tar.bz2:
 | 
						|
    http://downloads.sourceforge.net/docbook/docbook-xsl-1.71.1.tar.bz2?use_mirror=puzzle
 | 
						|
JUnit:
 | 
						|
  http://www.junit.org/
 | 
						|
reStructuredText:
 | 
						|
  http://docutils.sourceforge.net/docs/user/rst/quickstart.html
 | 
						|
 | 
						|
.. generate HTML using rst2html from Docutils of
 | 
						|
.. http://docutils.sourceforge.net/
 | 
						|
..
 | 
						|
.. vim:fileencoding=latin1:ft=rst:spell:tw=80
 | 
						|
.. $Revision: 310 $
 |