Skip to content

feat(verification): add GoLang and Markdown Docker verification targets; add version pinning - #272

Merged
ekarademir merged 8 commits into
accordproject:mainfrom
apoorv7g:CI-Go
Jul 27, 2026
Merged

feat(verification): add GoLang and Markdown Docker verification targets; add version pinning#272
ekarademir merged 8 commits into
accordproject:mainfrom
apoorv7g:CI-Go

Conversation

@apoorv7g

@apoorv7g apoorv7g commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

This adds end-to-end Go and Markdown verification to the codegen pipeline: GitHub Actions matrix support, npm docker-run script wiring, new docker targets/images/entrypoints, and local mocha suites that generate each target and run the corresponding verifier (go build / markdownlint).

For Go, it also updates verification case metadata and corpus manifest with explicit golang skip reasons for known cross-namespace import path issues emitted by GoLangVisitor, keeping failures intentional and documented.

Changes

GoLang

  • Add verification/docker/golang/Dockerfile and entrypoint.sh: layers the golang:1.25-alpine toolchain onto the shared concerto-verify-base image, generates Go via concerto compile --target GoLang, fans generated files out into per-package subdirectories (Go requires one package per directory, unlike the flat output the visitor emits), and runs go build ./...
  • Register golang in scripts/verification/docker-run.js TARGETS, .github/workflows/verify-codegen.yml matrix, and verification/docker/targets.json
  • Add verify:docker:golang npm script to package.json, matching the existing per-target script pattern
  • Add test/verification/golang.compile.test.js: generates Go from each verification case via GoLangVisitor, mirrors the same per-package fan-out fix, writes a synthetic go.mod, and runs go build ./..., skipping gracefully when the go toolchain isn't installed
  • Add golang skip reasons to all 7 cases in test/verification/cases.js and to the metamodel case in verification/corpus/manifest.json, documenting a pre-existing GoLangVisitor bug (bare package-name imports instead of Go module-relative import paths) that breaks go build for any model with cross-namespace imports (e.g. anything referencing concerto.decorator)

Markdown

  • Add verification/docker/markdown/Dockerfile and entrypoint.sh: installs markdownlint-cli@0.44.0 on the shared concerto-verify-base image, generates Markdown via concerto compile --target Markdown, and runs markdownlint against each produced .md
  • Add verification/docker/markdown/markdownlint.json: shared lint config that disables stylistic rules commonly tripped by generated docs (line length, trailing whitespace, blank-line spacing around lists/fences, etc.) while keeping substantive markdownlint defaults
  • Register markdown in scripts/verification/docker-run.js TARGETS, .github/workflows/verify-codegen.yml matrix, and verification/docker/targets.json
  • Add verify:docker:markdown npm script to package.json, and add markdownlint-cli as a devDependency for local runs
  • Add test/verification/markdown.validate.test.js: generates Markdown from each verification case via MarkdownVisitor and lints with the same markdownlint.json config (overridable via MARKDOWNLINT_CONFIG)
  • Document the Markdown (and Go) verification flow in verification/VERIFICATION.md

Author Checklist

  • Ensure you provide a DCO sign-off for your commits using the --signoff option of git commit.
  • Vital features and changes captured in unit and/or integration tests
  • Commits messages follow AP format
  • Extend the documentation, if necessary
  • Merging to main from fork:branchname

apoorv7g added 3 commits July 23, 2026 13:41
This adds end-to-end Go verification to the codegen pipeline: GitHub Actions matrix support, npm docker-run script wiring, a new Go docker target/image/entrypoint, and a new `golang.compile.test.js` suite that generates Go and runs `go build`.

It also updates verification case metadata and corpus manifest with explicit `golang` skip reasons for known cross-namespace import path issues emitted by `GoLangVisitor`, keeping failures intentional and documented.

Signed-off-by: Apoorv <130035517+APOORV7G@users.noreply.github.com>
This adds end-to-end Go verification to the codegen pipeline: GitHub Actions matrix support, npm docker-run script wiring, a new Go docker target/image/entrypoint, and a new `golang.compile.test.js` suite that generates Go and runs `go build`.

It also updates verification case metadata and corpus manifest with explicit `golang` skip reasons for known cross-namespace import path issues emitted by `GoLangVisitor`, keeping failures intentional and documented.

Signed-off-by: Apoorv <130035517+APOORV7G@users.noreply.github.com>
apoorv7g and others added 3 commits July 23, 2026 22:36
Signed-off-by: Apoorv Gadiya <130035517+apoorv7g@users.noreply.github.com>
- Introduced Markdown as a new target in the Docker verification setup.
- Updated package.json and package-lock.json to include markdownlint-cli as a dependency.
- Enhanced the verification manifest to include Markdown as a target for linting.
- Updated relevant scripts and documentation to reflect the addition of Markdown.

This commit expands the verification capabilities to include Markdown, ensuring a consistent environment for testing and validation.

Signed-off-by: Apoorv <130035517+APOORV7G@users.noreply.github.com>
- Removed unnecessary line breaks in the assignment of MARKDOWNLINT_CONFIG in the markdown validation test file.
- This change enhances code readability and maintains consistency in the configuration setup.

Signed-off-by: Apoorv <130035517+APOORV7G@users.noreply.github.com>
@apoorv7g apoorv7g changed the title feat(verification): add GoLang support for Docker-based verification feat(verification): add GoLang and Markdown Docker verification targets Jul 24, 2026
@apoorv7g apoorv7g changed the title feat(verification): add GoLang and Markdown Docker verification targets feat(verification): add GoLang and Markdown Docker verification targets; add version pinning Jul 25, 2026
apoorv7g added 2 commits July 25, 2026 19:28
… support

- Introduced dynamic versioning for various tools and packages in Dockerfiles, utilizing values from `verification/docker/versions.json`.
- Updated Dockerfiles for multiple targets (e.g., Java, Go, C#, etc.) to accept version arguments, ensuring consistent and maintainable builds.
- Enhanced the CI workflow to load pinned Docker versions and pass them as build arguments, improving the verification process.

This commit significantly improves the flexibility and maintainability of the Docker verification setup, allowing for easier updates to tool versions.

Signed-off-by: Apoorv <130035517+APOORV7G@users.noreply.github.com>
…s.js

- Updated the error message in docker-versions.js to use single quotes for consistency with the rest of the code.
- This change improves code readability and maintains a uniform style across the script.

Signed-off-by: Apoorv <130035517+APOORV7G@users.noreply.github.com>
@ekarademir
ekarademir merged commit 7bd0341 into accordproject:main Jul 27, 2026
27 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.

2 participants