Skip to content

CRW-160 · Go CI 검사: scope, gate, validate, plugin, contracts - #173

Merged
thisisjun786 merged 3 commits into
devfrom
codex/crw-160-go-ci
Sep 26, 2026
Merged

thisisjun786 merged 3 commits into
devfrom
codex/crw-160-go-ci

Conversation

@thisisjun786

@thisisjun786 thisisjun786 commented Sep 26, 2026 •

Copy link
Copy Markdown
Owner

CRW-160 · crw-go-port todo 47의 Go 쪽 작업입니다. wave 2 통합 브랜치(#172) 위에 쌓인 브랜치입니다.

내용

  • crw-dev ci {scope, gate, validate, plugin, contracts, operations}: dev 빌드 태그로만 만들어지는 별도 바이너리입니다. 릴리스 아카이브에는 들어가지 않고, make dist는 crw만 만듭니다.
  • ci.yml의 selection, validate, dev-gate 잡이 이 바이너리를 빌드해서 호출합니다. 필수 잡 목록(6개)은 바뀌지 않았습니다.

검증

  • 36개 계약 성질이 각각 Go 테스트로 옮겨졌고, 테스트마다 Python 스크립트와 Go 명령을 같은 입력으로 돌려 종료 코드와 출력을 비교합니다.
  • HEAD와 실패하는 입력 약 30개에서 출력이 같습니다. 남은 차이는 어떤 워크플로도 읽지 않는 경로에서 Python traceback과 Go 한 줄 오류가 다른 것뿐입니다.
  • 독립 checker가 2라운드에서 확인했습니다. 1라운드에서 찾은 결함(operations 계약 파일이 없을 때 Go만 통과하던 문제)은 고쳤습니다.
  • 클린 카피 게이트를 통과했습니다.

일부러 남긴 것

Python 스크립트, scripts/ci/tests, pyproject.toml, uv.lock과 ci.yml의 python3 3줄은 todo 48 직전 단계에서 지웁니다. todo 21-45가 Python 비교 테스트에 uv를 계속 씁니다.

Plan: .omo/plans/crw-go-port.md


Devin Review

CRW-160 todo 47 (Go half). `crw-dev ci {scope, gate, validate, plugin, contracts, operations}` is a separate binary behind build tag `dev` (cmd/crw-dev, internal/dev/ci); release builds contain only crw. Each check reproduces its Python script - scripts/ci/{scope,gate,validate,plugin,contracts}.py and scripts/check_operations_contract.py - and ci.yml's selection, validate and dev-gate jobs now build and call it. The gate's required-job list is unchanged (gate.py JOBS, Go GateJobs and ci.yml needs are the same six jobs).

By property: 36 contract properties of test_gate, test_plugin, test_scope and test_validate map to Test47_<ID> tests that run the Python script and the Go command on the same inputs and require the same exit code, stdout and stderr; test_packages' two properties are Python-internal. Parity holds at HEAD and on about thirty failing inputs; the remaining differences are tracebacks versus one-line errors on paths no workflow parses.

Deferred by the orchestrator to the step before todo 48: deleting the Python scripts, scripts/ci/tests, pyproject.toml and uv.lock, and the three python3 lines ci.yml still runs, because todos 21-45 keep using uv for Python parity.

Independent checker confirmed round 2 (6/6 mutations). Clean copy: uv sync --locked, make lint, make test, make contract, go test -tags dev, make dist (crw only), and the Python and Go validate/plugin/contracts checks exit 0; scripts/ci/tests pass in the worktree.
@thisisjun786
thisisjun786 marked this pull request as ready for review September 26, 2026 14:24
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
🔒 Security Review ✅ Completed 2026-09-26T14:33:24.656085Z 037ef7c Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 4 potential issues.

Devin Review

Comment thread internal/dev/ci/urlsplit.go
Comment thread internal/dev/ci/operations.go Outdated
Comment thread internal/dev/ci/scope.go Outdated
Comment thread .github/workflows/ci.yml
@thisisjun786
thisisjun786 merged commit 119f575 into dev Sep 26, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant