Funcionalidade names - BrunodosSantosVaz/big-bang GitHub Wiki
Tabela de nomes da v3
Funcionalidade BB-F-049 · requisito RF-BB-049 · versão documentada 3.0.1 · código 371a61ae5c993f6ba3fde76e77f91e64f0bf9c42.
Finalidade
Manter numa única tabela a correspondência entre os identificadores da v2, em português, e os da v3, em inglês, para que nenhum nome legado seja escrito em dois lugares e a atualização não quebre projetos existentes (ADR-0024).
Atores
Módulos da CLI, leitura do bigbang.toml, decisões do dono, hooks do Claude Code e, nas próximas etapas, a esteira v3 e a migração guiada.
Pré-condições
Nenhuma: o módulo é puro, não lê arquivos nem rede, e é importado pelo restante do pacote bb e pelos hooks.
Fluxo principal
Consultar key_to_v3/key_to_legacy para chaves do bigbang.toml, value_to_v3/value_to_legacy para valores-identificadores, cli_name/cli_option para registrar comandos e opções com aliases, label/label_dialect para labels e as tabelas de branches, workflows, checks, ambiente, segredos e variáveis.
As chaves de configuração do alvo personalizado também usam a tabela central: script_publicar,
script_migrar, script_saude, script_voltar e variaveis_personalizado têm os equivalentes em inglês definidos
ali. Não há chave de segredos para o alvo, pois os scripts do projeto não recebem segredos.
Validações
Cada chave legada faz ida e volta; cada valor traduzido volta ao original; cada comando legado tem exatamente um nome v3; chaves só da v3 (board.model, board.number, board.labels, workflow.model) não têm nome legado.
Alternativas e erros
Nome desconhecido volta sem tradução, para que a validação estrita do bigbang.toml ou do argparse aponte o erro com o nome que a pessoa escreveu; nada é inventado.
Permissões
Nenhuma permissão é concedida: a tabela apenas traduz nomes, sem tocar em arquivos, labels ou no GitHub.
Resultados
Configuração, CLI, decisões e hooks respondem nos dois idiomas com uma única fonte de verdade, base da migração por partes descrita no ADR-0024.
Referência da implementação
Os símbolos abaixo compõem o inventário real do módulo, incluindo auxiliares internos; não representam APIs públicas independentes.
names.py
| Símbolo | Linha |
|---|---|
cli_name |
103 |
cli_option |
109 |
is_build_key |
171 |
key_to_v3 |
175 |
key_to_legacy |
184 |
value_to_v3 |
202 |
value_to_legacy |
206 |
label_dialect |
214 |
label |
220 |
Cenários e rastreabilidade
.bigbang/tests/test_names_config.py:test_every_key_round_trips.bigbang/tests/test_names_config.py:test_values_round_trip.bigbang/tests/test_names_config.py:test_v3_only_keys_have_no_legacy_name.bigbang/tests/test_names_config.py:test_decision_labels_in_both_dialects.bigbang/tests/test_names_config.py:test_every_legacy_cli_command_has_one_v3_name.bigbang/tests/test_names_config.py:test_scenarios_translate_and_validate.bigbang/tests/test_names_config.py:test_both_files_load_into_the_same_views.bigbang/tests/test_names_config.py:test_v3_file_generates_exactly_the_expected_layer.bigbang/tests/test_names_config.py:test_get_answers_in_both_dialects.bigbang/tests/test_names_config.py:test_get_translates_plain_mappings.bigbang/tests/test_names_config.py:test_autonomous_mode_is_v3_only_and_reads_as_flash_in_the_legacy_view.bigbang/tests/test_names_config.py:test_mixed_file_is_refused.bigbang/tests/test_names_config.py:test_errors_use_v3_names.bigbang/tests/test_names_config.py:test_legacy_values_are_refused_in_v3_files.bigbang/tests/test_names_config.py:test_single_board_needs_its_number_and_fills_the_legacy_view.bigbang/tests/test_names_config.py:test_workflow_model_values.bigbang/tests/test_names_config.py:test_already_v3_text_is_not_translated_again.bigbang/tests/test_names_config.py:test_missing_legacy_key_reports_the_key_that_was_asked.bigbang/tests/test_names_config.py:test_mixed_language_keys_and_internal_keys_are_refused.bigbang/tests/test_names_config.py:test_consistent_keys_answer_in_both_languages.bigbang/tests/test_names_config.py:test_documentation_reads_a_v3_public_file.bigbang/tests/test_names_config.py:test_target_mode_reads_both_dialects.bigbang/tests/test_names_config.py:test_review_blockers_see_v3_labels.bigbang/tests/test_names_config.py:test_set_config_value_in_each_dialect.bigbang/tests/test_names_config.py:test_legacy_workflow_needs_legacy_labels.bigbang/tests/test_names_config.py:test_approval_label_follows_the_target_dialect.bigbang/tests/test_names_config.py:test_v3_errors_do_not_hide_structural_ones.bigbang/tests/test_names_config.py:test_config_get_in_both_languages_and_both_option_spellings.bigbang/tests/test_names_config.py:test_generate_and_verify_by_either_name.bigbang/tests/test_names_config.py:test_pipeline_subcommands_by_either_name.bigbang/tests/test_names_config.py:test_decision_labels_follow_the_project_label_dialect.bigbang/tests/test_names_config.py:test_personalized_deploy_has_no_secret_mapping
Requisitos · Matriz de rastreabilidade · Referência CLI