✨ feat(schema): enhance schema command with IDE integration#3813
Merged
gaborbernat merged 1 commit intotox-dev:mainfrom Feb 23, 2026
Merged
✨ feat(schema): enhance schema command with IDE integration#3813gaborbernat merged 1 commit intotox-dev:mainfrom
gaborbernat merged 1 commit intotox-dev:mainfrom
Conversation
0702a12 to
79fcc2f
Compare
9606439 to
f6deaf6
Compare
f6deaf6 to
24faa22
Compare
Add x-taplo metadata, product dict support for env_list, handle int and PythonConstraints types, fix $schema URI for draft-07 compliance, use any available env for introspection. Add schema freshness test to prevent drift. Fixes tox-dev#1388
24faa22 to
5222f4f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
tox schemacommand generated a JSON Schema that was missing several type mappings, packaging-related keys, and lacked IDE-friendly metadata. Withno_package = true, keys likepackage,skip_install,use_develop,package_env, andpackage_rootwere absent from the generated schema. TheintandPythonConstraintstypes were logged as unrecognized, and editors using taplo/Even Better TOML had no documentation links.This generates a complete schema by using a packaging-enabled config for introspection, ensuring all configuration keys are present regardless of the project's packaging mode. It adds
x-taplometadata with links to tox documentation for all major sections, proper handling ofintandPythonConstraintstypes, product dict support forenv_list, and marks legacy aliases (usedevelop,setenv,basepython, etc.) as"deprecated": truewith descriptions recommending the canonical names. The$schemaURI is corrected for draft-07 compliance,$idpoints to the canonical raw GitHub URL, and schema introspection uses any available environment instead of hardcoding"py". A freshness test ensures the committedtox.schema.jsonstays in sync with the generator output.A new
update-schemastore.yamlworkflow automatically opens a PR on SchemaStore to sync the local copy oftox.jsonwhenever a new release tag is pushed. It copies the committedtox.schema.json(kept fresh by the test), adjusts the$idfor SchemaStore resolution, and creates the PR viagh. Requires aSCHEMASTORE_TOKENsecret with fork/PR permissions on the SchemaStore repo.Companion PR at SchemaStore/schemastore#5402 adds
tox.tomlto the SchemaStore catalog and updatespartial-tox.jsonto provide full autocompletion for[tool.tox]inpyproject.toml.Fixes #1388