While OpenBUGS is no longer actively developed, an archive of resources previously used in development is provided here.
Maintaining the Sourceforge repository
The repository is composed of multiple projects. Openbugs is the main project. Each project has a trunk directory, and a branches directory.
The trunk directory represents the main line of development. It is preferable to commit changes to the trunk whenever possible. Before creating a new branch for some experimental code, come up with some strong reasons it should not be in trunk. The goal is to stick to the stable trunk strategy.
At the time of a new release, a branch is created representing the state of the project for that release. This new branch becomes the place for bugfixes to that release.
The svn command to create a new repository (3.1.1 in the example) is
svn cp . https://snthomas99@openbugs.svn.sourceforge.net/svnroot/openbugs/openbugs/branches/r3.1.1
The command is executed from within the trunk directory (if it is the version you want to commit). Issue a svn update command before the svn cp command. If using a bash shell, to write a commit message, it may be necessary to issue the command export VISUAL=vim to specify an editor before the svn cp command.
Packaging OpenBUGS for distribution
- increment version number in the following files
- System/Rsrc/Strings.odc
- Manual/Manual.odc
- Developer/Manual.odc
- GeoBUGS/Manuals/Manual.odc
- Bugs/CLI.odc (see linking ELF shared object)
- note: Although not required, it is a good idea to create the linux distribution first. If you have created any Linux-related binary files, chances are good that some Windows .ocf files were overwritten by some Linux .ocf files (specifically Host/Code/Files.ocf and Code/Kernel.ocf). Therefore, before packaging OpenBUGS for windows distribution, it is a good idea to delete all compiled objects and recompile. for example:
find -iname '*.osf' -o -iname '*.ocf' -exec rm -f {} \;
- Before compiling, also check that HostFiles.odc and Kernel.odc in directory lin have been renamed LinHostFiles.odc and LinKernel.odc
- Developer->Make.odc->DevCompiler.CompileThis
- Developer->Linking.odc->DevLinker.Link
- Developer->Linking.odc-> DevPacker.PackThis OpenBUGS.exe
- Developer->Linking.odc-> DevLinker.LinkDll
- close BlackBox entirely and reopen. Make sure no files are open in BlackBox before proceeding to the next step.
- Dev -> Copy OpenBUGS
- For a full release: use ftp -i openbugs.info to upload Manuals/*.html from the local c:/OpenBUGS directory (do not create a manuals subdirectory on the remote host). The windows ftp app is usually in /windows/system32 if it is not included in the default path. Upload Developer/*.html to the subdirectory Developer (do not create a manuals subdirectory inside of Developer). Also upload GeoBUGS/Manuals/*.html to the GeoBUGS subdirectory and GeoBUGS/Examples/*.html to the Examples subdirectory inside of the GeoBUGS directory, and similarly for ReliaBUGS in the Reliability directory. A username and password must be obtained from the wiki maintainer to use ftp. Also remember to check Manuals/contents.html before the Copy OpenBUGS step to make sure all section headings are collapsed. Otherwise, some will be ‘open’ in the distributed .odc and .html versions, which is confusing and ugly.
Creating the Windows installer
- create InnoSetup installer for OpenBUGS
- Generate a new AppId (Generate GUID in Tools Menu; note {{ on left is required )
- Increment AppVerName
- Increment DefaultDirName
- Increment OutputBaseFilename
- Increment Registry (end of options)
The setup executable is stored in openbugs/trunk/Output in the original build directory which contains the OpenBUGSSetup.iss file.
Making a new release
- Upload the windows installer and linux tar/package files to a new version-specific page
- Link the older program page to the archive page
- Change version numbers throughout the download page and reset the links
- Use ftp to upload the html versions of manuals/examples from the OpenBUGS copy created during installation
- Update the ‘changes’ file in what’s new
- Upload new BRugs and R2OpenBUGS package files if they have been created
- Copy the current OpenBUGS/trunk to a new release branch in svn
- Update the main trunk so the version numbers are updated there
- Create a new svn directory in the validation branch with the validation results summary
Linking OpenBUGS ELF shared object (for Linux)
find -iname '*.osf' -o -iname '*.ocf' -exec rm -f {} \;
(equivalent of “make distclean”)- Increment version number in the following files Bugs/CLI.odc
- Rename LinKernel to Kernel
- Rename LinHostFiles to HostFiles
- If compiling without Taucs (what you probably want for now) remove MathTaucsImp from the list
- Developer -> Make.odc -> DevCompiler.CompileThis
- Additionally, compile the following modules
- Lin/Mod/Console.odc
- Lin/Mod/Dl.odc
- Lin/Mod/HostFiles.odc
- Lin/Mod/Kernel.odc
- Developer -> Linking.Odc -> DevElfLinker.LinkDll