You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The rationale was in fact to be more pro-application! Why should project metadata affect environments that do not have the project?
skip-install=true is often used for application projects who still wishes to write a pyproject.toml but wishes not to install their application as a package. It is also common to not specify the [build-systems] table which is required to build a package.
The general use case is "applications that are not meant to be packaged". Let's call it "application" use case for short.
Personally, I use the [project] table as a way to specify my application's runtime environment1 and [tools.hatch.envs] for development environment. Because the [project] table is tool-agnostic, I also have a choice to move the development environment to a personal hatch.toml that isn't committed.
Hatch claims to support the applications use case, but I believe the change to ignore the [project] table2 when hatch creates its environment seems to going against this support. To be more specific, here is how I think Hatch plays its role in application deployment and development environments:
Creates the environment for deploying the application using the specification of its dependency and Python version.
Users can specify the application's top-level dependencies.
Creates the application's exact dependencies (e.g., lockfile) through existing plugins. This list of dependencies can then be used in (1).
Users can specify the application's Python version.
Creates the environment for developing application using the specification of its dependency and Python version. Devs have a choices to use either the exact or top-level dependencies.
1 Despite the intention of the project table to be for packaging and is a misnomer for the Package metadata table. 2 Perhaps this change was in anticipation of PEP 735 previously intended to be the application runtime table table
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Continuing the conversation from #1250 (comment)
skip-install=true
is often used for application projects who still wishes to write apyproject.toml
but wishes not to install their application as a package. It is also common to not specify the[build-systems]
table which is required to build a package.The general use case is "applications that are not meant to be packaged". Let's call it "application" use case for short.
Personally, I use the
[project]
table as a way to specify my application's runtime environment1 and[tools.hatch.envs]
for development environment. Because the[project]
table is tool-agnostic, I also have a choice to move the development environment to a personalhatch.toml
that isn't committed.Hatch claims to support the applications use case, but I believe the change to ignore the
[project]
table2 when hatch creates its environment seems to going against this support. To be more specific, here is how I think Hatch plays its role in application deployment and development environments:1 Despite the intention of the
project
table to be for packaging and is a misnomer for the Package metadata table.2 Perhaps this change was in anticipation of PEP 735 previously intended to be the application runtime table table
Beta Was this translation helpful? Give feedback.
All reactions