-
-
Notifications
You must be signed in to change notification settings - Fork 83
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
Merge next branch #327
Merged
Merge next branch #327
Conversation
This file contains 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
This is the first step in the plan laid out in #275 This inital commit finishes the `Initial tasks` listed there and also the following tasks: * Migrate manifest loader from AFASResearch/rules_dotnet * Migrate apphost shimming from AFASResearch/rules_dotnet * Get bazel run and bazel test working for *_binary1 and *_nunit_test` rules when targetting .Net core
Add Paket support with `paket2bazel` tool
This change makes the dotnet SDK configurable with a repository rule. You can select the SDK version and the available SDKs can be easily updated by running `dotnet fsi ./scripts/UpdateSdks.fsx` Included in this is MacOS ARM support. I also decided that the minimum supported SDK version would be 6.0 since MacOS ARM support came in 6.0.
## What? * Adds a runfiles lib for .Net * Adds `data` attribute to all rules * Adds an example using the runfiles lib ## How? The .Net runfiles lib is an translation of the Java runfiles library that can be found here: https://github.com/bazelbuild/bazel/blob/master/tools/java/runfiles/Runfiles.java ## Why? Using `data` for various runtime files is very idiomatic when using Bazel and having a runfiles library takes care of all the complicated stuff around Bazel runfiles.
## What? * Adds an incoming transition to _binary/_library rules that transitions to the highest compatible framework in the `target_frameworks` * Adds a `private_deps` attribute to _binary/_library rules that is intended for compile time dependencies. These dependencies are not transitively passed and do not become part of the runfiles. * Some cleanup and reorganizing ## Why? The transition is needed because before the change we were just taking the default tfm and passing it to the build actions. This did not make sense since you could update rules_dotnet and then the default tfm would be 6.0 but your targets would still target 5.0. There was also an issue that if you were e.g. targeting `netstandard2.1` we would still pass the default tfm to the build actions. The `private_deps` attribute is needed so that we can pass in targeting packs without passing them transitively to parents. Targeting packs should not be passed transitively because that causes conflicts between targeting packs. Fixes #297
This PR got a bit bloated since I used it to get the `next` branch to a workable state within the monorepo that my work has set up. ## What? The big featues in this PR are: * Binary publishing with support for runtime identifiers * Support for the `runtimes` folder in NuGet folders * Add support for configuring compiler warnings/errors globally or on per target basis Various small tasks: * Improve the Runfiles library so that it works with publishing * Removed dependency on app host NuGet since it's no longer updated and now we use the apphost DLL that is part of the SDK * Update CI scripts to run all tests and examples * Update some READMEs to include up to date information * CONTRIBUTING.md * Root README.md * Deleted docs that were no longer relevant * Add auto generation of documentation * The current state of the docs is not ready though. * Add pre-commit config that checks that everything is formatted * Update gitpod setup so that it install pre-commit hooks * Split up rule dependencies so that they can be declared more granularly * Update Gitpod setup
* Adds support for declaring multiple runtime packs in `publish_binary` * Add AspNetCore example To be able to do a self contained publish of an AspNetCore application you need to be able to declare both the `microsoft.netcore.app.runtime.<rid>` and `microsoft.aspnetcore.app.runtime.<rid>` runtime packs
## What? rules_dotnet can now be used with remote execution ## How? * Fixed actions where we were accessing external repository files implicitly * Replaced ManifestLoader with a deps.json/runtimeconfig.json file that is configured in a way where all DLLs are properly probed for * Added RBE to our CI pipeline to make sure that remote execution is not accidentally broken
## What? * Adds a F# type provider example * Adds `compile_data` attribute for data files that are passed into the compilation actions
* Fix runtimeconfig for AspNetCore projects ## What? Adds a a new `project_sdk` attribute to all targets that defaults to `default` The attribute can also be set to `web` which indicates that the Web sdk is being targeted and thus the runtimeconfig will include the AspNetCore framework in the `includedFrameworks/frameworks` key of the config. ## Why? This is required to make the binary targets runnable. At some point I hope to simplify this so that the correct NuGet packages are implicitly added to the targets without having to declare them in `private_deps` or `runtime_packs`.
* Docs cleanup * More docs cleanup * Add a release GH action * Update to Bazel 6.0.0 * Update pre commit config * Clean up gazelle setup * Pre commit hook revert
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.
No description provided.