Difference between revisions of "Release History"

From powerwiki
Jump to: navigation, search
(Release history)
(Power TAC simulation server and game visualizer, version 1.4.4, June 2017)
(48 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
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.
 
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 downloadable distribution package, detailed release notes, and will be available through [http://search.maven.org Maven Central].  
+
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 [http://search.maven.org 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 [https://github.com/powertac/powertac-server/issues current list of open issues on github]. To use a snapshot release, you will typically need to clone at least one of the git repositories from [https://github.com/organizations/powertac the Power TAC development archives]. Instructions for using particular snapshot releases will be sent out through the [http://power-tac-developers.975333.n3.nabble.com/ developer's mailing list]; [http://power-tac-developers.975333.n3.nabble.com/Announcement-Java-based-sample-broker-implementation-available-td3644967.html here's an example]. Instructions for setting up a full server development environment are provided on the [https://github.com/powertac/powertac-server/wiki Power TAC developer's wiki at github].
+
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 [https://github.com/powertac/powertac-server/issues current list of open issues on github]. The latest deployed snapshot is always [https://github.com/powertac/server-distribution/archive/master.zip available in the server-distribution repo]. Instructions for using particular snapshot releases will be sent out through the [http://power-tac-developers.975333.n3.nabble.com/ developer's mailing list]; [http://power-tac-developers.975333.n3.nabble.com/Announcement-Java-based-sample-broker-implementation-available-td3644967.html here's an example]. Instructions for setting up a full server development environment are provided on the [https://github.com/powertac/powertac-server/wiki Power TAC developer's wiki at github].
  
 
= Release history =
 
= Release history =
  
The most recent release is shown first.
+
The most recent release is shown first. For the more recent releases, the download links are given at the top of the release notes. Older versions are available ....
  
== Power TAC server, sample broker framework, and game visualizer, version 0.6.3, December 2012 ==
+
== Power TAC simulation server and game visualizer, version 1.4.4, June 2017 ==
  
Downloads: [https://github.com/powertac/server-distribution/archive/server-distribution-0.6.3.tar.gz server distribution package]
+
This is a minor bugfix update of 1.4.3, which fixes a bug encountered at the beginning of the 2017 tournament. Note that this release does not update powertac-core or the sample-broker.
  
This is the final release in the 0.6 series that was used in the 2012 competitions. There are several changes affecting the sim server and brokers, most of them focused on stability and validation of broker-server interactions.
+
Downloads:
 +
* [https://github.com/powertac/server-distribution/releases/tag/v1.4.4 Power TAC simulation server distribution package Version 1.4.4]
  
 +
=== Release notes 1.4.4 ===
 +
* In the balancing market, fixed the sign on the p1 value for cases of brokers with positive imbalance in a down-regulation environment([https://github.com/powertac/powertac-server/issues/941 Issue #941]).
  
 +
== Power TAC simulation server, game visualizer, and sample broker, version 1.4.3, May 2017 ==
  
== Power TAC server version 0.6.2, September 2012 ==
+
This is a minor bugfix update of 1.4.2. It will be used for the 2017 tournament.
  
This is a point release that fixes two problems with 0.6.1. The first is a correction to the tariff evaluation logic in the customer models, and the second is an update to the DU balancing market that correctly handles a non-zero slope in the cost function of the external "regulating market". The result is that the cost of imbalance is a fairly noticeable function of the size of the imbalance (default is .01/10 MWh), and that a broker can benefit from being on the "good side" of the overall imbalance. So if the overall imbalance is positive (surplus power), then a broker with an individual negative imbalance is better off than it would be if the overall imbalance were negative.
+
Downloads:
 +
* [https://github.com/powertac/server-distribution/releases/tag/v1.4.3 Power TAC simulation server distribution package Version 1.4.3]
 +
* [https://github.com/powertac/sample-broker/releases/tag/v1.4.3 Sample Broker source version 1.4.3]
  
This release does not change the common or server-master modules, so there is no need to recompile brokers.
+
=== Release notes 1.4.3 ===
 +
* Sample broker now correctly processes the --repeat-hours command-line option ([https://github.com/powertac/powertac-server/issues/935 Issue #935]).
 +
* One of the customer models was incorrectly evaluating tariffs with high early-withdrawal fees ([https://github.com/powertac/powertac-server/issues/931 Issue #931]). This was an exploitable bug with the potential to affect tournament outcomes.
 +
* The evaluation order for peak-demand assessment has been corrected to consider only the highest peaks among the qualifying instances of peak demand ([https://github.com/powertac/powertac-server/issues/936 Issue #936]). As a result, the per-MW fee for capacity peaks has been substantially reduced.
 +
* Validation of incoming Orders has been enhanced to better deal with non-numeric price values from brokers ([https://github.com/powertac/powertac-server/issues/937 Issue #937]).
 +
* Validation of tariff Rates was improved to prevent out-of-bounds daily/weekly start-finish times from raising exceptions in the server ([https://github.com/powertac/powertac-server/issues/939 Issue #939]). These values are needed to specify time-of-use tariffs.
 +
* Some of the Large Customer models were incorrectly identified as Small Customers in the CustomerInfo structure passed to brokers at the start of a game ([https://github.com/powertac/powertac-server/issues/938 Issue #938]). These are now correctly identified.
 +
* A couple of minor configuration issues in the server were corrected ([https://github.com/powertac/powertac-server/issues/933 Issue #933] and [https://github.com/powertac/powertac-server/issues/932 Issue #932]).
  
== Power TAC server, sample broker framework, and game visualizer, version 0.6.1, July 2012 ==
+
== Power TAC simulation server, game visualizer, and sample broker, version 1.4.2, May 2017 ==
  
This release is focused on stability rather than functionality, especially stability in a multi-game tournament situation. The only significant functional changes are in the operation of the balancing market, which should effectively discourage running large current-timeslot deficits, and in the tariff-evaluation behavior of the customer models, which will discourage excessive periodic charges in tariff offerings. It includes an updated server, broker framework, and game visualizer, and works with an updated tournament manager.
+
This is a bugfix update of 1.4.1. It was intended to be the version used for the 2017 tournament.
  
The tournament manager is not formally released at this point, but we believe it is stable and performs correctly. Although there is [https://github.com/powertac/powertac-server/wiki/Tournament-Installation some documentation on setting it up], it is incomplete and fairly complex, and it requires several server machines dedicated to it in order to do anything useful.
+
Downloads:
 +
* [https://github.com/powertac/server-distribution/releases/tag/v1.4.2 Power TAC simulation server distribution package Version 1.4.2]
 +
* [https://github.com/powertac/sample-broker/releases/tag/v1.4.2 Sample Broker source version 1.4.2]
  
In addition to the functional changes, there have been some API changes and a thorough re-working of the interactions among brokers, simulation servers, visualizers, and the tournament scheduler at the beginning of each game. Brokers and visualizers no longer create queues on the simulation servers; rather, the servers create all the queues. Queue names are generated by the tournament scheduler, and provided to both brokers and visualizers when they log in.
+
=== Release notes 1.4.2 ===
 +
* Sample broker now runs correctly from a jar file ([https://github.com/powertac/powertac-server/issues/920 Issue #920]).
 +
* New visualizer now accepts broker names with embedded dash ([https://github.com/powertac/powertac-server/issues/916 Issue #916]).
 +
* Parameterized and updated the shape of the supply curve in the wholesale market to more accurately reflect the impact of congestion at high demand levels ([https://github.com/powertac/powertac-server/issues/929 Issue #929]).
 +
* Updated logtool-core to correctly run multiple sessions ([https://github.com/powertac/powertac-server/issues/930 Issue #930]). This was never needed when running logfile analyzers, but is important now that the new visualizer uses logtool-core to replay games from logs.
 +
* Fixed a problem with the Weather Service that was occasionally causing an ArrayIndexOutOfBounds exception ([https://github.com/powertac/powertac-server/issues/922 Issue #922]).
 +
* Fixed NPE in old visualizer that happened when inspecting tariff market display ([https://github.com/powertac/powertac-server/issues/923 Issue #923]).
 +
* Simplified the writing of logfile analyzers by adding reflection-based connection between incoming messages and message handlers ([https://github.com/powertac/powertac-server/issues/928 Issue #928]).
 +
* Changed the bundling of logfiles in the tournament manager to include boot record and boot logs ([https://github.com/powertac/powertac-server/issues/886 Issue #886]).
  
=== Release Notes ===
+
== Power TAC simulation server, game visualizer, and sample broker, version 1.4.1, March 2017 ==
  
Changes to the simulation server in this release include:
+
This is the version on which we expect to run the 2017 tournament.
  
* Wind data in the weather reports are interpolated in cases of missing data ([https://github.com/powertac/powertac-server/issues/536 Issue #536]). This should make the output of wind turbines more predictable.
+
Downloads:
* Customer models do a better job of evaluating tariff offerings, especially when periodic payments are included ([https://github.com/powertac/powertac-server/issues/556 Issue #556]).
+
* Simulation server version 1.4.1: [https://github.com/powertac/server-distribution/releases/tag/v1.4.1 zip or tar.gz].
* The simulator does a better job validating and interpreting broker tariff offers ([https://github.com/powertac/powertac-server/issues/557 Issue #557]).
+
* Sample broker source version 1.4.1: [https://github.com/powertac/sample-broker/releases/tag/v1.4.1 zip or tar.gz].
* The trace log files are somewhat smaller, partly because the xml messages are not included, and partly because most unsuccessful broker and visualizer logins are invisible to the server and therefore are not logged ([https://github.com/powertac/powertac-server/issues/560 Issue #560]).
 
* Processing of tariff revocations has been refactored and improved, and customers are no longer able to subscribe to or use power against revoked tariffs once the revocation processing is complete. But revocations are processed at the end of timeslot processing, so customers can use power for at most one further timeslot after a broker has sent the revoke message ([https://github.com/powertac/powertac-server/issues/565 Issue #565]).
 
* Brokers can no longer re-use the ID values of revoked tariffs. All tariff specifications are now rejected if they do not have unique ID values ([https://github.com/powertac/powertac-server/issues/567 Issue #567]).
 
* The balancing market has been updated in two ways. First, the marginal cost of imbalance increases as the size of the imbalance increases ([https://github.com/powertac/powertac-server/issues/568 Issue #568]); and second, the imbalance penalties can be reduced substantially with balancing orders, and in cases where a broker is on the "good" side of the imbalance (in surplus when the market has a shortage, and in deficit when the market has a surplus) ([https://github.com/powertac/powertac-server/issues/593 Issue #593]).
 
  
Changes to the sample broker framework include:
+
=== Release notes 1.4.1 ===
  
* The broker framework now runs multiple sessions without need of an external shell script ([https://github.com/powertac/powertac-server/issues/561 Issue #561]). The command-line interface allows specification of number of sessions (games) or the length of time to keep trying to log in to a tournament. This is accomplished by a complete re-load of the Spring context, and so does not depend on careful management of data structures.
+
New features:
* The broker login protocol for both tournaments and individual simulations has changed ([https://github.com/powertac/powertac-server/issues/574 Issue #574]). Specifically, brokers are no longer permitted to create queues in the server. Instead, in a development situation the queue name is the broker's username (although this can be overridden with command-line arguments for testing), and in a tournament situation both the broker and simulator are given the queue names as part of the game setup by the tournament manager.
+
* The wholesale market now models a larger population of buyers beyond the set of Brokers serving the Power TAC scenario [https://github.com/powertac/powertac-server/issues/878 Issue #878]. This means that the restriction on market position implemented to prevent "cornering the market" in the 2016 competition is lifted. Overall demand is increased by a factor of 11 (the "MISO buyer" purchases roughly 10 times the energy needed by the Power TAC scenario). However, the demand from the MISO buyer is generated from a time series that models the actual demand of the North Central region of the North American Midwest Independent System Operator. This population has a different consumption/production mix from the Power TAC scenario (much lower penetration of solar production, for example). On the other hand, the current temperature as reported by the Power TAC weather service affects the MISO demand, increasing strongly for uncomfortably high temperatures and less strongly for uncomfortably low temperatures.
 +
* The new visualizer, first introduced in the 2016 competition, replaces the original Power TAC visualizer, which is no longer supported. The new visualizer has the ability to re-play games from a state log, or from a logfile tarball in the format produced by the tournament scheduler. The source of the logfile tarball can either be a URL or a local file specified as a file:// URL. To better support this functionality, several improvements have been made in the logfile reader (in the logtool-core module), which is now integrated into the Power TAC simulation server.
  
In addition to a number of small improvements, changes to the game visualizer include:
+
Known problems:
 +
* Regulation and curtailment are not perfectly synchronized with tariff subscription changes, and so sometimes a customer gets the wrong value for regulation in the timeslot after a subscription change ([https://github.com/powertac/powertac-server/issues/733 Issue #733]).
 +
* It is currently very difficult to get the Power TAC simulation server or broker to operate correctly through proxy servers ([https://github.com/powertac/powertac-server/issues/842 Issue #842]).
 +
* Brokers are not notified if the wholesale market rejects their orders ([https://github.com/powertac/powertac-server/issues/873 Issue #873]) although the causes of rejected orders are fairly obvious, such as quantity below theshold.
  
* Customers and PowerTypes are represented much more clearly ([https://github.com/powertac/powertac-server/issues/525 Issue #525]), and power producers are listed separately from consumers.
+
Summary of resolved issues:
* There is much more detail on the wholesale power market ([https://github.com/powertac/powertac-server/issues/530 Issue #530]), including a history of spot prices, and the leadtime-cost curve for each timeslot.
+
* The names of logfiles generated by tournament games now match the names of the games in the tournament scheduler's table display ([https://github.com/powertac/powertac-server/issues/879 Issue #879]).
* The interaction of the visualizers with the tournament manager and simulation servers has been completely refactored and tested ([https://github.com/powertac/powertac-server/issues/576 Issue #576]).
+
* Customers now treat tariffs with positive signup bonuses with some suspicion, by re-evauating available tariffs once they have received the bonus ([https://github.com/powertac/powertac-server/issues/877 Issue #877]).
 +
* Fixed a problem that occasionally prevented brokers from logging in to tournament games ([https://github.com/powertac/powertac-server/issues/880 Issue #880]).
 +
* Fixed a problem in which a broker that withdrew from all its tariffs and therefore had no consumption still had to pay peak-capacity fees ([https://github.com/powertac/powertac-server/issues/882 Issue #882]).
 +
* Fixed accounting for Balancing Control Events in the case where a broker had no imbalance ([https://github.com/powertac/powertac-server/issues/889 Issue #889]).
 +
* Drastically simplified the build process by re-modularizing the various bits and pieces into a powertac-core super-module that builds in one step and contains the powertac-parent pom as well as common, and a powertac-server module that is now a clean super-module that can be built in one step ([https://github.com/powertac/powertac-server/issues/903 Issue #903]).
 +
* Cleaned up configuration across modules, removing all non-default configuration from server-main (which forced a re-build to incorporate changes) and mostly moving it to server-distribution, where it is distributed in source form ([https://github.com/powertac/powertac-server/issues/911 Issue #911]).
 +
* The sample broker now distinguishes between normal and regulation tariff transactions, and incorporates regulation transactions accurately into its records of customer production/consumption. The resulting broker performs significantly better than the original sample-broker due to better tracking of customer behavior ([https://github.com/powertac/powertac-server/issues/898 Issue #898]).
  
There remain a few annoying, mostly cosmetic issues, that have not yet been addressed, including:
+
== Power TAC simulation server, game visualizer, and sample broker, version 1.3.3, July 2016 ==
  
* Market transactions are posted sooner than they should be, causing a slight distortion of a Broker's cash position ([https://github.com/powertac/powertac-server/issues/474 Issue #474]).
+
This is the version that ran the final round of the 2016 competition.
* The user interactions in the Customer and Broker panels of the visualizer do not always work as expected (Issues [https://github.com/powertac/powertac-server/issues/570 #570], [https://github.com/powertac/powertac-server/issues/602 #602], and [https://github.com/powertac/powertac-server/issues/603 #603]).
 
* The format of the simulation state logs is a bit awkward in places. See for example Issues [https://github.com/powertac/powertac-server/issues/539 #539] and [https://github.com/powertac/powertac-server/issues/541 #541].
 
  
== Power TAC server version 0.5.1, 7 May 2012 ==
+
Downloads:
 +
* Simulation server version 1.3.3: [https://github.com/powertac/server-distribution/releases/tag/v1.3.3 zip or tar.gz].
 +
* Sample broker source version 1.3.3: [https://github.com/powertac/sample-broker/releases/tag/v1.3.3 zip or tar.gz].
  
This is a bugfix update of 0.5.0. Specifically, [https://github.com/powertac/powertac-server/issues/531 issue #531] is fixed, so the balancing market should work correctly without producing NaN values. The [https://github.com/downloads/powertac/powertac-server/powertac-server-0.5.1.tgz download package] is available on github. The sample broker is unmodified, and remains at version 0.5.0.
+
=== Release notes 1.3.3 ===
  
== Power TAC server version 0.5.0, April 2012 ==
+
Known problems:
 +
* The new visualizer that was used in the 2016 tournament does not yet work in research mode.
 +
* Brokers are incorrectly assessed capacity charges in the (rare) case where a broker pays capacity charges and then cancels all tariffs before the start of a subsequent capacity assessment interval ([https://github.com/powertac/powertac-server/issues/882 Issue #882]).
 +
* The problem of cornering the wholesale market ([https://github.com/powertac/powertac-server/issues/870 Issue #870]) is caused by a game-design flaw ([https://github.com/powertac/powertac-server/issues/878 Issue #878]). A better fix would be to make the wholesale market effectively model a large number of distribution grids, each with demand profiles somewhat similar to the Power TAC customer models. This would reduce the market power of individual brokers in the wholesale market, and eliminate the need for an artificial limit on market share.
 +
* The published server configuration is sent to brokers at the start of a simulation session, but is not recorded in the server log ([https://github.com/powertac/powertac-server/issues/888 Issue #888]). This makes it difficult to write a log analyzer without hard-coding server parameters.
  
As with previous releases, the server is [https://github.com/downloads/powertac/powertac-server/powertac-server-0.5.0.tgz distributed] in the form of a small directory called "server-distribution" that contains a README.txt file, a sample server configuration file, and a maven pom.xml file. Detailed instructions for configuring and running the server are in the README.txt file.
+
Summary of resolved issues:
 +
* Broker id prefix values are now correctly assigned in tournament mode ([https://github.com/powertac/powertac-server/issues/880 Issue #880]). Tournament games prior to this fix could be difficult to analyze because of id value collisions.
 +
* Customers are now much more likely to re-evaluate tariffs with high signup bonus values and short durations as soon as they expire ([https://github.com/powertac/powertac-server/issues/877 Issue #877]).
 +
* Resolved a problem of duplicate usage profiles in the boot record for some storage types ([https://github.com/powertac/powertac-server/issues/869 Issue #869]).
 +
* The potential for cornering the wholesale market and profiting from it have been greatly reduced by limiting wholesale market share, and by limiting the seller's margin ([https://github.com/powertac/powertac-server/issues/870 Issue #870]).
 +
* The DistributionReport message now includes the timeslot index value ([https://github.com/powertac/powertac-server/issues/868 Issue #868]).
  
The [https://github.com/downloads/powertac/powertac-server/sample-broker-0.5.0.tgz sample broker implementation] is also updated for this release.
+
== Power TAC simulation server, game visualizer, and sample broker, version 1.3.2, May 2016 ==
  
=== Release Notes ===
+
This is a minor update of release 1.3.2 that adds data elements to two message types. This was requested by broker developers, and makes the message format a bit more consistent. Because the changes are in the common module, all server modules are updated, and brokers can take advantage of the changes by compiling with broker-core 1.3.2.
  
This release is feature-complete for the 2012 international competition. It includes a web-based front-end for controlling and viewing simulations, several new features, and a number of bugfixes. New features include:
+
Downloads:
 +
* Simulation server version 1.3.2: [https://github.com/powertac/server-distribution/releases/tag/v1.3.2 zip or tar.gz].
 +
* Sample broker source version 1.3.2: [https://github.com/powertac/sample-broker/releases/tag/v1.3.2 zip or tar.gz].
  
* The Visualizer, a web-based front-end that lets you set up and start games, and then watch them.
+
=== Release notes 1.3.2 ===
* [https://github.com/powertac/powertac-server/wiki/Controllable-capacity Controllable capacity] in customer models, indicated by a PowerType of INTERRUPTIBLE_CONSUMPTION, and supported by new representation including
 
** Customers that support interruption will generally shift their demand to the subsequent timeslot, on in some cases will spread the shift out over a couple of timeslots.
 
** EconomicControlEvents that allow a broker to curtail some portion of the power demand for a specific tariff over a specified timeslot,
 
** BalancingOrders that allow a broker to offer some portion of the customer demand for a specific tariff to the DU to be used to offset supply-demand imbalances. Brokers are paid when their BalancingOrders are exercised according to the scheme described in Section 6.2.3 of the game specification.
 
** BalancingControlEvents notify brokers when their BalancingOrders are exercised.
 
** A Rate for a Tariff with a PowerType of INTERRUPTIBLE_CONSUMPTION can specify the maximum proportion of the customer's offered load that can be curtailed in a given timeslot.
 
* Broker login is much more forgiving - you can start brokers before the server is running, and they will periodically re-try their logins until the server is ready for them. You can also limit the time the server will wait for all specified brokers to log in. This feature requires the updated core elements of the sample broker package.
 
* Server configuration information is communicated to brokers in the form of a Properties object rather than the earlier, somewhat idiosyncratic PluginConfig instances.
 
* Communication between the server and brokers uses a simple 2-secret scheme to discourage spoofing (presumably by other brokers). The broker logs in with the name of its queue, and the server passes a short token when the login is accepted, which must be pre-pended to each message sent to the server. This is implemented in the updated sample broker package.
 
* Boot sessions run much faster. The default currently is 400 msec/timeslot, and it could probably be half that without causing problems.
 
  
In addition, a number of issues have been resolved, including
+
* TariffTransaction now provides the isRegulation() method ([https://github.com/powertac/powertac-server/issues/867 Issue #867]).
 +
* DistributionReport now provides the getTimeslot() method that returns the timeslot index ([https://github.com/powertac/powertac-server/issues/868 Issue #868]).
  
* Weather data now includes cloud cover information ([https://github.com/powertac/powertac-server/issues/308 #308]), and the solar producers use it to adjust output.
+
== Power TAC simulation server, game visualizer, and sample broker, version 1.3.1, April 2016 ==
* The competition length computation correctly accounts for the bootstrap period ([https://github.com/powertac/powertac-server/issues/486 #486]).
 
* Incoming message from brokers are now written to the server state log ([https://github.com/powertac/powertac-server/issues/490 #490]).
 
* The synchronization between the server and brokers is much improved ([https://github.com/powertac/powertac-server/issues/492 #492]). The clock will be paused if the interval between the TimeslotComplete message and the beginning of the following timeslot falls below a configurable threshold.
 
* The server has not been known to crash at the end of a simulation since [https://github.com/powertac/powertac-server/issues/498 #498] was fixed.
 
* The sample broker has been refactored to cleanly separate the core framework from the agent behaviors ([https://github.com/powertac/powertac-server/issues/501 #501]).
 
* A race condition that existed when a broker tried to revoke a tariff before it was published has been resolved ([https://github.com/powertac/powertac-server/issues/505 #505], [https://github.com/powertac/powertac-server/issues/507 #507]).
 
* TariffTransactions are no longer crediting brokers when they should be debits (for example, when customers produce power, the broker needs to pay them, not charge them) ([https://github.com/powertac/powertac-server/issues/517 #517]).
 
* The Timeslot sequence no longer gets messed up if the machine goes out to lunch past the expected end of a timeslot ([https://github.com/powertac/powertac-server/issues/519 #519]).
 
* Customer bootstrap data now shows correct PowerType information, needed by brokers to compose tariffs ([https://github.com/powertac/powertac-server/issues/520 #520]).
 
  
Known defects in this release:
+
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.
  
* [https://github.com/powertac/powertac-server/issues/531 #531]: When the balancing market curtails a customer under an INTERRUPTIBLE_CONSUMPTION tariff in the same timeslot when that customer has reduced its subscription to that tariff to zero, the order of operations is incorrect (the unsubscribe happens before the curtailment), and we get a divide-by-zero error. You should not see then unless you are offering a tariff for interruptible consumption. The sample broker offers such a tariff; until we have a fix, you can not use the sample broker, or you can reduce the rate for that tariff so customers are much less likely to ever unsubscribe.
+
Downloads:
 +
* Simulation server version 1.3.1: [https://github.com/powertac/server-distribution/releases/tag/v1.3.1 zip or tar.gz].
 +
* Sample broker source version 1.3.1: [https://github.com/powertac/sample-broker/releases/tag/sample-broker-1.3.1 zip or tar.gz].
  
== Power TAC server version 0.2.0, February 2012 ==
+
=== Release notes 1.3.1 ===
  
(Preliminary) As was the case with the 0.1.0 release, the server is [https://github.com/downloads/powertac/powertac-server/powertac-server-0.2.0.tgz distributed] in the form of a small directory that contains a README.txt file, a sample server configuration file, and a maven "project object model" file called pom.xml. Detailed instructions for configuring and running the server are in the README.txt file.  
+
New features:
 +
* All components are now built with (and require) Spring version 4.1 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 ([https://github.com/powertac/powertac-server/issues/828 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 ([https://github.com/powertac/powertac-server/issues/837 Issue #837]).
 +
* Distribution costs are now based on two factors, as laid out in the 2016 specification: number of customer connections, and peak demand. This is a much better match to what happens in the real world, and is intended to motivate brokers to manage peak demand ([https://github.com/powertac/powertac-server/issues/840 Issue #840]).
 +
* Game logs now contain the maven artifact ID, and the ID is also communicated to brokers in the updated Competition object ([https://github.com/powertac/powertac-server/issues/834 Issue #834]). This is intended to allow compatibility testing by brokers, and version-variable behavior when needed for log analysis.
 +
* There is now a "battery" customer type that simply offers regulation capacity ([https://github.com/powertac/powertac-server/issues/854 Issue #854]). Up-regulation capacity is available if the battery is not completely discharged, and down-regulation capacity is available if the battery is not completely charged.
 +
* The sample broker now includes an example of handling the BalanceReport message ([https://github.com/powertac/powertac-server/issues/857 Issue #857]).
 +
* The factored-customer models can now be configured at the top-level, for example by a config file supplied at runtime ([https://github.com/powertac/powertac-server/issues/790 Issue #790]). This allows, for example, changes in the population of BrooksideHomes without re-building the factored-customer module.
  
This release also comes with a companion [https://github.com/downloads/powertac/powertac-server/sample-broker-0.2.0.tgz sample broker implementation], written in Java, that provides all the message types, the interaction with the server, and very simple behaviors for offering tariffs and bidding in the wholesale market.
+
Known problems:
 +
* The electric-forklift fleet model does not do regulation when subscribed to variable-price or TOU tariffs ([https://github.com/powertac/powertac-server/issues/853 Issue #853]). This is largely because this model uses linear programming to plan its consumption, and we have not worked out how the potential for regulation activity should be evaluated.
 +
* None of the factored-customer models report regulation capacity, and so cannot participate in balancing activities except through curtailment ([https://github.com/powertac/powertac-server/issues/863 Issue #863]).
 +
* Although brokers are charged for peak demand, there is currently no way to charge customers for demand peaks ([https://github.com/powertac/powertac-server/issues/841 Issue #841]). This is common practice for commercial tariffs in the real world, but it will require substantial updates to customer models.
 +
* There are a number of problems with the existing visualizer. A replacement visualizer module should be ready ahead of the 2016 tournament, but it should be compatible with this version of the server, and so it can be released separately.
  
For more information on the status, design, and development process for the server, there is a [https://github.com/powertac/powertac-server/wiki/Getting-started developer-oriented writeup at GitHub on getting started with the new Power TAC server].
+
Summary of resolved issues:
 +
* Re-running games with fixed weather data and random-number seeds now produces the expected results ([https://github.com/powertac/powertac-server/issues/667 Issue #667]).
 +
* In sample-broker, the BrokerContext now correctly maintains its cash balance ([https://github.com/powertac/powertac-server/issues/821 Issue #821]).
 +
* Javadoc generation now works as expected ([https://github.com/powertac/powertac-server/issues/784 Issue #784]).
 +
* The per-timeslot DistributionReport is now logged to the state log correctly ([https://github.com/powertac/powertac-server/issues/843 Issue #843]).
 +
* BalancingControlEvent messages now contain the correct prices ([https://github.com/powertac/powertac-server/issues/835 Issue #835]).
 +
* The BalanceReport message is now logged to the state log with the correct values ([https://github.com/powertac/powertac-server/issues/861 Issue #861]).
 +
* RegulationCapacity instances are now logged correctly and can be used to discover actual per-timeslot regulation capacity ([https://github.com/powertac/powertac-server/issues/819 Issue #819]).
 +
* Per-session re-initialization in the server now works as expected ([https://github.com/powertac/powertac-server/issues/851 Issue #851]).
 +
* Customer tariff evaluation now includes expected benefits from regulation activities for tariffs with RegulationRate instances ([https://github.com/powertac/powertac-server/issues/855 Issue #855]).
 +
* It is now possible to tell the difference between TariffTransactions originating with consumption/production and those resulting from exercising regulation capacity ([https://github.com/powertac/powertac-server/issues/862 Issue #862]).
 +
* Tariff subscription expiration accounting is now done on a per-timeslot basis rather than a per-day basis ([https://github.com/powertac/powertac-server/issues/831 Issue #831]). This was causing customers to incorrectly believe that they could not unsubscribe without penalty in some cases.
  
=== Release notes ===
+
== Power TAC simulation server and game visualizer, version 1.2.3, May 2015 ==
  
This release represents a significant milestone toward the 2012 competition, but it still lacks the web-based front-end, and there are still no analysis tools. In addition to a number of bugfixes and code cleanups, there are a number of important issues resolved and new features with respect to the 1.0 release:
+
This is an update to 1.2.2 with a fix for [https://github.com/powertac/powertac-server/issues/830 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.
  
* New command-line interface gives much more control over server configuration ([https://github.com/powertac/powertac-server/issues/463 #463], [https://github.com/powertac/powertac-server/issues/481 #481]). It is documented in the README file.
+
Downloads:
* New configuration system provides a uniform way to configure the server, eliminates the need to keep track of server configuration options in three different places, and gets rid of the PluginConfig instances that were showing up in the bootstrap-data file ([https://github.com/powertac/powertac-server/issues/462 #462]). Instead, the broker is now sent a single Properties instance at the beginning of a simulation session containing all the public configuration data.
+
* Simulation server version 1.2.3: [https://github.com/powertac/server-distribution/archive/v1.2.3.zip zip], [https://github.com/powertac/server-distribution/archive/v1.2.3.tar.gz tar.gz].
* Broker login now works correctly ([https://github.com/powertac/powertac-server/issues/467 #467]).
 
* There is now a Java-based sample agent available ([https://github.com/powertac/powertac-server/issues/444 #444]).
 
* Server and sample broker can now be configured to run on different hosts ([https://github.com/powertac/powertac-server/issues/475 #475]).
 
* Tariff publication and revocation fees are now randomized ([https://github.com/powertac/powertac-server/issues/483 #483]).
 
* Customer unsubscribe events are now correctly communicated to brokers, so they can accurately track the number of customers subscribed to each tariff ([https://github.com/powertac/powertac-server/issues/487 #487]).
 
* The customer models (both the bottom-up "household-customer" model and the statistical "factored-customer" model) use weather reports to decide how much power to use in certain appliance types, such as air conditioners ([https://github.com/powertac/powertac-server/issues/446 #446]).
 
  
== Power TAC server version 0.1.0, December 2011 ==
+
== Power TAC simulation server and game visualizer, version 1.2.2, April 2015 ==
  
The server is [https://github.com/downloads/powertac/powertac-server/powertac-server-0.1.0.tgz distributed] in the form of a small directory that contains a README.txt file, a sample server configuration file, and a maven "project object model" file called pom.xml. The first time you run the server, there will be a significant pause, and considerable console output, while maven retrieves all the components that make up the server. Detailed instructions for configuring and running the server are in the README.txt file.  
+
This is the version that finished the April 2015 final round, after a [https://github.com/powertac/powertac-server/issues/829 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.
  
For more information on the status, design, and development process for the server, there is a [https://github.com/powertac/powertac-server/wiki/Getting-started developer-oriented writeup at GitHub on getting started with the new Power TAC server].
+
Downloads:
 +
* Simulation server version 1.2.2: [https://github.com/powertac/server-distribution/archive/v1.2.2.zip zip], [https://github.com/powertac/server-distribution/archive/v1.2.2.tar.gz tar.gz].
  
=== Release notes ===
+
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 ([https://github.com/powertac/powertac-server/issues/830 Issue #830]).
  
This release is a "developers" release. The simulator portion of the Power TAC server is quite usable, but missing a few features that we intend to support for the 2012 competition in June. However, the web-based front-end is missing, the web application for scheduling tournaments and large-scale experiments is not included, and there are as yet no log-analysis tools available.
+
== Power TAC simulation server and game visualizer, version 1.2.1, April 2015 ==
  
Specific unresolved issues for this release include (with links to the original github issues)
+
This is the version that started the April 2015 Final round.
  
* We currently do not have a Java-based broker framework to offer (issue [https://github.com/powertac/powertac-server/issues/444 #444]), although we expect to have one in a few weeks, and there are a couple of people who have already done Java-based brokers. There is also a Grails-based broker framework that has been updated to work with the new server.
+
Downloads:
* Some modules are not currently configurable through the server properties file (issues [https://github.com/powertac/powertac-server/issues/419 #419] and [https://github.com/powertac/powertac-server/issues/454 #454].
+
* Simulation server version 1.2.1: [https://github.com/powertac/server-distribution/archive/v1.2.1.zip zip], [https://github.com/powertac/server-distribution/archive/v1.2.1.tar.gz tar.gz].
* Customer models, including the solar and wind models in the factored-customer module, do not react to current weather conditions (issue [https://github.com/powertac/powertac-server/issues/441 #441]).
+
* Sample broker 1.2.0: [https://github.com/powertac/sample-broker/archive/sample-broker-1.2.0.zip zip], [https://github.com/powertac/sample-broker/archive/sample-broker-1.1.0.tar.gz tar.gz].
* The balancing charges are not generated exactly as described in the specification (issue [https://github.com/powertac/powertac-server/issues/435 #435]). Instead, the older balancing scheme from the Grails prototype is still in place.
+
 
* An anomaly has been observed in wholesale market clearing (issue [https://github.com/powertac/powertac-server/issues/457 #457]), in a forked version of the server. At this point we have not been able to make it happen in the current codebase, but we are leaving the issue open until we are confident that it's been resolved.
+
=== Server release notes ===
* Brokers do not get information about total net load per timeslot (issue [https://github.com/powertac/powertac-server/issues/431 #431]).
+
 
* Cloud cover in weather reports is always zero (issue [https://github.com/powertac/powertac-server/issues/308 #308]).
+
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.
* Customer models currently do not implement controllable/interruptible capacity, and the distribution utility does not exercise them in any case (issue [https://github.com/powertac/powertac-server/issues/243 #243]).
+
 
 +
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 ([https://github.com/powertac/powertac-server/issues/777 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 ([https://github.com/powertac/powertac-server/issues/766 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 ([https://github.com/powertac/powertac-server/issues/792 Issue #792]).
 +
* Withdrawal fees are no longer assessed for revoked tariffs ([https://github.com/powertac/powertac-server/issues/762 Issue #762]).
 +
* All customer models that have flexibility in their energy usage patterns now create custom usage profiles for evaluating time-of-use tariffs ([https://github.com/powertac/powertac-server/issues/795 Issue #795]).
 +
* Fixed a flaw in evaluation of signup bonuses, which were given too much weight for some customers ([https://github.com/powertac/powertac-server/issues/825 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 ([https://github.com/powertac/powertac-server/issues/781 Issue #781]).
 +
* The officecomplex-customer model was getting signing up for multiple tariffs, and messing up the customer-count in the visualizer ([https://github.com/powertac/powertac-server/issues/807 Issue #807]).
 +
* The factored-customer model has been re-worked in several areas, especially with respect to time management ([https://github.com/powertac/powertac-server/issues/782 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 ([https://github.com/powertac/powertac-server/issues/775 Issue #755]).
 +
* Balancing actions using down-regulation are now handled correctly ([https://github.com/powertac/powertac-server/issues/817 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 [https://github.com/powertac/powertac-server/issues/780 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 [https://github.com/powertac/server-distribution/archive/v1.1.1.tar.gz tar.gz] [https://github.com/powertac/server-distribution/archive/v1.1.1.zip 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 [https://github.com/powertac/server-distribution/archive/release-1.1.0.tar.gz tar.gz] [https://github.com/powertac/server-distribution/archive/release-1.1.0.zip zip],
 +
* Sample broker source package [https://github.com/powertac/sample-broker/archive/release-1.1.0.tar.gz tar.gz], [https://github.com/powertac/sample-broker/archive/release-1.1.0.zip 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 ([https://github.com/powertac/powertac-server/issues/645 issue #645]) and contain prediction 1-24 hours into the future, rather than 0-23 ([https://github.com/powertac/powertac-server/issues/682 issue #682]).
 +
* Loading weather data from a file (rather than from the weather server) now works more reliably ([https://github.com/powertac/powertac-server/issues/730 issue #730]).
 +
* Weather reports from the bootstrap period are now stored in the WeatherRepo ([https://github.com/powertac/powertac-server/issues/745 issue #745]).
 +
* Tariff revocation messages are now sent to all brokers ([https://github.com/powertac/powertac-server/issues/719 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 ([https://github.com/powertac/powertac-server/issues/724 issues #724], [https://github.com/powertac/powertac-server/issues/653 #653]). This feature makes use of the new RegulationRate type ([https://github.com/powertac/powertac-server/issues/740 issue #740]). The balancing market now handles curtailment of both production and consumption ([https://github.com/powertac/powertac-server/issues/671 issue #671]).
 +
* CustomerInfo now specifies the maximum available controllable capacity ([https://github.com/powertac/powertac-server/issues/697 issue #697]).
 +
* The BalancingMarket is now a separate module, making it easier to experiment with different implementations ([https://github.com/powertac/powertac-server/issues/578 issue #578]).
 +
* Brokers can no longer supersede each others' tariffs ([https://github.com/powertac/powertac-server/issues/731 issue #731]).
 +
* The household and officecomplex customer models do a better job of evaluating tariffs ([https://github.com/powertac/powertac-server/issues/735 issue #735]). Other problems with tariff evaluation have been fixed (issues [https://github.com/powertac/powertac-server/issues/763 #763], [https://github.com/powertac/powertac-server/issues/768 #768]).
 +
* Additional validation checking on Orders ([https://github.com/powertac/powertac-server/issues/738 issues #738], [https://github.com/powertac/powertac-server/issues/739 #739]).
 +
* The wholesale market now requires a minimum order quantity ([https://github.com/powertac/powertac-server/issues/742 issue #742]).
 +
* A rare problem with wholesale market clearing has been fixed ([https://github.com/powertac/powertac-server/issues/767 issue #767]).
 +
* The default genco model now produces prices that mimic the price curve at a load node subject to congestion pricing ([https://github.com/powertac/powertac-server/issues/737 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 ([https://github.com/powertac/powertac-server/issues/729 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 ([https://github.com/powertac/powertac-server/issues/762 issue #762]).
 +
* Corrections in Visualizer display ([https://github.com/powertac/powertac-server/issues/744 issue #744]).
 +
 
 +
=== Sample Broker release notes ===
 +
 
 +
* The sample broker now includes examples of annotation-based configuration -- see for example MarketManagerService ([https://github.com/powertac/powertac-server/issues/717 issue #717]). This works in all packages ([https://github.com/powertac/powertac-server/issues/723 issue #723]), but only classes in org.powertac can be specified without the full package path.
 +
* Javadoc documentation has been improved significantly ([https://github.com/powertac/powertac-server/issues/720 issue #720]) and is now being automatically generated when changes are pushed to the master branch ([https://github.com/powertac/powertac-server/issues/713 issue #713]).
 +
* TariffRepo now works correctly in brokers, where it can be used to track competing tariffs ([https://github.com/powertac/powertac-server/issues/722 issue #722]).
 +
* The tariff supersede example in PortfolioManager now works correctly ([https://github.com/powertac/powertac-server/issues/736 issue #736]).
 +
* Tariff id values are now constrained to conform to the prefix sent by the server ([https://github.com/powertac/powertac-server/issues/734 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 ([https://github.com/powertac/powertac-server/issues/778 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 ([https://github.com/powertac/powertac-server/issues/733 issue #733]).
 +
* Re-running games with stored random seeds does not behave exactly as expected ([https://github.com/powertac/powertac-server/issues/667 issue #667]).
 +
* Customer tariff evaluation does not handle tariffs with negative signup payments as well as it should ([https://github.com/powertac/powertac-server/issues/766 issue #766]). There are a few other potential problems remaining with tariff evaluation (issues [https://github.com/powertac/powertac-server/issues/771 #771], [https://github.com/powertac/powertac-server/issues/777 #777]).
 +
* Total imbalance per timeslot should be public information. There is currently no way to communicate this to brokers ([https://github.com/powertac/powertac-server/issues/775 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 [https://github.com/powertac/server-distribution/archive/v1.0.1.tar.gz tar.gz] or [https://github.com/powertac/server-distribution/archive/v1.0.1.zip zip] format.
 +
 
 +
== Power TAC server, sample broker framework, and game visualizer, version 1.0.0, June 2013 ==
 +
 
 +
Downloads:
 +
* Simulation server binary package [https://github.com/powertac/server-distribution/archive/server-distribution-1.0.0.tar.gz tar.gz] [https://github.com/powertac/server-distribution/archive/server-distribution-1.0.0.zip zip],
 +
* Sample broker source package [https://github.com/powertac/sample-broker/archive/v1.0.0.tar.gz tar.gz], [https://github.com/powertac/sample-broker/archive/v1.0.0.zip 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 [https://github.com/powertac/powertac-server/issues/673 #673], [https://github.com/powertac/powertac-server/issues/633 #633], [https://github.com/powertac/powertac-server/issues/689 #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 [https://github.com/powertac/powertac-server/issues/640 #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 [https://github.com/powertac/powertac-server/issues/519 #519], [https://github.com/powertac/powertac-server/issues/706 #706]).
 +
* Incorrect bootstrap file path no longer crashes the server (Issue [https://github.com/powertac/powertac-server/issues/535 #535]).
 +
* Games can be re-run with repeated random-seed values and repeated weather data (Issue [https://github.com/powertac/powertac-server/issues/648 #648]).
 +
* Anomalous buy orders no longer generate cleared trades with negative prices (Issue [https://github.com/powertac/powertac-server/issues/664 #644]).
 +
* Weather data in bootstrap files now contains timeslot information (Issue [https://github.com/powertac/powertac-server/issues/660 #660]).
 +
* Quantities in distribution transactions are now computed correctly. Brokers can no longer get paid for using the service (Issues [https://github.com/powertac/powertac-server/issues/669 #669], [https://github.com/powertac/powertac-server/issues/691 #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 [https://github.com/powertac/powertac-server/issues/541 #541], [https://github.com/powertac/powertac-server/issues/666 #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 [https://github.com/powertac/powertac-server/issues/665 #665], [https://github.com/powertac/powertac-server/issues/692 #692], [https://github.com/powertac/powertac-server/issues/704 #704]).
 +
* Bootstrap sessions no longer start the JMS process (Issue [https://github.com/powertac/powertac-server/issues/599 #599]).
 +
* Multiple improvements in the state log format (Issue [https://github.com/powertac/powertac-server/issues/564 #564]).
 +
* Balancing now includes transactions from the current timeslot (Issue [https://github.com/powertac/powertac-server/issues/681 #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 [https://github.com/powertac/powertac-server/issues/474 #474]).
 +
* Customer models are now subscribing to reasonable production tariffs (Issue [https://github.com/powertac/powertac-server/issues/677 #677]).
 +
* Chained constructors no longer generate multiple state log entries (Issue [https://github.com/powertac/powertac-server/issues/684 #684]).
 +
* Brokers are now notified when wholesale market orders are rejected (Issue [https://github.com/powertac/powertac-server/issues/296 #296]).
 +
* Variable-rate tariffs now work as advertised (Issues [https://github.com/powertac/powertac-server/issues/690 #690], [https://github.com/powertac/powertac-server/issues/686 #686]).
 +
* Weather forecasts are finally working correctly (Issue [https://github.com/powertac/powertac-server/issues/699 #699]).
 +
* Tariffs of failed broker are now automatically revoked (Issue [https://github.com/powertac/powertac-server/issues/702 #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 [https://github.com/powertac/powertac-server/issues/652 #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 [https://github.com/powertac/powertac-server/issues/693 #693]).
 +
* MarketManager now recycles correctly between sessions in a multiple-session run (Issue [https://github.com/powertac/powertac-server/issues/705 #705]).
 +
 
 +
=== Known issues ===
 +
 
 +
* There is a memory leak in the Visualizer (Issue [https://github.com/powertac/powertac-server/issues/710 #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 [https://github.com/powertac/powertac-server/issues/667 #667]).
 +
* The supersedes list in a TariffSpecification is not getting into the state log (Issue [https://github.com/powertac/powertac-server/issues/685 #685]).
 +
 
 +
== [[Older releases]] ==
  
 
= [[Using the Grails Prototype|Release history for the 2011 Grails prototype]] =
 
= [[Using the Grails Prototype|Release history for the 2011 Grails prototype]] =
  
 
Instructions for the original Grails version of the Power TAC simulation server.
 
Instructions for the original Grails version of the Power TAC simulation server.

Revision as of 20:33, 13 June 2017

Contents

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. Older versions are available ....

Power TAC simulation server and game visualizer, version 1.4.4, June 2017

This is a minor bugfix update of 1.4.3, which fixes a bug encountered at the beginning of the 2017 tournament. Note that this release does not update powertac-core or the sample-broker.

Downloads:

Release notes 1.4.4

  • In the balancing market, fixed the sign on the p1 value for cases of brokers with positive imbalance in a down-regulation environment(Issue #941).

Power TAC simulation server, game visualizer, and sample broker, version 1.4.3, May 2017

This is a minor bugfix update of 1.4.2. It will be used for the 2017 tournament.

Downloads:

Release notes 1.4.3

  • Sample broker now correctly processes the --repeat-hours command-line option (Issue #935).
  • One of the customer models was incorrectly evaluating tariffs with high early-withdrawal fees (Issue #931). This was an exploitable bug with the potential to affect tournament outcomes.
  • The evaluation order for peak-demand assessment has been corrected to consider only the highest peaks among the qualifying instances of peak demand (Issue #936). As a result, the per-MW fee for capacity peaks has been substantially reduced.
  • Validation of incoming Orders has been enhanced to better deal with non-numeric price values from brokers (Issue #937).
  • Validation of tariff Rates was improved to prevent out-of-bounds daily/weekly start-finish times from raising exceptions in the server (Issue #939). These values are needed to specify time-of-use tariffs.
  • Some of the Large Customer models were incorrectly identified as Small Customers in the CustomerInfo structure passed to brokers at the start of a game (Issue #938). These are now correctly identified.
  • A couple of minor configuration issues in the server were corrected (Issue #933 and Issue #932).

Power TAC simulation server, game visualizer, and sample broker, version 1.4.2, May 2017

This is a bugfix update of 1.4.1. It was intended to be the version used for the 2017 tournament.

Downloads:

Release notes 1.4.2

  • Sample broker now runs correctly from a jar file (Issue #920).
  • New visualizer now accepts broker names with embedded dash (Issue #916).
  • Parameterized and updated the shape of the supply curve in the wholesale market to more accurately reflect the impact of congestion at high demand levels (Issue #929).
  • Updated logtool-core to correctly run multiple sessions (Issue #930). This was never needed when running logfile analyzers, but is important now that the new visualizer uses logtool-core to replay games from logs.
  • Fixed a problem with the Weather Service that was occasionally causing an ArrayIndexOutOfBounds exception (Issue #922).
  • Fixed NPE in old visualizer that happened when inspecting tariff market display (Issue #923).
  • Simplified the writing of logfile analyzers by adding reflection-based connection between incoming messages and message handlers (Issue #928).
  • Changed the bundling of logfiles in the tournament manager to include boot record and boot logs (Issue #886).

Power TAC simulation server, game visualizer, and sample broker, version 1.4.1, March 2017

This is the version on which we expect to run the 2017 tournament.

Downloads:

Release notes 1.4.1

New features:

  • The wholesale market now models a larger population of buyers beyond the set of Brokers serving the Power TAC scenario Issue #878. This means that the restriction on market position implemented to prevent "cornering the market" in the 2016 competition is lifted. Overall demand is increased by a factor of 11 (the "MISO buyer" purchases roughly 10 times the energy needed by the Power TAC scenario). However, the demand from the MISO buyer is generated from a time series that models the actual demand of the North Central region of the North American Midwest Independent System Operator. This population has a different consumption/production mix from the Power TAC scenario (much lower penetration of solar production, for example). On the other hand, the current temperature as reported by the Power TAC weather service affects the MISO demand, increasing strongly for uncomfortably high temperatures and less strongly for uncomfortably low temperatures.
  • The new visualizer, first introduced in the 2016 competition, replaces the original Power TAC visualizer, which is no longer supported. The new visualizer has the ability to re-play games from a state log, or from a logfile tarball in the format produced by the tournament scheduler. The source of the logfile tarball can either be a URL or a local file specified as a file:// URL. To better support this functionality, several improvements have been made in the logfile reader (in the logtool-core module), which is now integrated into the Power TAC simulation server.

Known problems:

  • Regulation and curtailment are not perfectly synchronized with tariff subscription changes, and so sometimes a customer gets the wrong value for regulation in the timeslot after a subscription change (Issue #733).
  • It is currently very difficult to get the Power TAC simulation server or broker to operate correctly through proxy servers (Issue #842).
  • Brokers are not notified if the wholesale market rejects their orders (Issue #873) although the causes of rejected orders are fairly obvious, such as quantity below theshold.

Summary of resolved issues:

  • The names of logfiles generated by tournament games now match the names of the games in the tournament scheduler's table display (Issue #879).
  • Customers now treat tariffs with positive signup bonuses with some suspicion, by re-evauating available tariffs once they have received the bonus (Issue #877).
  • Fixed a problem that occasionally prevented brokers from logging in to tournament games (Issue #880).
  • Fixed a problem in which a broker that withdrew from all its tariffs and therefore had no consumption still had to pay peak-capacity fees (Issue #882).
  • Fixed accounting for Balancing Control Events in the case where a broker had no imbalance (Issue #889).
  • Drastically simplified the build process by re-modularizing the various bits and pieces into a powertac-core super-module that builds in one step and contains the powertac-parent pom as well as common, and a powertac-server module that is now a clean super-module that can be built in one step (Issue #903).
  • Cleaned up configuration across modules, removing all non-default configuration from server-main (which forced a re-build to incorporate changes) and mostly moving it to server-distribution, where it is distributed in source form (Issue #911).
  • The sample broker now distinguishes between normal and regulation tariff transactions, and incorporates regulation transactions accurately into its records of customer production/consumption. The resulting broker performs significantly better than the original sample-broker due to better tracking of customer behavior (Issue #898).

Power TAC simulation server, game visualizer, and sample broker, version 1.3.3, July 2016

This is the version that ran the final round of the 2016 competition.

Downloads:

Release notes 1.3.3

Known problems:

  • The new visualizer that was used in the 2016 tournament does not yet work in research mode.
  • Brokers are incorrectly assessed capacity charges in the (rare) case where a broker pays capacity charges and then cancels all tariffs before the start of a subsequent capacity assessment interval (Issue #882).
  • The problem of cornering the wholesale market (Issue #870) is caused by a game-design flaw (Issue #878). A better fix would be to make the wholesale market effectively model a large number of distribution grids, each with demand profiles somewhat similar to the Power TAC customer models. This would reduce the market power of individual brokers in the wholesale market, and eliminate the need for an artificial limit on market share.
  • The published server configuration is sent to brokers at the start of a simulation session, but is not recorded in the server log (Issue #888). This makes it difficult to write a log analyzer without hard-coding server parameters.

Summary of resolved issues:

  • Broker id prefix values are now correctly assigned in tournament mode (Issue #880). Tournament games prior to this fix could be difficult to analyze because of id value collisions.
  • Customers are now much more likely to re-evaluate tariffs with high signup bonus values and short durations as soon as they expire (Issue #877).
  • Resolved a problem of duplicate usage profiles in the boot record for some storage types (Issue #869).
  • The potential for cornering the wholesale market and profiting from it have been greatly reduced by limiting wholesale market share, and by limiting the seller's margin (Issue #870).
  • The DistributionReport message now includes the timeslot index value (Issue #868).

Power TAC simulation server, game visualizer, and sample broker, version 1.3.2, May 2016

This is a minor update of release 1.3.2 that adds data elements to two message types. This was requested by broker developers, and makes the message format a bit more consistent. Because the changes are in the common module, all server modules are updated, and brokers can take advantage of the changes by compiling with broker-core 1.3.2.

Downloads:

Release notes 1.3.2

  • TariffTransaction now provides the isRegulation() method (Issue #867).
  • DistributionReport now provides the getTimeslot() method that returns the timeslot index (Issue #868).

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:

Release notes 1.3.1

New features:

  • All components are now built with (and require) Spring version 4.1 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).
  • Distribution costs are now based on two factors, as laid out in the 2016 specification: number of customer connections, and peak demand. This is a much better match to what happens in the real world, and is intended to motivate brokers to manage peak demand (Issue #840).
  • Game logs now contain the maven artifact ID, and the ID is also communicated to brokers in the updated Competition object (Issue #834). This is intended to allow compatibility testing by brokers, and version-variable behavior when needed for log analysis.
  • There is now a "battery" customer type that simply offers regulation capacity (Issue #854). Up-regulation capacity is available if the battery is not completely discharged, and down-regulation capacity is available if the battery is not completely charged.
  • The sample broker now includes an example of handling the BalanceReport message (Issue #857).
  • The factored-customer models can now be configured at the top-level, for example by a config file supplied at runtime (Issue #790). This allows, for example, changes in the population of BrooksideHomes without re-building the factored-customer module.

Known problems:

  • The electric-forklift fleet model does not do regulation when subscribed to variable-price or TOU tariffs (Issue #853). This is largely because this model uses linear programming to plan its consumption, and we have not worked out how the potential for regulation activity should be evaluated.
  • None of the factored-customer models report regulation capacity, and so cannot participate in balancing activities except through curtailment (Issue #863).
  • Although brokers are charged for peak demand, there is currently no way to charge customers for demand peaks (Issue #841). This is common practice for commercial tariffs in the real world, but it will require substantial updates to customer models.
  • There are a number of problems with the existing visualizer. A replacement visualizer module should be ready ahead of the 2016 tournament, but it should be compatible with this version of the server, and so it can be released separately.

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).
  • Javadoc generation now works as expected (Issue #784).
  • The per-timeslot DistributionReport is now logged to the state log correctly (Issue #843).
  • BalancingControlEvent messages now contain the correct prices (Issue #835).
  • The BalanceReport message is now logged to the state log with the correct values (Issue #861).
  • RegulationCapacity instances are now logged correctly and can be used to discover actual per-timeslot regulation capacity (Issue #819).
  • Per-session re-initialization in the server now works as expected (Issue #851).
  • Customer tariff evaluation now includes expected benefits from regulation activities for tariffs with RegulationRate instances (Issue #855).
  • It is now possible to tell the difference between TariffTransactions originating with consumption/production and those resulting from exercising regulation capacity (Issue #862).
  • Tariff subscription expiration accounting is now done on a per-timeslot basis rather than a per-day basis (Issue #831). This was causing customers to incorrectly believe that they could not unsubscribe without penalty in some cases.

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:

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:

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:

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:

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.