You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
One of the goals of manifest v2 is to create more of a standard (see #93). In my opinion, this means including some kind of reference to a specification (either directly with a link or just with a name e.g. thunderstore-spec-v2). As Thunderstore isn't planning on supporting multiple versions of the manifest at the same time, a version field isn't technically required, but this is only at upload time. In codebases, it can still be useful to specify which version you are currently on and syntax checkers can validate if your manifest matches the version you believe you are on.
A popular way of doing this very explicitly is the $schema field. The value is a link to a JSON Schema. Many editors already have support for this and there are also probably CLI tools that can be used in CI to test.
In my opinion, this approach helps the standard grow as people who see it can know exactly what the file is for. Some files in similar situations usually either have the name in the file name e.g. .gitlab-ci.yml or .github/workflows/*.yml, but as this wouldn't make as much sense here (in my opinion) a schema is a good alternative.
I think the biggest argument against making it required when uploading a mod is that it's fairly verbose, but I'm not sure if this matters much as it's only a single line and we don't need to be concerned about a few bytes.
I'm intrigued if anyone has any ideas, alternatives or opinions on the schema key, version key or wanting neither
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
One of the goals of manifest v2 is to create more of a standard (see #93). In my opinion, this means including some kind of reference to a specification (either directly with a link or just with a name e.g.
thunderstore-spec-v2
). As Thunderstore isn't planning on supporting multiple versions of the manifest at the same time, a version field isn't technically required, but this is only at upload time. In codebases, it can still be useful to specify which version you are currently on and syntax checkers can validate if your manifest matches the version you believe you are on.A popular way of doing this very explicitly is the
$schema
field. The value is a link to a JSON Schema. Many editors already have support for this and there are also probably CLI tools that can be used in CI to test.One example of where a
$schema
field is required is GitHub SARIF uploads.In my opinion, this approach helps the standard grow as people who see it can know exactly what the file is for. Some files in similar situations usually either have the name in the file name e.g.
.gitlab-ci.yml
or.github/workflows/*.yml
, but as this wouldn't make as much sense here (in my opinion) a schema is a good alternative.I think the biggest argument against making it required when uploading a mod is that it's fairly verbose, but I'm not sure if this matters much as it's only a single line and we don't need to be concerned about a few bytes.
I'm intrigued if anyone has any ideas, alternatives or opinions on the schema key, version key or wanting neither
Beta Was this translation helpful? Give feedback.
All reactions