Skip to content

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

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.

Activity

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

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions