Skip to content

Conversation

@sei-vsarvepalli
Copy link
Collaborator

This pull request introduces several improvements and updates to packaging, licensing, and build processes for the CERT UEFI Support Library. The most significant changes are the addition of a PyPI publishing workflow, a complete license update, enhanced build configuration and metadata, and improvements to the build system for better developer experience and compatibility. Currently release to PyPI happens from https://github.com/CERTCC/cert-uefi-parser but this will force use to keep things in sync between various repositories.

Packaging and Distribution Improvements:

  • Added a GitHub Actions workflow (.github/workflows/pyblish.yml) for automated building on Linux, macOS, and Windows, and publishing to PyPI using trusted publishing. This includes platform-specific build steps and artifact handling.
  • Updated pyproject.toml to modern standards: renamed package to cert-uefi-support, added dynamic versioning via setuptools_scm, expanded metadata (authors, keywords, classifiers, URLs), and improved packaging configuration for non-Python files.
  • Improved README.md to clarify package purpose, installation options, and dependency relationship with cert-uefi-parser.

Licensing and Compliance:

  • Replaced placeholder license in LICENSE.md with a comprehensive license covering redistribution, warranty disclaimers, government contract notice, and explicit third-party software acknowledgments and license texts.

Build System and Developer Experience:

  • Overhauled setup.py:
    • Added a custom FriendlyBuildExt command to check for a working C compiler and provide platform-specific installation guidance, improving error messaging for developers.
    • Switched to dynamic versioning (use_scm_version=True) and removed hardcoded version numbers, aligning with modern packaging practices.
    • Improved handling of missing submodules and vendored sources, making the build process more robust for CI and local development.

Source Organization:

  • Explicitly configured setuptools to discover the correct package directory and include necessary binary/data files, ensuring all required resources are packaged and distributed.

These changes collectively modernize the project’s packaging, licensing, and build infrastructure, making it easier to distribute, install, and maintain.


References:
[1] [2] [3] [4] [5] [6]

@sei-vsarvepalli sei-vsarvepalli self-assigned this Nov 26, 2025
@sei-vsarvepalli sei-vsarvepalli added the enhancement New feature or request label Nov 26, 2025
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.

2 participants