scikit-package documentation

Software version 0.0.1.
Last updated January 16, 2025.

Welcome to Billinge Group’s Python scikit-package documentation!

Statement of need

Your research impact can be amplified by distributing your contributions through well-documented software packages. However, creating these packages requires time dedicated to software infrastructure and ongoing maintenance. scikit-package is a Python package standard and generator that helps you launch new scientific code or migrate existing ones.

scikit-package provides research-quality documents suitable for open-source development and supports Python versions compatible with the SPEC0 proposal through automated workflows. Additionally, it offers a streamlined process for building and distributing your scientific software, ensuring reproducibility across all major operating systems. With scikit-package, you can focus on developing your scientific code while ensuring it reaches a broader audience.

What are the useful features?

To help increase your research impact, scikit-package offers the following features:

  • Automated PEP8 and PEP256 standard checks.

  • Automated PyPI/GitHub release, testing, documentation, and CHANGELOG updates.

  • Streamlined package release workflow with a checklist.

  • Latest Python version support compatible with SPEC0.

  • Rich README template containing badges, installation, support, and contribution guide.

  • Automatic spelling check, linting for .json, .yml, and .md files.

For more technical details, it includes:

  • Pull requests with coverage reports using Codecov and checks with pre-commit CI.

  • Namespace package support, e.g., import diffpy.utils.

  • conda-package meta.yaml generation with a template.

  • Support for non-pure Python package releases with cibuildwheel.

  • Support for headless GitHub CI testing for GUI applications.

  • Reusable GitHub Actions workflows located in Billingegroup/release-scripts.

How do I get started?

Please visit the Getting started page to learn how to navigate the documentation!

How do I receive support?

If you have any questions or have trouble, please read the Frequently asked questions (FAQ) section to see if your questions have already been answered. If there aren’t answers available, please create an issue. The team will reach out.

How can I contribute?

Do you have any new features? Please make an issue via the GitHub issue tracker for further discussions. For a minor typo or grammatically incorrect sentence, please make a pull request. Before making a PR, please run pre-commit run --all-files to ensure the code is formatted.

Who are using scikit-package?

The full list of packages is as follows:

Authors

scikit-package is developed by Billinge Group and its community contributors.

For a detailed list of contributors, see https://github.com/Billingegroup/scikit-package/graphs/contributors.

Acknowledgements

The Billinge Group’s scikit-package has been modified from the NSLS-II scientific cookiecutter: https://github.com/nsls-ii/scientific-python-cookiecutter

Table of contents

Indices