Skip to content

Generalize package: configurable core package and flat column list#55

Merged
astrofrog merged 1 commit into
astropy:mainfrom
astrofrog:generalize-core-package
May 15, 2026
Merged

Generalize package: configurable core package and flat column list#55
astrofrog merged 1 commit into
astropy:mainfrom
astrofrog:generalize-core-package

Conversation

@astrofrog
Copy link
Copy Markdown
Member

@astrofrog astrofrog commented May 14, 2026

This makes it so that other ecosystems (e.g. sunpy) can use this and the config for the columns to show is now a flat list rather than a matrix of python versions x variants, for more flexibility.

@Cadair with this you could do something like:

core_package:
  pypi_name: sunpy
  module: sunpy
  repo_url: https://github.com/sunpy/sunpy.git

dashboard_title: SunPy ecosystem integration matrix

columns:
  - {python: "3.12", variant: stable}
  - {python: "3.13", variant: stable}
  - {python: "3.13", variant: pre}
  - {python: "3.13", variant: dev}

packages:

  - pypi_name: ndcube
    tier: current
    module: ndcube
    repo_url: https://github.com/sunpy/ndcube.git

  - pypi_name: drms
    tier: current
    module: drms
    repo_url: https://github.com/sunpy/drms.git

...

- packages.yaml: replace the python_versions list with a core_package
  block (pypi_name, module, repo_url, optional dev_index_urls), a
  dashboard_title, and a flat columns list of {python, variant} pairs
- config.py: new module that loads and validates the config, shared
  by run and dashboard
- run.py: resolve_specs takes the core block instead of literal
  "astropy" and the nightly index constants; iterate the columns list
  instead of nesting python and variant loops; --variant/--python
  become filters over the columns; result JSON key astropy -> core
- dashboard.py: read column order, title, and core name from config;
  group consecutive columns that share a python version under a
  spanning header so the classic layout still renders as before
- integration.yml: a setup job parses columns from packages.yaml and
  emits the job matrix, so there is one source of truth
@astrofrog astrofrog marked this pull request as ready for review May 14, 2026 23:12
@astrofrog astrofrog changed the title WIP: Generalize package: configurable core package and flat column list Generalize package: configurable core package and flat column list May 14, 2026
@astrofrog astrofrog added the enhancement New feature or request label May 14, 2026
@astrofrog
Copy link
Copy Markdown
Member Author

This seems to work fine for us and also for a few sunpy packages from local testing, so I'm going to go ahead and merge this and then we can refine in subsequent PRs if @Cadair tries this out properly for the Sunpy ecosystem

@astrofrog astrofrog merged commit d7ec114 into astropy:main May 15, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant