Skip to content

[EPIC] Short-Term Development Plan for EasyDiffraction #29

@AndrewSazonov

Description

@AndrewSazonov

This issue outlines the short-term strategy for evolving the EasyDiffraction library towards a cleaner, more stable, and maintainable design. It acts as a checklist of high-level development tasks and priorities. Sub-tasks should be tracked as individual issues linked here.

Goal

  • Finalize and stabilize the new API
  • Improve developer experience and code quality
  • Prepare for integration with EasyScience shared components
  • Lay the foundation for a long-term roadmap

Checklist

  • Finalize the new API draft

  • Polish the new API design

    • Ensure clean, simple, and maintainer-friendly interfaces
    • No new features unless necessary for testing structure
    • Add:
      • PdfFit calculator as a cross-check for calculator integration
      • Single crystal diffraction as a test case for extensibility
  • Freeze the API

    • Add type annotations
    • Add unit tests
    • Add complete and clear docstrings
  • Set up CI quality enforcement

    • Add static analysis tools (ruff, mypy, etc.)
    • Block PRs that reduce code quality or test coverage
  • Adopt EasyScience organization templates

    • Wait for finalized org-wide templates (currently in development)
    • Apply to include:
      • GitHub workflows
      • pyproject.toml
    • Continue using requirements.txt until switch is made
  • Improve issue tracking

    • Create issues for missing features, bugs, and tasks
  • Organize and prioritize work

    • Group issues into categories
    • Define milestones
    • Assign priority levels
  • Prepare for EasyScience core class integration

    • Add strong unit test coverage
    • Add functional and performance tests
    • Ensure no performance regressions from refactor
  • Create long-term roadmap

    • Based on outcomes of this short-term plan
    • Define direction for further development, growth, and community usage

Notes

  • This issue will remain pinned and act as a living task board.
  • Linked sub-issues will provide additional detail and progress tracking.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions