litestar-org/litestar

Enhancement: avoid circular dependencies on litestar-htmx

bollwyvl opened this issue · 7 comments

Summary

Treat htmx as any other optional dependency.

Basic Example

2.13.0 change of introducing a hard dependency on litestar-htmx (which has a hard, but unpinned dependency on litestar).

While pip can handle this, is troublesome for downstreams (such as conda-forge/litestar-feedstock#11) to bootstrap.

Drawbacks and Impact

Users will need to use the existing litestar[htmx] rather than get litestar-htmx "for free".

Unresolved questions

litestar-htmx has further packaging issues: litestar-org/litestar-htmx#7


Note

While we are open for sponsoring on GitHub Sponsors and
OpenCollective, we also utilize Polar.sh to engage in pledge-based sponsorship.

Check out all issues funded or available for funding on our Polar.sh dashboard

  • If you would like to see an issue prioritized, make a pledge towards it!
  • We receive the pledge once the issue is completed & verified
  • This, along with engagement in the community, helps us know which features are a priority to our users.
Fund with Polar
cofin commented

We should open a PR and pin litestar to >= 0.4.0 of litestar-htmx.

We can't make it an optional dependency at this point though because this would be considered a breaking change. It could be a 3.0 consideration though.

We should open a PR and pin litestar to >= 0.4.0 of litestar-htmx.

Doing that at this point would make the situation worse, as there would be no way to bootstrap.

(making a [litestar] extra that contained the version pin would provide useful metadata, however)

worse

To clarify: the situation would be worse if litestar-htmx's pyproject.toml contained a pin with a version. Perhaps that's not what that pin litestar to >= 0.4.0 of litestar-htmx intends

cofin commented

I'm fairly certain this doesn't break things, but please feel free to suggest changes on this PR here:
#3884

This issue has been closed in #3884. The change will be included in upcoming releases.