Consider replacing Hatch with uv for project and dependency management
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
- Type d'issue
- Fonctionnalité
- Clarté
- À clarifier
- Activité
- Active
- Stack technique
- python
- Domaine
- build-system, tooling
Piste de recherche
Commencez par le pyproject.toml du projet et les commandes Hatch listées pour la construction, les environnements, les scripts, la gestion des versions, le linting et les tests. Comparez ces responsabilités avec uv, notamment le uv.lock proposé, et examinez function-template-python pour sa configuration héritée. Le travail sera considéré comme terminé lorsque les gains et les pertes auront été documentés et qu’une décision aura été prise quant au remplacement de Hatch dans les deux projets.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
What problem are you facing?
When I created this SDK in November 2023, the Python build and project management space was crowded. There was Hatch, Poetry, PDM, Flit, setuptools, and probably others I'm forgetting. There wasn't a clear winner. I picked Hatch because it was a PyPA project, it had a clean pyproject.toml-based configuration, and it covered everything I needed: environments, scripts, building, versioning, and linting (via its Ruff integration).
Today we use Hatch for:
- Building wheels and sdists (
hatch build), usinghatchlingas the PEP 517 build backend. - Environments with isolated dependencies — a
generateenv for protoc, adocsenv for pdoc, and ahatch-static-analysisenv for Ruff. - Scripts like
hatch run generate:protocandhatch run docs:generate. - Version management — reading the version from
__version__.pyat build time. - Linting via
hatch fmt, which wraps Ruff. - Testing via
hatch test, which wraps pytest.
function-template-python uses the same setup, and any new functions built from it will inherit it.
Hatch works. I don't have a concrete problem with it.
What I do have is a growing sense that the ecosystem has converged on uv in the ~18 months since I made this choice. uv didn't exist when I picked Hatch — its first release was February 2024, three months after this SDK. Since then it's grown to 82k GitHub stars (vs Hatch's 7.2k and Poetry's 34.3k) and 14,600 dependent repositories (vs Hatch's 1,800). It has a full-time team at Astral and ships releases at a pace that's hard to ignore.
We already use Astral's Ruff for linting and formatting, and I'm interested in their ty type checker too. Adopting uv would mean our Python build toolchain is entirely Astral: uv for project management, Ruff for linting, and potentially ty for type checking. That's less build plumbing for contributors to learn and install.
uv would also give us a lockfile (uv.lock) for pinning transitive dependencies, which Hatch doesn't support. We pin direct dependencies today but have no control over what versions of their transitive dependencies get installed.
How could this Function help solve your problem?
I think we should evaluate replacing Hatch with uv for project and dependency management in this SDK and in function-template-python. I'll follow up with a comment breaking down what we'd gain and what we'd lose.
- Langage dominant
- Python
- Étoiles
- 12
- Forks
- 15
- Merge moyen
- 1 j 12 h
- PR mergées (30 j)
- 7
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de crossplane/function-sdk-python
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
-
enhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 42/100
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
crossplane/function-sdk-python#129 · 1 commentaire ·
-
Dependency Dashboard Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 10/100
-
enhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
crossplane/function-sdk-python#5 · 1 commentaire ·
Toutes les issues de crossplane/function-sdk-python
Issues similaires
-
essnmx good first issue
Difficulté 1/5 Moins d'une heure Accessibilité débutants 95/100
-
[Feature] 奇物选择添加优先级 Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
syfoud/Simulated_Scepter#174 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Giskard-AI/giskard-oss#2840 · 1 commentaire ·
-
A claim comment carrying the issue number is silently declined while the workflow reports success Ouvertearea: repo bug perceived difficulty: 2
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
yeti-platform/yeti#1380 ·