chore(release): prepare 0.10.0 CI and packaging flow#2
chore(release): prepare 0.10.0 CI and packaging flow#2marlon-costa-dc merged 17 commits intomainfrom
Conversation
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary of ChangesHello @marlon-costa-dc, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request prepares the project for its 0.10.0 release by refining core infrastructure and development workflows. Key changes include standardizing report output locations, enhancing dependency management, and automating GitHub CI workflow synchronization across subprojects. Additionally, the project's main documentation has been updated to reflect a new portfolio overview, and various internal and external dependencies have been refreshed. Highlights
Changelog
Ignored Files
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request is a significant step towards preparing for the 0.10.0 release. It introduces a robust, centralized CI workflow system with a new script to sync configurations across all subprojects, complete with tests. The dependency synchronization logic has been hardened to be more reliable in different environments. Additionally, the repository's artifact structure has been standardized by moving all reports to a top-level .reports directory. My review focuses on a major change to the main README.md file, which has been completely rewritten and could impact developer onboarding.
| # FLEXT | ||
|
|
||
| Portifolio de 33 projetos de integracao de dados, revisados individualmente para orientar decisao tecnica e operacao. | ||
|
|
||
| ## O que o repositorio consolida | ||
|
|
||
| - Bases arquiteturais para API, autenticacao, runtime, observabilidade e qualidade. | ||
| - Conectores Singer (taps e targets) para LDAP, LDIF, Oracle, OIC e WMS. | ||
| - Projetos dbt para publicacao de camada analitica por dominio. | ||
| - Solucoes operacionais dedicadas para cenarios de migracao e clientes. | ||
|
|
||
| ## Projetos revisados caso a caso | ||
|
|
||
| | Projeto | Papel funcional no ecossistema | | ||
| | --- | --- | | ||
| | `algar-oud-mig` | Ferramenta operacional para migracao LDAP/LDIF de Oracle Internet Directory (OID) para Oracle Unified Directory (OUD) com execucao por fases. | | ||
| | `flexcore` | Runtime hibrido Go/Python para inicializacao de servicos e coordenacao operacional de componentes FLEXT. | | ||
| | `flext-api` | Camada de API HTTP para exposicao e consumo de servicos de dados no ecossistema FLEXT. | | ||
| | `flext-auth` | Servico de autenticacao e autorizacao para controle de acesso entre APIs, CLIs e componentes FLEXT. | | ||
| | `flext-cli` | Framework de linha de comando para construir interfaces operacionais padronizadas no portfolio FLEXT. | | ||
| | `flext-core` | Base arquitetural compartilhada do ecossistema, com contratos, utilitarios e padroes transversais. | | ||
| | `flext-db-oracle` | Biblioteca de acesso Oracle para leitura, escrita e suporte de persistencia em pipelines de dados. | | ||
| | `flext-dbt-ldap` | Projeto dbt para transformar dados LDAP em modelos analiticos operacionais e de auditoria. | | ||
| | `flext-dbt-ldif` | Projeto dbt para modelagem analitica de dados extraidos de arquivos LDIF. | | ||
| | `flext-dbt-oracle` | Projeto dbt para transformar dados Oracle em estruturas analiticas reutilizaveis. | | ||
| | `flext-dbt-oracle-wms` | Projeto dbt especializado na transformacao de dados Oracle WMS para analise operacional logistica. | | ||
| | `flext-grpc` | Camada gRPC para comunicacao service-to-service de baixa latencia entre componentes FLEXT. | | ||
| | `flext-ldap` | Biblioteca de operacoes LDAP para leitura, escrita e sincronizacao de identidades em diretorios corporativos. | | ||
| | `flext-ldif` | Biblioteca para parsing, validacao e transformacao de arquivos LDIF em fluxos de migracao de diretorio. | | ||
| | `flext-meltano` | Camada de orquestracao Singer/Meltano para coordenar extracao, carga e transformacao em pipelines FLEXT. | | ||
| | `flext-observability` | Componente de observabilidade para metricas, tracing e diagnostico operacional de servicos e pipelines. | | ||
| | `flext-oracle-oic` | Biblioteca de integracao com Oracle Integration Cloud para operacoes de conectividade e interoperabilidade. | | ||
| | `flext-oracle-wms` | Biblioteca de integracao com Oracle WMS para acesso a dados operacionais de armazem. | | ||
| | `flext-plugin` | Sistema de plugins para extensao modular de funcionalidades sem alterar o nucleo da plataforma. | | ||
| | `flext-quality` | Camada de validacao tecnica para qualidade, conformidade e seguranca no ecossistema FLEXT. | | ||
| | `flext-tap-ldap` | Singer Tap para extracao de dados de diretorios LDAP em pipelines de integracao. | | ||
| | `flext-tap-ldif` | Singer Tap para extracao de dados a partir de arquivos LDIF. | | ||
| | `flext-tap-oracle` | Singer Tap para extracao de dados de bancos Oracle para pipelines ELT. | | ||
| | `flext-tap-oracle-oic` | Singer Tap para extracao de entidades e dados de Oracle Integration Cloud. | | ||
| | `flext-tap-oracle-wms` | Singer Tap para extracao de dados operacionais de Oracle Warehouse Management System. | | ||
| | `flext-target-ldap` | Singer Target para aplicacao de dados em destinos LDAP. | | ||
| | `flext-target-ldif` | Singer Target para materializar saida de pipeline em formato LDIF. | | ||
| | `flext-target-oracle` | Singer Target para carga de dados em banco Oracle como destino final de pipeline. | | ||
| | `flext-target-oracle-oic` | Singer Target para enviar dados a recursos Oracle Integration Cloud. | | ||
| | `flext-target-oracle-wms` | Singer Target para aplicar dados em Oracle WMS como destino operacional. | | ||
| | `flext-web` | Camada web para operacao e visualizacao das capacidades do ecossistema FLEXT. | | ||
| | `gruponos-meltano-native` | Pipeline ETL Meltano dedicado ao contexto Grupo Nos, com foco operacional em cargas Oracle WMS. | | ||
|
|
||
| ## Estado atual do portfolio | ||
|
|
||
| - Qualidade global: **Alpha** | ||
| - Uso recomendado: **Nao produtivo** | ||
| - Aplicacao permitida: desenvolvimento, POC e homologacao controlada. | ||
|
|
||
| ## Diretriz de governanca desta revisao | ||
|
|
||
| Cada README foi tratado individualmente com foco no que o projeto faz, no contexto operacional de uso e no risco atual de adocao. | ||
|
|
||
| ## Repositorio oficial | ||
|
|
||
| Codigo-fonte e governanca: [github.com/flext-sh/flext](https://github.com/flext-sh/flext). |
There was a problem hiding this comment.
The complete rewrite of the README.md introduces two potential issues:
- Language Inconsistency: The new content is in Portuguese, while the rest of the repository, including the PR description, code, and other documentation, is in English. This creates an inconsistency that can be confusing for a global audience. It's generally best practice to maintain a single primary language for a project's documentation.
- Loss of Developer Information: The previous version contained valuable information for developers, such as a quick start guide, architecture diagrams, and a summary of the
makeworkflow. This information is crucial for onboarding new contributors. The new version is a high-level portfolio overview and omits these important details.
While the new content might be useful elsewhere, the root README.md is the most critical document for developers approaching the repository for the first time. I'd recommend either restoring the key developer-focused sections (like setup and development workflow) or moving this new portfolio overview to a different file (e.g., PORTFOLIO.md) and reverting the README.md to a more developer-centric guide.
There was a problem hiding this comment.
4 issues found across 52 files
Prompt for AI agents (all issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name=".claude/skills/scripts-infra/validate_artifact_naming.py">
<violation number="1" location=".claude/skills/scripts-infra/validate_artifact_naming.py:20">
P1: `VALIDATED_TOP_DIRS = {"."}` can never match: `Path.relative_to()` never yields `"."` as a path component, so `return top_dir in VALIDATED_TOP_DIRS` is always `False` for files in subdirectories. Any artifact in a non-skipped subdirectory of `.reports/` will be silently excluded from validation.
If the intent is to validate all non-skipped subdirectories, the final return should be `return True`. If only root-level files should be validated, the `VALIDATED_TOP_DIRS` constant and final `return` are dead code and should be removed for clarity.</violation>
</file>
<file name="README.md">
<violation number="1" location="README.md:3">
P3: Typo: "Portifolio" → "Portfolio" (the extra 'i' is not correct in Portuguese or English). Note the same word is spelled differently later in the file ("portfolio").</violation>
<violation number="2" location="README.md:3">
P2: Project count mismatch: the text says "33 projetos" but only 32 are listed in the table. Either a project is missing from the table or the count should be 32.</violation>
</file>
<file name=".github/workflows/ci.yml">
<violation number="1" location=".github/workflows/ci.yml:28">
P2: Third-party action `snok/install-poetry` should be pinned to a full commit SHA instead of a mutable version tag (`v1`) to prevent supply chain attacks. Pin to the specific commit hash for the version you intend to use (e.g., `snok/install-poetry@76e04a911780d5b312d89783f7b1cd627778900a`).</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
| ARTIFACT_PATTERN = re.compile(r"^[a-z][-a-z0-9]*--[a-z]+--[a-z][-a-z0-9]*\.[a-z]+$") | ||
| VALIDATED_TOP_DIRS = {"reports", "baselines"} | ||
| SKIPPED_TOP_DIRS = {"evidence", "plans", "drafts"} | ||
| VALIDATED_TOP_DIRS = {"."} |
There was a problem hiding this comment.
P1: VALIDATED_TOP_DIRS = {"."} can never match: Path.relative_to() never yields "." as a path component, so return top_dir in VALIDATED_TOP_DIRS is always False for files in subdirectories. Any artifact in a non-skipped subdirectory of .reports/ will be silently excluded from validation.
If the intent is to validate all non-skipped subdirectories, the final return should be return True. If only root-level files should be validated, the VALIDATED_TOP_DIRS constant and final return are dead code and should be removed for clarity.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .claude/skills/scripts-infra/validate_artifact_naming.py, line 20:
<comment>`VALIDATED_TOP_DIRS = {"."}` can never match: `Path.relative_to()` never yields `"."` as a path component, so `return top_dir in VALIDATED_TOP_DIRS` is always `False` for files in subdirectories. Any artifact in a non-skipped subdirectory of `.reports/` will be silently excluded from validation.
If the intent is to validate all non-skipped subdirectories, the final return should be `return True`. If only root-level files should be validated, the `VALIDATED_TOP_DIRS` constant and final `return` are dead code and should be removed for clarity.</comment>
<file context>
@@ -17,8 +17,8 @@
ARTIFACT_PATTERN = re.compile(r"^[a-z][-a-z0-9]*--[a-z]+--[a-z][-a-z0-9]*\.[a-z]+$")
-VALIDATED_TOP_DIRS = {"reports", "baselines"}
-SKIPPED_TOP_DIRS = {"evidence", "plans", "drafts"}
+VALIDATED_TOP_DIRS = {"."}
+SKIPPED_TOP_DIRS = {"evidence", "plans", "drafts", "validation", "dependencies"}
SKIPPED_FILES = {".gitkeep"}
</file context>
| FLEXT is released under the MIT License. See [LICENSE](LICENSE) for details. | ||
| # FLEXT | ||
|
|
||
| Portifolio de 33 projetos de integracao de dados, revisados individualmente para orientar decisao tecnica e operacao. |
There was a problem hiding this comment.
P2: Project count mismatch: the text says "33 projetos" but only 32 are listed in the table. Either a project is missing from the table or the count should be 32.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At README.md, line 3:
<comment>Project count mismatch: the text says "33 projetos" but only 32 are listed in the table. Either a project is missing from the table or the count should be 32.</comment>
<file context>
@@ -1,190 +1,61 @@
-FLEXT is released under the MIT License. See [LICENSE](LICENSE) for details.
+# FLEXT
+
+Portifolio de 33 projetos de integracao de dados, revisados individualmente para orientar decisao tecnica e operacao.
+
+## O que o repositorio consolida
</file context>
| Portifolio de 33 projetos de integracao de dados, revisados individualmente para orientar decisao tecnica e operacao. | |
| Portfolio de 32 projetos de integracao de dados, revisados individualmente para orientar decisao tecnica e operacao. |
.github/workflows/ci.yml
Outdated
| python-version: "3.13" | ||
|
|
||
| - name: Install Poetry | ||
| uses: snok/install-poetry@v1 |
There was a problem hiding this comment.
P2: Third-party action snok/install-poetry should be pinned to a full commit SHA instead of a mutable version tag (v1) to prevent supply chain attacks. Pin to the specific commit hash for the version you intend to use (e.g., snok/install-poetry@76e04a911780d5b312d89783f7b1cd627778900a).
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/ci.yml, line 28:
<comment>Third-party action `snok/install-poetry` should be pinned to a full commit SHA instead of a mutable version tag (`v1`) to prevent supply chain attacks. Pin to the specific commit hash for the version you intend to use (e.g., `snok/install-poetry@76e04a911780d5b312d89783f7b1cd627778900a`).</comment>
<file context>
@@ -0,0 +1,43 @@
+ python-version: "3.13"
+
+ - name: Install Poetry
+ uses: snok/install-poetry@v1
+ with:
+ virtualenvs-create: false
</file context>
| FLEXT is released under the MIT License. See [LICENSE](LICENSE) for details. | ||
| # FLEXT | ||
|
|
||
| Portifolio de 33 projetos de integracao de dados, revisados individualmente para orientar decisao tecnica e operacao. |
There was a problem hiding this comment.
P3: Typo: "Portifolio" → "Portfolio" (the extra 'i' is not correct in Portuguese or English). Note the same word is spelled differently later in the file ("portfolio").
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At README.md, line 3:
<comment>Typo: "Portifolio" → "Portfolio" (the extra 'i' is not correct in Portuguese or English). Note the same word is spelled differently later in the file ("portfolio").</comment>
<file context>
@@ -1,190 +1,61 @@
-FLEXT is released under the MIT License. See [LICENSE](LICENSE) for details.
+# FLEXT
+
+Portifolio de 33 projetos de integracao de dados, revisados individualmente para orientar decisao tecnica e operacao.
+
+## O que o repositorio consolida
</file context>
Summary
Summary by cubic
Prepares the 0.10.0 rollout with a canonical CI, unified .reports artifacts, hardened dependency/workflow sync, and a tag-driven workspace release flow.
New Features
Migration
Written for commit ea9875f. Summary will update on new commits.