[sqlalchemy-spanner] Make alembic an optional extra dependency
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 68/100
Direção de pesquisa
Comece por packages/sqlalchemy-spanner/setup.py e compare a configuração das dependências com o exemplo de extras de sqlalchemy-bigquery na issue. Verifique os metadados do pacote ou os testes relevantes para confirmar que Alembic não é mais obrigatório por padrão e está disponível por meio do extra alembic. Leve em conta o impacto na compatibilidade mencionado ao considerar o momento do lançamento.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- Python
- Estrelas
- 5.4k
- Forks
- 1.8k
- Merge médio
- 2d 18h
- PRs com merge (30d)
- 148
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de googleapis/google-cloud-python
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
googleapis/google-cloud-python#18532 ·
Mantenedores costumam responder em até 1 dia
-
auth: call_client_cert_callback() discards passphrase for encrypted keysTalvez já em andamento @kwy404 assumiu há 7 dias. Aberta
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 92/100
googleapis/google-cloud-python#18467 ·
Mantenedores costumam responder em até 1 dia
-
auth: `impersonated_credentials` loses `subject` on copy, so `with_scopes()` and `with_quota_project()` turn off domain wide delegationTalvez já em andamento @Om-singhaI assumiu há 19 dias. Abertaauth priority: p2 type: bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
googleapis/google-cloud-python#18428 ·
Mantenedores costumam responder em até 1 dia
-
priority: p2 type: bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
googleapis/google-cloud-python#18375 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
ci: enable --strict flag in presubmit twine_checkTalvez já em andamento @ohmayr assumiu há 8 dias. Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 76/100
googleapis/google-cloud-python#18339 · 1 comentário · 1 responsável ·
Mantenedores costumam responder em até 1 dia
Todas as issues de googleapis/google-cloud-python
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
Deepak3699/Ai_Mentor#244 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
btclib-org/btclib-node#1880 ·
Mantenedores costumam responder em até 1 dia
-
CONTRIBUTING.md: say how ticketless bug fixes and feature PRs are handledTalvez já em andamento @khuisman assumiu hoje. Abertav0.9.2
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 84/100
khuisman/mcp-gee-sweet#941 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
pyjanitor-devs/pyjanitor#1758 ·
Mantenedores costumam responder em até 1 dia
-
bug ready for review
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
odysseus-dev/odysseus#6641 ·
Mantenedores costumam responder em até 1 dia