Skip to content

Core schemas 1p7p0#479

Merged
braingram merged 13 commits intoasdf-format:mainfrom
braingram:standard_1p7p0
Sep 19, 2025
Merged

Core schemas 1p7p0#479
braingram merged 13 commits intoasdf-format:mainfrom
braingram:standard_1p7p0

Conversation

@braingram
Copy link
Contributor

@braingram braingram commented Aug 26, 2025

Update core schemas:

  • ndarray to use new datatype schema
  • integer to use new ndarray schema

This is the start of 1.7.0 core schemas which triggers:

  • a new 1.7.0 manifest
  • a new structure for handling development of a new version of the core schemas (1.7.0)

The goal of the new structure is to allow package testing (to see what updates are required to support the new core schemas) without making it too easy for a user to write files using the development schemas. We want to make writing files with these development schemas difficult because there is no expectation that the development schemas will be stable (put another way, the development schemas may change without a version change).

To accomplish this this PR:

  • uses a new environment variable ASDF_UNSTABLE_CORE_SCHEMAS to flag registration of the new development schemas
  • splits asdf-standard resources into "stable" and "unstable" sub-directories. This results in a very unhelpful diff for this PR. The directory creation is in commit d3b2890 so it may be helpful to view this diff instead of the files changed above.
  • adds a new private _versioning module which can be used by asdf to get which stable and dev versions of the core schemas are in this version of the asdf-standard module.
  • adds a new public exceptions submodule with a new warning type UnstabeCoreSchemasWarning which will be issued when ASDF_UNSTABLE_CORE_SCHEMAS is set and the dev schemas are returned as "supported".

asdf-format/asdf#1962 extends this PR allowing asdf to use the ASDF_UNSTABLE_CORE_SCHEMAS to:

  • conditionally register a core extension for the unstable (1.7.0) schemas
  • switch to the unstable version as the default version
  • runs with this flag enabled during "devdeps" testing

The above process makes it difficult for a user to write out a file using the unstable schemas (they must define the environment variable). I'm also considering options for creating warnings when writing files with the dev version (although this may prove more harmful than helpful and get in the way of many unit tests).

If we adopt the above approach, at some point in the future we'll want to release the "unstable" schemas by:

  • moving them into "stable"
  • moving the dev version to stable in _versioning

This will trigger asdf to start using the now new "stable" version as the default.

@braingram braingram changed the title Standard 1p7p0 Core schemas 1p7p0 Aug 26, 2025
@braingram braingram force-pushed the standard_1p7p0 branch 2 times, most recently from 4183f46 to e47f2b0 Compare September 2, 2025 18:18
@braingram braingram mentioned this pull request Sep 3, 2025
6 tasks
@braingram braingram marked this pull request as ready for review September 12, 2025 14:23
@braingram
Copy link
Contributor Author

From offline discussion @zacharyburnett suggested unstable instead of dev. unstable is more informative than dev so I'm also going to look at updating this and the asdf PR to use unstable and ASDF_UNSTABLE_CORE_SCHEMAS.

@braingram
Copy link
Contributor Author

During the dev->unstable rename I noticed a lack of CI job here testing the unstable schemas. I updated this PR to add a py313-unstable job that sets ASDF_UNSTABLE_CORE_SCHEMAS:
https://github.com/asdf-format/asdf-standard/actions/runs/17835000435/job/50709903310?pr=479

Copy link
Member

@zacharyburnett zacharyburnett left a comment

Choose a reason for hiding this comment

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

this LGTM

@braingram braingram merged commit 6cbb4a1 into asdf-format:main Sep 19, 2025
16 checks passed
@braingram braingram deleted the standard_1p7p0 branch September 19, 2025 17:19
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