Pular para o conteúdo principal

Instalação

ContractForge é publicado como pacotes Python independentes. Instale o núcleo neutro em plataforma mais o adaptador para o tempo de execução que você deseja planejar, renderizar ou executar.

O limite do pacote é intencional:

  • contractforge-core possui modelos de contrato, validação semântica, planejamento e conceitos de evidência neutra.
  • cada pacote de adaptador possui APIs de plataforma, artefatos nativos, auxiliares de implantação e preenchimento de evidências específicas do tempo de execução.
  • contractforge-ai é opcional e usa o mesmo núcleo determinístico e planejadores de adaptadores.

Instalar por runtime

# Databricks
pip install contractforge-core contractforge-databricks

# AWS Glue / Iceberg
pip install contractforge-core contractforge-aws

# Snowflake
pip install contractforge-core contractforge-snowflake

# Microsoft Fabric
pip install contractforge-core contractforge-fabric

# GCP BigQuery / BigLake
pip install contractforge-core contractforge-gcp

# ContractForge AI companion
pip install contractforge-core contractforge-ai

Para uma máquina local que valida e compara projetos em cada adaptador:

pip install \
contractforge-core \
contractforge-databricks \
contractforge-aws \
contractforge-snowflake \
contractforge-fabric \
contractforge-gcp \
contractforge-ai

Instalação não é entrega em runtime

pip install disponibiliza o pacote para o processo Python que executa a CLI ou o código da biblioteca. Cada plataforma tem suas próprias regras de entrega de pacotes. Use PyPI primeiro quando o runtime puder resolver pacotes com segurança; use wheels quando o runtime exigir artefatos explícitos; use ZIP somente onde a plataforma exigir imports Python preparados em stage.

PlataformaPacote publicadoEntrega preferencial no runtimeFallback com wheel ou ZIPOnde o código ContractForge roda
Databrickscontractforge-core + contractforge-databricks pelo PyPI.Instale os pacotes pelo PyPI no job, cluster, ambiente de notebook ou caminho de pacote do workspace.Anexe wheels enviados ao workspace quando ele não puder acessar o PyPI ou quando o release precisar vir de artefatos de CI. ZIP não é o caminho normal no Databricks.Dentro de jobs/notebooks Databricks, com Spark e Delta fornecidos pelo Databricks Runtime.
AWS Glue / Icebergcontractforge-core + contractforge-aws pelo PyPI para ferramentas locais ou de CI.Publique artefatos gerados e wheels no S3, depois configure os jobs Glue com essas dependências de wheel.PyPI público só deve ser usado quando o job Glue tiver acesso externo a pacotes. Jobs em VPC privada devem usar wheelhouse no S3. ZIP não é o caminho estável no Glue.Dentro de jobs AWS Glue Spark; DDL de evidência Athena/Iceberg também pode ser aplicado pelos auxiliares de deploy do adaptador.
Snowflakecontractforge-core + contractforge-snowflake pelo PyPI para ferramentas locais ou de CI.Artefatos SQL/task graph rodam nativamente no Snowflake. A execução por procedure Snowpark hospedada usa imports ZIP preparados em stage para as bibliotecas core e adapter.Construa wheels do release e prepare ZIPs compatíveis com Snowflake para execução por procedure. Não dependa de resolução PyPI em runtime para módulos ContractForge customizados dentro do Snowflake.Em SQL warehouses Snowflake e, no caminho de procedure hospedada, dentro de procedures Python Snowpark.
Fabriccontractforge-core + contractforge-fabric pelo PyPI.Instale pelo PyPI no ambiente de notebook/runtime Fabric usado pelo notebook Lakehouse implantado.Anexe ou instale wheels quando o PyPI não estiver disponível ou quando o workspace precisar usar artefatos produzidos pelo CI. ZIP não é o caminho normal no Fabric.Dentro de notebooks Fabric Lakehouse, usando o Lakehouse e o workspace configurados.
GCP BigQuery / BigLakecontractforge-core + contractforge-gcp pelo PyPI para ferramentas locais, CI ou runners.BigQuery SQL, load jobs e Workflows são artefatos nativos gerados; instale o adaptador onde comandos Python de deploy/smoke rodam.Use wheels em runners privados ou para artefatos de CI fixados. Dataflow/runners Python customizados podem exigir uma decisão própria de empacotamento. ZIP não faz parte do caminho estável BigQuery/Workflows.Normalmente fora do BigQuery, na CLI/CI que renderiza e submete jobs; BigQuery e Workflows executam artefatos nativos.
ContractForge AIcontractforge-core + contractforge-ai pelo PyPI, mais os adaptadores que serão validados.Ambiente Python local ou de CI.Wheels são úteis para validar builds ainda não publicados. ZIP não é usado.No processo de planejamento/revisão com IA; o core determinístico e os planners dos adaptadores continuam validando cada projeto gerado.

Comandos dos adaptadores após instalar

Cada adaptador expõe seu próprio CLI, mas os nomes dos comandos seguem o mesmo vocabulário:

PlataformaCLI
Databrickscontractforge-databricks
AWScontractforge-aws
Snowflakecontractforge-snowflake
Fabriccontractforge-fabric
GCPcontractforge-gcp

Exemplos:

contractforge validate contracts/bronze/b_orders.ingestion.yaml

contractforge-databricks render-project-bundle examples/real-world/usgs-earthquake-rest-medallion/project.yaml

contractforge-aws deploy-project examples/real-world/usgs-earthquake-rest-medallion/project.yaml --run --wait

contractforge-snowflake deploy-project examples/real-world/usgs-earthquake-rest-medallion/project.yaml --dry-run --summary-only

contractforge-fabric run-project examples/real-world/usgs-earthquake-rest-medallion/project.yaml --environment-key fabric

contractforge-gcp deploy-project examples/real-world/usgs-earthquake-rest-medallion/project.yaml --deploy-orchestration --run-orchestration --wait-orchestration --readback-orchestration

Desenvolvimento neste repositório

Para desenvolvimento local, construa cada pacote de forma independente:

uv build --wheel

cd adapters/databricks
uv build --wheel

cd ../aws
uv build --wheel

cd ../snowflake
uv build --wheel

cd ../fabric
uv build --wheel

cd ../gcp
uv build --wheel

cd ../../ai
uv build --wheel

O Core não deve depender dos SDKs do adaptador. As rodas adaptadoras dependem contractforge-core e possuem suas dependências específicas da plataforma.