### 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.