========================= Making a release ========================= :Authors: Fred Vos, Sjoerd Schunselaar :Date: 2010-03-18 .. sectnum:: :start: 1 .. footer:: \- ###Page### - Development, test, demo and production machines +++++++++++++++++++++++++++++++++++++++++++++++ Development ----------- Software development is done on the PC's of developers. Test ---- A new release is first installed on a test-machine. If it is a release for production, it can be shown to a small list of people to try it out using different platforms. Fred Vos uses africa.uvt.nl for this purpose. If a release seems to work properly, it is installed either on the Demo machine or on the production machine. Demo ---- - URL: http://demo.economistsonline.org/ - Server: pukurin.uvt.nl Here we show intermediate versions to the NEEO community. This site is not supposed to be used for production purposes. It's purpose is: - to show we are making progress - have a bigger group of testers - get feedback on new features The site is open to the world. New versions on the demo-site are announced on the NEEO list. In discussions via mail the site is also called 'demo.e.o'. Production ---------- - URL: http://www.economistsonline.org/ - Servers: knuth.uvt.nl and moore.uvt.nl This is the public site. In discussions via mail the site is also called 'www.e.o'. Versioning ++++++++++ - x.y.0 versions are used for production. - x.y.z versions are used for demo and in rare cases for production too. Version x.y.1 is a step on the way to a new release to production. Suppose the current version at production is 1.2.0, then demo-releases following the installation of 1.2.0 are numbered 1.2.1, 1.2.2, et cetera. Even the release candidate for 1.3.0 has a 1.2.z number. We have no experience with bug fix releases for the production version while working on a new x.y.0 version. Preparation +++++++++++ Assuming we are making a release from the latest revision in the trunk. - Edit the neeo/src/changes/changes.xml file to add a list of bug fixes and new features for this release - Check file neeo/src/site/apt/roadmap.apt and make changes if necessary - Make sure all necessary features and bugfixes for the release are available in the Subversion repository - In neeo-website/pom.xml set the version :: info.nereus4economics.neeo neeo-website war Website 1.2.3 Always use three levels, so for public release 1.4 use 1.4.0. - Make sure that on the pc where the release is prepared, all pending changes are committed to trunk - Make sure that on the pc where the release is prepared, the system is updated to the latest revision of the trunk - Make sure that the current status of uvt-commons-io, uvt-commons-xml and uvt-commons-oai are installed in the local repository - Build everything on the development machine - Run the integration tests ``mvn clean -Pci integration-test`` - Check the test-script; add tests for new features if necessary - Perform the test-script to verify everything works as expected on the development machine - Commit latest changes to Subversion repository if necessary Install release on test-machine +++++++++++++++++++++++++++++++ - Tag the current status: :: $ svn copy -m "Tagging release 1.2.3" \ https://svn.non-gnu.uvt.nl/uvt-dev/trunk/sources/neeo \ https://svn.non-gnu.uvt.nl/uvt-dev/tags/sources/neeo-1.2.3 Replace '1.2.3' with the real release number. Always use three levels, so for public release 1.4 use 1.4.0. Just before install +++++++++++++++++++ - Use the properties files in src/main/resources/shared/neeo_properties as default - Set the version number in the general.properties file for a system - Validate and change the following property files: - general.properties: :: neeo.partners.directory = /var/lib/neeo/partners neeo.sru.server = http\://169.254.0.1\:8080/sru neeo.solr.server = http\://africa.uvt.nl:8983/solr/select/ statistics.url = http://africa.uvt.nl:8180/dodoco-1.0-SNAPSHOT/ neeo.searchwords = all,abstract,author,title,journal_title,keywords neeo.searchwords.all.title = All neeo.searchwords.all.searchkey = neeo.searchwords.all.mods = neeo.searchwords.all.mlkey = all neeo.searchwords.abstract.title = Abstract neeo.searchwords.abstract.searchkey = AB neeo.searchwords.abstract.mods = mods.abstract neeo.searchwords.abstract.mlkey = abstract neeo.searchwords.author.title = Author neeo.searchwords.author.searchkey = AU neeo.searchwords.author.mods = mods.name.namePart neeo.searchwords.author.skiptranslate = true neeo.searchwords.author.mlkey = author neeo.searchwords.title.title = Title neeo.searchwords.title.searchkey = TI neeo.searchwords.title.mods = mods.titleInfo.title neeo.searchwords.title.mlkey = title neeo.searchwords.journal_title.title = Journal neeo.searchwords.journal_title.searchkey = JN neeo.searchwords.journal_title.mods = mods.relatedItem.titleInfo.title neeo.searchwords.journal_title.mlkey = journal neeo.searchwords.keywords.title = Keywords neeo.searchwords.keywords.searchkey = KW neeo.searchwords.keywords.mods = mods.subject.topic neeo.searchwords.keywords.mlkey = keywords neeo.search.year.range = 10 neeo.popup.visible = true neeo.popup.file_en = popup_en.html neeo.popup.file_es = popup_en.html neeo.popup.file_fr = popup_en.html neeo.popup.file_de = popup_en.html neeo.motd.visible = true neeo.motd.file_en = motd_en.html neeo.motd.file_es = motd_en.html neeo.motd.file_fr = motd_en.html neeo.motd.file_de = motd_en.html neeo.logdir = /var/lib/neeo/log - mail.properties: :: neeo.mail.mailToPartners = true - Build neeo-website for production: :: $ cd neeo/neeo-website $ mvn package -P prod This generates a ``neeo-website-1.2.3.war`` file in subdirectory target/. - Install .war files on test machine. - Repeat the test script for this release on the test-machine. - Send an e-mail message to Richard, Eric, Benoit, Thomas, Sjoerd and Fred, announcing the test-version :: Subject: xxx Text of message: xxx