Skip to content

Shared Go lint tools reject declared Go 1.27 modules before analysis #577

Closed
1 of 1 issue completed
Closed

Description

@devantler

🤖 Generated by the Agentic Engineer

Expected Behavior

Required validation must examine the declared Go module with a compatible lint tool. Preserve existing lint rules, real finding rejection, read-only fixer credentials, module selection and complete test scope. Newer Go consumers must not fail before analysis because the shared linter binary was built with an older compiler.

Actual Behavior

Business-site PR #63 at ef9f6d24f4156125ee8658ec92f671b7aef52e8e has successful source CI and successful actual shared PostgreSQL Test/race-Coverage, but required run 38308431280 fails in golangci-lint job 115008684139. Setup installs the declared Go 1.27.2; the shared action installs v2.11.4, built with Go 1.26, and rejects the target before reading the code. The maintained workflow has the same version. This is a reproduced producer incompatibility, not a failed portal test or review waiver.

The frozen legacy MegaLinter job 115008684203 also runs its container compiler as Go 1.26.3 despite host setup of 1.27.2. The maintained catalogue already binds the container compiler to the exact setup output; only the urgently needed compatible mirror belongs in the legacy repository. Its other actual source/template/style/dictionary findings remain separate and must not be discarded when repairing the toolchain.

Steps to Replicate

  1. Use a tracked Go module declaring Go 1.27.2.
  2. Execute the current shared Go linter action with its pinned v2.11.4 tool.
  3. Observe the explicit compiler-versus-target incompatibility before lint analysis. The actual consumer job above is the executed RED.
  4. In legacy validation, observe the container's Go 1.26.3 module-loading failure independently of host setup.

Acceptance Criteria

  • Bind production and native lint-finding fixtures to a reviewed compatible linter version; keep the action SHA, all rules, full scope and credential boundaries intact.
  • Retain older supported Go coverage, and exercise a Go-1.27 fixture that proves genuine lint-finding rejection rather than an operational install/config failure.
  • Regenerate the maintained read-only projection with its generator; never hand-edit it.
  • Deliver maintained compatibility first, then the urgent frozen-legacy mirror with its exact container compiler binding and native regression controls.
  • Validate all affected contracts, current-head native CI and substantive ordered review; use normal protected merges and verify release before consumer adoption.
  • Preserve and repair every other reported consumer finding. Re-run the actual required consumer; no disabled linter, suppression, skipped test or protection change is permitted.

Priority High, effort Medium, service class Standard: this blocks an already-started client-portal delivery. The end-to-end estimate includes maintained/legacy review, releases and actual consumer verification. This does not enable real client intake, payment or execution.

Part of #287. The broader PostgreSQL rollout remains #573; this new compiler failure must clear before its pilot is complete.

Activity

  1. added theissue type on Oct 12, 2026
  2. moved this to 📥 Backlog in 🌊 Project Boardon Oct 12, 2026
  3. self-assigned this
    on Oct 12, 2026
  4. updated Priority High and Effort Medium on Oct 12, 2026
  5. added a commit that references this issue on Oct 12, 2026
  6. devantler commented on Oct 13, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Actual consumer adoption is partially verified, not complete. The released legacy repair v13.10.11 now supplies the compatible standalone analyzer and declared container compiler. Business-site head baff2956df0aaa05c63d20e9c197379db6f9434f, required run 38323828388, confirms the standalone Go analyzer, PostgreSQL Test, race Coverage, build, tidy, vulnerability and dead-code jobs succeeded. The container now uses the declared Go 1.27.2, and actual package-context and HTML analysis also succeed.

    The same run exposes a second, distinct compatibility defect: MegaLinter's embedded golangci-lint v2.13.2 cannot load Go 1.27 export data (version 5 > maximum supported version 4) before analysis. Correcting the container compiler alone does not correct the analyzer's decoder. The standalone v2.14.0 run is positive compatibility evidence, not a green result for the embedded scanner. Preserve this issue's end-to-end consumer acceptance, all enabled scanners and real-finding rejection; no successful producer/release or local run closes it prematurely.

    Business-site's separate runtime-link and fictional-database-fixture findings remain distinct. No scanner, finding, protected check or portal feature was disabled.

  7. added 2 commits that reference this issue on Oct 13, 2026
  8. devantler commented on Oct 13, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    Compiler compatibility acceptance verified. The maintained correction merged in #578 and was published as v7.10.2; its urgent legacy mirror merged in actions#1414 and was published as v13.10.11. The action pin, lint rules, read-only projection and credential boundaries were preserved.

    Fresh post-merge maintained CI 38377141567 at 8ed2071ebe18864b8b86efe0f6b1df8d73d2a6ab passes all native validation. I collected all 248 jobs. Its Go 1.26.9 clean fixture actually installs and executes golangci-lint v2.14.0. Its Go 1.27 finding fixture rejects the deliberate errcheck violation, and the log confirms genuine finding rejection rather than an installation failure. Required toolchain guards pass. Independently regenerating the read-only projection from immutable source at that revision produced byte-identical output.

    Actual consumer acceptance now passes in business-site required run 38391431939, on exact merged PR #70 head 2a112cdb067813778f537794baa9ae6ab792ab88. Both standalone lint and MegaLinter use Go 1.27.2 and complete real analysis. MegaLinter retains its rules and project scope through the supported executable override to v2.14.0; its descriptive v2.13.2 label is not the executed command. The complete 12-job required run succeeds, including Test and race Coverage. No scanner was disabled, finding suppressed, test skipped or protection changed by this verification.

    This supersedes the earlier incomplete consumer-compatibility checkpoint and completes #577. Root-configuration acceptance in #579 and the PostgreSQL rollout in #573 retain their separate criteria and remain open. No production intake, payment or execution is enabled.

  9. added a commit that references this issue on Oct 13, 2026
  10. moved this from 👀 In Review to ✅ Done in 🌊 Project Boardon Oct 13, 2026
  11. added a commit that references this issue on Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Fields

Priority

High

Effort

Medium

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions