Release History

= Release types =

Releases are labeled with names of the form major.minor.point[-status]. There are two kinds of releases, full releases and "snapshot" releases. A full release such as 0.2.0 is distinguished by a missing status indicator. A snapshot release such as 0.2.0-SNAPSHOT is distinguished by the status label.

Full releases are stable; they will not be changed at all once announced. Instead, point releases may be made if required. Each full release includes a small downloadable distribution package for the server, sources for the sample broker, and detailed release notes. The actual server modules will be available through Maven Central, and will be automatically downloaded by maven when you first run the server.

Snapshot releases represent reasonably stable points along a development path, and will made when new features become available that are of interest to agent developers. They may or may not include downloadable distribution packages or release notes, but their status can be roughly assessed by looking at the current list of open issues on github. The latest deployed snapshot is always available in the server-distribution repo. Instructions for using particular snapshot releases will be sent out through the developer's mailing list; here's an example. Instructions for setting up a full server development environment are provided on the Power TAC developer's wiki at github.

= Release history =

The most recent release is shown first. For the more recent releases, the download links are given at the top of the release notes. For older versions, downloads are available on the github download page. This feature of github is now deprecated, so we can no longer use it for newer versions.

Power TAC simulation server, game visualizer, and sample broker, version 1.3.1, April 2016
This is the version prepared for the 2016 Power TAC tournament starting in June 2016. It includes a new customer type representing simple batteries, updates to match the 2016 game specification, and a number of other improvements.

Downloads:
 * Simulation server version 1.3.1: zip or tar.gz.
 * Sample broker source version 1.3.1: zip or tar.gz.

