Skip to content

Version up PyYaml from 6.0.0 to 6.0.3 to support Python versions grea…#137

Merged
feltech merged 4 commits into
OpenAssetIO:mainfrom
foundry-markf:mf/update_pyyaml_pinning
Jul 6, 2026
Merged

Version up PyYaml from 6.0.0 to 6.0.3 to support Python versions grea…#137
feltech merged 4 commits into
OpenAssetIO:mainfrom
foundry-markf:mf/update_pyyaml_pinning

Conversation

@foundry-markf

Copy link
Copy Markdown
Contributor

…ter than 3.11

  • v6.0.0 is no longer needed as it was for compatibility with older versions of Conan that no longer have the restriction
  • v6.0.0 does not build from source
  • v6.0.3 is the current latest version published, that supports up to Python 3.14

I chose to use exact pinning rather than the freer form in Conan of any 6.0.x, for consistency.

I'm unsure whether the requirements.txt file is needed, as the dependencies in the pyproject.toml needed to be updated during testing, but have updated both for consistency.

Closes #136

@foundry-markf foundry-markf requested a review from a team as a code owner July 3, 2026 08:38
@linux-foundation-easycla

linux-foundation-easycla Bot commented Jul 3, 2026

Copy link
Copy Markdown

CLA Signed
The committers listed above are authorized under a signed CLA.

@foundry-markf foundry-markf force-pushed the mf/update_pyyaml_pinning branch 9 times, most recently from f1b60c6 to b6555a9 Compare July 3, 2026 10:07
@feltech feltech self-requested a review July 6, 2026 10:18
@feltech

feltech commented Jul 6, 2026

Copy link
Copy Markdown
Member

This PR also partially addresses OpenAssetIO/OpenAssetIO#1480 - i.e. now that OpenAssetIO is released with MacOS ARM wheels, downstream repos should be updated to test with that instead of MacOS Intel.

@feltech feltech left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some minor notes. Otherwise great, thanks! The Tree-sitter debugging must have been a head-scratcher!

Comment thread RELEASE_NOTES.md Outdated
Comment thread .github/workflows/test.yml
Comment thread RELEASE_NOTES.md Outdated
Comment thread RELEASE_NOTES.md
This  to support Python versions greater than 3.11

- v6.0.0 is no longer needed as it was for compatibility with older
versions of Conan that no longer have the restriction
- v6.0.0 does not build from source
- v6.0.3 is the current latest version published, that supports up to
Python 3.14

I chose to use exact pinning rather than the freer form in Conan of
any 6.0.x, for consistency.

I'm unsure whether the requirements.txt file is needed, as the
dependencies in the pyproject.toml needed to be updated during testing,
but have updated both for consistency.

Closes OpenAssetIO#136

Signed-off-by: Mark Final <mark.final@foundry.com>
This required updating the OpenAssetIO version to the latest, which has
wheels for these Python versions.

Python 3.13 was not tested, even though it is specified in VFX26,
because there were missing wheels for some of the test dependencies.

Note that 3.14 is not tested, as there is no current VFX reference
platform using this versiony yet.

Part of OpenAssetIO#136

Signed-off-by: Mark Final <mark.final@foundry.com>
Since there are only wheels for the latest OpenAssetIO for this
architecture.

Part of OpenAssetIO#136

Signed-off-by: Mark Final <mark.final@foundry.com>
Update to tree-sitter 0.21.3 and tree-sitter-languages 1.10.2.

This is for wheels for Python 3.12, but also that distutils was removed
from Python 3.12 and was seeing this error

________________ ERROR collecting tests/generators/test_cpp.py _________________
ImportError while importing test module '/Users/runner/work/OpenAssetIO-TraitGen/OpenAssetIO-TraitGen/tests/generators/test_cpp.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/importlib/__init__.py:90: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/generators/test_cpp.py:33: in <module>
    from tree_sitter_languages import get_parser, get_language
/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/tree_sitter_languages/__init__.py:4: in <module>
    from .core import get_language, get_parser
tree_sitter_languages/core.pyx:4: in init tree_sitter_languages.core
    ???
/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/tree_sitter/__init__.py:4: in <module>
    from distutils.ccompiler import new_compiler
E   ModuleNotFoundError: No module named 'distutils'

Note there are no wheels for newer Python versions at this time.

The tree-sitter version is not the latest, as I found that going to the
latest caused incompatibilities with tree-sitter-language.

Also, there were some required fixes to the predicates, which omitted
the required # prefix as described in the documentation

https://tree-sitter.github.io/tree-sitter/using-parsers/queries/3-predicates-and-directives.html

Errors were of the form

NameError: Invalid node type eq?

Note that Copilot helped discover the issues in the tests. The theory
was that the older tree-sitter version tolerated the missing prefix.

Part of OpenAssetIO#136

Signed-off-by: Mark Final <mark.final@foundry.com>
@foundry-markf foundry-markf force-pushed the mf/update_pyyaml_pinning branch from b6555a9 to 36569cc Compare July 6, 2026 11:04

@feltech feltech left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@feltech feltech merged commit 36a4f4e into OpenAssetIO:main Jul 6, 2026
17 checks passed
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.

Install failure for Python 3.12+ due to PyYaml pinned version lacking wheels (and not building for the pinned version)

2 participants