Skip to content

forced-target does not work with target dependencies within same package #12108

@ehuss

Description

@ehuss

Problem

forced-target will fail when used with target dependencies defined in the same package that match that target.

thread 'main' panicked at 'activated_features for invalid package: features did not find PackageId { name: "regex", version: "1.8.1", source: "registry `crates-io`" } NormalOrDev', src/cargo/core/resolver/features.rs:321:14

Steps

Try to build a project with the following manifest:

cargo-features = ["per-package-target"]
[package]
name = "foo"
version = "0.1.0"
edition = "2021"
forced-target = "wasm32-unknown-unknown"

[target.'cfg(target_family="wasm")'.dependencies]
regex = "1"

This requires resolver=2.

Possible Solution(s)

There are several issues here:

  • Missing RustcTargetData information (which is being fixed in Support registry dependencies for bindeps #12062).
  • The FeatureResolver doesn't know about per-package targets.
  • Feature resolution for per-package targets is up in the air at the moment.

Notes

No response

Version

cargo 1.71.0-nightly (569b648b5 2023-05-05)
release: 1.71.0-nightly
commit-hash: 569b648b5831ae8a515e90c80843a5287c3304ef
commit-date: 2023-05-05
host: aarch64-apple-darwin
libgit2: 1.6.3 (sys:0.17.0 vendored)
libcurl: 7.87.0 (sys:0.4.61+curl-8.0.1 system ssl:(SecureTransport) LibreSSL/3.3.6)
ssl: OpenSSL 1.1.1t  7 Feb 2023
os: Mac OS 13.3.1 [64-bit]

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-features2Area: issues specifically related to the v2 feature resolverC-bugCategory: bugS-needs-mentorStatus: Issue or feature is accepted, but needs a team member to commit to helping and reviewing.Z-per-package-targetNightly: per-package-target

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions