[sqlalchemy-spanner] Make alembic an optional extra dependency
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 68/100
Piste de recherche
Commencez par packages/sqlalchemy-spanner/setup.py et comparez sa configuration des dépendances avec l’exemple d’extras de sqlalchemy-bigquery dans l’issue. Vérifiez les métadonnées du package ou les tests pertinents pour confirmer qu’Alembic n’est plus requis par défaut et qu’il est disponible via l’extra alembic. Tenez compte de l’impact indiqué sur la compatibilité lorsque vous réfléchissez au calendrier de publication.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Feature / Enhancement Description
Currently, alembic is listed as a mandatory dependency in packages/sqlalchemy-spanner/setup.py:
dependencies = [
"sqlalchemy>=1.1.13",
"google-cloud-spanner>=3.55.0",
"alembic",
]
However, a database dialect does not inherently require a schema migration tool. Many applications use sqlalchemy-spanner strictly for SQLAlchemy Core or ORM query execution (e.g. data engineering pipelines, read-only analytics, services managing schema via Terraform or Spanner DDL).
In sqlalchemy-bigquery, alembic is already modeled as an optional extra rather than a core dependency:
extras = {
"alembic": ["alembic"],
...
}
Proposed Changes
- Move
alembicfrominstall_requires/dependenciestoextras_requireinsetup.py:extras = { "tracing": [...], "alembic": ["alembic >= 1.0.0, < 2.0.0"], } - Note that moving
alembicto an extra is potentially a breaking change for existing users who rely onpip install sqlalchemy-spannerto install thealembicCLI tool, so this should be scheduled for an appropriate minor or major version release.
Related
- Pull Request https://github.com/googleapis/google-cloud-python/pull/18570 already decouples dialect imports by guarding Alembic-specific
@compileshooks (HAS_ALEMBIC_INSTALLED), providing the prerequisite code separation for this transition.
- Langage dominant
- Python
- Étoiles
- 5.4k
- Forks
- 1.8k
- Merge moyen
- 2 j 18 h
- PR mergées (30 j)
- 148
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
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 googleapis/google-cloud-python
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
googleapis/google-cloud-python#18532 ·
Les mainteneurs répondent en général sous 1 jour
-
auth: call_client_cert_callback() discards passphrase for encrypted keysPeut-être pris @kwy404 l’a pris il y a 7 jours. Ouverte
Difficulté 1/5 1-3 heures Accessibilité débutants 92/100
googleapis/google-cloud-python#18467 ·
Les mainteneurs répondent en général sous 1 jour
-
auth: `impersonated_credentials` loses `subject` on copy, so `with_scopes()` and `with_quota_project()` turn off domain wide delegationPeut-être pris @Om-singhaI l’a pris il y a 18 jours. Ouverteauth priority: p2 type: bug
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
googleapis/google-cloud-python#18428 ·
Les mainteneurs répondent en général sous 1 jour
-
priority: p2 type: bug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
googleapis/google-cloud-python#18375 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
ci: enable --strict flag in presubmit twine_checkPeut-être pris @ohmayr l’a pris il y a 8 jours. Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 76/100
googleapis/google-cloud-python#18339 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de googleapis/google-cloud-python
Issues similaires
-
first
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
AcademySoftwareFoundation/rmtc#54 · 1 commentaire ·
-
feature/cohorts feature/feature-flags team/feature-flags
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
Les mainteneurs répondent en général sous 1 jour
-
License examples/ as MITPeut-être pris @PGrayCS l’a pris aujourd’hui. Ouvertedocumentation enhancement example good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
speedyk-005/yasbd-lib#383 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
interactions-py/interactions.py#1827 ·
-
Managed start can fail when OpenVMM reads its control capability before NVX writes itPeut-être pris @ppenna l’a pris aujourd’hui. Ouvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 1 jour