You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Review the `CONTRIBUTING.md` file for instructions to build and test the software.
6
+
* Set the `NBGV_GitEngine` environment variable to `Disabled` before running any `dotnet` or `msbuild` commands.
7
+
8
+
## Software Design
9
+
10
+
* Design APIs to be highly testable, and all functionality should be tested.
11
+
* Avoid introducing binary breaking changes in public APIs of projects under `src` unless their project files have `IsPackable` set to `false`.
12
+
13
+
## Testing
14
+
15
+
* There should generally be one test project (under the `test` directory) per shipping project (under the `src` directory). Test projects are named after the project being tested with a `.Test` suffix.
16
+
* Tests should use the Xunit testing framework.
17
+
* Some tests are known to be unstable. When running tests, you should skip the unstable ones by running `dotnet test --filter "TestCategory!=FailsInCloudTest"`.
18
+
19
+
## Coding style
20
+
21
+
* Honor StyleCop rules and fix any reported build warnings *after* getting tests to pass.
22
+
* In C# files, use namespace *statements* instead of namespace *blocks* for all new files.
23
+
* Add API doc comments to all new public and internal members.
# Automatically run the setup steps when they are changed to allow for easy validation, and
4
+
# allow manual testing through the repository's "Actions" tab
5
+
on:
6
+
workflow_dispatch:
7
+
push:
8
+
branches:
9
+
- main
10
+
paths:
11
+
- .github/workflows/copilot-setup-steps.yml
12
+
pull_request:
13
+
paths:
14
+
- .github/workflows/copilot-setup-steps.yml
15
+
16
+
jobs:
17
+
# The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
18
+
copilot-setup-steps:
19
+
runs-on: ubuntu-latest
20
+
# Set the permissions to the lowest permissions possible needed for your steps.
21
+
# Copilot will be given its own token for its operations.
22
+
permissions:
23
+
# If you want to clone the repository as part of your setup steps, for example to install dependencies, you'll need the `contents: read` permission. If you don't clone the repository in your setup steps, Copilot will do this for you automatically after the steps complete.
24
+
contents: read
25
+
26
+
# You can define any steps you want, and they will run before the agent starts.
27
+
# If you do not check out your code, Copilot will do this for you.
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+18-4Lines changed: 18 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,7 +38,7 @@ This repository can be built on Windows, Linux, and OSX.
38
38
39
39
Building, testing, and packing this repository can be done by using the standard dotnet CLI commands (e.g. `dotnet build`, `dotnet test`, `dotnet pack`, etc.).
When your repo is hosted by GitHub and you are using GitHub Actions, you should create a GitHub Release using the standard GitHub UI.
53
53
Having previously used `nbgv tag` and pushing the tag will help you identify the precise commit and name to use for this release.
54
54
55
-
After publishing the release, the `.github\workflows\release.yml` workflow will be automatically triggered, which will:
55
+
After publishing the release, the `.github/workflows/release.yml` workflow will be automatically triggered, which will:
56
56
57
-
1. Find the most recent `.github\workflows\build.yml` GitHub workflow run of the tagged release.
57
+
1. Find the most recent `.github/workflows/build.yml` GitHub workflow run of the tagged release.
58
58
1. Upload the `deployables` artifact from that workflow run to your GitHub Release.
59
59
1. If you have `NUGET_API_KEY` defined as a secret variable for your repo or org, any nuget packages in the `deployables` artifact will be pushed to nuget.org.
60
60
@@ -65,7 +65,7 @@ Trigger the pipeline by adding the `auto-release` tag on a run of your main `azu
65
65
66
66
## Tutorial and API documentation
67
67
68
-
API and hand-written docs are found under the `docfx/` directory. and are built by [docfx](https://dotnet.github.io/docfx/).
68
+
API and hand-written docs are found under the `docfx/` directory and are built by [docfx](https://dotnet.github.io/docfx/).
69
69
70
70
You can make changes and host the site locally to preview them by switching to that directory and running the `dotnet docfx --serve` command.
71
71
After making a change, you can rebuild the docs site while the localhost server is running by running `dotnet docfx` again from a separate terminal.
@@ -81,3 +81,17 @@ Configuration is in the `.github/renovate.json` file.
81
81
When changing the renovate.json file, follow [these validation steps](https://docs.renovatebot.com/config-validation/).
82
82
83
83
If Renovate is not creating pull requests when you expect it to, check that the [Renovate GitHub App](https://github.com/apps/renovate) is configured for your account or repo.
84
+
85
+
## Merging latest from Library.Template
86
+
87
+
### Maintaining your repo based on this template
88
+
89
+
The best way to keep your repo in sync with Library.Template's evolving features and best practices is to periodically merge the template into your repo:
90
+
91
+
```ps1
92
+
git fetch
93
+
git checkout origin/main
94
+
./tools/MergeFrom-Template.ps1
95
+
# resolve any conflicts, then commit the merge commit.
0 commit comments