Brigham Young University Configurable Computing Lab

JHDL Release Process

Updated: December 18 , 2002

Table of Contents
* External Release Only

Note: The following sequences have been made into script files, if you wish to use them. They are found in /ka1/WWW/docs/lab/release_scripts. See the README file for details.

Phase I

OBJECTIVE:

Make sure current CVS is buildable, and passes tests

PROCEDURE:

Check out latest CVS, run the tests

NOTE:

"rhynn" is a fast computer and has a lot of RAM. The /dev/shm allows us to use this as if it were part of the drive space. This significantly speeds the build process.

METHOD:

SSH rhynn
cd /dev/shm
mkdir mycvs
cd mycvs
cvs co byucc/jhdl
cd byucc/jhdl
setenv CLASSPATH ;
ant test -Dbuild.compiler=jikes
ant package -Dbuild.compiler=jikes
Perhaps it gives an error like:
 [exectest] Executing the main method from byucc.jhdl.Logic.Modules.test.tb_MULTIPLIERS
 [exectest] Testing MULTIPLIERS...
 [exectest] Running 100 tests...  
 [exectest] java.lang.ArrayIndexOutOfBoundsException
 [exectest]     at byucc.jhdl.Logic.Modules.test.tb_MULTIPLIERS.compute(tb_MULTIPLIERS.java:316)
 [exectest]     at byucc.jhdl.Logic.Modules.test.tb_MULTIPLIERS.clock(tb_MULTIPLIERS.java:178)  
 [exectest]     at byucc.jhdl.base.GlobalSchedule.step(GlobalSchedule.java:1263)
 [exectest]     at byucc.jhdl.base.MCSimulator.simulate(MCSimulator.java:58)
 [exectest]     at byucc.jhdl.base.Simulator.run(Simulator.java:422)
 [exectest]     at byucc.jhdl.base.Simulator.run(Simulator.java:411)
 [exectest]     at byucc.jhdl.base.HWSystem$SimulatorThread.run(HWSystem.java:1414)
 
This is a known issue and concerns a random number generator. Simply break out and retest

Phase II

OBJECTIVE:

Produce the "Release Notes" for the release version

PROCEDURE:

Make a backup copy of the commitlog, clear out the current commitlog, add a new section to RELEASE_NOTES, then commit RELEASE_NOTES

Do NOT document contrib changes

You can safely ignore Warnings in the commitlog like:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "en_US="
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

METHOD:

cd /fpga3/cvsroot/CVSROOT
cp commitlog commitlog.0.3.x (replace x with the release version number)
cp /dev/null commitlog
cd /dev/shm/mycvs/byucc/jhdl
pico/vi/emacs RELEASE_NOTES
(add a new version section to the top of file)
(go through commitlog.0.3.x and for each important entry add an 
appropriate description to the new version section in RELEASE_NOTES)
cvs stat RELEASE_NOTES
cvs ci -m "added new release version 0.3.x" RELEASE_NOTES
pico/vi/emacs build.xml (change the version number to the release version)
cvs ci -m "new version number" build.xml

Phase III

OBJECTIVE:

Tag the release version

METHOD:

(tag the source)
cd /dev/shm/mycvs/byucc/jhdl
cvs tag -R JHDL_RELEASE_0_3_x

(tag the documentation)
cd /dev/shm/mycvs
cvs co docs/jhdl
cd docs/jhdl
cvs tag -R JHDL_RELEASE_0_3_x

Phase IV

OBJECTIVE:

Build the tagged version

METHOD:

ssh rhynn
cd /dev/shm
rm -rf mycvs
mkdir mycvs
cd mycvs
cvs co -r JHDL_RELEASE_0_3_x byucc/jhdl docs/jhdl
cd byucc/jhdl
ant -Dcvs.docs.src=docs/ -Dbuild.dir="JHDL-0.3.x" -Dversion=0.3.x -Dfiltering=on 
    -Dbuild.compiler=jikes release-all

Phase V

