Releases: ccomb/volca
Release list
v0.9.1
What's Changed
- Bump to 0.9.1-dev by @ccomb in #182
- Render dataclass @Property members in generated API reference by @ccomb in #183
- fix(pyvolca): don't mistake a
volcadirectory for the engine binary by @ccomb in #184 - Add two EF 3.1 1.03 legacy flow-name synonym bridges by @ccomb in #185
- feat(pyvolca): expose classification match mode on search_activities by @ccomb in #186
- fix+ci(pyvolca): resolve pre-existing pyright errors and gate pyright in CI by @ccomb in #187
- ci: gate hlint and -Werror in engine CI by @ccomb in #188
- ci: extend hlint coverage to app/ and test/ by @ccomb in #189
- LCIA: characterize immediate groundwater emissions again by @ccomb in #190
- Group coproducts by source dataset, and stream exports as raw bytes by @ccomb in #191
- docs: document conventions instead of inventories, fix drift by @ccomb in #193
- Declarative method patches + exclude-long-term on bulk impacts by @ccomb in #192
- Repair the LCIA benchmark build after the plugin framework removal by @ccomb in #194
- Add the missing changelog entries for the groundwater and synonym fixes by @ccomb in #195
- Bump the wire version to 2 for the raw-bytes export download by @ccomb in #196
- Release 0.9.1 by @ccomb in #197
Full Changelog: v0.9.0...v0.9.1
v0.9.0
What's Changed
- Expose database load/unload across all user-facing surfaces by @ccomb in #153
- perf(lcia): build method tables once, off the request path by @ccomb in #154
- fix(lcia): correct EF-3.1 over-counting (flow units + synonym hub) by @ccomb in #155
- perf(lcia): speed up method-table build (parallel cascade + synonym-group memo) by @ccomb in #156
- fix(synonyms): drop CAS-ambiguous bridges from method-extracted synonyms by @ccomb in #157
- fix(lcia): characterize long-term emissions with the method's long-term CF by @ccomb in #158
- fix(lcia): characterize ionising radiation against the kBq reference unit by @ccomb in #159
- EF-3.1 JRC (ILCD) ↔ SimaPro convergence on Agribalyse 3.2 by @ccomb in #160
- docs: add engine architecture overview by @ccomb in #162
- LCIA: deterministic regional-projection dedup + single medium canonicalization by @ccomb in #161
- fix(lcia): SimaPro CFs are name-regionalized, not consumer-location by @ccomb in #163
- LCIA: curated CFC & pesticide name bridges (ozone depletion + freshwater ecotoxicity) by @ccomb in #164
- LCIA: auto-extracted synonyms become an opt-in candidate set by @ccomb in #165
- LCIA: typed direction on flow-name synonym bridges by @ccomb in #166
- LCIA: curation metadata (cas, note) + offline lint of the flow-name registry by @ccomb in #167
- LCIA: backfill name-variant flow bridges from the auto-dependence audit by @ccomb in #168
- LCIA: region fallback chain for name-regionalized water flows by @ccomb in #169
- tooling: offline proposal tool for curated flow-name bridges by @ccomb in #170
- fix(simapro): keep name-less multi-product blocks as one activity by @ccomb in #171
- Display labels for computed scoring variables by @ccomb in #172
- LCIA: subcompartment gating, generalized density bridge, ore-grade resource fallback by @ccomb in #173
- LCIA: verbatim-name preference when unit-suffixed CF homonyms collide by @ccomb in #174
- fix(ecospold1): include subCategory in generated flow identity by @ccomb in #176
- data(flows): bridge elemental metal emissions to their ionic toxicity CF by @ccomb in #177
- loader: accept a bare .csv method file; honest unsupported-type error by @ccomb in #175
- data(flows): treat an unspecified chromium emission as trivalent by @ccomb in #178
- feat(lcia): optional exclusion of long-term emissions from scoring by @ccomb in #179
- Remove over-engineering (audit follow-up) by @ccomb in #180
- Release v0.9.0 by @ccomb in #181
Full Changelog: v0.8.1...v0.9.0
v0.8.1
v0.8.0
What's Changed
- Return ActivityNotFound for a well-formed but absent ProcessId by @ccomb in #109
- fix(pyvolca): substitution wire shape + cross-DB edge endpoints for engine 0.7.0 by @ccomb in #108
- docs(pyvolca): changelog for 0.5.1 by @ccomb in #110
- chore: fourmolu reformat by @ccomb in #111
- feat: global supplier substitution across all consumers by @ccomb in #112
- Automate Haskell formatting and add agent instructions by @ccomb in #123
- docs(pyvolca): stop version-dependent drift in the generated API reference by @ccomb in #124
- Add AGENTS.md with a type-naming convention by @ccomb in #127
- Scope per-method CF caches by collection by @ccomb in #125
- Report partial EcoSpold2 imports honestly (unresolved background links) by @ccomb in #126
- feat(edit): delete-by-selection — drop the whole filtered activity set by @ccomb in #114
- Link partial EcoSpold2 imports to their background by activityLinkId UUID by @ccomb in #128
- feat(edit): copy a loaded database under a new name by @ccomb in #115
- feat(edit): relink against one dependency via a name→name alias map by @ccomb in #116
- style: fourmolu the relinkStaged code in Manager.hs (#116 follow-up) by @ccomb in #129
- fix(synonyms): surface a missing reference CSV as Left instead of crashing by @ccomb in #130
- feat(simapro): SimaPro CSV writer — canonical inverse of the parser by @ccomb in #117
- feat(ecospold1): EcoSpold 1 writer — canonical inverse of the parser by @ccomb in #118
- feat(ilcd): ILCD writer — canonical inverse of the parser by @ccomb in #120
- feat(export): serialize a loaded database to any of the five formats by @ccomb in #122
- Import and score ecoinvent waste-treatment activities correctly by @ccomb in #131
- fix(export): make a loaded database exportable to every format by @ccomb in #132
- feat(api): stream uploads as octet-stream instead of base64-in-JSON by @ccomb in #133
- fix(crosslink): score cross-DB waste treatment with the right sign by @ccomb in #134
- fix(loader): load EcoSpold packages whose datasets sit in a subdirectory by @ccomb in #135
- Match same-CAS flows correctly when scoring against EF v3.1 by @ccomb in #136
- feat(lcia): characterize energy-denominated CFs via per-flow energy density by @ccomb in #137
- fix(lcia): subcompartment fallback + CAS-bridge unspecified default by @ccomb in #138
- data(land): regionalize land-use scoring with per-country JRC CFs by @ccomb in #139
- feat(method): substance registry + cross-nomenclature CF coverage by @ccomb in #140
- Type the CF lookup keys with domain newtypes by @ccomb in #141
- data: ecoinvent/Agribalyse → EF v3.1 (JRC) flow synonyms (land, particulates, energy, nutrients) by @ccomb in #143
- Name activity fields activity_name / product_name (engine + pyvolca) by @ccomb in #142
- fix(synonym): strip /m3 and /Sm3 unit suffixes in normalizeName by @ccomb in #144
- feat(synonym): single-source the unit-suffix list + warn on uncovered suffixes by @ccomb in #145
- feat(api): advertise wireVersion on /api/v1/version by @ccomb in #146
- pyvolca: enforce + document + preflight engine wire compatibility by @ccomb in #147
- Self-identify the OpenAPI spec + add hlint/weeder configs by @ccomb in #148
- Release v0.8.0 by @ccomb in #149
Full Changelog: v0.7.0...v0.8.0
v0.7.0
What's Changed
- chore(release): bump cabal to 0.6.1-dev by @ccomb in #10
- fix(build): detect system MUMPS via gcc -print-multiarch by @ccomb in #12
- ci: prebuild MUMPS once, download in normal CI (skip the 8-17 min compile) by @ccomb in #13
- ci: prebuild cabal store once, download in normal CI by @ccomb in #14
- ci(prebuild-cabal-store): use git-bash for MUMPS download on Windows by @ccomb in #16
- ci(windows): drop GHCup cache + move ghcup/cabal to D: drive by @ccomb in #15
- ci: build on push to main + Save Cabal store on prebuilt-win path by @ccomb in #17
- ci: Save Cabal store also when prebuilt wins by @ccomb in #18
- add: one-liner installers for Linux/macOS/Windows by @ccomb in #6
- feat(pyvolca): download() helper for binary + data bundle by @ccomb in #7
- feat(install): align all installers on platformdirs.user_data_dir by @ccomb in #21
- fix(link): statically link BLAS/LAPACK/gfortran into the engine binary by @ccomb in #20
- ci: extract composite actions + run drift test against main's engine by @ccomb in #22
- fix(docker): copy cbits/ before gen-cabal-config.sh by @ccomb in #23
- fix(search): short prefix queries no longer mask stem matches by @ccomb in #24
- feat(lcia): regionalized scoring via openLCA JSON-LD ImpactCategory by @ccomb in #25
- License compliance: relicense mumps-hs, add NOTICE/THIRD_PARTY_LICENSES, ship /api/v1/licenses by @ccomb in #30
- docker: add fully-static musl build by @ccomb in #32
- perf(matrix): coalesce concurrent solves into one mumpsSolveMulti call by @ccomb in #26
- fix(substitutions): resolve bare consumer in root DB only by @ccomb in #27
- feat(sensitivity): rank-1 perturbA primitive + sensitivity sweep endpoint by @ccomb in #31
- openLCA JSON-LD method ergonomics + LCIA fallback fixes by @ccomb in #33
- test(coalescing): drop flaky perf assertion from CI by @ccomb in #35
- Fix silent-zero CF lookup on compartment mismatch + parse ILCD by @ccomb in #36
- fix(lcia): zero out characterization on incompatible unit conversion by @ccomb in #28
- perf(lcia): batch multi-method scoring via stacked-broadcast matvec (~22× on PEF) by @ccomb in #29
- flow-mapping fixes: synonym fan-out + curated BAFU↔EF3.1 bridges by @ccomb in #37
- Cross-distribution flow-mapping audit: diagnostics, geolocation, fan-out by @ccomb in #34
- docs: relocate flow-mapping-audit guide to www by @ccomb in #38
- perf(lcia): precompute per-activity weights for regionalized methods by @ccomb in #39
- fix(db): auto-relink on every Load and persist updated links to cache by @ccomb in #42
- fix(lcia): sum regional dot products across all participating databases by @ccomb in #41
- fix(simapro): unify multi-product coproducts + expose allocation by @ccomb in #43
- feat: parse SimaPro pedigree matrix and expose it via API by @ccomb in #44
- build: factor ghc-options via common stanzas, enable -O2 on library by @ccomb in #45
- fix(bench): realign multi-method-bench with current scoring API by @ccomb in #46
- feat(bench): extend benchmarks to all hot paths, emit JSON for the perf page by @ccomb in #47
- Unify gen-cabal-config.sh: parallelism preamble + Windows discovery by @ccomb in #48
- Collapse glibc-static Docker path, make musl the canonical Dockerfile by @ccomb in #49
- ci: add Alpine/musl support to setup-haskell-env + build.sh (foundation) by @ccomb in #50
- ci: flip Linux jobs to Alpine/musl by @ccomb in #51
- ci: bump GHC 9.12.4 + unify Linux on Alpine 3.23/musl by @ccomb in #52
- deps: refresh versions.env (OpenBLAS, MUMPS, Node) + drop PETSc by @ccomb in #54
- refactor: eliminate Prelude.head/tail partial functions + redundant foldl' imports by @ccomb in #55
- deps: drop unused RUST_VERSION, NODE_VERSION, ELM_VERSION pins by @ccomb in #56
- docker: bring Dockerfile in line with Alpine 3.23 / GHC 9.12.4 CI by @ccomb in #57
- deps: centralize toolchain pins (Alpine, macOS target, Python) in versions.env by @ccomb in #58
- fix(docker): unblock 8 GB VM target — OpenBLAS musl pthread + RTS memory discipline by @ccomb in #60
- fix(docker): set musl pthread stack via PT_GNU_STACK (real fix for #60) by @ccomb in #61
- build: shrink binaries with -split-sections + --gc-sections by @ccomb in #62
- feat(upload): accept openLCA JSON-LD ImpactCategory files in the method upload pipeline by @ccomb in #63
- fix(synonyms): remove erroneous PSM bucket and Chromium III entries from flows.csv by @ccomb in #64
- fix(mapping): filter regionalized CF table by exact subcompartment match by @ccomb in #66
- fix(simapro): align CF and biosphere flow UUIDs for regional + non-kg flows by @ccomb in #65
- fix(mapping): regionalized LCIA returns partial score on tainted columns by @ccomb in #67
- fix(matrix): drop the post-normalization 1e-15 magnitude filter on matrix triplets by @ccomb in #69
- fix(simapro/parser): preserve sign on Materials/fuels exchanges (substitution semantics) by @ccomb in #68
- fix(docker): restore -I30 idle-GC threshold to end interactive stalls by @ccomb in #70
- build(docker): support building the image for a chosen --platform (ARM64) by @ccomb in #71
- refactor: trim accidental complexity in the LCA engine by @ccomb in #72
- Split Flow into TechnosphereFlow + BiosphereFlow by @ccomb in #73
- test(server): poll for process exit instead of fixed sleeps by @ccomb in #75
- Expose batched LCIA + scoring sets via MCP by @ccomb in #74
- refactor: biosphere wire safety + tagged ApiFlow + fixes by @ccomb in #76
- Replace dual selectedDeps/suggestions with DependencyChoice sum by @ccomb in #77
- Shrink MCP impact responses: slim score_activity, summarize score_activities by @ccomb in #79
- Per-database geography_policy for cross-DB linking by @ccomb in #80
- Geography policy follow-up: consistent kind code + exhaustive LinkBlocker + schema fixes by @ccomb in #81
- feat(linker): drop redundant DBs from cross-link preselection by @ccomb in #78
- test: audit suite — switch to hspec-discover, prune dead tests, fill coverage gaps by @ccomb in #82
- Add WasteFlow / WasteExchange as third top-level flow kind by @ccomb in #83
- fix(simapro): expose split-location products to cross-DB linker by @ccomb in #84
- feat(mcp): columnar score_activities + market hint + web_url tips by @ccomb in #85
- Surface orphan-waste gap + exact-match cross-DB waste linker by @ccomb in #86
- pyvolca 0.4.0 — WasteExchange support + realign with current wire format by @ccomb in #88
- mcp: omit web_url when no frontend is bundled by @ccomb in #89
- pyvolca: typed MatchMode for ClassificationFilter by @ccomb in #90
- pyvolca: lazy paginated SearchResults[T] for search/consumers endpoints by @ccomb in #91
- pyvolca 0.5.0 — typed returns, StrEnums, surfaced pagination by @ccomb in #92
- mcp: expose source-native activity_type through search/score/get_activity by @ccomb in #93
- refactor: behavior-preserving cleanup sweep across the engine by @ccomb in #87
- Load Brightway Excel (.xlsx) inventories by @ccomb in #100
- fix(api): surface cross-DB invariant breakages as 4xx, not 500 by @ccomb in #101
- Add macos-intel (x86_64) engine build target by @ccomb in https://github.com...
MUMPS 5.9.0 prebuilt (revision 5)
Prebuilt MUMPS_SEQ 5.9.0 (PORD ordering, double precision, static archives) for use by _build-matrix.yml. Source: build-mumps.sh.
Cabal store prebuilt — GHC 9.12.4, hash efa78966 (revision 3)
Prebuilt cabal store (~/.cabal/store) for use by _build-matrix.yml. Hash efa78966 = first 8 chars of sha256(volca.cabal + mumps-hs/mumps-hs.cabal + cabal.project).
Cabal store prebuilt — GHC 9.12.4, hash 7e1a682d (revision 3)
Prebuilt cabal store (~/.cabal/store) for use by _build-matrix.yml. Hash 7e1a682d = first 8 chars of sha256(volca.cabal + mumps-hs/mumps-hs.cabal + cabal.project).
Cabal store prebuilt — GHC 9.12.4, hash 21a96b92 (revision 3)
Prebuilt cabal store (~/.cabal/store) for use by _build-matrix.yml. Hash 21a96b92 = first 8 chars of sha256(volca.cabal + mumps-hs/mumps-hs.cabal + cabal.project).
Cabal store prebuilt — GHC 9.12.4, hash 98b17609 (revision 2)
Prebuilt cabal store (~/.cabal/store) for use by _build-matrix.yml. Hash 98b17609 = first 8 chars of sha256(volca.cabal + mumps-hs/mumps-hs.cabal + cabal.project).