It is my pleasure to announce the release of SimPy 2.1.0beta. It is ready for download at https://sourceforge.net/projects/simpy/. It is published for community testing. SimPy 2.1.0 is a major new version, with a refactored code base, two powerful API additions, additional documentation and bug fixes. 2.1.0 is fully backward compatible with 2.0.1 and earlier versions. Do not use this release for production purposes yet, but help with testing it. Submit any bugs/comments/suggestions to the SimPy user mailing list (simpy-users@lists.sourceforge.net). What is SimPy? ~~~~~~~~~~~~~~ SimPy (= Simulation in Python) is a process-based discrete-event simulation package based on an implemented in standard Python. It is released under the GNU LGPL. It provides the modeller with components of a simulation model. These include processes, for active components like customers, messages, and vehicles, and resources, for passive components that form limited capacity congestion points like servers, checkout counters, and tunnels. It also provides monitor variables to aid in gathering statistics. SimPy has plotting and GUI capabilities "out of the box". It comes with extensive documentation, tutorials and a large number of example models. Dependencies ~~~~~~~~~~~~ SimPy 2.1.0 works with Python 2.3 and later versions. It does not work with Python 3.x. SimPy also works with Jython and IronPython, with the exception of SimPy's plotting and GUI capabilities. Change notes ============ Here are the changes to the previous SimPy release (2.0.1): Additions ~~~~~~~~~ - A function `step` has been added to the API. When called, it executes the next scheduled event. (`step` is actually a method of Simulation.) - Another new function is `peek`. It returns the time of the next event. By using `peek` and `step` together, one can easily write e.g. an interactive program to step through a simulation event by event. - A simple interactive debugger ``stepping.py`` has been added. It allows stepping through a simulation under user control, viewing the event list, skipping to a process' next event, etc.. - Versions of the Bank tutorials using the advanced object-oriented API have been added. - A new document describes tools for gaining insight into and debugging SimPy models. Changes ~~~~~~~ - Major re-structuring of SimPy code, resulting in much less SimPy code -- great for the maintainers. - Checks have been added which test whether entities belong to the same `Simulation` instance. - The `Monitor` and `Tally` methods `timeAverage` and `timeVariance` now calculate only with the observed time-series. - Changed class `Lister` so that circular references between objects no longer lead to stack overflow and crash. Bug repairs ~~~~~~~~~~~ - Functions ``allEventNotices`` and ``allEventTimes`` are working again. - Error messages for methods in SimPy.Lib work again. Acknowledgements =============== The great code refactoring was done by Ontje Lünsdorf, with key inputs from Stefan Scherfke. Thanks, guys! I also thank the other developers and users for their inputs and support in defining SimPy 2.1.0. Now, go ahead, download SimPy 2.1.0beta, and then test it. (Did you know that you can easily create an isolated Python environment with virtualenv { http://pypi.python.org/pypi/virtualenv }? Use that, and you don't have to overwrite your current SimPy installation for testing 2.1.0. Also good if you are new to SimPy and just want to try it out.) Klaus Müller