Skip to content

Merge v1.0.0 release#2

Merged
melekderman merged 5 commits intodevfrom
main
Feb 16, 2026
Merged

Merge v1.0.0 release#2
melekderman merged 5 commits intodevfrom
main

Conversation

@melekderman
Copy link
Owner

This pull request introduces major improvements to the PyEPICS project, including a new release (v1.0.0), enhanced documentation, improved developer and CI workflows, and significant updates to the package structure and installation process. The most important changes are summarized below.

Release and Documentation:

  • Added a comprehensive CHANGELOG.md documenting all notable changes, including new features, API changes, and release history.
  • Added a detailed INSTALL.md with supported Python versions, installation options (including optional extras), developer setup, and platform notes.
  • Updated and expanded the README.md to reflect new data sources (LLNL instead of IAEA), updated directory structure, new high-level APIs, improved quickstart guides, and clarified installation/testing instructions. [1] [2] [3] [4] [5] [6] [7] [8]

Continuous Integration and Build:

  • Updated GitHub Actions workflows to:
    • Install the package with development dependencies using pip install -e ".[dev]" for both CI and docs builds. [1] [2]
    • Add a new build job to build and verify distributions, and template for PyPI publishing via trusted publishers.
    • Added a separate workflow file for publishing to PyPI on release using trusted publishing (OIDC).

Documentation Build and Coverage:

  • Documentation build is now strict (fails on warnings), and includes an autodoc coverage check to ensure all public API symbols have docstrings.
  • Sphinx configuration updated for improved autodoc and member ordering; API reference expanded to include new client and plotting modules. [1] [2] [3]

Project Structure and Data Sources:

  • Updated all references from IAEA to LLNL for EPICS data sources and downloaders, and revised the internal/external data directory structure (data/endf/, data/raw/, data/mcdc/). [1] [2] [3] [4] [5] [6] [7]
  • Clarified and documented the data pipeline, directory layout, and new high-level APIs for querying and comparing element properties.

Developer Experience:

  • Standardized developer install and test instructions, and ensured all developer tools (pytest, ruff, sphinx, etc.) are included in the [dev] extra. [1] [2]
  • Added explicit instructions for building and verifying distributions, running tests, and building documentation.

These changes collectively prepare PyEPICS for its 1.0.0 release, streamline developer and user workflows, and improve documentation and code quality throughout the project.

@melekderman melekderman requested a review from Copilot February 16, 2026 20:53
@melekderman melekderman merged commit e9a1af1 into dev Feb 16, 2026
11 of 12 checks passed
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This pull request introduces the v1.0.0 release of PyEPICS, marking a major milestone with comprehensive improvements to documentation, testing, and package structure. The primary focus is transitioning from IAEA to LLNL as the authoritative data source, consolidating license information under BSD-3-Clause, and adding new functionality including combined MCDC HDF5 output and high-level client APIs.

Changes:

  • License standardization from MIT to BSD-3-Clause across all source files
  • Data source migration from IAEA EPICS 2023 to LLNL EPICS 2025 with updated URLs and references
  • New combined MCDC HDF5 writer (write_mcdc_combined) and comprehensive test coverage
  • Introduction of high-level EPICSClient API for element querying and comparison
  • Refactored directory structure (data/endf/, data/raw/, data/mcdc/) with updated references throughout

Reviewed changes

Copilot reviewed 52 out of 55 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/test_pipeline.py License update (MIT→BSD-3-Clause), new write_mcdc_combined import and comprehensive test suite
tests/test_mapping_completeness.py New test file verifying ENDF (MF,MT) coverage in mapping dictionaries
tests/test_hdf5.py License update only
tests/test_epdl.py License update only
tests/test_eedl.py License update only
tests/test_eadl.py License update only
tests/test_client.py New comprehensive test suite for EPICSClient and ElementProperties APIs
tests/regression_tests.ipynb Updated references (IAEA→LLNL, NIST→EEDL/ENDF), removed PyEEDL dependencies
tests/generate_report.py License update, data source migration, binding energy validation expanded to all subshells
tests/fixtures/reference_binding_energies.csv New reference data file (100 elements, K-shell binding energies from EEDL)
tests/fixtures/README.md New documentation of reference data sources
tests/conftest.py License update only
reference_data/reference_binding_energies.csv File deleted (moved to tests/fixtures/)
reference_data/README.md File deleted (moved to tests/fixtures/)
pyproject.toml New packaging configuration with BSD-3-Clause license, Python 3.11+ requirement
pyepics/utils/validation.py License update only
pyepics/utils/parsing.py License update, documentation format change, import reordering
pyepics/utils/constants.py License update, constant renaming (SUBSHELL_LABELS→ELECTRON_SUBSHELL_LABELS), expanded MF/MT mappings
pyepics/utils/init.py License update only
pyepics/readers/epdl.py License update, data source documentation (IAEA→LLNL)
pyepics/readers/eedl.py License update, data source documentation, constant renaming, zip(..., strict=False) usage
pyepics/readers/eadl.py License update, data source documentation
pyepics/readers/base.py License update, Union→pipe operator for type hints
pyepics/readers/init.py License update, import reordering
pyepics/pyeedl_compat.py License update, version bump (0.1.0→1.0.0), import/export reorganization
pyepics/plotting.py New plotting module with matplotlib-based visualization functions
pyepics/models/records.py License update, blank line removal
pyepics/models/init.py License update, import reordering
pyepics/io/download.py License update, URL migration (IAEA→LLNL), directory structure updates
pyepics/io/init.py License update, docstring update
pyepics/exceptions.py License update, docstring update (IAEA→LLNL)
pyepics/converters/raw_hdf5.py License update, directory documentation updates, constant renaming
pyepics/converters/mcdc_hdf5.py License update, new write_mcdc_combined function, metadata helper improvements
pyepics/converters/hdf5.py License update, new create_combined_mcdc_hdf5 function, import reordering
pyepics/converters/init.py License update, new combined MCDC export
pyepics/client.py New high-level client API with EPICSClient and ElementProperties
pyepics/cli.py License update, combined MCDC generation, directory structure updates
pyepics/init.py License update, version bump, client API exports
docs/user_guide.rst New comprehensive user guide with examples
docs/requirements.txt Version pins added (sphinx>=7.0, etc.), matplotlib and pandas dependencies
docs/pipeline.rst Data source update (IAEA→LLNL)
docs/index.rst New user_guide and data_sources sections, acknowledgements added
docs/getting_started.rst Expanded with PyPI install instructions and client API quickstart
docs/data_sources.rst New detailed documentation of data provenance
docs/conf.py Version bump, autodoc configuration additions
docs/api.rst New client and plotting API documentation sections
README.md Comprehensive updates: LLNL sources, new directory structure, client API examples
INSTALL.md New installation guide with optional extras and developer setup
CHANGELOG.md New changelog documenting v1.0.0 and v0.1.0 releases
.gitignore Updated to use data/ directory and tests/reports/
.github/workflows/workflow.yml New PyPI publishing workflow with trusted publishing
.github/workflows/docs.yml Strict documentation builds with autodoc coverage checks
.github/workflows/ci.yml Package installation updates, new build verification job

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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