Releases: ryanduguid/planning-analytics-model
Releases · ryanduguid/planning-analytics-model
Release list
v0.1.2
Immutable
release. Only release title and notes can be modified.
v0.1.2
- Publishes the attested wheel and source distribution to PyPI as
pacioliscubethrough trusted publishing. - No functional change since v0.1.1.
v0.1.1
- The repository was renamed from PaciolisCube to planning-analytics-model, and the README now says the package is installed from source rather than from PyPI.
- The CSV loader refuses two rows that give the same cell different values and names both rows, and the loader and the model reader reject malformed consolidation coordinates and unusable temporary TM1 objects.
- A command that prints several cells shares one set of calculation caches across them instead of recomputing the model per cell.
- The command line reads its version from the installed package metadata rather than from a second copy of the number.
- Continuous integration gained ruff and mypy, Python 3.12 and 3.13, pinned action SHAs, job timeouts and concurrency groups, changed-line branch coverage over the validation logic, and a check that refuses a pull request carrying an AI authorship credit.
- The model's feeders now cover monthly depreciation, feeder arity is checked, and
docs/native-comparison.mdrecords native TM1 agreement as pending with the evidence a comparison would need.
v0.1.1
Immutable
release. Only release title and notes can be modified.
v0.1.1
- The repository was renamed from PaciolisCube to planning-analytics-model, and the README now says the package is installed from source rather than from PyPI.
- The CSV loader refuses two rows that give the same cell different values and names both rows, and the loader and the model reader reject malformed consolidation coordinates and unusable temporary TM1 objects.
- A command that prints several cells shares one set of calculation caches across them instead of recomputing the model per cell.
- The command line reads its version from the installed package metadata rather than from a second copy of the number.
- Continuous integration gained ruff and mypy, Python 3.12 and 3.13, pinned action SHAs, job timeouts and concurrency groups, changed-line branch coverage over the validation logic, and a check that refuses a pull request carrying an AI authorship credit.
- The model's feeders now cover monthly depreciation, feeder arity is checked, and
docs/native-comparison.mdrecords native TM1 agreement as pending with the evidence a comparison would need.
v0.1.0
First release.
An IBM Planning Analytics budgeting model published as source, with an offline engine that computes it and a test suite that asserts the answers.
model/holds a complete driver based budget for a fictional Australian mining services group: 13 dimensions, 5 cubes, 4 rule files and 8 TurboIntegrator processes, in the layout the Planning Analytics Git integration reads and writes.pacioliscubeparses the rules and evaluates the model with no TM1 server, and ships a command line with validate, calculate and report subcommands.- 253 tests. They compute the model and assert figures, each expected number written longhand in the test, so breaking a rule in the model source turns the suite red.
- No rule file holds a statutory rate. Every one is read from the Drivers cube, and a test fails the build if a number in any rule or script carries a value the driver file ships.
- Every statutory figure is traced in
docs/model-assumptions.md, including the two concessional contributions cap inputs that could not be confirmed from a primary source and still need a human check.
Nothing here has been run against a live Planning Analytics server. The optional deploy extra is unexercised.