### Prepare Root xUnit.net Repository for Contribution Source: https://github.com/xunit/assert.xunit/blob/main/README.md Commands to set up the main xUnit.net repository for development, including submodule initialization, syncing with 'main', adding a fork remote, and creating a new feature branch. This prepares the primary repository for contributions. ```Shell git submodule update --init git switch main git pull origin --ff-only git remote add fork https://github.com/yourusername/xunit git fetch fork git switch -c my-branch-name ``` -------------------------------- ### Prepare xUnit.net Assertions Submodule for Contribution Source: https://github.com/xunit/assert.xunit/blob/main/README.md Commands to set up the 'xunit.v3.assert/Asserts' submodule for development. This involves syncing the submodule's 'main' branch, adding a fork remote, and creating a dedicated feature branch within the submodule. ```Shell git switch main git pull origin --ff-only git remote add fork https://github.com/yourusername/assert.xunit git fetch fork git switch -c my-branch-name ``` -------------------------------- ### Submit Pull Request for xUnit.net Assertions Submodule Source: https://github.com/xunit/assert.xunit/blob/main/README.md Steps to stage, commit, and push changes from the 'xunit.v3.assert/Asserts' submodule to your fork. This prepares the assertion-specific changes for a pull request to the 'xunit/assert.xunit' repository. ```Shell git add -A git commit git push fork my-branch-name ``` -------------------------------- ### Submit Pull Request for Root xUnit.net Repository Source: https://github.com/xunit/assert.xunit/blob/main/README.md Steps to stage, commit, and push changes from the root xUnit.net repository to your fork. This action should be performed after the assertion submodule changes have been pushed, allowing the root repository's pull request to reference the updated assertion code. ```Shell git add -A git commit git push fork my-branch-name ``` -------------------------------- ### Define XUNIT_NULLABLE for C# Nullable Reference Types Source: https://github.com/xunit/assert.xunit/blob/main/README.md To enable nullable reference type annotations on method signatures when consuming this repository as source, define the `XUNIT_NULLABLE` compilation symbol. This feature requires C# 9.0 or later and is typically set in your project file. ```xml $(DefineConstants);XUNIT_NULLABLE ``` -------------------------------- ### Add NuGet Package References for Immutable Collections and Memory Types Source: https://github.com/xunit/assert.xunit/blob/main/README.md To resolve compiler errors related to immutable collections, Span, and Memory types, add these NuGet package references to your project's ItemGroup. This ensures the necessary dependencies are available for compilation, particularly for types like `System.Collections.Immutable` and `System.Memory`. ```xml ``` -------------------------------- ### Define XUNIT_VISIBILITY_INTERNAL for Assert Class Visibility Source: https://github.com/xunit/assert.xunit/blob/main/README.md To change the `Assert` class's visibility from `public` to `internal` when consuming `Assert` via source locally, define the `XUNIT_VISIBILITY_INTERNAL` compilation symbol. This is useful for scenarios where the assertion library is integrated directly into a single library. ```xml $(DefineConstants);XUNIT_VISIBILITY_INTERNAL ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.