Skip to content

chore(main): release 0.0.0-alpha.61 - #339

Merged
energy-models-release-please[bot] merged 1 commit into
mainfrom
release-please--branches--main--components--math-spec
Sep 1, 2026
Merged

energy-models-release-please[bot] merged 1 commit into
mainfrom
release-please--branches--main--components--math-spec

Conversation

@energy-models-release-please

@energy-models-release-please energy-models-release-please Bot commented Sep 1, 2026 •

Copy link
Copy Markdown
Contributor

🤖 I have created a release beep boop

0.0.0-alpha.61 (2026-09-01)

Features

  • a model is checked from the shell, advice included, with no consumer installed (#192) (941126c)
  • a named expression may give a value per region, and no two regions may claim one coordinate (#168) (e12e7da)
  • a piecewise method answers which curvature it is exact for (#135) (6f0fff1)
  • a program is the second public state, and one call reaches it (#177) (c9ee1ab)
  • a snapshot is a timestamp, in the file and in every rung's network (#159) (dd5122e)
  • advice carries which pass said it and which declaration it is about, so a consumer can filter rather than parse (#195) (89408f6)
  • examples: a link delivers to as many buses as its data declares, not two (#273) (0ece0d8)
  • language: dimension members and lookup maps come from the data, rather than from the file (#169) (f3c4e5f)
  • language: which dims a mask reads is the language's answer, so two consumers cannot restrict one model differently (#269) (350b1ed)
  • parser: a refused expression names the rewrite rather than only the grammar's complaint (#332) (02121b8)
  • pin the eight names that keep this package and its consumer in step (#51) (15a354b)
  • position(dim) replaces index(dim, i), converting on the left (#31) (8f78ac5)
  • program: a parameter says which piecewise block derived it, and a label space keeps its dtype (#227) (515dbd5)
  • program: a piecewise assumption names the data it is about, and a derived parameter says how it is filled (#237) (48431b1)
  • program: a piecewise block is kept as facts — its breakpoints, its mask, and what it assumes of the data (#228) (2fdbd6f)
  • program: a program says which of the language's constructs it uses (#207) (4e55a15)
  • program: a resolved where is a first-class Mask whose leaves carry their dims, and the where grammar is package-private (#327) (53cc352)
  • program: the conjuncts of a where mask are the program's to give, not each consumer's to re-derive (#313) (db63d3c)
  • PyPSA in one file — every rung stated, shown beside its data, and solved to the same objective on both lanes (#122) (46544e3)
  • rung 11 — PyPSA's ac-dc-meshed example, whole (#151) (a133044)
  • rung 12 — linearized unit commitment, a file of its own (#152) (69b926e)
  • rung 13 — transmission losses in tangent form, a file of its own (#153) (379ce23)
  • rung 14 — two-stage stochastic with CVaR, a file of its own (#154) (41b427d)
  • rung 15 — investment periods with a growth limit, a file of its own (#155) (285aac3)
  • the notes a check prints are reachable, so a consumer surfaces them rather than re-deriving them (#184) (19ef814)
  • upright is what the model is given, italic is what the solver chooses (#44) (cbccc68)

Bug Fixes

  • a file the language accepts is one every consumer can build, the edge rules being decided at load (#211) (a362ff0)
  • advice: a model handed over as a program is advised of everything a file is (#217) (4fc50e6), closes #210
  • docs: the homepage feature cards render as cards rather than as loose rules and paragraphs (#145) (b88e5dc)
  • enforce the two rules a named offset or width was always said to obey (#61) (5bd92dc), closes #58
  • examples: a committable modular unit that is not extendable gets the rows PyPSA builds for it (#271) (5af0ac8)
  • language: a boolean literal in a where is decided at load wherever it stands (#216) (fab308f), closes #214
  • language: a link takes any affine expression, an uncalled template hides no typo, and degree is decided at load (#91) (a653056)
  • language: a negative edge fill prints, the sign of a literal amount being folded once at resolution (#234) (d9303db)
  • language: a negative sum_back width is refused at load rather than asserting in lowering (#223) (62e52eb), closes #222
  • language: a where mask is folded at resolution, so a typeset page and a program agree about it (#232) (553bda0)
  • language: the language reference states which case arms are refused, and the refusal says what actually breaks (#336) (01920d1)
  • let sum_back stop at each group's edge, as its checks already assumed (#65) (cb58e88)
  • parser: a negation is over a power, a keyword is given once, and an amount is a number or a name (#88) (4bf994c)
  • parser: a parsed expression cannot be rewritten under another pass (#329) (fcfb7b8)
  • program: a program describes a mathematical program rather than being one, and claims neither linearity nor a storage format (#315) (5dfa6be)
  • program: a where mask cannot be rewritten under another consumer (#197) (ce406b0)
  • program: an unknown dimension is refused rather than answered empty (#199) (96fdccf)
  • program: every expression node answers fan_in (#202) (f5cc67d)
  • refuse a negated named amount, and one read where there is no coordinate (#63) (15d9c25), closes #62
  • refuse a str or bool parameter where arithmetic wants a number (#71) (9b320fd)
  • schema: every refusal of a malformed file is a SchemaError, and an empty declared map survives a round trip (#89) (ee07736)
  • schema: two literal bounds that cross are refused at load (#97) (30589ba)
  • stop prettier rewriting what release-please generates (#27) (7486555)
  • stop the release build silently shipping a 0.0.0 wheel (#23) (a801b00)
  • the ac-dc-meshed rung states its network, so the reference run needs no download (#166) (abf734c)
  • the linearized rung states its three caps as rows and starts one unit cold, so every block it declares is built (#162) (cb4863f)
  • the notation page is generated again, and something says so (#41) (3dad75e)
  • the release notes landed inside an HTML comment (#25) (c33dc24)
  • to_markdown printed TeX's em-dash ligature, not an em dash (#34) (226407a)
  • typeset: a string value in a where clause prints as a quoted label (#114) (9be22c1)
  • typeset: a sum under its own dimension takes a fresh index, and prose escapes its markup (#92) (20c7076)

Performance

  • program: a mask walks its leaves once and every question reads that walk (#338) (337d169)

Refactoring

  • a program is trusted by construction, so the language's rules are checked once, on the spec (#189) (45931b1)
  • dead branches, an unused depth cap and prose about a parent project are gone (#86) (f31f3b0)
  • extract the language and typeset from lpspec (#17) (b997193)
  • name the groups a pass asks about, and spell each operator once (#52) (e35c46c)
  • one call returns every note the language can give without data (#191) (2face7a)
  • parser: one number rule, one amount table, and a namespace nothing builds by hand (#106) (f775a07)
  • program: a program is built by keyword, so a new field cannot reorder an old call (#203) (214394a)
  • program: a program's declarations are keyed by the name the file wrote (#205) (579264a)
  • program: drop the two pieces of the program API nothing reaches (#204) (ca25fa5)
  • program: expressions are the ones a row is built from, and the declared ones say so (#206) (81aaddd)
  • program: the declaration vocabularies have one home, so a program cannot spell one differently from the file (#219) (f7596d7), closes #209
  • program: the program module says what it promises, rather than offering its whole namespace (#208) (08d2f64)
  • schema: one wording for an undeclared dimension, and the front door validates once (#105) (69e42db)
  • the package is typesetting, the function stays typeset (#54) (a1d9599)
  • the stack's own additions say less and repeat nothing (#102) (119e588)
  • the tree describes this package, not the project it was cut from (#94) (9673f9a)
  • two public states and a conversion to each, where the surface was seventy-seven names (#180) (718e2de)
  • typeset: Markdown is LaTeX's math with its own document layer, and a step merges itself (#107) (1ca9178)

Documentation

  • a link's delivery lags its flow, wrapping or losing what is in transit at the horizon's edge (#300) (1d4f10f)
  • a named offset needs no edge=, the limitation it named is gone (#68) (d91a0c3), closes #64
  • AGENTS.md says what a change here is held to (#76) (5e142f5)
  • agents: the cheap gates run here, and CI is reported rather than watched (#175) (78e3d80)
  • an Examples section, each model beside the math it prints (#38) (66bfae4)
  • ceiling: load-time unit checking has its own refusal, where the data-prep row used to answer for it (#272) (8dfd17d)
  • drop the effects row from the PyPSA-1.3.0 parity table, a feature that release does not have (#305) (92e5ed8)
  • examples: the PyPSA file states a constraint once where PyPSA builds one row set, rather than a block per regime (#257) (#292) (c35e637)
  • language: a label space may group a position, though not a reduction or a walk (#281) (00be0cb)
  • language: the absence page is half the length and shows each rule on a model (#127) (147788a)
  • the absence rules cover every operator, not the three they named (#173) (3266a5b)
  • the language knows nothing about sinks (#118) (886a854)
  • the README's example of reading a loaded model runs as written (#240) (304a233)
  • the style guide's front-door example is the function it quotes (#187) (5dbed70)
  • the title rules are written for the changelog reader (#79) (fdb52e4)

This PR was generated with Release Please. See documentation.

@energy-models-release-please energy-models-release-please Bot added the no changelog This PR needs no changelog entry. To bypass ci label Sep 1, 2026
@energy-models-release-please
energy-models-release-please Bot enabled auto-merge (squash) September 1, 2026 15:51
@energy-models-release-please
energy-models-release-please Bot force-pushed the release-please--branches--main--components--math-spec branch from e8b97c8 to 841cf9e Compare September 1, 2026 15:53
@FBumann
FBumann disabled auto-merge September 1, 2026 15:54
@energy-models-release-please
energy-models-release-please Bot enabled auto-merge (squash) September 1, 2026 15:55
@energy-models-release-please
energy-models-release-please Bot merged commit 3657ec6 into main Sep 1, 2026
5 of 6 checks passed
@energy-models-release-please

Copy link
Copy Markdown
Contributor Author

🤖 Created releases:

🌻

@energy-models-release-please energy-models-release-please Bot added autorelease: tagged and removed no changelog This PR needs no changelog entry. To bypass ci labels Sep 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment