Repository navigation
chore(deps): update dependency python to 3.15 - #1
Merged
Merged
Conversation
renovate
Bot
force-pushed
the
renovate/github-actions
branch
from
July 16, 2026 04:14
4b1f624 to
4cec832
Compare
renovate
Bot
force-pushed
the
renovate/github-actions
branch
from
August 15, 2026 07:33
4cec832 to
9da18e2
Compare
renovate
Bot
force-pushed
the
renovate/github-actions
branch
from
September 5, 2026 03:26
9da18e2 to
67215c8
Compare
renovate
Bot
force-pushed
the
renovate/github-actions
branch
from
October 9, 2026 21:01
67215c8 to
bc1ddd3
Compare
renovate
Bot
force-pushed
the
renovate/github-actions
branch
2 times, most recently
from
October 21, 2026 03:52
5a9c21f to
aaeb813
Compare
renovate
Bot
force-pushed
the
renovate/github-actions
branch
from
October 23, 2026 08:00
aaeb813 to
02d2382
Compare
renovate
Bot
force-pushed
the
renovate/github-actions
branch
from
October 23, 2026 08:23
02d2382 to
7342900
Compare
aldbr
approved these changes
Oct 23, 2026
aldbr
pushed a commit
that referenced
this pull request
Oct 23, 2026
* feat: Models the core contract needs * Feat: Protocols and Exceptions added for the core contract * Feat: Private protocols for the BatchBackend * feat: a fake backend to run unit tests against * fix: some code cleanup in the helper functions * feat: setup for the unit test suite * chore: style fix * chore: styling, unit test fixture * chore: single letter var `h` refering to hanlde changed to `handle` * fix: unused parameter in `test_injected_failure_is_reported_per_job()` removed * chore: Making room in local fork for my documentation so i can easily have them link to each other * fix: placed in the wrong folder :/ * chore: added testplan * feat: Models the core contract needs * Feat: Protocols and Exceptions added for the core contract * Feat: Private protocols for the BatchBackend * feat: a fake backend to run unit tests against * fix: some code cleanup in the helper functions * feat: setup for the unit test suite * chore: style fix * chore: styling, unit test fixture * chore: single letter var `h` refering to hanlde changed to `handle` * fix: unused parameter in `test_injected_failure_is_reported_per_job()` removed * fix: made the OutputSpec optional as it is not suppoerted by all and a consumer should choose to use it or not * Feat: Core contract issue #16 (#1) * feat: Models the core contract needs * Feat: Protocols and Exceptions added for the core contract * Feat: Private protocols for the BatchBackend * feat: a fake backend to run unit tests against * fix: some code cleanup in the helper functions * feat: setup for the unit test suite * chore: style fix * chore: styling, unit test fixture * chore: single letter var `h` refering to hanlde changed to `handle` * fix: unused parameter in `test_injected_failure_is_reported_per_job()` removed * feat: Models the core contract needs * Feat: Protocols and Exceptions added for the core contract * Feat: Private protocols for the BatchBackend * feat: a fake backend to run unit tests against * fix: some code cleanup in the helper functions * feat: setup for the unit test suite * chore: style fix * chore: styling, unit test fixture * chore: single letter var `h` refering to hanlde changed to `handle` * fix: unused parameter in `test_injected_failure_is_reported_per_job()` removed * fix: made the OutputSpec optional as it is not suppoerted by all and a consumer should choose to use it or not --------- Co-authored-by: alexander <[email protected]> * fix: These documents should not exist in this way in the main repository * fix: None check for the outputs in submissionspec * chore: trailing white spaces * chore: fixed pre commit locally * chore: removed pdf, as they just take up space and no one will use them there * fix: JobHandle key is now a combination of the handle's fields instead of a hash of the full object * test: trim the unit tests to logical cases that can happen Drop tests of pydantic and Python behaviour (immutability, defaults, hashing) and keep the rules interCEde itself adds. * docs: follow the Diátaxis structure for the user documentation Move the API reference to docs/user/reference/api.md, link the user and developer documentation from the index, and stop referring to the ADRs there. * fix: address the review of the core contract - Google-style docstrings for the public and batch protocols, with arguments, returns and raises. - get_diagnostics takes a filename (a file in the job's working directory; None reads stdout) instead of a generic name; Diagnostics.filename matches. - An input name may appear once in a SubmissionSpec: two sources for one file are refused when the spec is built. - A copy with a secret named like an input is refused at submit with SpecificationRejectedError; SubmissionSpec.clashes_with() lets every backend apply the same rule. - No references to the ADRs in code or docstrings: they are not part of the source and can be superseded. --------- Co-authored-by: alexander <[email protected]>
aldbr
pushed a commit
that referenced
this pull request
Oct 26, 2026
* feat: Models the core contract needs * Feat: Protocols and Exceptions added for the core contract * Feat: Private protocols for the BatchBackend * feat: a fake backend to run unit tests against * fix: some code cleanup in the helper functions * feat: setup for the unit test suite * chore: style fix * chore: styling, unit test fixture * chore: single letter var `h` refering to hanlde changed to `handle` * fix: unused parameter in `test_injected_failure_is_reported_per_job()` removed * chore: Making room in local fork for my documentation so i can easily have them link to each other * fix: placed in the wrong folder :/ * chore: added testplan * feat: Models the core contract needs * Feat: Protocols and Exceptions added for the core contract * Feat: Private protocols for the BatchBackend * feat: a fake backend to run unit tests against * fix: some code cleanup in the helper functions * feat: setup for the unit test suite * chore: style fix * chore: styling, unit test fixture * chore: single letter var `h` refering to hanlde changed to `handle` * fix: unused parameter in `test_injected_failure_is_reported_per_job()` removed * fix: made the OutputSpec optional as it is not suppoerted by all and a consumer should choose to use it or not * Feat: Core contract issue #16 (#1) * feat: Models the core contract needs * Feat: Protocols and Exceptions added for the core contract * Feat: Private protocols for the BatchBackend * feat: a fake backend to run unit tests against * fix: some code cleanup in the helper functions * feat: setup for the unit test suite * chore: style fix * chore: styling, unit test fixture * chore: single letter var `h` refering to hanlde changed to `handle` * fix: unused parameter in `test_injected_failure_is_reported_per_job()` removed * feat: Models the core contract needs * Feat: Protocols and Exceptions added for the core contract * Feat: Private protocols for the BatchBackend * feat: a fake backend to run unit tests against * fix: some code cleanup in the helper functions * feat: setup for the unit test suite * chore: style fix * chore: styling, unit test fixture * chore: single letter var `h` refering to hanlde changed to `handle` * fix: unused parameter in `test_injected_failure_is_reported_per_job()` removed * fix: made the OutputSpec optional as it is not suppoerted by all and a consumer should choose to use it or not --------- Co-authored-by: alexander <[email protected]> * fix: These documents should not exist in this way in the main repository * fix: None check for the outputs in submissionspec * chore: trailing white spaces * chore: fixed pre commit locally * chore: removed pdf, as they just take up space and no one will use them there * fix: JobHandle key is now a combination of the handle's fields instead of a hash of the full object * feat: backend configuration and a closed registry Add BackendConfig, one flat public model a consumer uses to describe any backend (kind, transport, scheduler, endpoint, host, ...). It is resolved internally into the settings of exactly one backend family, so a field that does not apply to the chosen kind is refused by name instead of ignored. Add the registry: registry.backend(config) builds the backend a configuration describes, from closed name -> "module:Class" tables. Entries are imported lazily and every built object is checked against its protocol, so a broken entry fails at resolution with a RegistryError. Part of #18. Co-authored-by: alexander <[email protected]> * test: trim the unit tests to logical cases that can happen Drop tests of pydantic and Python behaviour (immutability, defaults, hashing) and keep the rules interCEde itself adds. * test: trim the registry and configuration tests to logical cases One test per rule, no tests of what pydantic or a closed table already guarantees. * docs: follow the Diátaxis structure for the user documentation Move the API reference to docs/user/reference/api.md, link the user and developer documentation from the index, and stop referring to the ADRs there. * fix: address the review of the core contract - Google-style docstrings for the public and batch protocols, with arguments, returns and raises. - get_diagnostics takes a filename (a file in the job's working directory; None reads stdout) instead of a generic name; Diagnostics.filename matches. - An input name may appear once in a SubmissionSpec: two sources for one file are refused when the spec is built. - A copy with a secret named like an input is refused at submit with SpecificationRejectedError; SubmissionSpec.clashes_with() lets every backend apply the same rule. - No references to the ADRs in code or docstrings: they are not part of the source and can be superseded. * fix: no references to the ADRs in the registry and configuration Follows the review of the core contract: the ADRs are not part of the source and can be superseded. The registry's docstrings also say what they return. * fix: apply the core contract review to the registry - Google-style docstrings with Args, Returns and Raises for resolve() and every registry and configuration helper, and docstrings for the settings classes; ruff now checks docstrings against the Google convention. - Remove vm_max_lifetime_s: removing VMs after a lifetime is the consumer's policy, not interCEde's. - Import Callable from collections.abc, like the rest of the code. * refactor: rename registry.backend() to get_backend() A verb says that the call builds something, and get_backend() no longer reads like the backend itself. * refactor!: one public configuration model per backend kind ARCConfig, HTCondorCEConfig, CloudConfig, BatchLocalConfig and BatchSSHConfig replace the flat BackendConfig, which is now their union, chosen by kind (and by transport for batch). A consumer can still pass a plain mapping, such as a TOML table. - Every field is declared once, on the model of its kind: the internal settings classes, the hand-kept field lists and resolve() are gone, so a configuration is validated once instead of twice. - validate_config() checks a configuration and returns its model; registry.get_backend() uses it. A model is checked again, so one changed with model_copy() cannot carry fields of another transport to a backend. - Errors never repeat a value they were given, since it may be a secret, and name the expected fields when a field does not belong to the kind. - The configuration tests use the public API only. The SSH auth mode is now one value (auth = "key") instead of a list. * docs: generate the configuration reference from the models griffe-pydantic renders every field of each configuration model, inherited ones included, with its type, default and description, so the reference cannot drift from the code like the hand-written table could. * fix: Rename FakeSettings to FakeConfig to stay in line with the review changes --------- Co-authored-by: alexander <[email protected]>
aldbr
pushed a commit
that referenced
this pull request
Oct 27, 2026
* feat: Models the core contract needs * Feat: Protocols and Exceptions added for the core contract * Feat: Private protocols for the BatchBackend * feat: a fake backend to run unit tests against * fix: some code cleanup in the helper functions * feat: setup for the unit test suite * chore: style fix * chore: styling, unit test fixture * chore: single letter var `h` refering to hanlde changed to `handle` * fix: unused parameter in `test_injected_failure_is_reported_per_job()` removed * chore: Making room in local fork for my documentation so i can easily have them link to each other * fix: placed in the wrong folder :/ * chore: added testplan * feat: Models the core contract needs * Feat: Protocols and Exceptions added for the core contract * Feat: Private protocols for the BatchBackend * feat: a fake backend to run unit tests against * fix: some code cleanup in the helper functions * feat: setup for the unit test suite * chore: style fix * chore: styling, unit test fixture * chore: single letter var `h` refering to hanlde changed to `handle` * fix: unused parameter in `test_injected_failure_is_reported_per_job()` removed * fix: made the OutputSpec optional as it is not suppoerted by all and a consumer should choose to use it or not * Feat: Core contract issue #16 (#1) * feat: Models the core contract needs * Feat: Protocols and Exceptions added for the core contract * Feat: Private protocols for the BatchBackend * feat: a fake backend to run unit tests against * fix: some code cleanup in the helper functions * feat: setup for the unit test suite * chore: style fix * chore: styling, unit test fixture * chore: single letter var `h` refering to hanlde changed to `handle` * fix: unused parameter in `test_injected_failure_is_reported_per_job()` removed * feat: Models the core contract needs * Feat: Protocols and Exceptions added for the core contract * Feat: Private protocols for the BatchBackend * feat: a fake backend to run unit tests against * fix: some code cleanup in the helper functions * feat: setup for the unit test suite * chore: style fix * chore: styling, unit test fixture * chore: single letter var `h` refering to hanlde changed to `handle` * fix: unused parameter in `test_injected_failure_is_reported_per_job()` removed * fix: made the OutputSpec optional as it is not suppoerted by all and a consumer should choose to use it or not --------- Co-authored-by: alexander <[email protected]> * fix: These documents should not exist in this way in the main repository * fix: None check for the outputs in submissionspec * chore: trailing white spaces * chore: fixed pre commit locally * chore: removed pdf, as they just take up space and no one will use them there * fix: JobHandle key is now a combination of the handle's fields instead of a hash of the full object * feat: backend configuration and a closed registry Add BackendConfig, one flat public model a consumer uses to describe any backend (kind, transport, scheduler, endpoint, host, ...). It is resolved internally into the settings of exactly one backend family, so a field that does not apply to the chosen kind is refused by name instead of ignored. Add the registry: registry.backend(config) builds the backend a configuration describes, from closed name -> "module:Class" tables. Entries are imported lazily and every built object is checked against its protocol, so a broken entry fails at resolution with a RegistryError. Part of #18. Co-authored-by: alexander <[email protected]> * test: expand unit test coverage to every logical case Cover every field against every backend kind, every fake-backend operation against every job state, and the remaining registry and model paths. Add pytest-cov with branch coverage, measured in subprocesses too. Co-authored-by: alexander <[email protected]> * test: trim the unit tests to logical cases that can happen Drop tests of pydantic and Python behaviour (immutability, defaults, hashing) and keep the rules interCEde itself adds. * test: trim the registry and configuration tests to logical cases One test per rule, no tests of what pydantic or a closed table already guarantees. * test: trim the expanded tests to logical cases that can happen Keep the every-field-for-every-kind table, one test per configuration rule, and the fake's hooks; drop what the table, the conformance suite or pydantic already cover. * docs: follow the Diátaxis structure for the user documentation Move the API reference to docs/user/reference/api.md, link the user and developer documentation from the index, and stop referring to the ADRs there. * fix: address the review of the core contract - Google-style docstrings for the public and batch protocols, with arguments, returns and raises. - get_diagnostics takes a filename (a file in the job's working directory; None reads stdout) instead of a generic name; Diagnostics.filename matches. - An input name may appear once in a SubmissionSpec: two sources for one file are refused when the spec is built. - A copy with a secret named like an input is refused at submit with SpecificationRejectedError; SubmissionSpec.clashes_with() lets every backend apply the same rule. - No references to the ADRs in code or docstrings: they are not part of the source and can be superseded. * fix: no references to the ADRs in the registry and configuration Follows the review of the core contract: the ADRs are not part of the source and can be superseded. The registry's docstrings also say what they return. * fix: apply the core contract review to the registry - Google-style docstrings with Args, Returns and Raises for resolve() and every registry and configuration helper, and docstrings for the settings classes; ruff now checks docstrings against the Google convention. - Remove vm_max_lifetime_s: removing VMs after a lifetime is the consumer's policy, not interCEde's. - Import Callable from collections.abc, like the rest of the code. * refactor: rename registry.backend() to get_backend() A verb says that the call builds something, and get_backend() no longer reads like the backend itself. * refactor!: one public configuration model per backend kind ARCConfig, HTCondorCEConfig, CloudConfig, BatchLocalConfig and BatchSSHConfig replace the flat BackendConfig, which is now their union, chosen by kind (and by transport for batch). A consumer can still pass a plain mapping, such as a TOML table. - Every field is declared once, on the model of its kind: the internal settings classes, the hand-kept field lists and resolve() are gone, so a configuration is validated once instead of twice. - validate_config() checks a configuration and returns its model; registry.get_backend() uses it. A model is checked again, so one changed with model_copy() cannot carry fields of another transport to a backend. - Errors never repeat a value they were given, since it may be a secret, and name the expected fields when a field does not belong to the kind. - The configuration tests use the public API only. The SSH auth mode is now one value (auth = "key") instead of a list. * docs: generate the configuration reference from the models griffe-pydantic renders every field of each configuration model, inherited ones included, with its type, default and description, so the reference cannot drift from the code like the hand-written table could. * test: remove leftovers of the flat configuration model The merge of stack/registry kept a helper and a section header from the old test_config.py; the helper referred to resolve() and BackendConfig.model_validate(), which no longer exist. * fix: Rename FakeSettings to FakeConfig to stay in line with the review changes * test: keep the existing model tests where they are Two tests had moved without changing, which only made the diff harder to read. * test: a configuration that is not a mapping is refused --------- Co-authored-by: alexander <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
3.14→3.153.15.1Release Notes
actions/python-versions (python)
v3.15.0: 3.15.0Compare Source
Python 3.15.0
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.