2.5 KiB
2.5 KiB
PR-19.2 - Infra DependencyGraphAnaliser Extraction and Module Cutover
Briefing
As decisions da familia 19 fixaram que modules e globals compartilham o mesmo kernel estrutural de analise de dependencias, vindo de um refactor do algoritmo atual de modules para DependencyGraphAnaliser em util.structures.
Esta PR faz somente esse corte de infra:
- extrair o kernel estrutural reutilizavel;
- migrar o uso atual de modules para esse novo componente;
- deixar a superficie pronta para a futura aplicacao no graph de globals.
Target
Introduzir um analizador estrutural generico para:
- topological ordering,
- deterministic traversal,
- cycle detection,
- e, quando util, exposicao de SCC/path para diagnostics.
Dependencies
Prerequisitos diretos:
Globals Surface, Identity, and Module Boundaries Decision.md
Scope
- Extrair o algoritmo atual de dependency ordering de modules para
DependencyGraphAnaliser. - Definir uma API estrutural baseada em nos canonicos e edges preconstruidas.
- Migrar a linha atual de modules para usar esse componente comum.
- Preservar comportamento observavel dos diagnostics de modules.
Non-Goals
- Nao introduzir ainda globals no pipeline semantico.
- Nao misturar semantica de modules com semantica de globals.
- Nao alterar parser ou AST.
- Nao alterar diagnostics user-facing da linha de globals nesta PR.
Method
- Extrair apenas o kernel estrutural; sem abstrair semantica de descoberta de edges.
- Manter cada dominio responsavel por:
- nos canonicos,
- edges,
- mapeamento para diagnostics.
- Garantir regressao zero para a linha atual de dependency ordering de modules.
Acceptance Criteria
- Existe um
DependencyGraphAnaliserreutilizavel em infrautil.structures. - Modules passam a usar esse componente sem mudar o contrato observavel atual.
- O componente nao carrega conhecimento de modulo, global ou PBS-specific semantics.
- A futura linha de globals consegue consumir o novo kernel sem novo refactor estrutural.
Tests
- Testes atuais de dependency ordering e cycle detection de modules permanecem verdes.
- Testes unitarios diretos do
DependencyGraphAnalisercobrem:- DAG simples,
- ciclo,
- ordering deterministico,
- graph desconexo.
Affected Artifacts
prometeu-depse/ou infra estrutural equivalente- fases atuais que usam o algoritmo de dependency ordering de modules
Open Questions
- A exposicao de SCC/path pode ser minima nesta PR, desde que nao force novo refactor na PR-19.5.