OBJECTIVE: Copy the new jar to the default jar directory METHOD:
cd /fpga3/jhdl/release
mkdir 0_3_x
cd 0_3_x
cp /dev/shm/mycvs/JHDL-0.3.x/JHDL.jar JHDL_0_3_x.jar
ln -s JHDL_0_3_x.jar JHDL.jar
cp /dev/shm/mycvs/byucc/jhdl/RELEASE_NOTES .
cd ..
rm latest; ln -s 0_3_x/ latest



(send RELEASE_NOTES in an email to FPGA@ee.byu.edu if an internal release or FPGA@ee.byu.edu and JHDL@ee.byu.edu if an external release)

Phase VI

OBJECTIVE:

Create the web installers (External Release Only)

METHOD:

cd /ka1/WWW/jhdl-docs/blocked/download
mkdir JHDL_0_3_x
cd JHDL_0_3_x
cp /dev/shm/mycvs/JHDL-0.3.x/JHDL-docs.zip .
			     JHDL.jar .
			     JHDL-src.zip .
			     license.txt .
			     license.html .
			     README.txt .	
cd .. (into download)
rm current
ln -s JHDL_0.3.x/ current

cd /ka1/WWW/swish-e/InstallAnywhere_5_Now
./InstallAnywhere
(open existing proect)
(choose JHDLBinary.iap_xml)
(choose Advanced Designer)
(change the version name under "Project"-->"Installer Title:")
(change the version name under "Project"-->"Installer Title:")
(check paths of files under Install to ensure most recent)
(under Install, remove all the old jars, zip files, LICENSE files and,
 INSTALL files and re-add them, this time choosing the latest versions
 from /ka1/WWW/jhdl-docs/blocked/download/JHDL_0_3_x/)
(click on "in classpath" for the JHDL.jar file you just added)
(save the project under File menu)
(build the project by clicking on the Build Project button under the Build section)

Do it again for JHDLALL.iap_xml; remember that JHDLAll has more Zip files.
(include JHDL-src.zip,JHDL-docs.zip for JHDLAll.iap_xml)


Phase VII

OBJECTIVE:

Copy the latest version documentation to the webpage (External Release Only)

METHOD:

cd /ka1/WWW/docs/lab/
unzip /ka1/WWW/jhdl-docs/blocked/download/current/JHDL-docs.zip
cd ..
rm latestdocs
ln -s JHDL-0.3.x/docs latestdocs


DON'T FORGET TO REMOVE /dev/shm/mycvs AFTER THE BUILD PROCESS IS COMPLETE

Phase VIII

OBJECTIVE:

Update the JHDL webpage to reflect the latest version (External Release Only)

METHOD:

Our webpage was build using ppwizard, a html preprocessor. Basically, cd over to /ka1/WWW/swish-e/input/ and you'll see a lot of .it and .ih files. When publish is run, the .it files become .html files and the .ih files are the "included" files (like the header and footer and side panel.) OK, so edit the .it files to make your changes, then cd into /ka1/WWW/swish-e/dynamic and run "./publish.sh" (you might have to be on an HP machine to execute this.) publish.sh is simply a shell script shortcut for "rexx ppwizard @nocopy" where nocopy.ppw is a file which contains the configuration information -- directories and such.
(modify /ka1/WWW/swish-e/index.it: 
	1- Change the version number on the right-handed short-cut menu (under
	   download JHDL)
	2- Change the "announcement" to read "JAVA JHDL Version 0.3.x Released",
	   change the date of the announcement as well.
	3- run (on linux box) /ka1/WWW/jhdl-docs/dynamic/rexx ppwizard @nocopy
)

(modify the download page index.html:
	1 - in /ka1/WWW/jhdl-docs/blocked/download/index.html search and replace
	0.3.oldx with 0.3.x
)

(modify the main jhdl.org index.html:
	1 - in /ka1/WWW/jhdl-docs/index.html search and replace
	0.3.oldx with 0.3.x, and date
)


Now is also a good time to test each installer. Also be sure to test the source code release by pretending to be a new JHDL user and trying to compile it

Phase IX

OBJECTIVE:

Reindex the User's Manual for swish-e search engine (External Release Only)

METHOD:

on an HPUX machine (i.e Zap or Sizzle)
cd /ka1/WWW/swish-e/swish-e-2.0.5/src
swish-e -i /ka1/WWW/docs/lab/latestdocs/usersManual/