Como contribuir
Guia resumido em português. O documento canônico em inglês é
CONTRIBUTING.md
na raiz do repositório.
Build rápido
cmake --preset msvc-x64 # Windows
cmake --build build/msvc-x64 --config Release
ctest --test-dir build/msvc-x64 --output-on-failure -C Release
Outros presets: ninja-clang (Linux), default (macOS). Ver
CMakePresets.json.
Fluxo de PR
- Fork no GitHub.
- Branch a partir de
upstream/main. - Uma fatia lógica por PR (
docs:,fix:,test:,feat:). - PR contra
FiveTechSoft/OpenADS:main— só o dono mergeia; contribuidor abre PR e aguarda review. - PR documentada: Summary, Changes, Motivation, Testing.
- PR de código com unit test ou smoke test (
ctest); docs-only isenta teste, mas descreve o que foi verificado. - Fixtures genéricos no Git — testes versionados usam DBF/DD
sintéticos ou
temp_directory_path(); nunca binários legados reais (pmsys.add, pathsF:\…). Validar no legado local é ok; não commitar scripts/capturas dessa validação.
Política de protocolo (obrigatória)
OpenADS oferece:
- ABI local compatível com ACE —
ace64.dlldrop-in para Harbourcontrib/rddads. - Protocolo wire OpenADS — formato paralelo e independente, documentado em wire-protocol (EN). Não é compatível byte-a-byte com nenhum protocolo remoto proprietário legado.
Contribuições devem
- Ampliar o wire OpenADS,
openads_serverdou o motor local via implementação clean-room. - Usar termos neutros para formatos legados (
.add,.adt) em commits, issues e docs novos.
Contribuições não devem
- Buscar compatibilidade byte-a-byte com protocolo remoto legado.
- Incluir disassembly, decompilação ou quebra de ciphers offline.
- Versionar no Git ou em PRs scripts, notas ou capturas dessas abordagens.
O proibido não entra no histórico Git nem em pull requests.
Terminologia neutra
| Em vez de marcas de terceiros | Use |
|---|---|
| engine comercial descontinuado | motor ACE legado, engine de referência |
| objetivo | emulação compatível, substituto drop-in |
| remoto | protocolo wire OpenADS (tcp:// / tls://) |
Checklist antes do push
- Diff sem dumps, scripts de criptoanálise ou POC de wire legado.
ctestverde (ou PR marcadowip:).- Descrição do PR com Summary / Changes / Motivation / Testing.
- Teste unitário ou smoke para mudança de código.
- Testes no Git só com fixtures genéricos (sem legado binário novo).
- Sem dados reais de cliente em fixtures.