Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Transitions in csharp_ rules causes code generators to run multiple times #415

Open
peakschris opened this issue Feb 19, 2024 · 10 comments
Open

Comments

@peakschris
Copy link

Two rules, csharp_binary and cc_binary both depend on a single code generation rule. However, because csharp_binary uses transitions, the code generation rule runs multiple times, once for cc_binary, and another time for each csharp_binary target framework.

Here is a minimal worked example: https://github.com/peakschris/bazel-cs-gen-transitions

I've found an unpleasant workaround to use rules_dotnet's 'default_transition' as cfg= in the custom codegen rule, but this causes all code generations to run in a directory with ST-hash, rather than the actual default configuration. And it only works if rules_dotnet is the only ruleset using transitions.

Possible solutions

  • rules_dotnet could reset srcs and dependencies that are not other rules_dotnet targets back to actual default. Not sure if this is possible in Bazel today?
  • or: document a way to reset a custom codegen rule back to actual default transition
  • or: document a way to reset an ootb rule back to actual default transition
@purkhusid
Copy link
Collaborator

It's on my list to see if I can optimize the transitions a bit since I'm encountering some double building as well. Can't say when I will have the time though.

@peakschris
Copy link
Author

Hi Daniel, this is becoming more critical for us; we have a tree of around 100 C++ libraries, and one near the top of this tree is referenced by a rules_dotnet import_library rule. This is causing these 100 libraries to be configured twice by bazel; once with default configuration, once with dotnet configuration.

I note that rules_go have addressed this issue by maintaining a map of flags to allow a transition to be 'undone', and then they set this on their rule attributes that may reference outside the 'go' ecosystem:

non_go_transition: https://github.com/bazelbuild/rules_go/blob/6e20cc2602796471bc4208c6d2e4565bfd4da66b/go/private/rules/transition.bzl#L63

Usage: https://github.com/bazelbuild/rules_go/blob/6e20cc2602796471bc4208c6d2e4565bfd4da66b/go/private/rules/library.bzl#L77

Could something similar be done in rules_dotnet?

@tomdegoede
Copy link
Collaborator

@purkhusid
Copy link
Collaborator

I'm doing some rules_dotnet work. Will see if I can get this in as well

@purkhusid
Copy link
Collaborator

@peakschris Are you using the latest version of rules_dotnet? I already have the default_transition applied to all attributes that should not be part of the .Net build graph. If you are on latest then I'll take a closer look.

@peakschris
Copy link
Author

peakschris commented Oct 3, 2024

Yes, we are on the latest commit. I see default_transition applied to most rules, but it doesn't seem to be applied to import_library:

https://github.com/bazelbuild/rules_dotnet/blob/626e28effb14f87de8375186ebb59911a16b71fb/dotnet/private/rules/nuget/imports.bzl#L90

@purkhusid
Copy link
Collaborator

purkhusid commented Oct 3, 2024

@peakschris I merged #453. Could you try it out on your repo? Using the reproduction you linked it seems like this fix did the trick.

@peakschris
Copy link
Author

peakschris commented Oct 7, 2024

Thank you! I updated to latest and did a paket repin but am seeing a new error on subsequent build:

ERROR: D:/b/rxhgxvk5/external/+net8_extension+paket.net8/microsoft.aspnetcore.app.ref/8.0.1/BUILD.bazel:5:15: configurable attribute "deps" in @@+net8_extension+paket.net8//microsoft.aspnetcore.app.ref/8.0.1:8.0.1 doesn't match this configuration. Would a default condition help?

The build file it is complaining about looks like:

