|
1 | 1 | # Change Log
|
| 2 | + |
2 | 3 | All notable changes to this project will be documented in this file.
|
3 | 4 |
|
4 | 5 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5 | 6 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6 | 7 |
|
| 8 | +## [0.14.0] - 2024-09-04 |
| 9 | + |
| 10 | +### Added |
| 11 | + |
| 12 | +- Support for Python versions 3.11, 3.12 |
| 13 | +- GitHub Action CI pipeline tests for Windows, MacOS |
| 14 | + |
| 15 | +### Changed |
| 16 | + |
| 17 | +- Migrated from using Poetry to PDM to support overriding/ignoring subdependencies and switching based on Python version (e.g. cadCAD, which has removed support for Python 3.8, but which we'd like to continue supporting) |
| 18 | +- Implemented tests and benchmarking across Python versions using Nox (equivalent of Tox that uses Python instead of yaml for configuration) |
| 19 | +- Updated cadCAD dependency to v0.5.3 to ensure compatibility with Python 3.10+ when using "compatibility mode" |
| 20 | +- Added RADCAD_BACKEND environment variable to override radCAD's backend, specifically used for Windows tests to avoid recursion depth errors |
| 21 | + |
7 | 22 | ## [0.13.0] - 2023-10-26
|
| 23 | + |
8 | 24 | ### Added
|
| 25 | + |
9 | 26 | - Ability to override the method used for performing deep copies, e.g. using Pickle instead of standard library for better performance
|
10 | 27 | - Ability to use dataclasses instead of dictionaries to configure System Parameters, enabling much better developer experience including typing of System Parameters
|
11 | 28 | - Ability to use nested dataclasses to configure System Parameters to enable creating categories or namespaces of System Parameters for better management of large models, see tests for examples of how this works
|
12 | 29 | - Better typing of all core radCAD code, see `radcad.types`
|
13 | 30 |
|
14 | 31 | ### Changed
|
| 32 | + |
15 | 33 | - End of support for Python 3.7, due to dependecies we now only support >= 3.8
|
16 | 34 | - Major refactor of core code to use specification for simulation execution in the form of an abstract base class named `SimulationExecutionSpecification`, enabling much better understanding, customisation, and extension of radCAD core code
|
17 | 35 |
|
18 | 36 | ## [0.12.0] - 2022-09-05
|
| 37 | + |
19 | 38 | ### Added
|
| 39 | + |
20 | 40 | - Add typing
|
21 | 41 |
|
22 | 42 | ### Changed
|
| 43 | + |
23 | 44 | - Enable mutation of simulation hook `Context`
|
24 | 45 | - Possibly breaking change for anyone using hooks: `before_simulation(simulation: Simulation)` changed to `before_simulation(context: Context)`
|
25 | 46 |
|
26 | 47 | ## [0.11.1] - 2022-09-03
|
| 48 | + |
27 | 49 | ### Added
|
| 50 | + |
28 | 51 | - Add support for parameters dataclass
|
29 | 52 | - Add support for single value parameters (i.e. not a list)
|
30 | 53 |
|
31 | 54 | ## [0.11.0] - 2022-09-03
|
| 55 | + |
32 | 56 | ### Changed
|
| 57 | + |
33 | 58 | - Adapted core deepcopy processes to be more efficient and avoid unintended mutation of state between policy and state update functions
|
34 | 59 |
|
35 | 60 | ## [0.10.1] - 2022-09-02
|
| 61 | + |
36 | 62 | ### Changed
|
| 63 | + |
37 | 64 | - Updated to use "radCAD" logging instance
|
38 | 65 |
|
39 | 66 | ## [0.10.0] - 2022-09-01
|
| 67 | + |
40 | 68 | ### Added
|
| 69 | + |
41 | 70 | - Add a `deepcopy_method` Engine argument to allow setting a custom deepcopy method e.g. `copy.deepcopy` instead of default Pickle methods
|
42 | 71 |
|
43 | 72 | ### Changed
|
| 73 | + |
44 | 74 | - Fix edge case of unintended mutation of state passed to state update function from policy function (see issue #53)
|
45 | 75 |
|
46 | 76 | ## [0.9.1] - 2022-07-26
|
| 77 | + |
47 | 78 | ### Added
|
| 79 | + |
48 | 80 | - Thanks to @vmeylan for a developer experience contribution in `radcad/core.py`: make `_update_state()` error messages more verbose for easier debugging
|
49 | 81 |
|
50 | 82 | ## [0.9.0] - 2022-06-14
|
| 83 | + |
51 | 84 | ### Changed
|
| 85 | + |
52 | 86 | - `Context` passed to `before_subset(context)` hook will now correctly receive a single parameter subset and not all subsets
|
53 | 87 | - This could be a breaking change for anyone that relied on the `before_subset()` hook - the `before_run()` hook will still receive all subsets, as at that point of simulation the specific subset is unknown
|
54 | 88 | - See "NOTE" in `engine.py`: Each parameter is a list of all subsets in before_run() method and a single subset in before_subset()
|
55 | 89 |
|
56 | 90 | ## [0.8.4] - 2021-09-04
|
| 91 | + |
57 | 92 | ### Added
|
| 93 | + |
58 | 94 | - Overide for `__deepcopy__` method of Executable class to enable deepcopy after a simulation/experiment has been run
|
59 | 95 | - Add regression test for above `__deepcopy__` method
|
60 | 96 |
|
61 | 97 | ## [0.8.3] - 2021-08-30
|
| 98 | + |
62 | 99 | ### Changed
|
63 |
| -- Update radCAD package version in __init__.py |
| 100 | + |
| 101 | +- Update radCAD package version in **init**.py |
64 | 102 |
|
65 | 103 | ## [0.8.2] - 2021-08-27
|
| 104 | + |
66 | 105 | ### Changed
|
| 106 | + |
67 | 107 | - Update cadCAD from v0.4.23 to v0.4.27, fixing breaking changes to compat module
|
68 | 108 |
|
69 | 109 | ## [0.8.1] - 2021-08-24
|
| 110 | + |
70 | 111 | ### Changed
|
| 112 | + |
71 | 113 | - Minor update: Module package version & package details
|
72 | 114 |
|
73 | 115 | ## [0.8.0] - 2021-06-28
|
| 116 | + |
74 | 117 | ### Changed
|
| 118 | + |
75 | 119 | - `engine.deepcopy` setting now disables deepcopy of State as well as Policy Signals
|
76 | 120 |
|
77 | 121 | ## [0.7.1] - 2021-06-11
|
| 122 | + |
78 | 123 | ### Added
|
79 |
| -- Fix for Pathos multiprocessing issue - "NameError: Name '_' is not defined". See https://github.com/uqfoundation/multiprocess/issues/6 |
| 124 | + |
| 125 | +- Fix for Pathos multiprocessing issue - "NameError: Name '\_' is not defined". See https://github.com/uqfoundation/multiprocess/issues/6 |
80 | 126 |
|
81 | 127 | ## [0.7.0] - 2021-06-09
|
| 128 | + |
82 | 129 | ### Changed
|
| 130 | + |
83 | 131 | - Experiment and Simulation extend the Executable class (not a breaking change, but significant improvement to API)
|
84 | 132 |
|
85 | 133 | ## [0.6.7] - 2021-06-08
|
| 134 | + |
86 | 135 | ### Added
|
| 136 | + |
87 | 137 | - `generate_cartesian_product_parameter_sweep(...)` method to `radcad.utils`
|
88 | 138 |
|
89 | 139 | ## [0.6.6] - 2021-06-08
|
| 140 | + |
90 | 141 | ### Added
|
| 142 | + |
91 | 143 | - Base wrapper class
|
92 | 144 |
|
93 | 145 | ## [0.6.5] - 2021-06-03
|
| 146 | + |
94 | 147 | ### Added
|
| 148 | + |
95 | 149 | - Iterable Models
|
96 | 150 |
|
97 | 151 | ## [0.6.4] - 2021-05-31
|
| 152 | + |
98 | 153 | ### Added
|
| 154 | + |
99 | 155 | - Support for Python 3.9 (<4.0)
|
100 | 156 |
|
101 | 157 | ## [0.6.3] - 2021-04-30
|
| 158 | + |
102 | 159 | ### Added
|
| 160 | + |
103 | 161 | - Update dependencies
|
104 | 162 |
|
105 | 163 | ## [0.6.2] - 2021-04-30
|
| 164 | + |
106 | 165 | ### Added
|
| 166 | + |
107 | 167 | - Removed Streamlit which requires Python <3.9
|
108 | 168 |
|
109 | 169 | ## [0.6.1] - 2021-04-30
|
| 170 | + |
110 | 171 | ### Added
|
| 172 | + |
111 | 173 | - Support for Python 3.9
|
112 | 174 |
|
113 | 175 | ### Changed
|
| 176 | + |
114 | 177 | - Added tests for hook functionality, fixed minor error, removed WIP tag
|
115 | 178 | - Updated log statement for "Starting simulation ..."
|
116 | 179 |
|
117 | 180 | ## [0.6.0] - 2021-02-20
|
| 181 | + |
118 | 182 | ### Changed
|
| 183 | + |
119 | 184 | - Moved Ray and dependencies to optional extension `extension-backend-ray`
|
120 | 185 | - Refactored `Backend` module
|
121 | 186 | - Introduced idea of extensions
|
122 | 187 |
|
123 | 188 | ## [0.5.6] - 2021-02-10
|
| 189 | + |
124 | 190 | ### Added
|
| 191 | + |
125 | 192 | - `drop_substeps` (default False) option to Engine
|
126 | 193 |
|
127 | 194 | ## [0.5.5] - 2021-02-08
|
| 195 | + |
128 | 196 | ### Changed
|
| 197 | + |
129 | 198 | - Incorrect argument given to Pathos pool for number of processes
|
130 | 199 | - Update memory benchmarks to not test A/B testing
|
131 | 200 | - Change Python max version from <3.9 to <=3.9
|
132 | 201 | - Update hook API and add subset hook
|
133 | 202 |
|
134 | 203 | ## [0.5.4] - 2021-02-08
|
| 204 | + |
135 | 205 | ### Added
|
| 206 | + |
136 | 207 | - Error tracebacks to exceptions data
|
137 | 208 |
|
138 | 209 | ## [0.5.3] - 2021-02-07
|
| 210 | + |
139 | 211 | ### Changed
|
| 212 | + |
140 | 213 | - Close Pathos, Multiprocessing pools
|
141 | 214 |
|
142 | 215 | ## [0.5.2] - 2021-02-06
|
| 216 | + |
143 | 217 | ### Changed
|
| 218 | + |
144 | 219 | - Pandas version ^1.0.0
|
145 | 220 |
|
146 | 221 | ## [0.5.1] - 2021-02-06
|
| 222 | + |
147 | 223 | ### Added
|
| 224 | + |
148 | 225 | - Add hook example for saving experiment results to HDF5 file format
|
149 | 226 |
|
150 | 227 | ## [0.5.0] - 2021-02-05
|
| 228 | + |
151 | 229 | ### Added
|
| 230 | + |
152 | 231 | - Predator-prey benchmark test
|
153 | 232 |
|
154 | 233 | ### Changed
|
| 234 | + |
155 | 235 | - Refactor core from Rust to Python
|
156 | 236 |
|
157 | 237 | ## [0.4.1] - 2021-02-02
|
| 238 | + |
158 | 239 | ### Added
|
| 240 | + |
159 | 241 | - Add engine `deepcopy` option, to disable deepcopy of state
|
160 | 242 |
|
161 | 243 | ### Changed
|
| 244 | + |
162 | 245 | - Significant performance tuning of Rust core for 2x increase in speed and reduction in memory use
|
163 | 246 |
|
164 | 247 | ## [0.4.0] - 2021-02-01
|
| 248 | + |
165 | 249 | ### Changed
|
| 250 | + |
166 | 251 | - Fix of critical state update bug, added regression test `test_paralell_state_update()` to `test_regression.py`
|
167 | 252 |
|
168 | 253 | ## [0.3.1] - 2021-01-31
|
| 254 | + |
169 | 255 | ### Changed
|
| 256 | + |
170 | 257 | - Python version downgrade to `^3.7` for Streamlit
|
171 | 258 |
|
172 | 259 | ## [0.3.0] - 2021-01-30
|
| 260 | + |
173 | 261 | ### Added
|
| 262 | + |
174 | 263 | - Error handling (default `Engine(raise_exceptions=True)`)
|
175 | 264 | - Partial simulation results (on run failure / exception)
|
176 | 265 | - Memory profiling using mprof
|
177 | 266 |
|
178 | 267 | ### Changed
|
| 268 | + |
179 | 269 | - Default simulation engine (changed from MULTIPROCESSING to PATHOS)
|
180 | 270 |
|
181 | 271 | ### Removed
|
| 272 | + |
182 | 273 | -
|
0 commit comments