Skip to content

Client metadata#907

Open
iLLiCiTiT wants to merge 1 commit into
developfrom
enhancement/add-client-metadata-file
Open

Client metadata#907
iLLiCiTiT wants to merge 1 commit into
developfrom
enhancement/add-client-metadata-file

Conversation

@iLLiCiTiT

@iLLiCiTiT iLLiCiTiT commented Apr 13, 2026

Copy link
Copy Markdown
Member

PR Checklist

  • Add option to define client data using client.json.

Description of changes

Allow to define dependencies, and other possible client metadata with client.json instead of pyproject.toml.

This is a proposal. Right now we do allow to define dependencies using pyproject.toml, and we also do expect that the dependencies are defined with tool.poetry.dependencies. That has multiple issues, we don't use poetry anymore, using pyproject.toml is misleading for developers and for IDEs as they try to define more 'pyproject.toml' metadata that either should not be defined or has no effect.

Example change:
pyproject.toml

[tool.poetry.dependencies]
PyYaml = "^6"

[ayon.runtimeDependencies]
pillow = "^12"

client.json

{
    "dependencies": {
        "PyYaml": "^6"
    },
    "runtimeDependencies": {
        "pillow": "^12"
    }
}

Technical details

The structure of the json is not validated -> thus defined, has to be added to documentation.

We also can't just change it and support both until all addons are changed.

return None

try:
return json.load(open(client_json))
@iLLiCiTiT iLLiCiTiT added the type: enhancement Improvement of existing functionality or minor addition label Apr 13, 2026
@iLLiCiTiT iLLiCiTiT self-assigned this Apr 13, 2026
@iLLiCiTiT iLLiCiTiT requested review from BigRoy, antirotor, martastain and martinhaus and removed request for martinhaus April 13, 2026 15:34
@BigRoy

BigRoy commented Apr 13, 2026

Copy link
Copy Markdown
Member

I'm not too keen on this. @antirotor I think your thoughts may weight well here.

But client.json tells me very little of the intent? Also, I feel deviating from relying on known structures, like pyproject or similar is just asking for more questions. I also like the fact that tools do know how to author pyproject files if someone wanted to author it that way - the JSON is completely custom and just means more maintenance.

Can't we store it in some dedicated grouped section in a pyproject?

@iLLiCiTiT

iLLiCiTiT commented Apr 14, 2026

Copy link
Copy Markdown
Member Author

Also, I feel deviating from relying on known structures, like pyproject or similar is just asking for more questions.

For me the issue with pyproject is that it is misleading as it looks like you can use it as standard pyproject.toml, but you can't.

  • Whatever you define in pyproject toml except tool.poetry.dependencies and ayon.runtimeDependencies is never used.
  • tool.poetry.dependencies are not used for poetry and you should not define things the same way you would define in standard pyproject.toml.
  • It is not clear that it is related to client only.
  • It requires tomllib, whereas json is python builtin.

We're using something that is known, for something else, because "it is known", but it is not the same. Just because we know that (and how it is used), we're ok-ish with that, but it is completely wrong. Especially for someone who tries to understand. Having pyproject.toml is shortcut leading to wrong assumptions.

Can't we store it in some dedicated grouped section in a pyproject?

What else would be in the pyproject.toml ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: enhancement Improvement of existing functionality or minor addition

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants