Releases: Algorithmic-Battle/algobattle
Release 3.0.0
This release introduces new features, refactors quite a bit of code and fixes a few outstanding bugs.
Changes in more Detail:
- Features
- The project should now run under Windows 10, thanks to imogen.
- It is now possible to scale the memory that a generator or solver has to the current instance size and available memory by overwriting the
problem.py
's new methodsgenerator_memory_scaler
andsolver_memory_scaler
. - It is now possible to postprocess instances after they have been run through the verifier. See #26.
- If the docker containers of some team do not build correctly, they are removed from a battle rather than the battle being aborted altogether.
- It is possible to manipulate the step size increase of the
iterated
battle wrapper more closely by using the newiter_exponent
option of thebattle
script. This can be useful for debugging by setting it to 1.
- Changes
- The
battle_wrapper
s were moved out of thematch
class into their own modules. - The methods formatting the
match_data
were moved into the newbattle_wrapper
s. - Point calculations were moved out of the
util
module into the newbattle_wrappers
s. - The point calculation for the
averaged
battle wrapper was adjusted. - The
available
points are now split between each pair of teams, rather than among all pairs of teams. - Logging is now less verbose, with most output messages moved down to the
debug
level.
- The
- Bugfixes
- Fixed #21 by forcing team names into lower case.
- The
iterated
battle wrapper stopped if the next iteration step would be bigger than theiter_cap
without actually executing a battle on this instance size. This would mean that several iterations could be unrightfully achieved. - Log paths set with the
--output_folder
option now always correctly resolve. - The timeout for the
delaytest
problem was increased to 300 seconds, as it sometimes timed out upon the first build. - Additional minor code cleanup and test cleanup.
Release 2.0.2
This minor release flips the GEN
and SOL
strings of the --ui
output, which were previously in the wrong order.
Release 2.0.1
This release introduces minor changes to the battle
script, updates to the CI pipeline and code cleanup.
The CI pipeline was cleaned up and extended, which mainly resulted in code cleanup and linting.
Since we currently are in demand of more compact log outputs, this release adds the output of the ui.format_ascii
method to the end of the logs. This is done slightly hacky for now and the string formatting will be most likely moved out of the ui
module in the next major release.
A noticeable correction is the renaming of the ui
method previously named ui.formatt_ascii
to ui.format_ascii
. This technically changes the api, but since it only corrects a very small and obvious typo, we decided against increasing the major release number for this change.
Release 2.0.0
This release introduces a new ui feature, removes the problem files from this project (outsourced to algobattle-problems) and introduces an Observable pattern that makes it possible to observe the state of a match object during its run. As this means API changes, this is a major release.
Changes in more detail:
- Use the new
--ui
option ofbattle
to get a cleaner visual output during a run. - The
match
object now contains amatch_data
dict, replacing the oldresults
dict. The contents of this dict are described in the docstring of therun
method. The signature ofrun
has been updated. - The calculation of points in
util
has been updated accordingly - Config files no longer include the options
iteration_cap
andapproximation_iterations
. These have been added as options (--iter_cap
and--approx_iterations
) to thebattle
script. - You can subscribe to a
match
object if you want to use the live data of a match. This is currently used for the ui output. - All problem files and their related tests (except for those used for unittests and delaytests) have been removed from this repository and moved into the algobattle-problems repository for logical separation.
- Code, docstring and test cleanups
Release 1.0.0
This release introduces a lot of smaller features that break backwards compatibility with release 0.1.0.
Changes:
- Problems now have a flag whether they are approximable
- Docstrings have been added and update to conform to the numpy standard
- Automated workflow that lints the code and docstrings and runs tests
- An arbitrary number of teams can now be associated with a match, using the new
Team
object. - Refactor the battle script, putting a lot of its functionality into a seperate
util
module
Release 0.1.0
This is the initial formal release of the Algorithmic Battle project.
It includes a number of sample problems as well as the capability to be extended further by custom problems.