[codex] Split build-script feature resolution#158
Draft
dzbarsky wants to merge 10 commits into
Draft
Conversation
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.
Cargo resolver v2 keeps normal-dependency features separate from build-dependency features, but
rules_rspreviously resolved both dependency kinds into one externalrust_cratetarget. This change resolves target dependencies without build dependencies, seeds a second resolution overSUPPORTED_EXEC_TRIPLES, and generates either one target when both resolutions match or_targetand_exectargets selected by@rules_rust//cargo/settings:use_exec_features_enabledwhen they differ. It pinsrules_rustcommit7837073014b566291368027aa116cd03fe108049, which composes the build-script exec transition with the marker transition throughconfig.exec().and_then(...).The
build_exec_feature_splitfixture requirestarget_featurefrom a normal dependency andexec_featurefrom the same crate as a build dependency. The shared crate fails compilation if both features are enabled, so the fixture verifies that the target library and build script receive different feature sets.Validation used source-built Bazel commit
0878dd724149b73a731ab83859a55a65e9b438ed:@build_exec_feature_split//:_workspace_depspassed with 1,720 actions,//rs/private:allpassed 28/28 tests,cargo check --lockedpassed for the fixture, and Buildifier plusgit diff --checkpassed.Current scope: proc macros are unchanged, and
seed_exec_build_dependenciesunions features from all active target triples before resolving each exec triple. Exact target-specific build-script features require resolution keyed by both target triple and exec triple.