Menu

ReleaseManagement

Timo Baumann

Re-Creating the Sourceforge SVN:

  • svnadmin dump /PATH/ON/GATE/INPRO_SVN | svndumpfilter include SEE BELOW > inprotk.dump on gate
  • use svndumpfilter to keep only what's remotely relevant to inprotk code (currently that's at least Code/Java, Code/Higgins, Experiments/iNLG_iSS/); svndumpfilter will abort if you include too little
  • use svncleaner.pl (from our sf-files; needs SVN::Dump installed) to strip only the relevant parts (build the whitelist with find src/inpro/ src/done/ src/demo/ | grep -v .svn | sed 's/^/Code\/Java\// on a checkout of the repository)
  • move/rename files (Code/Java → trunk/) with sed: sed -i 's/^Node-path: Code\/Java/Node-path: trunk/; s/Node-copyfrom-path: Code\/Java/Node-copyfrom-path: trunk/' inprotk.dump
  • manually remove 1st revision, remove creation of trunk/ with emacs (I know, we need a better solution for that)
  • test whether the resulting dump can be loaded into a fresh repository that only contains 1 revision which created trunk/, branches/ and tags/ (this can be time-consuming)
  • test this repository (see below)

Testing:

  • checkout src/ from the (temporary) repository
  • copy build.xml, lib/ and res/
  • compile: ant build
  • check (and mark success for) ant targets:
    • Apps_SimpleText
    • Demo_SimpleRecoFromFile
    • Apps_SimpleRecoFromMicrophone (if this fails, try to run without assertions!)
    • Apps_EN_SimpleRecoFromMicrophone
    • Done_GreifarmExperiment
    • Demo_EchoDM (needs Internet)
    • Done_CarChaseExperimenter (needs locally installed MaryBase, change reference in build.xml!)
    • Demo_ProsodyDemonstrator (needs locally installed MaryBase, change reference in build.xml!)
    • Demo_EN_ProsodyDemonstrator (needs locally installed MaryBase, change reference in build.xml!)
    • Demo_GreatPatternDemonstrator (needs locally installed MaryBase, change reference in build.xml!)
    • Demo_EN_GreatPatternDemonstrator (needs locally installed MaryBase, change reference in build.xml!)
    • other test (which, however, are not expected to pass yet)
    • maybe also run manual tests
  • if tests fail notify inprotk-devel@lists.sourceforge.net
  • if above tests pass, continue below

Re-Freshing the Sourceforge SVN:

(should be done for smaller changes that do not require a new release)

  • remove repository from sourceforge admin dashboard
  • create new repository from sourceforge admin dashboard
  • open admin shell, upload your inprotk.dump to shell
  • svnadmin load < inprotk.dump
  • in admin dashboard/Tools → refresh repository

Making a Release:

  • update Javadoc and make sure there are no warnings
  • upload javadoc to sourceforge (inprotk.sf.net/javadoc)
  • make sure INSTALL is reasonable
  • make sure README is reasonable
  • review other hand-written documentation
  • create ZIP from Eclipse (from your temporary repository; thus including lib/, res/, build.xml, INSTALL and README)
  • create JAR from Eclipse project
  • create new Folder at sourceforge
  • upload zip and jar to sourceforge
  • consider writing a blog post onto website, maybe update RecentChanges wiki page

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.