Problem
scripts/check_twined_version_compatibility_tested.py requires every new version to have an entry in octue/twined/metadata/version_compatibilities.json, both as a top-level key and inside every other version's map. That matrix is generated out-of-band by octue/octue-sdk-python-version-compatibility.
That tooling can no longer test any version from 0.67.0 onwards. It was last updated in February 2024. 0.67.0 ("Move current Octue SDK code into twined subpackage") relocated the modules it imports:
| Tooling imports |
Location from 0.67.0 |
octue.cloud.pub_sub |
octue.twined.cloud.pub_sub |
octue.cloud.pub_sub.service |
octue.twined.cloud.pub_sub.service |
octue.resources |
octue.twined.resources |
octue.resources.service_backends |
octue.twined.resources.service_backends |
octue.utils.encoders |
octue.twined.utils.encoders |
Running cli.py record-questions --parent-versions 0.69.0 checks out and installs 0.69.0 successfully, then fails immediately:
File "inter_service_compatibility/mocks.py", line 12, in <module>
from octue.cloud.pub_sub import Subscription, Topic
ModuleNotFoundError: No module named 'octue.cloud.pub_sub'
Its VERSIONS_TO_CHECK constant is also stale, topping out at 0.52.0.
Impact
0.69.1 was released without a compatibility matrix entry, so octue.twined.compatibility.is_compatible takes its fallback path — returning True with a warning:
No data on compatibility of parent SDK version 0.69.1 and child SDK version <x>.
Degraded logging rather than degraded behaviour, but it means the compatibility warnings can't do their job for 0.69.1, and check-compatibility-tested will keep failing for every future version until this is fixed.
Proposed solution
- Update
octue/octue-sdk-python-version-compatibility to handle both import layouts — try the octue.twined.* paths and fall back to the pre-0.67.0 paths — since the suite has to import whichever version is currently checked out. Affected files: inter_service_compatibility/mocks.py, record_question.py, process_question.py
- Refresh
VERSIONS_TO_CHECK, or always pass --parent-versions / --child-versions explicitly
- Run the suite and backfill
0.69.1. --untagged-child-version-branches exists for testing unreleased candidates against released versions
Note on 0.69.1 specifically
0.69.1 was a docs-only release: git diff 0.69.0 0.69.1 -- octue/ is empty, so the shipped package is byte-identical to 0.69.0 and no wire behaviour changed. Its row and column should come out identical to 0.69.0's. That makes it a convenient smoke test for the ported tooling — a known-correct expected result.
Context
Found while merging #742, which bumped to 0.69.1 for a docs change and hit the failing check.
🤖 Generated with Claude Code
Problem
scripts/check_twined_version_compatibility_tested.pyrequires every new version to have an entry inoctue/twined/metadata/version_compatibilities.json, both as a top-level key and inside every other version's map. That matrix is generated out-of-band byoctue/octue-sdk-python-version-compatibility.That tooling can no longer test any version from
0.67.0onwards. It was last updated in February 2024.0.67.0("Move current Octue SDK code intotwinedsubpackage") relocated the modules it imports:0.67.0octue.cloud.pub_suboctue.twined.cloud.pub_suboctue.cloud.pub_sub.serviceoctue.twined.cloud.pub_sub.serviceoctue.resourcesoctue.twined.resourcesoctue.resources.service_backendsoctue.twined.resources.service_backendsoctue.utils.encodersoctue.twined.utils.encodersRunning
cli.py record-questions --parent-versions 0.69.0checks out and installs0.69.0successfully, then fails immediately:Its
VERSIONS_TO_CHECKconstant is also stale, topping out at0.52.0.Impact
0.69.1was released without a compatibility matrix entry, sooctue.twined.compatibility.is_compatibletakes its fallback path — returningTruewith a warning:Degraded logging rather than degraded behaviour, but it means the compatibility warnings can't do their job for
0.69.1, andcheck-compatibility-testedwill keep failing for every future version until this is fixed.Proposed solution
octue/octue-sdk-python-version-compatibilityto handle both import layouts — try theoctue.twined.*paths and fall back to the pre-0.67.0paths — since the suite has to import whichever version is currently checked out. Affected files:inter_service_compatibility/mocks.py,record_question.py,process_question.pyVERSIONS_TO_CHECK, or always pass--parent-versions/--child-versionsexplicitly0.69.1.--untagged-child-version-branchesexists for testing unreleased candidates against released versionsNote on
0.69.1specifically0.69.1was a docs-only release:git diff 0.69.0 0.69.1 -- octue/is empty, so the shipped package is byte-identical to0.69.0and no wire behaviour changed. Its row and column should come out identical to0.69.0's. That makes it a convenient smoke test for the ported tooling — a known-correct expected result.Context
Found while merging #742, which bumped to
0.69.1for a docs change and hit the failing check.🤖 Generated with Claude Code