Skip to content

compliance_tool: Restore entry point and SDK dep#593

Merged
s-heppner merged 2 commits into
eclipse-basyx:developfrom
rwth-iat:Fix/compliance-tool-script
Jul 14, 2026
Merged

compliance_tool: Restore entry point and SDK dep#593
s-heppner merged 2 commits into
eclipse-basyx:developfrom
rwth-iat:Fix/compliance-tool-script

Conversation

@s-heppner

@s-heppner s-heppner commented Jul 14, 2026

Copy link
Copy Markdown
Member

Previously, compliance_tool/pyproject.toml was missing the [project.scripts] console entry point, so the aas-compliance-check command documented in the README did not exist and only python -m aas_compliance_tool.cli worked. It also declared its SDK dependency as a direct reference (basyx-python-sdk @ file:../sdk), which bakes a local path into the built wheel and is rejected by PyPI on upload, so the package could not be published.

This restores the aas-compliance-check = aas_compliance_tool.cli:main console script and replaces the direct reference with a normal basyx-python-sdk>=1.0.0 version constraint, matching the original setup.py. Local development still resolves against the sibling ./sdk tree when it is installed first (see #592).

Switching to the loose >=1.0.0 constraint broke the compliance-tool CI jobs, however: they checked out shallow (no tags), so setuptools_scm built the local sdk as 0.1.dev1. That does not satisfy >=1.0.0, so pip install .[dev] uninstalled the local sdk and pulled basyx-python-sdk from PyPI instead, and the tests failed against a release that predates the local refactors. Both compliance tool jobs now check out with fetch-depth: 0 so the local sdk builds as a >=1.0.0 dev version and pip keeps it (see #592).

@s-heppner s-heppner marked this pull request as draft July 14, 2026 12:25
Previously, `compliance_tool/pyproject.toml` was missing the
`[project.scripts]` console entry point, so the `aas-compliance-check`
command documented in the README did not exist and only
`python -m aas_compliance_tool.cli` worked. It also declared its SDK
dependency as a direct reference (`basyx-python-sdk @ file:../sdk`),
which bakes a local path into the built wheel and is rejected by PyPI
on upload, so the package could not be published.

This restores the `aas-compliance-check = aas_compliance_tool.cli:main`
console script and replaces the direct reference with a normal
`basyx-python-sdk>=1.0.0` version constraint, matching the original
`setup.py`.

Switching to the loose `>=1.0.0` constraint broke the compliance-tool
CI jobs, however: they checked out shallow (no tags), so
`setuptools_scm` built the local sdk as `0.1.dev1`. That does not
satisfy `>=1.0.0`, so `pip install .[dev]` uninstalled the local sdk
and pulled `basyx-python-sdk` from PyPI instead, and the tests failed
against a release that predates the local refactors. Both compliance
tool jobs now check out with `fetch-depth: 0` so the local sdk builds
as a `>=1.0.0` dev version and pip keeps it (see eclipse-basyx#592).
@s-heppner s-heppner force-pushed the Fix/compliance-tool-script branch from b20eb7e to cb98e79 Compare July 14, 2026 14:28
@s-heppner s-heppner marked this pull request as ready for review July 14, 2026 14:29
@hpoeche

hpoeche commented Jul 14, 2026

Copy link
Copy Markdown

For now we have #592 unsolved, so this LGTM.

Maybe we should still consider updating the README.md to explain the current behavior. If a user, already having installed the basyx-python-sdk in v2.0.1, installs the basyx-compliance-tool via pip the version of the sdk is not automatically updated. Consequently the compliance_tool in version v2.1.0 will not check compliance against the metamodel v3.1 (as stated in the README.md) but v3.0. This could confuse users and might be hard to identify for them.
Stating in the README.md that v2.1.0 of the sdk is required but (for now) is not automatically installed, seems a fair workaround for this problem.
What is your opinion on that?

Previously, the README described what the compliance tool checks but not
how the installed `basyx-python-sdk` determines which metamodel version
is actually verified. Because the SDK dependency is declared loosely
(`basyx-python-sdk>=1.0.0`), `pip` keeps an already-installed, older SDK
instead of upgrading it, so the tool can silently check against an older
metamodel than the README advertises, with no error to signal the
mismatch.

This adds an `Installation` section that splits the default PyPI install
(`pip install basyx-compliance-tool`) from the developer install against
the sibling `./sdk` source tree, and documents — in the developer flow,
where it is most relevant — that the SDK version must be matched
explicitly until the pinning is tightened (see eclipse-basyx#592).
@s-heppner

Copy link
Copy Markdown
Member Author

Good idea, I've updated the README.md in 3775e19 and will now squash this PR.

@s-heppner s-heppner merged commit 90edde2 into eclipse-basyx:develop Jul 14, 2026
15 checks passed
@s-heppner s-heppner deleted the Fix/compliance-tool-script branch July 14, 2026 18:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants