Skip to content

skpkg: final work required for scikit-packaging libdiffpy #63

Open

Description

@cadenmyers13

All migration work is done on skpkg-migration

CI

  • Shrink the matrix. Python is only used to run SCons, so testing 3.12, 3.13 and 3.14 triples the jobs without testing anything new. Test one Python version on each of the 4 operating systems.
  • Decide when the matrix runs. Running on push to main is commented out in matrix-and-codecov.yml; the scikit-package default runs on merge to main.
  • Release occurs before matrix test passes. Today the matrix runs after the GitHub release is published and does not block it. This test should pass before a release occurs.
  • Use the same setup for PR tests and the matrix. tests-on-pr.yml writes its own sconscript.local and installs cxxtest from conda. matrix-and-codecov.yml uses .github/scripts/configure-matrix.py and a git checkout of CxxTest. Use one setup for both.
  • The docs workflow only works by accident. The reusable _release-docs.yml workflow in scikit-package/release-scripts runs python -m pip install -e . --no-deps. libdiffpy has no Python project, so pip installs an empty placeholder package called UNKNOWN 0.0.0. The docs build passes anyway, but only by accident. Decide how we should handle it or if we can just ignore it for now.
  • enable pre-commit bot for this repo.

Downstream packages

  • diffpy.srreal will fail to build against migrated libdiffpy. srreal compiles libdiffpy's sources from the commit pinned in cmake/LibdiffpyVersion.cmake. Its CMakeLists.txt installs ${LIBDIFFPY_SOURCE_DIR}/LICENSE.txt, which this migration renamed to LICENSE.rst. Once the pin moves to a migrated commit, the srreal build fails. Open an issue in diffpy.srreal to update that path. Check this when chore: use external libdiffpy diffpy.srreal#98 is merged.
  • Test diffpy.srreal against migrated libdiffpy before merging to main (requested in v1.4.1 release tag is wrong #40).
  • Update the conda-forge libdiffpy-feedstock. Write issues for the following and fix them in the feedstock:
    • Change the source URL from archive/v{{ version }}.tar.gz to archive/{{ version }}.tar.gz, because release tags no longer start with v.
    • Change license_file from LICENSE.txt to LICENSE.rst.
    • Simplify build.sh and bld.bat. SConstruct now installs to $PREFIX (or $CONDA_PREFIX) by default and uses the Library/ layout on Windows.
    • Add run_exports with pin_subpackage(name, max_pin='x.x') so that packages built against libdiffpy pin a compatible version (see bugs: ABI incompatibility after 1.5.0 release #47).

Optional cleanup

  • Rename LICENSE_DANSE.txt to LICENSE_DANSE.rst to match diffpy.srreal. srreal's build copies this file by name too, so do it together with the srreal license-path fix above.
  • Replace the hand-formatted license text in docs/source/license.rst with .. include:: ../../LICENSE.rst, so there is only one copy of the license to maintain.

Release

  • Merge skpkg-migration into main.
  • Before tagging, set FALLBACK_VERSION in site_scons/fallback_version.py to the release version.
  • Make the 1.5.0 release issue from the release checklist template (make a release issue after skpkging is done. #54).

Activity

  1. cadenmyers13 commented on Oct 29, 2026

    @cadenmyers13
    Author

    @SYMSCAE See above for what needs to be done.

  2. SYMSCAE commented on Oct 29, 2026

    @SYMSCAE
    Contributor

    @cadenmyers13 For entry diffpy.srreal will fail to build against migrated libdiffpy there is an existing PR diffpy/diffpy.srreal#98 that reverts this change and makes srreal depend on released libdiffpy.

  3. cadenmyers13 commented on Oct 29, 2026

    @cadenmyers13
    Author

    @SYMSCAE okay great. I updated above

  4. SYMSCAE commented on Oct 29, 2026

    @SYMSCAE
    Contributor

    @cadenmyers13 Please add one more entry to enable pre-commit on this repo, I've setup clang-format so the hooks now work for cpp files as well.

  5. SYMSCAE commented on Oct 30, 2026

    @SYMSCAE
    Contributor

    @cadenmyers13 I think we are good to merge and release an rc? There's only one _release-docs.yml left and it seems the cleanest way to fix is to add a flag to upstream release-scripts (something like install_pkg = true).

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions