Skip to content

Conversation

@mawelborn
Copy link
Contributor

@mawelborn mawelborn commented Mar 4, 2025

This PR switches to Poetry for packaging and dependency management and Poe for defining and running tasks. I took the opportunity to pay some technical debt and set the stage for future tech debt to be paid more easily. Apologies in advance for the rather large git diff.

  • Switched to Poetry for packaging and dependency management.
    • Upgraded indico-client to 6.14.0 for asyncio and Python 3.13 support.
      Updated indico-toolkit to match.
    • indico-client>=6.1.0 requires python>=3.10.
      Updated indico-toolkit to match.
    • indico-client no longer has a hard dependency on numpy, pandas, or msgpack. These have been made optional dependencies in indico-toolkit as well, and are available via extras. indico-client is now the only hard dependency.
      • This reduces the base install size by 75%; container builds are smaller, better, faster, stronger.
  • Defined formatting, linting, type checking, and unit testing tasks with Poe.
    • Formatted codebase with ruff (imports) and black (syntax).
    • Fixed codebase issues to pass ruff's E,F,I linting rules.
    • Enabled mypy --strict on existing type-hinted code and future additions.
      • Existing code without valid type hints has been ignored using mypy.ini.
      • Existing code should gradually type hinted as it's worked on in future PRs to ensure type safety.
    • Separated local unit tests and remote integration tests into separate tasks.
      • Local unit tests run by default and execute nearly instantaneously to support fast code -> check -> test feedback loops.
      • Fixed many unit tests and improved fixtures.
      • Remote integration are flaky and have been made a separate task.
      • Executing integration tests has been simplified using pytest arguments.
      • Marked integration tests that are broken on recent IPA versions.
  • Fixed GitHub actions workflow, which now executes linting, type checking, and unit testing tasks without errors.
  • Updated Readme with a "Not Officially Supported" disclaimer and improved installation and contributing information.
  • Updated Changelog.
  • Updated repo name to match indico-client-python, indico-client-csharp, indico-toolkit-python, indico-toolkit-csharp naming convention.

@mawelborn mawelborn marked this pull request as ready for review March 10, 2025 17:16
@mawelborn mawelborn merged commit bce0289 into main Mar 14, 2025
6 checks passed
@mawelborn mawelborn deleted the mawelborn/poetry branch March 14, 2025 19:09
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.

3 participants