import_library(
    name = "8.0.1",
    analyzers = ["@nuget.microsoft.aspnetcore.app.ref.v8.0.1//:analyzers"],
    analyzers_csharp = ["@nuget.microsoft.aspnetcore.app.ref.v8.0.1//:analyzers_csharp"],
    analyzers_fsharp = ["@nuget.microsoft.aspnetcore.app.ref.v8.0.1//:analyzers_fsharp"],
    analyzers_vb = ["@nuget.microsoft.aspnetcore.app.ref.v8.0.1//:analyzers_vb"],
    data = ["@nuget.microsoft.aspnetcore.app.ref.v8.0.1//:data"],
    framework_list = {"microsoft.aspnetcore":"8.0.0.0","microsoft.aspnetcore.antiforgery":"8.0.0.0","microsoft.aspnetcore.authentication":"8.0.0.0","microsoft.aspnetcore.authentication.abstractions":"8.0.0.0","microsoft.aspnetcore.authentication.bearertoken":"8.0.0.0","microsoft.aspnetcore.authentication.cookies":"8.0.0.0","microsoft.aspnetcore.authentication.core":"8.0.0.0","microsoft.aspnetcore.authentication.oauth":"8.0.0.0","microsoft.aspnetcore.authorization":"8.0.0.0","microsoft.aspnetcore.authorization.policy":"8.0.0.0","microsoft.aspnetcore.components":"8.0.0.0","microsoft.aspnetcore.components.authorization":"8.0.0.0","microsoft.aspnetcore.components.endpoints":"8.0.0.0","microsoft.aspnetcore.components.forms":"8.0.0.0","microsoft.aspnetcore.components.server":"8.0.0.0","microsoft.aspnetcore.components.web":"8.0.0.0","microsoft.aspnetcore.connections.abstractions":"8.0.0.0","microsoft.aspnetcore.cookiepolicy":"8.0.0.0","microsoft.aspnetcore.cors":"8.0.0.0","microsoft.aspnetcore.cryptography.internal":"8.0.0.0","microsoft.aspnetcore.cryptography.keyderivation":"8.0.0.0","microsoft.aspnetcore.dataprotection":"8.0.0.0","microsoft.aspnetcore.dataprotection.abstractions":"8.0.0.0","microsoft.aspnetcore.dataprotection.extensions":"8.0.0.0","microsoft.aspnetcore.diagnostics":"8.0.0.0","microsoft.aspnetcore.diagnostics.abstractions":"8.0.0.0","microsoft.aspnetcore.diagnostics.healthchecks":"8.0.0.0","microsoft.aspnetcore.hostfiltering":"8.0.0.0","microsoft.aspnetcore.hosting":"8.0.0.0","microsoft.aspnetcore.hosting.abstractions":"8.0.0.0","microsoft.aspnetcore.hosting.server.abstractions":"8.0.0.0","microsoft.aspnetcore.html.abstractions":"8.0.0.0","microsoft.aspnetcore.http":"8.0.0.0","microsoft.aspnetcore.http.abstractions":"8.0.0.0","microsoft.aspnetcore.http.connections":"8.0.0.0","microsoft.aspnetcore.http.connections.common":"8.0.0.0","microsoft.aspnetcore.http.extensions":"8.0.0.0","microsoft.aspnetcore.http.features":"8.0.0.0","microsoft.aspnetcore.http.results":"8.0.0.0","microsoft.aspnetcore.httplogging":"8.0.0.0","microsoft.aspnetcore.httpoverrides":"8.0.0.0","microsoft.aspnetcore.httpspolicy":"8.0.0.0","microsoft.aspnetcore.identity":"8.0.0.0","microsoft.aspnetcore.localization":"8.0.0.0","microsoft.aspnetcore.localization.routing":"8.0.0.0","microsoft.aspnetcore.metadata":"8.0.0.0","microsoft.aspnetcore.mvc":"8.0.0.0","microsoft.aspnetcore.mvc.abstractions":"8.0.0.0","microsoft.aspnetcore.mvc.apiexplorer":"8.0.0.0","microsoft.aspnetcore.mvc.core":"8.0.0.0","microsoft.aspnetcore.mvc.cors":"8.0.0.0","microsoft.aspnetcore.mvc.dataannotations":"8.0.0.0","microsoft.aspnetcore.mvc.formatters.json":"8.0.0.0","microsoft.aspnetcore.mvc.formatters.xml":"8.0.0.0","microsoft.aspnetcore.mvc.localization":"8.0.0.0","microsoft.aspnetcore.mvc.razor":"8.0.0.0","microsoft.aspnetcore.mvc.razorpages":"8.0.0.0","microsoft.aspnetcore.mvc.taghelpers":"8.0.0.0","microsoft.aspnetcore.mvc.viewfeatures":"8.0.0.0","microsoft.aspnetcore.outputcaching":"8.0.0.0","microsoft.aspnetcore.ratelimiting":"8.0.0.0","microsoft.aspnetcore.razor":"8.0.0.0","microsoft.aspnetcore.razor.runtime":"8.0.0.0","microsoft.aspnetcore.requestdecompression":"8.0.0.0","microsoft.aspnetcore.responsecaching":"8.0.0.0","microsoft.aspnetcore.responsecaching.abstractions":"8.0.0.0","microsoft.aspnetcore.responsecompression":"8.0.0.0","microsoft.aspnetcore.rewrite":"8.0.0.0","microsoft.aspnetcore.routing":"8.0.0.0","microsoft.aspnetcore.routing.abstractions":"8.0.0.0","microsoft.aspnetcore.server.httpsys":"8.0.0.0","microsoft.aspnetcore.server.iis":"8.0.0.0","microsoft.aspnetcore.server.iisintegration":"8.0.0.0","microsoft.aspnetcore.server.kestrel":"8.0.0.0","microsoft.aspnetcore.server.kestrel.core":"8.0.0.0","microsoft.aspnetcore.server.kestrel.transport.namedpipes":"8.0.0.0","microsoft.aspnetcore.server.kestrel.transport.quic":"8.0.0.0","microsoft.aspnetcore.server.kestrel.transport.sockets":"8.0.0.0","microsoft.aspnetcore.session":"8.0.0.0","microsoft.aspnetcore.signalr":"8.0.0.0","microsoft.aspnetcore.signalr.common":"8.0.0.0","microsoft.aspnetcore.signalr.core":"8.0.0.0","microsoft.aspnetcore.signalr.protocols.json":"8.0.0.0","microsoft.aspnetcore.staticfiles":"8.0.0.0","microsoft.aspnetcore.websockets":"8.0.0.0","microsoft.aspnetcore.webutilities":"8.0.0.0","microsoft.extensions.caching.abstractions":"8.0.0.0","microsoft.extensions.caching.memory":"8.0.0.0","microsoft.extensions.configuration":"8.0.0.0","microsoft.extensions.configuration.abstractions":"8.0.0.0","microsoft.extensions.configuration.binder":"8.0.0.0","microsoft.extensions.configuration.commandline":"8.0.0.0","microsoft.extensions.configuration.environmentvariables":"8.0.0.0","microsoft.extensions.configuration.fileextensions":"8.0.0.0","microsoft.extensions.configuration.ini":"8.0.0.0","microsoft.extensions.configuration.json":"8.0.0.0","microsoft.extensions.configuration.keyperfile":"8.0.0.0","microsoft.extensions.configuration.usersecrets":"8.0.0.0","microsoft.extensions.configuration.xml":"8.0.0.0","microsoft.extensions.dependencyinjection":"8.0.0.0","microsoft.extensions.dependencyinjection.abstractions":"8.0.0.0","microsoft.extensions.diagnostics":"8.0.0.0","microsoft.extensions.diagnostics.abstractions":"8.0.0.0","microsoft.extensions.diagnostics.healthchecks":"8.0.0.0","microsoft.extensions.diagnostics.healthchecks.abstractions":"8.0.0.0","microsoft.extensions.features":"8.0.0.0","microsoft.extensions.fileproviders.abstractions":"8.0.0.0","microsoft.extensions.fileproviders.composite":"8.0.0.0","microsoft.extensions.fileproviders.embedded":"8.0.0.0","microsoft.extensions.fileproviders.physical":"8.0.0.0","microsoft.extensions.filesystemglobbing":"8.0.0.0","microsoft.extensions.hosting":"8.0.0.0","microsoft.extensions.hosting.abstractions":"8.0.0.0","microsoft.extensions.http":"8.0.0.0","microsoft.extensions.identity.core":"8.0.0.0","microsoft.extensions.identity.stores":"8.0.0.0","microsoft.extensions.localization":"8.0.0.0","microsoft.extensions.localization.abstractions":"8.0.0.0","microsoft.extensions.logging":"8.0.0.0","microsoft.extensions.logging.abstractions":"8.0.0.0","microsoft.extensions.logging.configuration":"8.0.0.0","microsoft.extensions.logging.console":"8.0.0.0","microsoft.extensions.logging.debug":"8.0.0.0","microsoft.extensions.logging.eventlog":"8.0.0.0","microsoft.extensions.logging.eventsource":"8.0.0.0","microsoft.extensions.logging.tracesource":"8.0.0.0","microsoft.extensions.objectpool":"8.0.0.0","microsoft.extensions.options":"8.0.0.0","microsoft.extensions.options.configurationextensions":"8.0.0.0","microsoft.extensions.options.dataannotations":"8.0.0.0","microsoft.extensions.primitives":"8.0.0.0","microsoft.extensions.webencoders":"8.0.0.0","microsoft.jsinterop":"8.0.0.0","microsoft.net.http.headers":"8.0.0.0","system.diagnostics.eventlog":"8.0.0.0","system.io.pipelines":"8.0.0.0","system.security.cryptography.xml":"8.0.0.0","system.threading.ratelimiting":"8.0.0.0"},
    library_name = "Microsoft.AspNetCore.App.Ref",
    libs = ["@nuget.microsoft.aspnetcore.app.ref.v8.0.1//:libs"],
    native = ["@nuget.microsoft.aspnetcore.app.ref.v8.0.1//:native"],
    nupkg = "@nuget.microsoft.aspnetcore.app.ref.v8.0.1//:microsoft.aspnetcore.app.ref.8.0.1.nupkg",
    refs = ["@nuget.microsoft.aspnetcore.app.ref.v8.0.1//:refs"],
    sha512 = "sha512-AWJ9virEF1CjkmmELuPlnydqXDyPvJrDgONlyWfLMIS48ovgLYJqvY3AnlpjLLgv2rvL4aajWa1FdcS9A8DH0Q==",
    targeting_pack_overrides = {"microsoft.aspnetcore":"8.0.0","microsoft.aspnetcore.antiforgery":"8.0.0","microsoft.aspnetcore.authentication":"8.0.0","microsoft.aspnetcore.authentication.abstractions":"8.0.0","microsoft.aspnetcore.authentication.bearertoken":"8.0.0","microsoft.aspnetcore.authentication.cookies":"8.0.0","microsoft.aspnetcore.authentication.core":"8.0.0","microsoft.aspnetcore.authentication.oauth":"8.0.0","microsoft.aspnetcore.authorization":"8.0.0","microsoft.aspnetcore.authorization.policy":"8.0.0","microsoft.aspnetcore.components":"8.0.0","microsoft.aspnetcore.components.authorization":"8.0.0","microsoft.aspnetcore.components.endpoints":"8.0.0","microsoft.aspnetcore.components.forms":"8.0.0","microsoft.aspnetcore.components.server":"8.0.0","microsoft.aspnetcore.components.web":"8.0.0","microsoft.aspnetcore.connections.abstractions":"8.0.0","microsoft.aspnetcore.cookiepolicy":"8.0.0","microsoft.aspnetcore.cors":"8.0.0","microsoft.aspnetcore.cryptography.internal":"8.0.0","microsoft.aspnetcore.cryptography.keyderivation":"8.0.0","microsoft.aspnetcore.dataprotection":"8.0.0","microsoft.aspnetcore.dataprotection.abstractions":"8.0.0","microsoft.aspnetcore.dataprotection.extensions":"8.0.0","microsoft.aspnetcore.diagnostics":"8.0.0","microsoft.aspnetcore.diagnostics.abstractions":"8.0.0","microsoft.aspnetcore.diagnostics.healthchecks":"8.0.0","microsoft.aspnetcore.hostfiltering":"8.0.0","microsoft.aspnetcore.hosting":"8.0.0","microsoft.aspnetcore.hosting.abstractions":"8.0.0","microsoft.aspnetcore.hosting.server.abstractions":"8.0.0","microsoft.aspnetcore.html.abstractions":"8.0.0","microsoft.aspnetcore.http":"8.0.0","microsoft.aspnetcore.http.abstractions":"8.0.0","microsoft.aspnetcore.http.connections":"8.0.0","microsoft.aspnetcore.http.connections.common":"8.0.0","microsoft.aspnetcore.http.extensions":"8.0.0","microsoft.aspnetcore.http.features":"8.0.0","microsoft.aspnetcore.http.results":"8.0.0","microsoft.aspnetcore.httplogging":"8.0.0","microsoft.aspnetcore.httpoverrides":"8.0.0","microsoft.aspnetcore.httpspolicy":"8.0.0","microsoft.aspnetcore.identity":"8.0.0","microsoft.aspnetcore.localization":"8.0.0","microsoft.aspnetcore.localization.routing":"8.0.0","microsoft.aspnetcore.metadata":"8.0.0","microsoft.aspnetcore.mvc":"8.0.0","microsoft.aspnetcore.mvc.abstractions":"8.0.0","microsoft.aspnetcore.mvc.apiexplorer":"8.0.0","microsoft.aspnetcore.mvc.core":"8.0.0","microsoft.aspnetcore.mvc.cors":"8.0.0","microsoft.aspnetcore.mvc.dataannotations":"8.0.0","microsoft.aspnetcore.mvc.formatters.json":"8.0.0","microsoft.aspnetcore.mvc.formatters.xml":"8.0.0","microsoft.aspnetcore.mvc.localization":"8.0.0","microsoft.aspnetcore.mvc.razor":"8.0.0","microsoft.aspnetcore.mvc.razorpages":"8.0.0","microsoft.aspnetcore.mvc.taghelpers":"8.0.0","microsoft.aspnetcore.mvc.viewfeatures":"8.0.0","microsoft.aspnetcore.outputcaching":"8.0.0","microsoft.aspnetcore.ratelimiting":"8.0.0","microsoft.aspnetcore.razor":"8.0.0","microsoft.aspnetcore.razor.runtime":"8.0.0","microsoft.aspnetcore.requestdecompression":"8.0.0","microsoft.aspnetcore.responsecaching":"8.0.0","microsoft.aspnetcore.responsecaching.abstractions":"8.0.0","microsoft.aspnetcore.responsecompression":"8.0.0","microsoft.aspnetcore.rewrite":"8.0.0","microsoft.aspnetcore.routing":"8.0.0","microsoft.aspnetcore.routing.abstractions":"8.0.0","microsoft.aspnetcore.server.httpsys":"8.0.0","microsoft.aspnetcore.server.iis":"8.0.0","microsoft.aspnetcore.server.iisintegration":"8.0.0","microsoft.aspnetcore.server.kestrel":"8.0.0","microsoft.aspnetcore.server.kestrel.core":"8.0.0","microsoft.aspnetcore.server.kestrel.transport.namedpipes":"8.0.0","microsoft.aspnetcore.server.kestrel.transport.quic":"8.0.0","microsoft.aspnetcore.server.kestrel.transport.sockets":"8.0.0","microsoft.aspnetcore.session":"8.0.0","microsoft.aspnetcore.signalr":"8.0.0","microsoft.aspnetcore.signalr.common":"8.0.0","microsoft.aspnetcore.signalr.core":"8.0.0","microsoft.aspnetcore.signalr.protocols.json":"8.0.0","microsoft.aspnetcore.staticfiles":"8.0.0","microsoft.aspnetcore.websockets":"8.0.0","microsoft.aspnetcore.webutilities":"8.0.0","microsoft.extensions.caching.abstractions":"8.0.0","microsoft.extensions.caching.memory":"8.0.0","microsoft.extensions.configuration":"8.0.0","microsoft.extensions.configuration.abstractions":"8.0.0","microsoft.extensions.configuration.binder":"8.0.0","microsoft.extensions.configuration.commandline":"8.0.0","microsoft.extensions.configuration.environmentvariables":"8.0.0","microsoft.extensions.configuration.fileextensions":"8.0.0","microsoft.extensions.configuration.ini":"8.0.0","microsoft.extensions.configuration.json":"8.0.0","microsoft.extensions.configuration.keyperfile":"8.0.0","microsoft.extensions.configuration.usersecrets":"8.0.0","microsoft.extensions.configuration.xml":"8.0.0","microsoft.extensions.dependencyinjection":"8.0.0","microsoft.extensions.dependencyinjection.abstractions":"8.0.0","microsoft.extensions.diagnostics":"8.0.0","microsoft.extensions.diagnostics.abstractions":"8.0.0","microsoft.extensions.diagnostics.healthchecks":"8.0.0","microsoft.extensions.diagnostics.healthchecks.abstractions":"8.0.0","microsoft.extensions.features":"8.0.0","microsoft.extensions.fileproviders.abstractions":"8.0.0","microsoft.extensions.fileproviders.composite":"8.0.0","microsoft.extensions.fileproviders.embedded":"8.0.0","microsoft.extensions.fileproviders.physical":"8.0.0","microsoft.extensions.filesystemglobbing":"8.0.0","microsoft.extensions.hosting":"8.0.0","microsoft.extensions.hosting.abstractions":"8.0.0","microsoft.extensions.http":"8.0.0","microsoft.extensions.identity.core":"8.0.0","microsoft.extensions.identity.stores":"8.0.0","microsoft.extensions.localization":"8.0.0","microsoft.extensions.localization.abstractions":"8.0.0","microsoft.extensions.logging":"8.0.0","microsoft.extensions.logging.abstractions":"8.0.0","microsoft.extensions.logging.configuration":"8.0.0","microsoft.extensions.logging.console":"8.0.0","microsoft.extensions.logging.debug":"8.0.0","microsoft.extensions.logging.eventlog":"8.0.0","microsoft.extensions.logging.eventsource":"8.0.0","microsoft.extensions.logging.tracesource":"8.0.0","microsoft.extensions.objectpool":"8.0.0","microsoft.extensions.options":"8.0.0","microsoft.extensions.options.configurationextensions":"8.0.0","microsoft.extensions.options.dataannotations":"8.0.0","microsoft.extensions.primitives":"8.0.0","microsoft.extensions.webencoders":"8.0.0","microsoft.jsinterop":"8.0.0","microsoft.net.http.headers":"8.0.0","system.diagnostics.eventlog":"8.0.0","system.io.pipelines":"8.0.0","system.security.cryptography.xml":"8.0.0","system.threading.ratelimiting":"8.0.0"},
    version = "8.0.1",
    deps = select({
        
    "@rules_dotnet//dotnet:tfm_net11": [],
    "@rules_dotnet//dotnet:tfm_net20": [],
    "@rules_dotnet//dotnet:tfm_net30": [],
    "@rules_dotnet//dotnet:tfm_net35": [],
    "@rules_dotnet//dotnet:tfm_net40": [],
    "@rules_dotnet//dotnet:tfm_net403": [],
    "@rules_dotnet//dotnet:tfm_net45": [],
    "@rules_dotnet//dotnet:tfm_net451": [],
    "@rules_dotnet//dotnet:tfm_net452": [],
    "@rules_dotnet//dotnet:tfm_net46": [],
    "@rules_dotnet//dotnet:tfm_net461": [],
    "@rules_dotnet//dotnet:tfm_net462": [],
    "@rules_dotnet//dotnet:tfm_net47": [],
    "@rules_dotnet//dotnet:tfm_net471": [],
    "@rules_dotnet//dotnet:tfm_net472": [],
    "@rules_dotnet//dotnet:tfm_net48": [],
    "@rules_dotnet//dotnet:tfm_net5.0": [],
    "@rules_dotnet//dotnet:tfm_net6.0": [],
    "@rules_dotnet//dotnet:tfm_net7.0": [],
    "@rules_dotnet//dotnet:tfm_net8.0": [],
    "@rules_dotnet//dotnet:tfm_netcoreapp1.0": [],
    "@rules_dotnet//dotnet:tfm_netcoreapp1.1": [],
    "@rules_dotnet//dotnet:tfm_netcoreapp2.0": [],
    "@rules_dotnet//dotnet:tfm_netcoreapp2.1": [],
    "@rules_dotnet//dotnet:tfm_netcoreapp2.2": [],
    "@rules_dotnet//dotnet:tfm_netcoreapp3.0": [],
    "@rules_dotnet//dotnet:tfm_netcoreapp3.1": [],
    "@rules_dotnet//dotnet:tfm_netstandard": [],
    "@rules_dotnet//dotnet:tfm_netstandard1.0": [],
    "@rules_dotnet//dotnet:tfm_netstandard1.1": [],
    "@rules_dotnet//dotnet:tfm_netstandard1.2": [],
    "@rules_dotnet//dotnet:tfm_netstandard1.3": [],
    "@rules_dotnet//dotnet:tfm_netstandard1.4": [],
    "@rules_dotnet//dotnet:tfm_netstandard1.5": [],
    "@rules_dotnet//dotnet:tfm_netstandard1.6": [],
    "@rules_dotnet//dotnet:tfm_netstandard2.0": [],
    "@rules_dotnet//dotnet:tfm_netstandard2.1": [],
    }),
)

Full log:
rules_dotnet_issue.txt

@purkhusid
Copy link
Collaborator

How is the top level target configured? Any chance you have a repro?

@peakschris
Copy link
Author

My bad, I had some paket dependencies in a data block. I removed them and the build is working. I'm validating the transition behaviour now.

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

No branches or pull requests

3 participants