Repository navigation
feat(rules): pin the popili version per target with popili_version - #231
Draft
GPLeemrijse wants to merge 1 commit into
Draft
GPLeemrijse wants to merge 1 commit into
GPLeemrijse wants to merge 1 commit into
Conversation
GPLeemrijse
added this pull request to stack #232
October 16, 2026 14:23
GPLeemrijse
force-pushed
the
feat/popili-version-pin
branch
from
October 16, 2026 14:39
35e68f1 to
ae59809
Compare
GPLeemrijse
force-pushed
the
feat/popili-version-pin
branch
from
October 16, 2026 15:02
ae59809 to
0cc393f
Compare
coco_generate, coco_verify_test, coco_fmt_test (and its .format companion) and the three diagram rules gain popili_version, an optional version or alias. A rule transition on every popili-resolving rule (also coco_package, the runtimes, current_popili_version and fetch_license) resolves aliases in both the pin and --@rules_coco//:version and sets the flag for the target and everything beneath it, so the rule resolves the pinned toolchain itself, the coco_package it reads is analysed with the same version, and --@rules_coco//:version=stable works and shares the configuration of the plain version; a pin equal to the flag leaves the configuration untouched and a pin wins over the flag. The transition also records in an internal setting that the version came from a pin, so the package beneath it, which fails first when the version has no toolchain, says "pinned by popili_version" instead of blaming the flag. e2e/multi_version and e2e/forward_compat select versions with pins instead of wrappers or the .bazelrc flag.
GPLeemrijse
force-pushed
the
feat/popili-version-pin
branch
from
October 16, 2026 15:05
0cc393f to
2383dab
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
coco_generate,coco_verify_test,coco_fmt_test(and its.formatcompanion) and the three diagram rules gainpopili_version, an optional version or alias.coco_package, the runtimes,current_popili_versionandfetch_license) resolves aliases in both the pin and--@rules_coco//:versionand sets the flag for the target and everything beneath it. The rule resolves the pinned toolchain itself, and thecoco_packageit reads is analysed with the same version. Nothing forwards toolchains between targets.--@rules_coco//:version=stablenow works and shares the configuration of the plain version. A pin equal to the flag leaves the configuration untouched, and a pin wins over the flag.e2e/multi_versionande2e/forward_compatselect versions with pins instead of wrappers or the.bazelrcflag;test/popili_pinningcovers pins, aliases and configuration sharing with real popili runs.