Release notes 1.3.1
New features:
 * All components are now built with (and require) Spring version 4 and Java 8. The Spring dependencies are satisfied at runtime, but the updated Java environment must be installed on development and execution platforms for both the server and broker.
 * The sample broker has been refactored into a core module, available through maven central, and a set of services that implement basic broker behavior (Issue #828). The hope is that this will simplify the job of broker developers by making clear which code elements might need to be changed to implement new broker behaviors.
 * Balancing costs are much higher in the past, since there were may cases in the 2015 tournament in which brokers were better off letting the balancing market supply a portion of their customer load (Issue #837).

Known problems:

Summary of resolved issues:
 * Re-running games with fixed weather data and random-number seeds now produces the expected results (Issue #667).
 * In sample-broker, the BrokerContext now correctly maintains its cash balance (Issue #821).

Power TAC simulation server and game visualizer, version 1.2.3, May 2015
This is an update to 1.2.2 with a fix for Issue #830. In this version, not only will customers ignore early-withdrawal payments when the minimum-duration is less than the customer's tariff-evaluation cycle, but customers are also aggressive about exploiting positive early-withdrawal payment opportunities. In other words, the possibility of a payment for early withdrawal from a tariff overrides the customer's normal inertia.

Downloads:
 * Simulation server version 1.2.3: zip, tar.gz.

Power TAC simulation server and game visualizer, version 1.2.2, April 2015
This is the version that finished the April 2015 final round, after a defective broker discovered a way to crash the 1.2.1 server. This version is network-compatible with the 1.2.0 Sample Broker, although in that case the broker will not have the newer validation code for Rates.

Downloads:
 * Simulation server version 1.2.2: zip, tar.gz.

Known defects in this version (and earlier versions):
 * There is a possible exploit in customer tariff evaluation that will allow a tariff with a positive early-withdrawal payment to be given credit even though the minDuration value is too short for the customer to ever collect the payment (Issue #830).

Power TAC simulation server and game visualizer, version 1.2.1, April 2015
This is the version that started the April 2015 Final round.

Downloads:
 * Simulation server version 1.2.1: zip, tar.gz.
 * Sample broker 1.2.0: zip, tar.gz.

Server release notes
The biggest changes are the addition of the Electric Vehicle and Electric Forklift-Truck customer models. Both are storage devices. The Electric Vehicle model is a bottom-up model of a number of personal electric vehicles (Teslas, Nissan Leafs, etc.) whose driving habits are drawn from Netherlands driving behavior data. They exhibit the full range of storage capabilities, including dumping energy back into the grid. The forklift model is several fleets of electric forklifts using large lead-acid batteries, operating on a shift schedule. They do not have vehicle-to-grid capacity (because their batteries have limited numbers of charge-discharge cycles), but they are quite flexible in the timing of their energy usage and offer a fair amount of storage capacity.

In addition to the new models, some stability improvements, new test cases, and documentation improvement, there are a number of visible updates in this version. Several relate to tariff evaluation, including:


 * Evaluation of tiered rates was incorrect, should now be correct (Issue #777).
 * The handling of negative tariff signup payments (where the customer pays the broker for the privilege of subscribing) had to be disabled in the 2014 competition because it was being used to abuse customers (Issue #766). In this release, the customer amortizes signup fees over a much shorter period, and revocation of a tariff with a negative signup fee results in full refunds to customers.
 * Fixed a flaw in evaluation of incomplete customer profiles (Issue #792).
 * Withdrawal fees are no longer assessed for revoked tariffs (Issue #762).
 * All customer models that have flexibility in their energy usage patterns now create custom usage profiles for evaluating time-of-use tariffs (Issue #795).
 * Fixed a flaw in evaluation of signup bonuses, which were given too much weight for some customers (Issue #825).

Several customer models have been updated and cleaned up, including:


 * The basic interaction between customer models and the simulation has been refactored and unified, making the construction of new customer models much easier (Issue #781).
 * The officecomplex-customer model was getting signing up for multiple tariffs, and messing up the customer-count in the visualizer (Issue #807).
 * The factored-customer model has been re-worked in several areas, especially with respect to time management (Issue #782), and a new SolarLeasing customer has been created within the factored-customer framework.

Other interesting changes since the 1.1.1 release include:


 * The total imbalance per timeslot is now available through a new BalanceReport message broadcast to brokers in each timeslot (Issue #755).
 * Balancing actions using down-regulation are now handled correctly (Issue #817).

Power TAC simulation server and game visualizer, version 1.1.1, August 2014
This is a point release for the 2014 competition version of the server that fixes issue #780 that was causing strange behavior when one of the released agents submitted time-of-use tariffs that did not cover all the hours of the day. The intention was to reject such tariff offerings, but in the case of incomplete coverage the tariff would be rejected and partially erased, but then accepted and published anyway.

Brokers from the 2014 competition, and brokers compiled with version 1.1.0-SNAPSHOT or 1.1.0 of the sample broker code should be compatible with this release.

Downloads:
 * Simulation server binary package tar.gz zip

Power TAC simulation server, sample broker, and game visualizer, version 1.1.0, August 2014
This is the version used in the May and June 2014 competitions, with a few minor fixes.

Downloads:
 * Simulation server binary package tar.gz zip,
 * Sample broker source package tar.gz, zip

Server release notes
In addition to a number of stability improvements, there were also quite a few visible changes since the previous release, including:


 * Weather forecasts are more accurate (issue #645) and contain prediction 1-24 hours into the future, rather than 0-23 (issue #682).
 * Loading weather data from a file (rather than from the weather server) now works more reliably (issue #730).
 * Weather reports from the bootstrap period are now stored in the WeatherRepo (issue #745).
 * Tariff revocation messages are now sent to all brokers (issue #719) rather than just to the broker that issued the revoked tariff.
 * The server now supports thermal and battery storage devices, with a new PowerType and the ability to specifically pay for balancing events rather than just offering a general discount (issues #724, #653). This feature makes use of the new RegulationRate type (issue #740). The balancing market now handles curtailment of both production and consumption (issue #671).
 * CustomerInfo now specifies the maximum available controllable capacity (issue #697).
 * The BalancingMarket is now a separate module, making it easier to experiment with different implementations (issue #578).
 * Brokers can no longer supersede each others' tariffs (issue #731).
 * The household and officecomplex customer models do a better job of evaluating tariffs (issue #735). Other problems with tariff evaluation have been fixed (issues #763, #768).
 * Additional validation checking on Orders (issues #738, #739).
 * The wholesale market now requires a minimum order quantity (issue #742).
 * A rare problem with wholesale market clearing has been fixed (issue #767).
 * The default genco model now produces prices that mimic the price curve at a load node subject to congestion pricing (issue #737). The core pricing model is a configurable polynomial function, in which the constant and quadratic coefficients vary through a configurable random walk.
 * Slippage of the sim clock now causes a sim to abort (issue #729). This is the only approach we have been able to find that handles the problem of the sim not getting control (because of processor contention) for more than one tick.
 * Customers are no longer charged withdrawal fees for revoked tariffs (issue #762).
 * Corrections in Visualizer display (issue #744).

Sample Broker release notes

 * The sample broker now includes examples of annotation-based configuration -- see for example MarketManagerService (issue #717). This works in all packages (issue #723), but only classes in org.powertac can be specified without the full package path.
 * Javadoc documentation has been improved significantly (issue #720) and is now being automatically generated when changes are pushed to the master branch (issue #713).
 * TariffRepo now works correctly in brokers, where it can be used to track competing tariffs (issue #722).
 * The tariff supersede example in PortfolioManager now works correctly (issue #736).
 * Tariff id values are now constrained to conform to the prefix sent by the server (issue #734).
 * Methods that handle incoming messages are now synchronized to allow for correct operation of multi-threaded broker designs.
 * Packaged brokers (distributed as executable jar files) can now read their default configuration files correctly (issue #778).

Known issues
There are a few unresolved issues at the time of release, including:


 * There is a possibility of discontinuity in the interaction of balancing orders and tariff subscription changes (issue #733).
 * Re-running games with stored random seeds does not behave exactly as expected (issue #667).
 * Customer tariff evaluation does not handle tariffs with negative signup payments as well as it should (issue #766). There are a few other potential problems remaining with tariff evaluation (issues #771, #777).
 * Total imbalance per timeslot should be public information. There is currently no way to communicate this to brokers (issue #775).

Power TAC simulation server and game visualizer, version 1.0.1, July 2013
This is the version of the server actually used in the July 2013 competition. It differs slightly from version 1.0.0 in two ways:
 * Weather data is fetched asynchronously, reducing the probability of pauses every 24 hours due to delays fetching this data.
 * There are some small improvements to the Visualizer.

This version is compatible with version 1.0.0 of the sample broker, so there is no corresponding release of the sample broker.

Download the binary package in tar.gz or zip format.

Power TAC server, sample broker framework, and game visualizer, version 1.0.0, June 2013
Downloads:
 * Simulation server binary package tar.gz zip,
 * Sample broker source package tar.gz, zip

This is the version intended for the July 2013 annual competition. The server and broker are far more stable, and a number of issues related to their interactions in multiple-game tournament environments have been resolved.

Server release notes

 * The Visualizer has been completely re-designed, and mostly re-written. The presentation is much more consistent, and the mouse-over behavior is more informative. Visualizer displays can be exported to multiple graphical formats, including svg, which can be used in publications.
 * Customer tariff evaluation has been completely re-designed, documented, and re-written (Issues #673, #633, #689).
 * Representation of time in domain types and in JMS messages is simplified. In most cases, timeslot index is used rather than timeslot reference or milliseconds (Issue #640).
 * Context-switch delays from the underlying platform no longer affect the timeslot sequence. Instead, they are detected, the sim clock is adjusted, and the adjustment is sent to brokers (Issues #519, #706).
 * Incorrect bootstrap file path no longer crashes the server (Issue #535).
 * Games can be re-run with repeated random-seed values and repeated weather data (Issue #648).
 * Anomalous buy orders no longer generate cleared trades with negative prices (Issue #644).
 * Weather data in bootstrap files now contains timeslot information (Issue #660).
 * Quantities in distribution transactions are now computed correctly. Brokers can no longer get paid for using the service (Issues #669, #691).
 * CashPosition is now an immutable type, and it gets logged to the state log, so broker balances are now much easier to track (Issues #541, #666).
 * Rate structure is cleaned up, much better documented, Rate validation has been rewritten, and a number of test added to validate various tariff variations (Issues #665, #692, #704).
 * Bootstrap sessions no longer start the JMS process (Issue #599).
 * Multiple improvements in the state log format (Issue #564).
 * Balancing now includes transactions from the current timeslot (Issue #681).
 * Market transactions are now posted when power is delivered, rather than when it is ordered. This can make a big difference at end-of-game (Issue #474).
 * Customer models are now subscribing to reasonable production tariffs (Issue #677).
 * Chained constructors no longer generate multiple state log entries (Issue #684).
 * Brokers are now notified when wholesale market orders are rejected (Issue #296).
 * Variable-rate tariffs now work as advertised (Issues #690, #686).
 * Weather forecasts are finally working correctly (Issue #699).
 * Tariffs of failed broker are now automatically revoked (Issue #702).

Sample Broker release notes

 * A maven goal and associated documentation have been added to assist broker developers with creating standalone binary distribution packages for their brokers (Issue #652).
 * Brokers can be run on platforms without ntp, using a new command-line option and an approximate synchronization based on timing the initial login handshake (Issue #693).
 * MarketManager now recycles correctly between sessions in a multiple-session run (Issue #705).

Known issues

 * There is a memory leak in the Visualizer (Issue #710). This is usually not a problem in a single game, but can bring down the server after a few sessions without a restart.
 * There remains some unhelpful variability when running games using pre-recorded random seeds (Issue #667).
 * The supersedes list in a TariffSpecification is not getting into the state log (Issue #685).

Older releases
= Release history for the 2011 Grails prototype =

Instructions for the original Grails version of the Power TAC simulation server.