-
Notifications
You must be signed in to change notification settings - Fork 23
chore: raise the openjd-model floor to 0.11.6 #358
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -31,14 +31,17 @@ classifiers = [ | |
| "Topic :: Software Development :: Libraries" | ||
| ] | ||
| dependencies = [ | ||
| # 0.11.4 is the floor because it is the first release whose SerializedSymbolTable | ||
| # has a JSON transport form (to_json_str/from_json_str), which is how a caller | ||
| # gets a table across a process boundary and into the v1 Session's | ||
| # `resolved_symtab`. Do not drop below 0.11.2: the EXPR/WRAP_ACTIONS model | ||
| # surface this package imports (FormatString.whole_field_expression, | ||
| # evaluate_let_bindings, CancelationMethodDeferred, SymbolTable.expr_host_rules, | ||
| # `let` on StepTemplate/StepScript) does not exist before then. | ||
| "openjd-model >= 0.11.4,< 0.12", | ||
| # 0.11.6 is the floor: it is the first release that accepts an environment | ||
| # defining only `onExit`, a template this package is expected to enter and | ||
| # exit. Earlier floors, still load-bearing: 0.11.4 is where | ||
| # SerializedSymbolTable gained its JSON transport form | ||
| # (to_json_str/from_json_str), which is how a caller gets a table across a | ||
| # process boundary and into the v1 Session's `resolved_symtab`; and the | ||
| # EXPR/WRAP_ACTIONS model surface this package imports | ||
| # (FormatString.whole_field_expression, evaluate_let_bindings, | ||
| # CancelationMethodDeferred, SymbolTable.expr_host_rules, `let` on | ||
| # StepTemplate/StepScript) does not exist before 0.11.2. | ||
| "openjd-model >= 0.11.6,< 0.12", | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The
{% for commit in release["elements"]["breaking"] %}
* {{ commit.commit.summary[commit.commit.summary.find(": ")+1:].strip() }} (...)It never reads
A consumer upgrading from 0.11.0 sees a dependency floor bump listed as the breaking change, with no mention of the removed parameter that will actually break their code. The version number is right; the migration signal is missing. Worth considering either putting the API removal in the commit summary rather than the dependency bump, or extending the template to emit |
||
| "pywin32 >= 307; platform_system == 'Windows'", | ||
| "psutil >= 5.9,< 7.3; platform_system == 'Windows'", | ||
| ] | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The
onExit-only rationale does not appear to be a constraint this package can enforce, which makes this floor bump stricter than it needs to be.The other floors named in this comment are genuine import-level requirements —
evaluate_let_bindings,CancelationMethodDeferred,SerializedSymbolTable.from_json_strand friends are imported directly, so on an older model the package fails at import or attribute access. That is what a dependency floor is for.openjd-model 0.11.6 is different in kind:
5b9c661relaxes a validator on the ordinary-action path, and greppingsrc/turns up no template decode or validation call at all (noparse_model, nodecode_*_template, nomodel_validate) — the package receives already-constructed model objects from its caller. So whether anonExit-only environment is accepted is decided by whichever openjd-model performed the decode, in the caller's process. Raising this package's floor does not make that template decodable for anyone whose caller resolves an older model, and this package's own handling already tolerates the shape regardless of model version —_runner_env_script.py:189treats a missingonEnteras a no-op success, and_session.py:967-974skips the wrap lookup whenonEnterisNone.The practical cost is that every consumer must now resolve openjd-model >= 0.11.6, and the
< 0.12ceiling means there is exactly one acceptable version. Given the release is being cut as 0.12.0 anyway, that is a narrow window to hand downstream resolvers for a reason that is not load-bearing here. Keeping the floor at 0.11.4 and noting 0.11.6 as the version a caller needs to decode such templates would achieve the same thing without the constraint.