Releases: Algorithmic-Battle/algobattle
v4.3.0
What's Changed
- More informative cli message if Docker isnt running by @ImogenBits in #157
- Package multiple programs at once by @ImogenBits in #158
- Add the Improving battle type by @ImogenBits in #159
- Small bug fixes by @ImogenBits in #161
- Docs problem creation by @Benezivas in #160
- Graph utility methods by @ImogenBits in #162
- Version 4.3.0 by @Benezivas in #163
Full Changelog: v4.2.0...v4.3.0
v4.2.0
What's Changed
- Improve package problem error output by @ImogenBits in #149
- create results folder when writing to it by @ImogenBits in #152
- Improved algobattle init cli by @ImogenBits in #153
- Version 4.2.0 by @Benezivas in #156
Full Changelog: v4.1.0...v4.2.0
v4.1.0
What's Changed
- move ref annotation validation into pydantic schema by @ImogenBits in #145
- Various Bugfixes by @ImogenBits in #146
- Improved match logs by @ImogenBits in #147
Full Changelog: v4.0.2...v4.1.0
v4.0.2
What's Changed
- Fix program run exception handling by @ImogenBits in #138
- Fix default scoring function if generator's Solution score is 0 by @ImogenBits in #139
- Bump version number by @Benezivas in #140
Full Changelog: v4.0.1...v4.0.2
v4.0.1
v4.0.0
What's Changed
- Refactor Match Structure by @Benezivas in #48
- Use pyproject.toml to specify package info by @ImogenBits in #53
- small changes to CI by @ImogenBits in #54
- Cleanup battle by @ImogenBits in #55
- Minor cleanup to solve typing issues by @ImogenBits in #56
- Isolate docker interactions into module and simplify test docker containers by @ImogenBits in #52
- Cross platform support by @ImogenBits in #57
- Cleanup folder structure by @ImogenBits in #58
- Fix typing by @ImogenBits in #59
- fix resource leaks by @ImogenBits in #60
- Result types by @ImogenBits in #61
- Isolate docker by @ImogenBits in #67
- Split battle script and match setup by @ImogenBits in #68
- Fix tests by @ImogenBits in #62
- Config rework by @ImogenBits in #71
- use entrypoints to include custom wrappers by @ImogenBits in #72
- rework problem and battle wrapper classes by @ImogenBits in #73
- Cleanup by @ImogenBits in #76
- Points calculation by @ImogenBits in #77
- change cli hook to correct module by @ImogenBits in #78
- Use pydantic to parse configs by @ImogenBits in #79
- Problem class features by @ImogenBits in #80
- Match structure by @ImogenBits in #81
- Fine tune docker interaction by @ImogenBits in #82
- UI rework by @ImogenBits in #83
- Move fight code into its own class by @ImogenBits in #84
- Replace logging messages with match object serialization by @ImogenBits in #85
- Various cleanup changes by @ImogenBits in #86
- Simplify cli config by @ImogenBits in #87
- Improve in-python documentation by @ImogenBits in #88
- Simplify folder structure by @ImogenBits in #89
- Add option to execute battles on specific cores by @ImogenBits in #90
- pin pydantic version by @ImogenBits in #91
- Nicer error message for min_size violations by @ImogenBits in #92
- Improve build step UI by @ImogenBits in #93
- Redo the safe build option by @ImogenBits in #94
- Option for strict or lax timeouts by @ImogenBits in #95
- Add docker image size limit by @ImogenBits in #96
- Let users install problems by @ImogenBits in #97
- Switch to official docker build by @ImogenBits in #98
- Cleanup cli display by @ImogenBits in #100
- Fix Match.excluded_teams by @ImogenBits in #101
- Better error message if trying to decode nonexistent file by @ImogenBits in #102
- Cleanup config files by @ImogenBits in #99
- Clarify problem size by @ImogenBits in #103
- Safer error messages by @ImogenBits in #104
- Clarify Problem.score by @ImogenBits in #105
- turn Role into an enum by @ImogenBits in #106
- Add int helper types for common ranges by @ImogenBits in #107
- Simple docs by @ImogenBits in #108
- Update CI by @ImogenBits in #109
- Bugfixes by @ImogenBits in #111
- Teaching concept by @ImogenBits in #114
- Add support to let Algobattle run inside a docker container by @ImogenBits in #112
- Change problem definiton by @ImogenBits in #113
- update Pydantic by @ImogenBits in #115
- remove setup.py by @ImogenBits in #116
- Clean up teaching concept (credit to Birgit Willms) by @Benezivas in #117
- Improve publish CI by @ImogenBits in #118
- Better config structure by @ImogenBits in #120
- Internal rework by @ImogenBits in #121
- Modernize command line interaction by @ImogenBits in #122
- use shutil.move instead of Path.rename by @ImogenBits in #123
- Update Iterated battle by @ImogenBits in #124
- Simplify match json structure by @ImogenBits in #125
- add english teaching concept by @ImogenBits in #126
- PEP 561 support by @ImogenBits in #127
- Simple, safe float comparisons by @ImogenBits in #128
- Rewrite README by @Benezivas in #119
- Cleanup by @ImogenBits in #129
- Add Ellipsis type annotation by @ImogenBits in #131
- Docs default values by @ImogenBits in #132
- Add problem packaging by @ImogenBits in #133
- Improve iterated battles by @ImogenBits in #134
- Update ci by @ImogenBits in #136
- Release version 4.0.0 by @ImogenBits in #130
Full Changelog: v3.1.0...v4.0.0
v4.0.0rc3
What's Changed
- Refactor Match Structure by @Benezivas in #48
- Use pyproject.toml to specify package info by @ImogenBits in #53
- small changes to CI by @ImogenBits in #54
- Cleanup battle by @ImogenBits in #55
- Minor cleanup to solve typing issues by @ImogenBits in #56
- Isolate docker interactions into module and simplify test docker containers by @ImogenBits in #52
- Cross platform support by @ImogenBits in #57
- Cleanup folder structure by @ImogenBits in #58
- Fix typing by @ImogenBits in #59
- fix resource leaks by @ImogenBits in #60
- Result types by @ImogenBits in #61
- Isolate docker by @ImogenBits in #67
- Split battle script and match setup by @ImogenBits in #68
- Fix tests by @ImogenBits in #62
- Config rework by @ImogenBits in #71
- use entrypoints to include custom wrappers by @ImogenBits in #72
- rework problem and battle wrapper classes by @ImogenBits in #73
- Cleanup by @ImogenBits in #76
- Points calculation by @ImogenBits in #77
- change cli hook to correct module by @ImogenBits in #78
- Use pydantic to parse configs by @ImogenBits in #79
- Problem class features by @ImogenBits in #80
- Match structure by @ImogenBits in #81
- Fine tune docker interaction by @ImogenBits in #82
- UI rework by @ImogenBits in #83
- Move fight code into its own class by @ImogenBits in #84
- Replace logging messages with match object serialization by @ImogenBits in #85
- Various cleanup changes by @ImogenBits in #86
- Simplify cli config by @ImogenBits in #87
- Improve in-python documentation by @ImogenBits in #88
- Simplify folder structure by @ImogenBits in #89
- Add option to execute battles on specific cores by @ImogenBits in #90
- pin pydantic version by @ImogenBits in #91
- Nicer error message for min_size violations by @ImogenBits in #92
- Improve build step UI by @ImogenBits in #93
- Redo the safe build option by @ImogenBits in #94
- Option for strict or lax timeouts by @ImogenBits in #95
- Add docker image size limit by @ImogenBits in #96
- Let users install problems by @ImogenBits in #97
- Switch to official docker build by @ImogenBits in #98
- Cleanup cli display by @ImogenBits in #100
- Fix Match.excluded_teams by @ImogenBits in #101
- Better error message if trying to decode nonexistent file by @ImogenBits in #102
- Cleanup config files by @ImogenBits in #99
- Clarify problem size by @ImogenBits in #103
- Safer error messages by @ImogenBits in #104
- Clarify Problem.score by @ImogenBits in #105
- turn Role into an enum by @ImogenBits in #106
- Add int helper types for common ranges by @ImogenBits in #107
- Simple docs by @ImogenBits in #108
- Update CI by @ImogenBits in #109
- Bugfixes by @ImogenBits in #111
- Teaching concept by @ImogenBits in #114
- Add support to let Algobattle run inside a docker container by @ImogenBits in #112
- Change problem definiton by @ImogenBits in #113
- update Pydantic by @ImogenBits in #115
- remove setup.py by @ImogenBits in #116
- Clean up teaching concept (credit to Birgit Willms) by @Benezivas in #117
- Improve publish CI by @ImogenBits in #118
- Better config structure by @ImogenBits in #120
- Internal rework by @ImogenBits in #121
- Modernize command line interaction by @ImogenBits in #122
Full Changelog: v3.0.2...v4.0.0rc3
Release 3.1.0
This version fixes a rather nasty bug that was exploitable during the build process, described in #64.
It also fixes the default decoding and enconding methods of the parser
class, that did not handle unicode correctly, as described in #63.
Both fixes courtesy to Imogen, in PRs #65 and #66.
The fixes brought along slight API changes that should be backwards compatible.
Parts of the image building of the match._build
method have been moved into a util.build
method.
The match
object now takes an additional optional argument unsafe_build
.
You should notice a performance drop when starting the battle
script, since the fix introduces file I/O to temporarily store built docker images on the drive in order to isolate them from one another during the build process. This hit can be slightly mitigated by the --unsafe-build
option that can now be passed to the battle
script. Since newly built images are now by default deleted after a run, a rebuild still has to happen when building a match object.
We will try to improve the build speed back to the expected one in a forthcoming release.
Release 3.0.2
Release 3.0.1
This release only fixes a small bug (#42) in the ui in which the output was not correct when multiple teams were given to the battle script.