Systems Biology Workbench NEWS -- History of user-visible changes === Version 1.0.5 === * New and vastly improved Browser module written by Ben Kovitz and featuring a nice GUI interface. * Slight changes in config/java-default-clean.mk, to make it use $(package_name) * The getErrorMessage() method in the Python library will now use the detailed error message if the short message is empty. This is needed because sometimes a module may not set the short message, for example in the case of a Java module encountering an application (non-SBW) error. * Bug fix for bugs #713619 and #650942. Under Windows, the XML Schema for SBML is now placed into the Windows system directory, in order to have it in a location that is known and guaranteed not to have spaces in the file name. Otherwise, supplying the pathname to the Schema for Xerces results in errors if the pathname to the schema has spaces (as happens if the user installs SBW into \Program Files\ERATO or similar). * Bug fix for bug #678225 in ModuleImpl.java. * Bug fix for bug #722252. Gibson now builds under Red Hat 8.0. * Bug fix for bug #708296. Implemented the changes to sbw-make-jar proposed by J. Weimar. * Workaround for bug #668879. * Fixed quoting problems in the Windows .bat files. One has to be very careful about putting pathnames within double quotes in the .bat files and then handing them arguments that are also in double quotes, because the result expands into something that confuses the DOS shell. (Fixing the quoting fixed a problem where the installation on Windows would create a file called "C:\Program".) * Removed calls to gnu.regexp. There were only two places where the regexp package was used anyway. * The version number of the XML Schema file used for the Validator module now should match the latest schema file version number. The latest schema file for L1v1 is in the SBML project repository on SourceForge. * Made the use of certain variables in the Makefiles consistent across the board. This should have no functional impact on anything (unless I introduced bugs as a result :-(.) * Added the Kunststoff look&feel library to src/imported, because the new Browser uses it. === Version 1.0.4 === * We previously configured the installer for Windows (InstallAnywhere) to check the version of Windows the user is running and refuse to run on unsupported versions. This did not work properly for unknown reasons and many people reported being unable to install on Windows XP and 2000, which are ironically the best supported versions of SBW. To avoid this, the new Windows installer does not check the version of windows at all. We'll have to figure out a better solution some other time. === Version 1.0.3 === * The minimal installer for Windows now is much more minimal. It does not include any documentation, or debugging libraries. This reduces the size of the installer for people who only want to run applications with SBW and not do anything with SBW itself. * JDK 1.4 is now supported. * Ported "Gibson" simulator to Linux, and relaxed some of the checks for the kinds of rate laws allowed. It now allows constant rates, as well as other things, but it is not known whether this leaves the algorithm correct or not. Caveat modeler! * The C/C++ library had some bogosities related to how it determined the user's home directory and the SBW installation directory. These have been fixed. * A poor implementation of a network-related function in the Java libraries led to occasional failures on Windows systems to obtain the IP address of the machine. This caused all sorts of things to fail because SBW depends heavily on the IP address in order to name the directory where it stores runtime configuration files. The error manifested itself on Windows systems as applications not being able to connect to SBW. This particular problem should hopefully be fixed. * Dependencies should be handled much better by makefiles now, especially the C/C++ library under Linux. * The Perl library configuration attempted to install man pages and Perl-style "POD" documentation in system directories. These are typically not writable by non-root users on Unix-based systems, which lead to installation errors for most people. The makefiles are now fixed not to do that. * Makefiles should all now properly use $(MAKE) instead of 'make'. * The previous configure & Makefile setup failed to do a proper job of handling the configuration flags that let a user specify alternative locations of their Python and Numeric installations. The new scheme provides the following: --with-python=PATH The path to the Python executable. On Windows, this might be something like C:/Python22/python.exe. --with-python-includedir=DIR Adds the specific directory DIR to the list of include directories searched during compilation of the Python SBW library. This flag can be used multiple times. Here is an example of using this flag: --with-python-includedir=/home/mhucka/include/python2.2 --with-python-libdir=DIR Adds the specific directory DIR to the list of library directories used during compilation of the Python SBW library. This flag can be used multiple times. E.g.: --with-python-libdir=/home/mhucka/lib/python2.2/site-packages/Numeric Users who do not wish to use the Python library should configure with --disable-python. * Reorganized how doxygen is used to generate documentation for the C/C++ library. * Fixed bug in Broker, where it would hang if a client connected and immediately disconnected too fast for the Broker to set up its threads. === Version 1.0.2 === * The runtime files directory, ~/.sbw/runtime/HOST, now uses a host's IP address for the HOST part instead of using the host name. Canonical host names are difficult to get from Windows, and sometimes it would happen that the Java library would resolve host names fully or partially and the C library would do the opposite. The safest thing is to not use the host names at all, but use the IP address instead. * Added a new test module in sbw/tests called ConnectTestC. All it does is try to connect to the Broker, disconnect and exist. When built with debugging turned on, this is a handy tool for testing that everything is going ok with contacting the Broker on a machine. * Corrected some errors in the Java, Perl and module user manuals, and added more info about distributed operation using SSH. === Version 1.0.1 === * Created an InstallAnywhere installer for Linux. * Detailed installation and build instructions are now available in src/INSTALL.txt. * We rewrote the instructions for building and running the tutorials, and mostly eliminated the use of makefiles. This avoids problems with trying to have makefiles that work for the binary installations of SBW. * Added code in the installer to make the "sbwpython" script work for binary distributions. Also made the script set LD_LIBRARY_PATH so that under Linux, it can find the SBW shared libraries. * Added a new script called 'broker' in the bin subdirectory. This takes possible arguments "start", "stop" and "debug", allowing easy access to the most common operations on the broker and mimicking (albeit at the command-line level) the menu items installed in the "Systems Biology Workbench" Start Menu item under Windows. * Updated all the JBuilder project configuration files for all the Java code; the config files had gotten badly out of date. * Fixed a bug in the Java ModuleImpl constructor that takes 3 arguments. (Bug reported by richard.giuli@sri.com.) * Added help strings for the module and service definitions of many of the standard modules -- these were missing before. * Moved the utility programs CreateSBWProperties and CreateStartBroker to the 'lib' subdirectory instead of the 'bin' subdirectory. === Version 1.0.0 === * Split the distribution for Windows into two kinds: one is stripped down and lacks sources, api documentation or debugging libraries, and the other is a full distribution. * A Perl API library for SBW is now available. The programming manual is in docs/Perl_API.pdf. * A CORBA-SBW gateway is now implemented. The mapping between the two frameworks is documented in docs/api/corba-gateway.pdf. * Massive changes to the Broker to improve security, avoid the use of hardcoded port numbers, and allow multiple brokers on separate computers via SSH. The Broker has been almost entirely rewritten. * The Broker now accepts a number of command-line arguments to modify its behavior and perform certain useful functions. Particularly notable are the following: java -jar SBWBroker.jar --help Print a summary of the possible command-line flags. java -jar SBWBroker.jar --info Tries to find out if a broker is already running on the current machine, and if so, prints the ports on which it's listening. java -jar SBWBroker.jar --shutdown Shuts down the running broker on the currnet machine. java -jar SBWBroker-debug.jar --trace Run the Broker in tracing mode. (Note the use of SBWBroker-debug.jar instead of SBWBroker.jar.) * The Broker now listens on two ports by default, one for modules and one for remote Broker connections. The Broker port can be disabled by starting the Broker with the flag --no-remote. * The client API method "SBW.connect(hostname)" is now deprecated. Clients should use connect() to connect to the Broker on the local host, and the Broker will start and connect to remote Brokers as needed. There is also a new API method, link(hostname), that causes a Broker to connect to a remote Broker. New Brokers are started and connected automatically if methods such as SBW.getModuleInstance are given module names of the form "hostname:modulename". (This is explained in the SBW documentation.) * The methods release() and getLocalModuleInstanceId() in the high-level API (on class SBW) have been removed because they were unimplemented and it is not clear when they will be implemented in the future. * Service display names can no longer be empty strings. This is enfored by the addService() method in the various APIs. * Anonymous modules are assigned unique names by the Broker. The names have the form "anonymous-#", where "#" is the number of the instance. So, e.g., "anonymous-5". * There is a new exception, SBWBrokerStartException. This is thrown in situations that may involve the need to start a Broker if one is not already running. * Linking with the debugging Java library SBWCore-debug.jar now automatically turns on debug tracing. No additional arguments are necessary anymore. * The modules GillespieDriver, GillespieService, Inspector, and traytool are no longer distributed with the SBW distribution. They are now 3rd-party modules available from other authors. See the list in http://www.cds.caltech.edu/erato/sbw/. * The scripts directory has been reorganized. * The "api" subdirectory under docs has been renamed to "programmer". * Many bug fixes and improvements all around. === Version 0.8.1 === * Fixed bug that caused Service.getMethods() to throw exceptions like this: "Unable to get method help for method 0 on service id 2 of module instance id 3" * Added new module: Browser. === Version 0.7.35 === * Many internal methods in the Java API were previously exposed. This was a side-effect of having unwisely chosen how the Broker was packaged. In this new release, nearly all methods and classes that are not meant for public consumption are now closed. * The meaning of SBW_HOME has changed. It previously was the path to the "lib" directory of SBW. Beginning in this release, it is the path to the SBW installation directory (i.e., the directory that *contains* lib, bin, include, etc.). * A number of bugs in the C/C++ and Java client libraries have been fixed as a result of regression testing. These include making the Java 2-D array handling consistent with the C/C++ methods, fixing inconsistencies in the Java 1-D array handling, and fixing errors in signature parsing in the C++/C library. * Java Jar files are now constructed in a way that makes them self-starting. The Broker can be started up by simply running java -jar SBWBroker.jar Java modules can be run similarly. On Windows, double-clicking a .jar file in a file browser window will start the program. These jar files are created with a new utility called "sbw-make-jar" that is installed in the SBW bin directory and described in some detail in the SBW Java Programmer's Manual. Users are encouraged to package their modules using sbw-make-jar. There is one trade-off to this approach: the .jar files contain the SBW library classes right in. This means that if the SBW library changes, you must regenerate your modules. We feel that the portability and usability benefits are worth it, but we are interested in hearing from users how this new scheme works out and whether the trade-off is a good one. * On Unix/Linux systems, the SBW Broker now creates a ~/.sbw directory and puts the registry file sbwreg.xml there (unless the property sbw.broker.registry tells it to put the registry file elsewhere). * The C/C++ libraries could not previously start up the Broker unless the environment variable SBW_HOME was set. The libraries are now fixed, so that they have a built-in default set at compile-time. There remains the problem that if the SBW Broker JAR file is moved to a different location after installation, it will fail; this currently can only be resolved by setting the environment variable SBW_HOME. For the next release, we will add more heuristics, similar to what the Java library does now. * Some exceptions had different names between the C/C++ and Java libraries. These have been made consistent between the libraries. * One of the things that was previously exposed was the "sbw-managed" management mode, but it was never properly implemented. It's gone from the C/C++ and Java APIs, at least for now. The only two management modes currently supported are "unique" and "self-managed". * In Java, the modes UNIQUE and SELF_MANAGED were previously defined in class SBWRPC. They are now defined by class ModuleImpl. * The methods of the Java class SBW and certain others did not properly handle module help strings. Fixed. * The Java SBW.connect() method previously accepted a hostname/IP address argument but did not properly connect to brokers running on a remote computer. Fixed. You can now do SBW.connect("somehost") in Java to connect to the Broker running on "somehost". * The "Trig" tutorial code has been updated to reflect the API manuals a bit more closely. * New tutorials have been added. * The OptService and OptDriver modules have been removed. Updated versions of these modules will shortly be released as 3rd-party modules by Herbert Sauro. * The docs directory has been reorganized. Also, to save on space, the latex sources to the documents are no longer distributed; instead, we provide manuals in PDF form and, in some cases, autogenerated HTML docs (from Javadoc and Doxygen). The sources to the docs can be made available on request, but user feedback has indicated that the current docs directory takes up too much space and nobody wanted all that stuff anyway. * Detailed html documentation (from Javadoc and Doxygen) is now available for nearly all classes and methods in the Java and C++ API libraries. See the directory docs/api/autogenerated. * New method on Java class SBW: getSBWHome(). This returns a File object corresponding to the value of the SBW_HOME directory. * The C and C++ libraries are now extensively commented using doxygen-style comments. * A new SBW Delphi Programmer's Manual is now available. * The SBW Java Programmer's Manual has been updated and corrected. * The SBW C++ Programmer's Manual has been updated and corrected. * The SBW C Programmer's Manual has been updated and corrected. === Version 0.6.2 === * Fixed bug in tutorials/Java/TrigJClientModule where the interface for Trigonometry was wrong and lead to the example failing completely. * Fixed a variety of small problems in the Java run scripts used for all the Java components, and restructured the scripts so that they (hopefully) run more reliably. * Improvements to Delphi library. * Improvements to MathDriver, MathService, TrayTool modules. * Code documentation additions to the C/C++ libraries. === Version 0.6.1 === * New program: there is now a script, "sbwpython", installed in the bin directory. It takes care of starting up Python with the proper library path and startup file to load the SBW Python interface. It is especially useful for Linux/Unix users. * Bug fix: previous version had serious bug in implementation of DataBlockReader, wherein it would loop on reading from a socket if a module's connection was dropped abruptly. This would manifest itself as a looping thread left hanging around by the Broker. Fixed. * Bug fix: previous version did not properly determine the command line for starting up C/C++ modules under Linux. Fixed. * Bug fix: when the Java library had to start the Broker, the previous version would wait the full time-out period (set by the Java property "sbw.broker.startup.wait") before continuing. New implementation is much more sensible and continues as soon as it can connect to the broker. * Bug fix: the signature parser in the Java library did not parse '...' properly in signatures. Fixed. * The configuration files in the top-level src directory are slightly reorganized and several have been moved to a new subdirectory, "config". * The Java and C tutorials now have makefiles. The Java tutorial examples have substantially more code comments. * Nearly all the shell scripts have been renamed from their previous "foo.sh" names to simply "foo". * Java modules and tutorial directories now have scripts called "run" that simplify starting up and running Java-based modules. * For module authors, there is now a template script in src/scripts/unix called "module-tmpl" that can be used as a starting point for creating a run script for a Java module. Usage is simple: just modify the top part of the script to set two variables that specify the module's jar file and main class. * There is now a new file called "NEWS.txt" at the top level of the SBW distribution that summarizes the major changes in each released version of SBW. ----------------------------------------------------------------------------- S y s t e m s B i o l o g y W o r k b e n c h Andrew Finney, Herbert Sauro, Michael Hucka, Hamid Bolouri The Systems Biology Workbench Development Group JST ERATO Kitano Symbiotic Systems Project Control and Dynamical Systems, MC 107-81 California Institute of Technology Pasadena, CA, 91125, USA http://www.sbw-sbml/ mailto:sysbio-team@caltech.edu Last author: $Author: mhucka $ Last Modified: $Date: 2003/04/19 02:28:06 $ Copyright 2001-2002 California Institute of Technology and the Japan Science and Technology Corporation. See the file COPYING.txt or COPYING.html for copying and license information. ----------------------------------------------------------------------------- Local variables: version-control: never mode: indented-text end: