PrefectHQ / prefect

Prefect is a workflow orchestration framework for building resilient data pipelines in Python.
https://prefect.io
Apache License 2.0
17.6k stars 1.65k forks source link

[prefect-shell] Replace prefect with prefect-client in the dependencies and avoid prerelease version installs #16015

Open tyong920 opened 1 week ago

tyong920 commented 1 week ago

Describe the current behavior

  1. Unnecessary dependency on prefect:
  1. Automatic installation of prerelease versions:

Describe the proposed behavior

  1. Use prefect-client instead of prefect:
  1. Avoid prerelease version installations:

Example Use

No response

Additional context

This change will make prefect-shell easier to integrate in projects where a lighter, API-only client is preferred and prevent potentially unstable releases from being automatically installed.

cicdw commented 1 week ago

Good call @tyong920 thank you for the issue! I've opened a PR to remove the suffixes; I like your idea of only requiring prefect-client but it will take some time to implement it. Currently the main prefect package does not have prefect-client as a dependency, so without more work this would cause re-installations of prefect-client in cases where it is not necessary. We have a target to refactor the client and we can include this in that work when we pick it up.

tyong920 commented 1 week ago

@cicdw Thank you for the quick response and for opening the PR to remove the suffixes!

I appreciate your consideration of the prefect-client dependency idea. It makes sense that refactoring will require some additional work, especially given the current separation between prefect and prefect-client. I’m glad to hear it’s on the roadmap, and I’ll look forward to seeing how it evolves when you’re able to take it up.

Thanks again for your prompt action and thoughtful approach!

tyong920 commented 1 week ago

@cicdw BTW, would it be possible to prioritize publishing the components under src/integrations to PyPI, including prefect-shell? Having these packages readily available would be extremely helpful for projects depending on them.

cicdw commented 1 week ago

@tyong920 yup! I just pushed out the tags so the new versions should land on PyPI soon.