Skip to content

conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks) - #401

Merged
ptr727 merged 5 commits into
developfrom
feature/lint-architecture
Jul 11, 2026
Merged

conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks)#401
ptr727 merged 5 commits into
developfrom
feature/lint-architecture

Conversation

@ptr727

@ptr727ptr727 commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Converges Utilities onto the fleet lint architecture (ProjectTemplate #276). Utilities was already closest — CI on action wrappers, hook language-only — so this is the last two gaps:

  • validate-task.yml: editorconfig-checker runs via docker run mstruebing/editorconfig-checker:latest (the doc linters run as pinned action wrappers; editorconfig-checker's action is install-only, so Docker runs it in one step).
  • .vscode/tasks.json: add the Lint group (editorconfig, actionlint, markdownlint, cspell via Docker :latest, plus a "Lint: All") — the on-demand local doc-lint surface the repo was missing.
  • .husky/pre-commit: add the language-only comment and the if guard (matches the fleet snippet; an absent dotnet exits 0 instead of aborting the commit).

cspell CI scope (README + HISTORY) left as-is. All linters pass locally.

🤖 Generated with Claude Code

- validate-task.yml: editorconfig-checker runs via its action wrapper (pinned),
so all four CI linters are pinned actions.
- .vscode/tasks.json: add the Lint group (full doc-lint set via Docker :latest),
the on-demand local surface the repo was missing.
- .husky/pre-commit: add the language-only comment and the if guard, matching the
fleet snippet (an if block instead of a bare command so an absent dotnet exits 0).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:40
@codecov

codecovBot commented Jul 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.89%. Comparing base (3909a89) to head (cff4ce1).

Additional details and impacted files
@@ Coverage Diff @@## develop #401 +/- ##
========================================
Coverage 66.89% 66.89% ========================================
Files 13 13 Lines 1160 1160 Branches 108 108 ========================================
Hits 776 776 Misses 338 338 Partials 46 46 

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Utilities’ lint surfaces to match the fleet “per-surface” model by shifting EditorConfig line-ending checks to a pinned GitHub Action in CI, adding on-demand VS Code lint tasks for docs/workflows, and making the pre-commit hook language-only and non-blocking when dotnet is absent.

Changes:

  • Switch CI EditorConfig line-ending checking from a docker run invocation to editorconfig-checker/action-editorconfig-checker.
  • Add VS Code “Lint” tasks for line endings, workflows, Markdown, spelling, plus a “Lint: All” aggregator.
  • Update Husky pre-commit hook to document “language-only” behavior and guard dotnet husky run behind a dotnet presence check.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

FileDescription
.vscode/tasks.jsonAdds Docker-based lint tasks (line endings, actionlint, markdownlint, cspell) and a combined “Lint: All”.
.husky/pre-commitMakes pre-commit hook language-only and no-op when dotnet is missing.
.github/workflows/validate-task.ymlReplaces EditorConfig docker lint with the action-based approach.

Comment thread.github/workflows/validate-task.yml Outdated
Comment thread.vscode/tasks.json Outdated
Comment thread.husky/pre-commit
Spell-checking targets user-facing docs only; the governance docs are hub-vetted
and tech-heavy. Keeps the local task consistent with the CI cspell scope.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:52

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.

Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.husky/pre-commit
editorconfig-checker/action-editorconfig-checker only installs the CLI (its own
example adds a separate run step), so 'uses:' alone never ran the check and CI
passed without validating line endings. Revert to the Docker invocation, which
runs the check in one step (and matches the VS Code Lint task).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:56

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

Comment thread.github/workflows/validate-task.yml
Local Docker linters and the VS Code Lint tasks run :latest; CI runs
markdownlint/cspell/actionlint as pinned action wrappers and editorconfig-checker
via Docker :latest. Replaces the stale 'pinned to validate-task.yml versions' note.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 04:09

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

.github/workflows/validate-task.yml:86

  • The PR title/description claims editorconfig-checker was moved to an action wrapper, but this workflow is still running editorconfig-checker via docker run ... mstruebing/editorconfig-checker:latest. Either update the PR metadata to reflect the Docker-based approach, or change this step to use the intended action-based implementation so the code matches the stated purpose.
 - name: Check line endings step
run: docker run --rm -v "$PWD":/check --workdir /check mstruebing/editorconfig-checker:latest

The cspell image entrypoint is cspell, so 'cspell README.md HISTORY.md' passes
'cspell' as a file glob. The image runs without it, matching the VS Code task.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 04:16

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

Comment thread.github/workflows/validate-task.yml
Comment thread.github/workflows/validate-task.yml
Comment thread.vscode/tasks.json
@ptr727
ptr727 merged commit bb6f262 into developJul 11, 2026
12 checks passed
@ptr727
ptr727 deleted the feature/lint-architecture branch July 11, 2026 04:22
ptr727 added a commit that referenced this pull request Jul 12, 2026
…ays (#404)
Forward promotion of the accumulated conformance work (#401/#402/#403).
No release: this is a human merge, so the publish plan gates to
publish=false. No library source (`Utilities/**`) changed.
ptr727-codegenBot pushed a commit to ptr727/LanguageTags that referenced this pull request Jul 15, 2026
Updated
[Microsoft.Extensions.Logging.Abstractions](https://github.com/dotnet/dotnet)
from 10.0.9 to 10.0.10.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.Extensions.Logging.Abstractions's
releases](https://github.com/dotnet/dotnet/releases)._
No release notes found for this version range.
Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>
Updated [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest)
from 18.7.0 to 18.8.1.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.NET.Test.Sdk's
releases](https://github.com/microsoft/vstest/releases)._
## 18.8.1
## What's Changed
* Fix protocol negotiation timeout when STJ reflection is disabled
(18.8.1) by @​nohwnd in microsoft/vstest#16281
**Full Changelog**:
microsoft/vstest@v18.8.0...v18.8.1
## 18.8.0
## What's Changed
* Migrate from Newtonsoft.Json to System.Text.Json / Jsonite (merge to
main) by @​nohwnd in microsoft/vstest#15687
- For more detail refer to
https://devblogs.microsoft.com/dotnet/vs-test-is-removing-its-newtonsoft-json-dependency/
* Create source-only filter package by @​Youssef1313 in
microsoft/vstest#15638
* Add ARM64 msdia140.dll support to test platform packages by @​nohwnd
in microsoft/vstest#15692
* Fix mutex cleanup crash on macOS/Linux by @​nohwnd in
microsoft/vstest#15684
* Restrict artifact temp directory permissions on Unix by @​nohwnd in
microsoft/vstest#15729
* Add support for filtering uncategorized tests with TestCategory=None
by @​Evangelink in microsoft/vstest#15727
* Fix SCI binding failure in DTA hosts (main) by @​nohwnd in
microsoft/vstest#15724
* Fix HTML logger parallel file collision by @​nohwnd in
microsoft/vstest#15435
* Improve error message when testhost cannot be found by @​nohwnd in
microsoft/vstest#16053
* Fix HTML logger exception on invalid XML chars in test display names
by @​nohwnd in microsoft/vstest#16051
**Full Changelog**:
microsoft/vstest@v18.7.0...v18.8.0
Commits viewable in [compare
view](microsoft/vstest@v18.7.0...v18.8.1).
</details>
Updated [Microsoft.SourceLink.GitHub](https://github.com/dotnet/dotnet)
from 10.0.300 to 10.0.301.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.SourceLink.GitHub's
releases](https://github.com/dotnet/dotnet/releases)._
## 10.0.301
You can build .NET 10.0 from the repository by cloning the release tag
`v10.0.301` and following the build instructions in the [main
README.md](https://github.com/dotnet/dotnet/blob/v10.0.301/README.md#building).
Alternatively, you can build from the sources attached to this release
directly.
More information on this process can be found in the [dotnet/dotnet
repository](https://github.com/dotnet/dotnet/blob/v10.0.301/README.md#building-from-released-sources).
Attached are PGP signatures for the GitHub generated tarball and
zipball. You can find the public key at https://dot.net/release-key-2023
Commits viewable in [compare
view](dotnet/dotnet@v10.0.300...v10.0.301).
</details>
Updated [ptr727.Utilities](https://github.com/ptr727/Utilities) from
4.0.7 to 4.0.15.
<details>
<summary>Release notes</summary>
_Sourced from [ptr727.Utilities's
releases](https://github.com/ptr727/Utilities/releases)._
## 4.0.15
## What's Changed
* Cover synchronous FileEx methods with temp-directory tests by @​ptr727
in ptr727/Utilities#399
* Promote: cover synchronous FileEx methods by @​ptr727 in
ptr727/Utilities#400
* conformance: per-surface lint architecture (editorconfig action + VS
Code lint tasks) by @​ptr727 in
ptr727/Utilities#401
* lint: EditorConfig rename + process-type VS Code Lint tasks by
@​ptr727 in ptr727/Utilities#402
* conformance: xUnit v3 migration, config hygiene, --pull=always lint
tasks by @​ptr727 in ptr727/Utilities#403
* Promote develop to main: xUnit v3 tests, per-surface lint,
--pull=always by @​ptr727 in
ptr727/Utilities#404
* Bump softprops/action-gh-release from 3.0.1 to 3.0.2 in the
actions-deps group by @​dependabot[bot] in
ptr727/Utilities#406
* Bump the nuget-deps group with 1 update by @​dependabot[bot] in
ptr727/Utilities#408
**Full Changelog**:
ptr727/Utilities@4.0.7...4.0.15
Commits viewable in [compare
view](ptr727/Utilities@4.0.7...4.0.15).
</details>
Updated [System.CommandLine](https://github.com/dotnet/dotnet) from
2.0.9 to 2.0.10.
<details>
<summary>Release notes</summary>
_Sourced from [System.CommandLine's
releases](https://github.com/dotnet/dotnet/releases)._
No release notes found for this version range.
Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks) by ptr727 · Pull Request #401 · ptr727/Utilities · GitHub
Skip to content

conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks) - #401

Merged
ptr727 merged 5 commits into
developfrom
feature/lint-architecture
Jul 11, 2026
Merged

conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks)#401
ptr727 merged 5 commits into
developfrom
feature/lint-architecture

Conversation

@ptr727

@ptr727ptr727 commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Converges Utilities onto the fleet lint architecture (ProjectTemplate #276). Utilities was already closest — CI on action wrappers, hook language-only — so this is the last two gaps:

  • validate-task.yml: editorconfig-checker runs via docker run mstruebing/editorconfig-checker:latest (the doc linters run as pinned action wrappers; editorconfig-checker's action is install-only, so Docker runs it in one step).
  • .vscode/tasks.json: add the Lint group (editorconfig, actionlint, markdownlint, cspell via Docker :latest, plus a "Lint: All") — the on-demand local doc-lint surface the repo was missing.
  • .husky/pre-commit: add the language-only comment and the if guard (matches the fleet snippet; an absent dotnet exits 0 instead of aborting the commit).

cspell CI scope (README + HISTORY) left as-is. All linters pass locally.

🤖 Generated with Claude Code

- validate-task.yml: editorconfig-checker runs via its action wrapper (pinned),
so all four CI linters are pinned actions.
- .vscode/tasks.json: add the Lint group (full doc-lint set via Docker :latest),
the on-demand local surface the repo was missing.
- .husky/pre-commit: add the language-only comment and the if guard, matching the
fleet snippet (an if block instead of a bare command so an absent dotnet exits 0).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:40
@codecov

codecovBot commented Jul 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.89%. Comparing base (3909a89) to head (cff4ce1).

Additional details and impacted files
@@ Coverage Diff @@## develop #401 +/- ##
========================================
Coverage 66.89% 66.89% ========================================
Files 13 13 Lines 1160 1160 Branches 108 108 ========================================
Hits 776 776 Misses 338 338 Partials 46 46 

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Utilities’ lint surfaces to match the fleet “per-surface” model by shifting EditorConfig line-ending checks to a pinned GitHub Action in CI, adding on-demand VS Code lint tasks for docs/workflows, and making the pre-commit hook language-only and non-blocking when dotnet is absent.

Changes:

  • Switch CI EditorConfig line-ending checking from a docker run invocation to editorconfig-checker/action-editorconfig-checker.
  • Add VS Code “Lint” tasks for line endings, workflows, Markdown, spelling, plus a “Lint: All” aggregator.
  • Update Husky pre-commit hook to document “language-only” behavior and guard dotnet husky run behind a dotnet presence check.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

FileDescription
.vscode/tasks.jsonAdds Docker-based lint tasks (line endings, actionlint, markdownlint, cspell) and a combined “Lint: All”.
.husky/pre-commitMakes pre-commit hook language-only and no-op when dotnet is missing.
.github/workflows/validate-task.ymlReplaces EditorConfig docker lint with the action-based approach.

Comment thread.github/workflows/validate-task.yml Outdated
Comment thread.vscode/tasks.json Outdated
Comment thread.husky/pre-commit
Spell-checking targets user-facing docs only; the governance docs are hub-vetted
and tech-heavy. Keeps the local task consistent with the CI cspell scope.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:52

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.

Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.husky/pre-commit
editorconfig-checker/action-editorconfig-checker only installs the CLI (its own
example adds a separate run step), so 'uses:' alone never ran the check and CI
passed without validating line endings. Revert to the Docker invocation, which
runs the check in one step (and matches the VS Code Lint task).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:56

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

Comment thread.github/workflows/validate-task.yml
Local Docker linters and the VS Code Lint tasks run :latest; CI runs
markdownlint/cspell/actionlint as pinned action wrappers and editorconfig-checker
via Docker :latest. Replaces the stale 'pinned to validate-task.yml versions' note.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 04:09

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

.github/workflows/validate-task.yml:86

  • The PR title/description claims editorconfig-checker was moved to an action wrapper, but this workflow is still running editorconfig-checker via docker run ... mstruebing/editorconfig-checker:latest. Either update the PR metadata to reflect the Docker-based approach, or change this step to use the intended action-based implementation so the code matches the stated purpose.
 - name: Check line endings step
run: docker run --rm -v "$PWD":/check --workdir /check mstruebing/editorconfig-checker:latest

The cspell image entrypoint is cspell, so 'cspell README.md HISTORY.md' passes
'cspell' as a file glob. The image runs without it, matching the VS Code task.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 04:16

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

Comment thread.github/workflows/validate-task.yml
Comment thread.github/workflows/validate-task.yml
Comment thread.vscode/tasks.json
@ptr727
ptr727 merged commit bb6f262 into developJul 11, 2026
12 checks passed
@ptr727
ptr727 deleted the feature/lint-architecture branch July 11, 2026 04:22
ptr727 added a commit that referenced this pull request Jul 12, 2026
…ays (#404)
Forward promotion of the accumulated conformance work (#401/#402/#403).
No release: this is a human merge, so the publish plan gates to
publish=false. No library source (`Utilities/**`) changed.
ptr727-codegenBot pushed a commit to ptr727/LanguageTags that referenced this pull request Jul 15, 2026
Updated
[Microsoft.Extensions.Logging.Abstractions](https://github.com/dotnet/dotnet)
from 10.0.9 to 10.0.10.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.Extensions.Logging.Abstractions's
releases](https://github.com/dotnet/dotnet/releases)._
No release notes found for this version range.
Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>
Updated [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest)
from 18.7.0 to 18.8.1.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.NET.Test.Sdk's
releases](https://github.com/microsoft/vstest/releases)._
## 18.8.1
## What's Changed
* Fix protocol negotiation timeout when STJ reflection is disabled
(18.8.1) by @​nohwnd in microsoft/vstest#16281
**Full Changelog**:
microsoft/vstest@v18.8.0...v18.8.1
## 18.8.0
## What's Changed
* Migrate from Newtonsoft.Json to System.Text.Json / Jsonite (merge to
main) by @​nohwnd in microsoft/vstest#15687
- For more detail refer to
https://devblogs.microsoft.com/dotnet/vs-test-is-removing-its-newtonsoft-json-dependency/
* Create source-only filter package by @​Youssef1313 in
microsoft/vstest#15638
* Add ARM64 msdia140.dll support to test platform packages by @​nohwnd
in microsoft/vstest#15692
* Fix mutex cleanup crash on macOS/Linux by @​nohwnd in
microsoft/vstest#15684
* Restrict artifact temp directory permissions on Unix by @​nohwnd in
microsoft/vstest#15729
* Add support for filtering uncategorized tests with TestCategory=None
by @​Evangelink in microsoft/vstest#15727
* Fix SCI binding failure in DTA hosts (main) by @​nohwnd in
microsoft/vstest#15724
* Fix HTML logger parallel file collision by @​nohwnd in
microsoft/vstest#15435
* Improve error message when testhost cannot be found by @​nohwnd in
microsoft/vstest#16053
* Fix HTML logger exception on invalid XML chars in test display names
by @​nohwnd in microsoft/vstest#16051
**Full Changelog**:
microsoft/vstest@v18.7.0...v18.8.0
Commits viewable in [compare
view](microsoft/vstest@v18.7.0...v18.8.1).
</details>
Updated [Microsoft.SourceLink.GitHub](https://github.com/dotnet/dotnet)
from 10.0.300 to 10.0.301.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.SourceLink.GitHub's
releases](https://github.com/dotnet/dotnet/releases)._
## 10.0.301
You can build .NET 10.0 from the repository by cloning the release tag
`v10.0.301` and following the build instructions in the [main
README.md](https://github.com/dotnet/dotnet/blob/v10.0.301/README.md#building).
Alternatively, you can build from the sources attached to this release
directly.
More information on this process can be found in the [dotnet/dotnet
repository](https://github.com/dotnet/dotnet/blob/v10.0.301/README.md#building-from-released-sources).
Attached are PGP signatures for the GitHub generated tarball and
zipball. You can find the public key at https://dot.net/release-key-2023
Commits viewable in [compare
view](dotnet/dotnet@v10.0.300...v10.0.301).
</details>
Updated [ptr727.Utilities](https://github.com/ptr727/Utilities) from
4.0.7 to 4.0.15.
<details>
<summary>Release notes</summary>
_Sourced from [ptr727.Utilities's
releases](https://github.com/ptr727/Utilities/releases)._
## 4.0.15
## What's Changed
* Cover synchronous FileEx methods with temp-directory tests by @​ptr727
in ptr727/Utilities#399
* Promote: cover synchronous FileEx methods by @​ptr727 in
ptr727/Utilities#400
* conformance: per-surface lint architecture (editorconfig action + VS
Code lint tasks) by @​ptr727 in
ptr727/Utilities#401
* lint: EditorConfig rename + process-type VS Code Lint tasks by
@​ptr727 in ptr727/Utilities#402
* conformance: xUnit v3 migration, config hygiene, --pull=always lint
tasks by @​ptr727 in ptr727/Utilities#403
* Promote develop to main: xUnit v3 tests, per-surface lint,
--pull=always by @​ptr727 in
ptr727/Utilities#404
* Bump softprops/action-gh-release from 3.0.1 to 3.0.2 in the
actions-deps group by @​dependabot[bot] in
ptr727/Utilities#406
* Bump the nuget-deps group with 1 update by @​dependabot[bot] in
ptr727/Utilities#408
**Full Changelog**:
ptr727/Utilities@4.0.7...4.0.15
Commits viewable in [compare
view](ptr727/Utilities@4.0.7...4.0.15).
</details>
Updated [System.CommandLine](https://github.com/dotnet/dotnet) from
2.0.9 to 2.0.10.
<details>
<summary>Release notes</summary>
_Sourced from [System.CommandLine's
releases](https://github.com/dotnet/dotnet/releases)._
No release notes found for this version range.
Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks) by ptr727 · Pull Request #401 · ptr727/Utilities · GitHub
Skip to content

conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks) - #401

Merged
ptr727 merged 5 commits into
developfrom
feature/lint-architecture
Jul 11, 2026
Merged

conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks)#401
ptr727 merged 5 commits into
developfrom
feature/lint-architecture

Conversation

@ptr727

@ptr727ptr727 commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Converges Utilities onto the fleet lint architecture (ProjectTemplate #276). Utilities was already closest — CI on action wrappers, hook language-only — so this is the last two gaps:

  • validate-task.yml: editorconfig-checker runs via docker run mstruebing/editorconfig-checker:latest (the doc linters run as pinned action wrappers; editorconfig-checker's action is install-only, so Docker runs it in one step).
  • .vscode/tasks.json: add the Lint group (editorconfig, actionlint, markdownlint, cspell via Docker :latest, plus a "Lint: All") — the on-demand local doc-lint surface the repo was missing.
  • .husky/pre-commit: add the language-only comment and the if guard (matches the fleet snippet; an absent dotnet exits 0 instead of aborting the commit).

cspell CI scope (README + HISTORY) left as-is. All linters pass locally.

🤖 Generated with Claude Code

- validate-task.yml: editorconfig-checker runs via its action wrapper (pinned),
so all four CI linters are pinned actions.
- .vscode/tasks.json: add the Lint group (full doc-lint set via Docker :latest),
the on-demand local surface the repo was missing.
- .husky/pre-commit: add the language-only comment and the if guard, matching the
fleet snippet (an if block instead of a bare command so an absent dotnet exits 0).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:40
@codecov

codecovBot commented Jul 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.89%. Comparing base (3909a89) to head (cff4ce1).

Additional details and impacted files
@@ Coverage Diff @@## develop #401 +/- ##
========================================
Coverage 66.89% 66.89% ========================================
Files 13 13 Lines 1160 1160 Branches 108 108 ========================================
Hits 776 776 Misses 338 338 Partials 46 46 

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Utilities’ lint surfaces to match the fleet “per-surface” model by shifting EditorConfig line-ending checks to a pinned GitHub Action in CI, adding on-demand VS Code lint tasks for docs/workflows, and making the pre-commit hook language-only and non-blocking when dotnet is absent.

Changes:

  • Switch CI EditorConfig line-ending checking from a docker run invocation to editorconfig-checker/action-editorconfig-checker.
  • Add VS Code “Lint” tasks for line endings, workflows, Markdown, spelling, plus a “Lint: All” aggregator.
  • Update Husky pre-commit hook to document “language-only” behavior and guard dotnet husky run behind a dotnet presence check.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

FileDescription
.vscode/tasks.jsonAdds Docker-based lint tasks (line endings, actionlint, markdownlint, cspell) and a combined “Lint: All”.
.husky/pre-commitMakes pre-commit hook language-only and no-op when dotnet is missing.
.github/workflows/validate-task.ymlReplaces EditorConfig docker lint with the action-based approach.

Comment thread.github/workflows/validate-task.yml Outdated
Comment thread.vscode/tasks.json Outdated
Comment thread.husky/pre-commit
Spell-checking targets user-facing docs only; the governance docs are hub-vetted
and tech-heavy. Keeps the local task consistent with the CI cspell scope.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:52

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.

Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.husky/pre-commit
editorconfig-checker/action-editorconfig-checker only installs the CLI (its own
example adds a separate run step), so 'uses:' alone never ran the check and CI
passed without validating line endings. Revert to the Docker invocation, which
runs the check in one step (and matches the VS Code Lint task).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:56

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

Comment thread.github/workflows/validate-task.yml
Local Docker linters and the VS Code Lint tasks run :latest; CI runs
markdownlint/cspell/actionlint as pinned action wrappers and editorconfig-checker
via Docker :latest. Replaces the stale 'pinned to validate-task.yml versions' note.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 04:09

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

.github/workflows/validate-task.yml:86

  • The PR title/description claims editorconfig-checker was moved to an action wrapper, but this workflow is still running editorconfig-checker via docker run ... mstruebing/editorconfig-checker:latest. Either update the PR metadata to reflect the Docker-based approach, or change this step to use the intended action-based implementation so the code matches the stated purpose.
 - name: Check line endings step
run: docker run --rm -v "$PWD":/check --workdir /check mstruebing/editorconfig-checker:latest

The cspell image entrypoint is cspell, so 'cspell README.md HISTORY.md' passes
'cspell' as a file glob. The image runs without it, matching the VS Code task.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 04:16

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

Comment thread.github/workflows/validate-task.yml
Comment thread.github/workflows/validate-task.yml
Comment thread.vscode/tasks.json
@ptr727
ptr727 merged commit bb6f262 into developJul 11, 2026
12 checks passed
@ptr727
ptr727 deleted the feature/lint-architecture branch July 11, 2026 04:22
ptr727 added a commit that referenced this pull request Jul 12, 2026
…ays (#404)
Forward promotion of the accumulated conformance work (#401/#402/#403).
No release: this is a human merge, so the publish plan gates to
publish=false. No library source (`Utilities/**`) changed.
ptr727-codegenBot pushed a commit to ptr727/LanguageTags that referenced this pull request Jul 15, 2026
Updated
[Microsoft.Extensions.Logging.Abstractions](https://github.com/dotnet/dotnet)
from 10.0.9 to 10.0.10.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.Extensions.Logging.Abstractions's
releases](https://github.com/dotnet/dotnet/releases)._
No release notes found for this version range.
Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>
Updated [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest)
from 18.7.0 to 18.8.1.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.NET.Test.Sdk's
releases](https://github.com/microsoft/vstest/releases)._
## 18.8.1
## What's Changed
* Fix protocol negotiation timeout when STJ reflection is disabled
(18.8.1) by @​nohwnd in microsoft/vstest#16281
**Full Changelog**:
microsoft/vstest@v18.8.0...v18.8.1
## 18.8.0
## What's Changed
* Migrate from Newtonsoft.Json to System.Text.Json / Jsonite (merge to
main) by @​nohwnd in microsoft/vstest#15687
- For more detail refer to
https://devblogs.microsoft.com/dotnet/vs-test-is-removing-its-newtonsoft-json-dependency/
* Create source-only filter package by @​Youssef1313 in
microsoft/vstest#15638
* Add ARM64 msdia140.dll support to test platform packages by @​nohwnd
in microsoft/vstest#15692
* Fix mutex cleanup crash on macOS/Linux by @​nohwnd in
microsoft/vstest#15684
* Restrict artifact temp directory permissions on Unix by @​nohwnd in
microsoft/vstest#15729
* Add support for filtering uncategorized tests with TestCategory=None
by @​Evangelink in microsoft/vstest#15727
* Fix SCI binding failure in DTA hosts (main) by @​nohwnd in
microsoft/vstest#15724
* Fix HTML logger parallel file collision by @​nohwnd in
microsoft/vstest#15435
* Improve error message when testhost cannot be found by @​nohwnd in
microsoft/vstest#16053
* Fix HTML logger exception on invalid XML chars in test display names
by @​nohwnd in microsoft/vstest#16051
**Full Changelog**:
microsoft/vstest@v18.7.0...v18.8.0
Commits viewable in [compare
view](microsoft/vstest@v18.7.0...v18.8.1).
</details>
Updated [Microsoft.SourceLink.GitHub](https://github.com/dotnet/dotnet)
from 10.0.300 to 10.0.301.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.SourceLink.GitHub's
releases](https://github.com/dotnet/dotnet/releases)._
## 10.0.301
You can build .NET 10.0 from the repository by cloning the release tag
`v10.0.301` and following the build instructions in the [main
README.md](https://github.com/dotnet/dotnet/blob/v10.0.301/README.md#building).
Alternatively, you can build from the sources attached to this release
directly.
More information on this process can be found in the [dotnet/dotnet
repository](https://github.com/dotnet/dotnet/blob/v10.0.301/README.md#building-from-released-sources).
Attached are PGP signatures for the GitHub generated tarball and
zipball. You can find the public key at https://dot.net/release-key-2023
Commits viewable in [compare
view](dotnet/dotnet@v10.0.300...v10.0.301).
</details>
Updated [ptr727.Utilities](https://github.com/ptr727/Utilities) from
4.0.7 to 4.0.15.
<details>
<summary>Release notes</summary>
_Sourced from [ptr727.Utilities's
releases](https://github.com/ptr727/Utilities/releases)._
## 4.0.15
## What's Changed
* Cover synchronous FileEx methods with temp-directory tests by @​ptr727
in ptr727/Utilities#399
* Promote: cover synchronous FileEx methods by @​ptr727 in
ptr727/Utilities#400
* conformance: per-surface lint architecture (editorconfig action + VS
Code lint tasks) by @​ptr727 in
ptr727/Utilities#401
* lint: EditorConfig rename + process-type VS Code Lint tasks by
@​ptr727 in ptr727/Utilities#402
* conformance: xUnit v3 migration, config hygiene, --pull=always lint
tasks by @​ptr727 in ptr727/Utilities#403
* Promote develop to main: xUnit v3 tests, per-surface lint,
--pull=always by @​ptr727 in
ptr727/Utilities#404
* Bump softprops/action-gh-release from 3.0.1 to 3.0.2 in the
actions-deps group by @​dependabot[bot] in
ptr727/Utilities#406
* Bump the nuget-deps group with 1 update by @​dependabot[bot] in
ptr727/Utilities#408
**Full Changelog**:
ptr727/Utilities@4.0.7...4.0.15
Commits viewable in [compare
view](ptr727/Utilities@4.0.7...4.0.15).
</details>
Updated [System.CommandLine](https://github.com/dotnet/dotnet) from
2.0.9 to 2.0.10.
<details>
<summary>Release notes</summary>
_Sourced from [System.CommandLine's
releases](https://github.com/dotnet/dotnet/releases)._
No release notes found for this version range.
Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks) by ptr727 · Pull Request #401 · ptr727/Utilities · GitHub
Skip to content

conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks) - #401

Merged
ptr727 merged 5 commits into
developfrom
feature/lint-architecture
Jul 11, 2026
Merged

conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks)#401
ptr727 merged 5 commits into
developfrom
feature/lint-architecture

Conversation

@ptr727

@ptr727ptr727 commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Converges Utilities onto the fleet lint architecture (ProjectTemplate #276). Utilities was already closest — CI on action wrappers, hook language-only — so this is the last two gaps:

  • validate-task.yml: editorconfig-checker runs via docker run mstruebing/editorconfig-checker:latest (the doc linters run as pinned action wrappers; editorconfig-checker's action is install-only, so Docker runs it in one step).
  • .vscode/tasks.json: add the Lint group (editorconfig, actionlint, markdownlint, cspell via Docker :latest, plus a "Lint: All") — the on-demand local doc-lint surface the repo was missing.
  • .husky/pre-commit: add the language-only comment and the if guard (matches the fleet snippet; an absent dotnet exits 0 instead of aborting the commit).

cspell CI scope (README + HISTORY) left as-is. All linters pass locally.

🤖 Generated with Claude Code

- validate-task.yml: editorconfig-checker runs via its action wrapper (pinned),
so all four CI linters are pinned actions.
- .vscode/tasks.json: add the Lint group (full doc-lint set via Docker :latest),
the on-demand local surface the repo was missing.
- .husky/pre-commit: add the language-only comment and the if guard, matching the
fleet snippet (an if block instead of a bare command so an absent dotnet exits 0).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:40
@codecov

codecovBot commented Jul 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.89%. Comparing base (3909a89) to head (cff4ce1).

Additional details and impacted files
@@ Coverage Diff @@## develop #401 +/- ##
========================================
Coverage 66.89% 66.89% ========================================
Files 13 13 Lines 1160 1160 Branches 108 108 ========================================
Hits 776 776 Misses 338 338 Partials 46 46 

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Utilities’ lint surfaces to match the fleet “per-surface” model by shifting EditorConfig line-ending checks to a pinned GitHub Action in CI, adding on-demand VS Code lint tasks for docs/workflows, and making the pre-commit hook language-only and non-blocking when dotnet is absent.

Changes:

  • Switch CI EditorConfig line-ending checking from a docker run invocation to editorconfig-checker/action-editorconfig-checker.
  • Add VS Code “Lint” tasks for line endings, workflows, Markdown, spelling, plus a “Lint: All” aggregator.
  • Update Husky pre-commit hook to document “language-only” behavior and guard dotnet husky run behind a dotnet presence check.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

FileDescription
.vscode/tasks.jsonAdds Docker-based lint tasks (line endings, actionlint, markdownlint, cspell) and a combined “Lint: All”.
.husky/pre-commitMakes pre-commit hook language-only and no-op when dotnet is missing.
.github/workflows/validate-task.ymlReplaces EditorConfig docker lint with the action-based approach.

Comment thread.github/workflows/validate-task.yml Outdated
Comment thread.vscode/tasks.json Outdated
Comment thread.husky/pre-commit
Spell-checking targets user-facing docs only; the governance docs are hub-vetted
and tech-heavy. Keeps the local task consistent with the CI cspell scope.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:52

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.

Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.husky/pre-commit
editorconfig-checker/action-editorconfig-checker only installs the CLI (its own
example adds a separate run step), so 'uses:' alone never ran the check and CI
passed without validating line endings. Revert to the Docker invocation, which
runs the check in one step (and matches the VS Code Lint task).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:56

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

Comment thread.github/workflows/validate-task.yml
Local Docker linters and the VS Code Lint tasks run :latest; CI runs
markdownlint/cspell/actionlint as pinned action wrappers and editorconfig-checker
via Docker :latest. Replaces the stale 'pinned to validate-task.yml versions' note.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 04:09

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

.github/workflows/validate-task.yml:86

  • The PR title/description claims editorconfig-checker was moved to an action wrapper, but this workflow is still running editorconfig-checker via docker run ... mstruebing/editorconfig-checker:latest. Either update the PR metadata to reflect the Docker-based approach, or change this step to use the intended action-based implementation so the code matches the stated purpose.
 - name: Check line endings step
run: docker run --rm -v "$PWD":/check --workdir /check mstruebing/editorconfig-checker:latest

The cspell image entrypoint is cspell, so 'cspell README.md HISTORY.md' passes
'cspell' as a file glob. The image runs without it, matching the VS Code task.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 04:16

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

Comment thread.github/workflows/validate-task.yml
Comment thread.github/workflows/validate-task.yml
Comment thread.vscode/tasks.json
@ptr727
ptr727 merged commit bb6f262 into developJul 11, 2026
12 checks passed
@ptr727
ptr727 deleted the feature/lint-architecture branch July 11, 2026 04:22
ptr727 added a commit that referenced this pull request Jul 12, 2026
…ays (#404)
Forward promotion of the accumulated conformance work (#401/#402/#403).
No release: this is a human merge, so the publish plan gates to
publish=false. No library source (`Utilities/**`) changed.
ptr727-codegenBot pushed a commit to ptr727/LanguageTags that referenced this pull request Jul 15, 2026
Updated
[Microsoft.Extensions.Logging.Abstractions](https://github.com/dotnet/dotnet)
from 10.0.9 to 10.0.10.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.Extensions.Logging.Abstractions's
releases](https://github.com/dotnet/dotnet/releases)._
No release notes found for this version range.
Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>
Updated [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest)
from 18.7.0 to 18.8.1.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.NET.Test.Sdk's
releases](https://github.com/microsoft/vstest/releases)._
## 18.8.1
## What's Changed
* Fix protocol negotiation timeout when STJ reflection is disabled
(18.8.1) by @​nohwnd in microsoft/vstest#16281
**Full Changelog**:
microsoft/vstest@v18.8.0...v18.8.1
## 18.8.0
## What's Changed
* Migrate from Newtonsoft.Json to System.Text.Json / Jsonite (merge to
main) by @​nohwnd in microsoft/vstest#15687
- For more detail refer to
https://devblogs.microsoft.com/dotnet/vs-test-is-removing-its-newtonsoft-json-dependency/
* Create source-only filter package by @​Youssef1313 in
microsoft/vstest#15638
* Add ARM64 msdia140.dll support to test platform packages by @​nohwnd
in microsoft/vstest#15692
* Fix mutex cleanup crash on macOS/Linux by @​nohwnd in
microsoft/vstest#15684
* Restrict artifact temp directory permissions on Unix by @​nohwnd in
microsoft/vstest#15729
* Add support for filtering uncategorized tests with TestCategory=None
by @​Evangelink in microsoft/vstest#15727
* Fix SCI binding failure in DTA hosts (main) by @​nohwnd in
microsoft/vstest#15724
* Fix HTML logger parallel file collision by @​nohwnd in
microsoft/vstest#15435
* Improve error message when testhost cannot be found by @​nohwnd in
microsoft/vstest#16053
* Fix HTML logger exception on invalid XML chars in test display names
by @​nohwnd in microsoft/vstest#16051
**Full Changelog**:
microsoft/vstest@v18.7.0...v18.8.0
Commits viewable in [compare
view](microsoft/vstest@v18.7.0...v18.8.1).
</details>
Updated [Microsoft.SourceLink.GitHub](https://github.com/dotnet/dotnet)
from 10.0.300 to 10.0.301.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.SourceLink.GitHub's
releases](https://github.com/dotnet/dotnet/releases)._
## 10.0.301
You can build .NET 10.0 from the repository by cloning the release tag
`v10.0.301` and following the build instructions in the [main
README.md](https://github.com/dotnet/dotnet/blob/v10.0.301/README.md#building).
Alternatively, you can build from the sources attached to this release
directly.
More information on this process can be found in the [dotnet/dotnet
repository](https://github.com/dotnet/dotnet/blob/v10.0.301/README.md#building-from-released-sources).
Attached are PGP signatures for the GitHub generated tarball and
zipball. You can find the public key at https://dot.net/release-key-2023
Commits viewable in [compare
view](dotnet/dotnet@v10.0.300...v10.0.301).
</details>
Updated [ptr727.Utilities](https://github.com/ptr727/Utilities) from
4.0.7 to 4.0.15.
<details>
<summary>Release notes</summary>
_Sourced from [ptr727.Utilities's
releases](https://github.com/ptr727/Utilities/releases)._
## 4.0.15
## What's Changed
* Cover synchronous FileEx methods with temp-directory tests by @​ptr727
in ptr727/Utilities#399
* Promote: cover synchronous FileEx methods by @​ptr727 in
ptr727/Utilities#400
* conformance: per-surface lint architecture (editorconfig action + VS
Code lint tasks) by @​ptr727 in
ptr727/Utilities#401
* lint: EditorConfig rename + process-type VS Code Lint tasks by
@​ptr727 in ptr727/Utilities#402
* conformance: xUnit v3 migration, config hygiene, --pull=always lint
tasks by @​ptr727 in ptr727/Utilities#403
* Promote develop to main: xUnit v3 tests, per-surface lint,
--pull=always by @​ptr727 in
ptr727/Utilities#404
* Bump softprops/action-gh-release from 3.0.1 to 3.0.2 in the
actions-deps group by @​dependabot[bot] in
ptr727/Utilities#406
* Bump the nuget-deps group with 1 update by @​dependabot[bot] in
ptr727/Utilities#408
**Full Changelog**:
ptr727/Utilities@4.0.7...4.0.15
Commits viewable in [compare
view](ptr727/Utilities@4.0.7...4.0.15).
</details>
Updated [System.CommandLine](https://github.com/dotnet/dotnet) from
2.0.9 to 2.0.10.
<details>
<summary>Release notes</summary>
_Sourced from [System.CommandLine's
releases](https://github.com/dotnet/dotnet/releases)._
No release notes found for this version range.
Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks) by ptr727 · Pull Request #401 · ptr727/Utilities · GitHub
Skip to content

conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks) - #401

Merged
ptr727 merged 5 commits into
developfrom
feature/lint-architecture
Jul 11, 2026
Merged

conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks)#401
ptr727 merged 5 commits into
developfrom
feature/lint-architecture

Conversation

@ptr727

@ptr727ptr727 commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Converges Utilities onto the fleet lint architecture (ProjectTemplate #276). Utilities was already closest — CI on action wrappers, hook language-only — so this is the last two gaps:

  • validate-task.yml: editorconfig-checker runs via docker run mstruebing/editorconfig-checker:latest (the doc linters run as pinned action wrappers; editorconfig-checker's action is install-only, so Docker runs it in one step).
  • .vscode/tasks.json: add the Lint group (editorconfig, actionlint, markdownlint, cspell via Docker :latest, plus a "Lint: All") — the on-demand local doc-lint surface the repo was missing.
  • .husky/pre-commit: add the language-only comment and the if guard (matches the fleet snippet; an absent dotnet exits 0 instead of aborting the commit).

cspell CI scope (README + HISTORY) left as-is. All linters pass locally.

🤖 Generated with Claude Code

- validate-task.yml: editorconfig-checker runs via its action wrapper (pinned),
so all four CI linters are pinned actions.
- .vscode/tasks.json: add the Lint group (full doc-lint set via Docker :latest),
the on-demand local surface the repo was missing.
- .husky/pre-commit: add the language-only comment and the if guard, matching the
fleet snippet (an if block instead of a bare command so an absent dotnet exits 0).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:40
@codecov

codecovBot commented Jul 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.89%. Comparing base (3909a89) to head (cff4ce1).

Additional details and impacted files
@@ Coverage Diff @@## develop #401 +/- ##
========================================
Coverage 66.89% 66.89% ========================================
Files 13 13 Lines 1160 1160 Branches 108 108 ========================================
Hits 776 776 Misses 338 338 Partials 46 46 

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Utilities’ lint surfaces to match the fleet “per-surface” model by shifting EditorConfig line-ending checks to a pinned GitHub Action in CI, adding on-demand VS Code lint tasks for docs/workflows, and making the pre-commit hook language-only and non-blocking when dotnet is absent.

Changes:

  • Switch CI EditorConfig line-ending checking from a docker run invocation to editorconfig-checker/action-editorconfig-checker.
  • Add VS Code “Lint” tasks for line endings, workflows, Markdown, spelling, plus a “Lint: All” aggregator.
  • Update Husky pre-commit hook to document “language-only” behavior and guard dotnet husky run behind a dotnet presence check.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

FileDescription
.vscode/tasks.jsonAdds Docker-based lint tasks (line endings, actionlint, markdownlint, cspell) and a combined “Lint: All”.
.husky/pre-commitMakes pre-commit hook language-only and no-op when dotnet is missing.
.github/workflows/validate-task.ymlReplaces EditorConfig docker lint with the action-based approach.

Comment thread.github/workflows/validate-task.yml Outdated
Comment thread.vscode/tasks.json Outdated
Comment thread.husky/pre-commit
Spell-checking targets user-facing docs only; the governance docs are hub-vetted
and tech-heavy. Keeps the local task consistent with the CI cspell scope.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:52

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.

Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.husky/pre-commit
editorconfig-checker/action-editorconfig-checker only installs the CLI (its own
example adds a separate run step), so 'uses:' alone never ran the check and CI
passed without validating line endings. Revert to the Docker invocation, which
runs the check in one step (and matches the VS Code Lint task).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:56

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

Comment thread.github/workflows/validate-task.yml
Local Docker linters and the VS Code Lint tasks run :latest; CI runs
markdownlint/cspell/actionlint as pinned action wrappers and editorconfig-checker
via Docker :latest. Replaces the stale 'pinned to validate-task.yml versions' note.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 04:09

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

.github/workflows/validate-task.yml:86

  • The PR title/description claims editorconfig-checker was moved to an action wrapper, but this workflow is still running editorconfig-checker via docker run ... mstruebing/editorconfig-checker:latest. Either update the PR metadata to reflect the Docker-based approach, or change this step to use the intended action-based implementation so the code matches the stated purpose.
 - name: Check line endings step
run: docker run --rm -v "$PWD":/check --workdir /check mstruebing/editorconfig-checker:latest

The cspell image entrypoint is cspell, so 'cspell README.md HISTORY.md' passes
'cspell' as a file glob. The image runs without it, matching the VS Code task.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 04:16

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

Comment thread.github/workflows/validate-task.yml
Comment thread.github/workflows/validate-task.yml
Comment thread.vscode/tasks.json
@ptr727
ptr727 merged commit bb6f262 into developJul 11, 2026
12 checks passed
@ptr727
ptr727 deleted the feature/lint-architecture branch July 11, 2026 04:22
ptr727 added a commit that referenced this pull request Jul 12, 2026
…ays (#404)
Forward promotion of the accumulated conformance work (#401/#402/#403).
No release: this is a human merge, so the publish plan gates to
publish=false. No library source (`Utilities/**`) changed.
ptr727-codegenBot pushed a commit to ptr727/LanguageTags that referenced this pull request Jul 15, 2026
Updated
[Microsoft.Extensions.Logging.Abstractions](https://github.com/dotnet/dotnet)
from 10.0.9 to 10.0.10.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.Extensions.Logging.Abstractions's
releases](https://github.com/dotnet/dotnet/releases)._
No release notes found for this version range.
Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>
Updated [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest)
from 18.7.0 to 18.8.1.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.NET.Test.Sdk's
releases](https://github.com/microsoft/vstest/releases)._
## 18.8.1
## What's Changed
* Fix protocol negotiation timeout when STJ reflection is disabled
(18.8.1) by @​nohwnd in microsoft/vstest#16281
**Full Changelog**:
microsoft/vstest@v18.8.0...v18.8.1
## 18.8.0
## What's Changed
* Migrate from Newtonsoft.Json to System.Text.Json / Jsonite (merge to
main) by @​nohwnd in microsoft/vstest#15687
- For more detail refer to
https://devblogs.microsoft.com/dotnet/vs-test-is-removing-its-newtonsoft-json-dependency/
* Create source-only filter package by @​Youssef1313 in
microsoft/vstest#15638
* Add ARM64 msdia140.dll support to test platform packages by @​nohwnd
in microsoft/vstest#15692
* Fix mutex cleanup crash on macOS/Linux by @​nohwnd in
microsoft/vstest#15684
* Restrict artifact temp directory permissions on Unix by @​nohwnd in
microsoft/vstest#15729
* Add support for filtering uncategorized tests with TestCategory=None
by @​Evangelink in microsoft/vstest#15727
* Fix SCI binding failure in DTA hosts (main) by @​nohwnd in
microsoft/vstest#15724
* Fix HTML logger parallel file collision by @​nohwnd in
microsoft/vstest#15435
* Improve error message when testhost cannot be found by @​nohwnd in
microsoft/vstest#16053
* Fix HTML logger exception on invalid XML chars in test display names
by @​nohwnd in microsoft/vstest#16051
**Full Changelog**:
microsoft/vstest@v18.7.0...v18.8.0
Commits viewable in [compare
view](microsoft/vstest@v18.7.0...v18.8.1).
</details>
Updated [Microsoft.SourceLink.GitHub](https://github.com/dotnet/dotnet)
from 10.0.300 to 10.0.301.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.SourceLink.GitHub's
releases](https://github.com/dotnet/dotnet/releases)._
## 10.0.301
You can build .NET 10.0 from the repository by cloning the release tag
`v10.0.301` and following the build instructions in the [main
README.md](https://github.com/dotnet/dotnet/blob/v10.0.301/README.md#building).
Alternatively, you can build from the sources attached to this release
directly.
More information on this process can be found in the [dotnet/dotnet
repository](https://github.com/dotnet/dotnet/blob/v10.0.301/README.md#building-from-released-sources).
Attached are PGP signatures for the GitHub generated tarball and
zipball. You can find the public key at https://dot.net/release-key-2023
Commits viewable in [compare
view](dotnet/dotnet@v10.0.300...v10.0.301).
</details>
Updated [ptr727.Utilities](https://github.com/ptr727/Utilities) from
4.0.7 to 4.0.15.
<details>
<summary>Release notes</summary>
_Sourced from [ptr727.Utilities's
releases](https://github.com/ptr727/Utilities/releases)._
## 4.0.15
## What's Changed
* Cover synchronous FileEx methods with temp-directory tests by @​ptr727
in ptr727/Utilities#399
* Promote: cover synchronous FileEx methods by @​ptr727 in
ptr727/Utilities#400
* conformance: per-surface lint architecture (editorconfig action + VS
Code lint tasks) by @​ptr727 in
ptr727/Utilities#401
* lint: EditorConfig rename + process-type VS Code Lint tasks by
@​ptr727 in ptr727/Utilities#402
* conformance: xUnit v3 migration, config hygiene, --pull=always lint
tasks by @​ptr727 in ptr727/Utilities#403
* Promote develop to main: xUnit v3 tests, per-surface lint,
--pull=always by @​ptr727 in
ptr727/Utilities#404
* Bump softprops/action-gh-release from 3.0.1 to 3.0.2 in the
actions-deps group by @​dependabot[bot] in
ptr727/Utilities#406
* Bump the nuget-deps group with 1 update by @​dependabot[bot] in
ptr727/Utilities#408
**Full Changelog**:
ptr727/Utilities@4.0.7...4.0.15
Commits viewable in [compare
view](ptr727/Utilities@4.0.7...4.0.15).
</details>
Updated [System.CommandLine](https://github.com/dotnet/dotnet) from
2.0.9 to 2.0.10.
<details>
<summary>Release notes</summary>
_Sourced from [System.CommandLine's
releases](https://github.com/dotnet/dotnet/releases)._
No release notes found for this version range.
Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks) by ptr727 · Pull Request #401 · ptr727/Utilities · GitHub
Skip to content

conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks) - #401

Merged
ptr727 merged 5 commits into
developfrom
feature/lint-architecture
Jul 11, 2026
Merged

conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks)#401
ptr727 merged 5 commits into
developfrom
feature/lint-architecture

Conversation

@ptr727

@ptr727ptr727 commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Converges Utilities onto the fleet lint architecture (ProjectTemplate #276). Utilities was already closest — CI on action wrappers, hook language-only — so this is the last two gaps:

  • validate-task.yml: editorconfig-checker runs via docker run mstruebing/editorconfig-checker:latest (the doc linters run as pinned action wrappers; editorconfig-checker's action is install-only, so Docker runs it in one step).
  • .vscode/tasks.json: add the Lint group (editorconfig, actionlint, markdownlint, cspell via Docker :latest, plus a "Lint: All") — the on-demand local doc-lint surface the repo was missing.
  • .husky/pre-commit: add the language-only comment and the if guard (matches the fleet snippet; an absent dotnet exits 0 instead of aborting the commit).

cspell CI scope (README + HISTORY) left as-is. All linters pass locally.

🤖 Generated with Claude Code

- validate-task.yml: editorconfig-checker runs via its action wrapper (pinned),
so all four CI linters are pinned actions.
- .vscode/tasks.json: add the Lint group (full doc-lint set via Docker :latest),
the on-demand local surface the repo was missing.
- .husky/pre-commit: add the language-only comment and the if guard, matching the
fleet snippet (an if block instead of a bare command so an absent dotnet exits 0).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:40
@codecov

codecovBot commented Jul 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.89%. Comparing base (3909a89) to head (cff4ce1).

Additional details and impacted files
@@ Coverage Diff @@## develop #401 +/- ##
========================================
Coverage 66.89% 66.89% ========================================
Files 13 13 Lines 1160 1160 Branches 108 108 ========================================
Hits 776 776 Misses 338 338 Partials 46 46 

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Utilities’ lint surfaces to match the fleet “per-surface” model by shifting EditorConfig line-ending checks to a pinned GitHub Action in CI, adding on-demand VS Code lint tasks for docs/workflows, and making the pre-commit hook language-only and non-blocking when dotnet is absent.

Changes:

  • Switch CI EditorConfig line-ending checking from a docker run invocation to editorconfig-checker/action-editorconfig-checker.
  • Add VS Code “Lint” tasks for line endings, workflows, Markdown, spelling, plus a “Lint: All” aggregator.
  • Update Husky pre-commit hook to document “language-only” behavior and guard dotnet husky run behind a dotnet presence check.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

FileDescription
.vscode/tasks.jsonAdds Docker-based lint tasks (line endings, actionlint, markdownlint, cspell) and a combined “Lint: All”.
.husky/pre-commitMakes pre-commit hook language-only and no-op when dotnet is missing.
.github/workflows/validate-task.ymlReplaces EditorConfig docker lint with the action-based approach.

Comment thread.github/workflows/validate-task.yml Outdated
Comment thread.vscode/tasks.json Outdated
Comment thread.husky/pre-commit
Spell-checking targets user-facing docs only; the governance docs are hub-vetted
and tech-heavy. Keeps the local task consistent with the CI cspell scope.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:52

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.

Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.husky/pre-commit
editorconfig-checker/action-editorconfig-checker only installs the CLI (its own
example adds a separate run step), so 'uses:' alone never ran the check and CI
passed without validating line endings. Revert to the Docker invocation, which
runs the check in one step (and matches the VS Code Lint task).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:56

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

Comment thread.github/workflows/validate-task.yml
Local Docker linters and the VS Code Lint tasks run :latest; CI runs
markdownlint/cspell/actionlint as pinned action wrappers and editorconfig-checker
via Docker :latest. Replaces the stale 'pinned to validate-task.yml versions' note.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 04:09

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

.github/workflows/validate-task.yml:86

  • The PR title/description claims editorconfig-checker was moved to an action wrapper, but this workflow is still running editorconfig-checker via docker run ... mstruebing/editorconfig-checker:latest. Either update the PR metadata to reflect the Docker-based approach, or change this step to use the intended action-based implementation so the code matches the stated purpose.
 - name: Check line endings step
run: docker run --rm -v "$PWD":/check --workdir /check mstruebing/editorconfig-checker:latest

The cspell image entrypoint is cspell, so 'cspell README.md HISTORY.md' passes
'cspell' as a file glob. The image runs without it, matching the VS Code task.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 04:16

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

Comment thread.github/workflows/validate-task.yml
Comment thread.github/workflows/validate-task.yml
Comment thread.vscode/tasks.json
@ptr727
ptr727 merged commit bb6f262 into developJul 11, 2026
12 checks passed
@ptr727
ptr727 deleted the feature/lint-architecture branch July 11, 2026 04:22
ptr727 added a commit that referenced this pull request Jul 12, 2026
…ays (#404)
Forward promotion of the accumulated conformance work (#401/#402/#403).
No release: this is a human merge, so the publish plan gates to
publish=false. No library source (`Utilities/**`) changed.
ptr727-codegenBot pushed a commit to ptr727/LanguageTags that referenced this pull request Jul 15, 2026
Updated
[Microsoft.Extensions.Logging.Abstractions](https://github.com/dotnet/dotnet)
from 10.0.9 to 10.0.10.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.Extensions.Logging.Abstractions's
releases](https://github.com/dotnet/dotnet/releases)._
No release notes found for this version range.
Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>
Updated [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest)
from 18.7.0 to 18.8.1.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.NET.Test.Sdk's
releases](https://github.com/microsoft/vstest/releases)._
## 18.8.1
## What's Changed
* Fix protocol negotiation timeout when STJ reflection is disabled
(18.8.1) by @​nohwnd in microsoft/vstest#16281
**Full Changelog**:
microsoft/vstest@v18.8.0...v18.8.1
## 18.8.0
## What's Changed
* Migrate from Newtonsoft.Json to System.Text.Json / Jsonite (merge to
main) by @​nohwnd in microsoft/vstest#15687
- For more detail refer to
https://devblogs.microsoft.com/dotnet/vs-test-is-removing-its-newtonsoft-json-dependency/
* Create source-only filter package by @​Youssef1313 in
microsoft/vstest#15638
* Add ARM64 msdia140.dll support to test platform packages by @​nohwnd
in microsoft/vstest#15692
* Fix mutex cleanup crash on macOS/Linux by @​nohwnd in
microsoft/vstest#15684
* Restrict artifact temp directory permissions on Unix by @​nohwnd in
microsoft/vstest#15729
* Add support for filtering uncategorized tests with TestCategory=None
by @​Evangelink in microsoft/vstest#15727
* Fix SCI binding failure in DTA hosts (main) by @​nohwnd in
microsoft/vstest#15724
* Fix HTML logger parallel file collision by @​nohwnd in
microsoft/vstest#15435
* Improve error message when testhost cannot be found by @​nohwnd in
microsoft/vstest#16053
* Fix HTML logger exception on invalid XML chars in test display names
by @​nohwnd in microsoft/vstest#16051
**Full Changelog**:
microsoft/vstest@v18.7.0...v18.8.0
Commits viewable in [compare
view](microsoft/vstest@v18.7.0...v18.8.1).
</details>
Updated [Microsoft.SourceLink.GitHub](https://github.com/dotnet/dotnet)
from 10.0.300 to 10.0.301.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.SourceLink.GitHub's
releases](https://github.com/dotnet/dotnet/releases)._
## 10.0.301
You can build .NET 10.0 from the repository by cloning the release tag
`v10.0.301` and following the build instructions in the [main
README.md](https://github.com/dotnet/dotnet/blob/v10.0.301/README.md#building).
Alternatively, you can build from the sources attached to this release
directly.
More information on this process can be found in the [dotnet/dotnet
repository](https://github.com/dotnet/dotnet/blob/v10.0.301/README.md#building-from-released-sources).
Attached are PGP signatures for the GitHub generated tarball and
zipball. You can find the public key at https://dot.net/release-key-2023
Commits viewable in [compare
view](dotnet/dotnet@v10.0.300...v10.0.301).
</details>
Updated [ptr727.Utilities](https://github.com/ptr727/Utilities) from
4.0.7 to 4.0.15.
<details>
<summary>Release notes</summary>
_Sourced from [ptr727.Utilities's
releases](https://github.com/ptr727/Utilities/releases)._
## 4.0.15
## What's Changed
* Cover synchronous FileEx methods with temp-directory tests by @​ptr727
in ptr727/Utilities#399
* Promote: cover synchronous FileEx methods by @​ptr727 in
ptr727/Utilities#400
* conformance: per-surface lint architecture (editorconfig action + VS
Code lint tasks) by @​ptr727 in
ptr727/Utilities#401
* lint: EditorConfig rename + process-type VS Code Lint tasks by
@​ptr727 in ptr727/Utilities#402
* conformance: xUnit v3 migration, config hygiene, --pull=always lint
tasks by @​ptr727 in ptr727/Utilities#403
* Promote develop to main: xUnit v3 tests, per-surface lint,
--pull=always by @​ptr727 in
ptr727/Utilities#404
* Bump softprops/action-gh-release from 3.0.1 to 3.0.2 in the
actions-deps group by @​dependabot[bot] in
ptr727/Utilities#406
* Bump the nuget-deps group with 1 update by @​dependabot[bot] in
ptr727/Utilities#408
**Full Changelog**:
ptr727/Utilities@4.0.7...4.0.15
Commits viewable in [compare
view](ptr727/Utilities@4.0.7...4.0.15).
</details>
Updated [System.CommandLine](https://github.com/dotnet/dotnet) from
2.0.9 to 2.0.10.
<details>
<summary>Release notes</summary>
_Sourced from [System.CommandLine's
releases](https://github.com/dotnet/dotnet/releases)._
No release notes found for this version range.
Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks) by ptr727 · Pull Request #401 · ptr727/Utilities · GitHub
Skip to content

conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks) - #401

Merged
ptr727 merged 5 commits into
developfrom
feature/lint-architecture
Jul 11, 2026
Merged

conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks)#401
ptr727 merged 5 commits into
developfrom
feature/lint-architecture

Conversation

@ptr727

@ptr727ptr727 commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Converges Utilities onto the fleet lint architecture (ProjectTemplate #276). Utilities was already closest — CI on action wrappers, hook language-only — so this is the last two gaps:

  • validate-task.yml: editorconfig-checker runs via docker run mstruebing/editorconfig-checker:latest (the doc linters run as pinned action wrappers; editorconfig-checker's action is install-only, so Docker runs it in one step).
  • .vscode/tasks.json: add the Lint group (editorconfig, actionlint, markdownlint, cspell via Docker :latest, plus a "Lint: All") — the on-demand local doc-lint surface the repo was missing.
  • .husky/pre-commit: add the language-only comment and the if guard (matches the fleet snippet; an absent dotnet exits 0 instead of aborting the commit).

cspell CI scope (README + HISTORY) left as-is. All linters pass locally.

🤖 Generated with Claude Code

- validate-task.yml: editorconfig-checker runs via its action wrapper (pinned),
so all four CI linters are pinned actions.
- .vscode/tasks.json: add the Lint group (full doc-lint set via Docker :latest),
the on-demand local surface the repo was missing.
- .husky/pre-commit: add the language-only comment and the if guard, matching the
fleet snippet (an if block instead of a bare command so an absent dotnet exits 0).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:40
@codecov

codecovBot commented Jul 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.89%. Comparing base (3909a89) to head (cff4ce1).

Additional details and impacted files
@@ Coverage Diff @@## develop #401 +/- ##
========================================
Coverage 66.89% 66.89% ========================================
Files 13 13 Lines 1160 1160 Branches 108 108 ========================================
Hits 776 776 Misses 338 338 Partials 46 46 

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Utilities’ lint surfaces to match the fleet “per-surface” model by shifting EditorConfig line-ending checks to a pinned GitHub Action in CI, adding on-demand VS Code lint tasks for docs/workflows, and making the pre-commit hook language-only and non-blocking when dotnet is absent.

Changes:

  • Switch CI EditorConfig line-ending checking from a docker run invocation to editorconfig-checker/action-editorconfig-checker.
  • Add VS Code “Lint” tasks for line endings, workflows, Markdown, spelling, plus a “Lint: All” aggregator.
  • Update Husky pre-commit hook to document “language-only” behavior and guard dotnet husky run behind a dotnet presence check.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

FileDescription
.vscode/tasks.jsonAdds Docker-based lint tasks (line endings, actionlint, markdownlint, cspell) and a combined “Lint: All”.
.husky/pre-commitMakes pre-commit hook language-only and no-op when dotnet is missing.
.github/workflows/validate-task.ymlReplaces EditorConfig docker lint with the action-based approach.

Comment thread.github/workflows/validate-task.yml Outdated
Comment thread.vscode/tasks.json Outdated
Comment thread.husky/pre-commit
Spell-checking targets user-facing docs only; the governance docs are hub-vetted
and tech-heavy. Keeps the local task consistent with the CI cspell scope.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:52

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.

Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.husky/pre-commit
editorconfig-checker/action-editorconfig-checker only installs the CLI (its own
example adds a separate run step), so 'uses:' alone never ran the check and CI
passed without validating line endings. Revert to the Docker invocation, which
runs the check in one step (and matches the VS Code Lint task).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:56

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

Comment thread.github/workflows/validate-task.yml
Local Docker linters and the VS Code Lint tasks run :latest; CI runs
markdownlint/cspell/actionlint as pinned action wrappers and editorconfig-checker
via Docker :latest. Replaces the stale 'pinned to validate-task.yml versions' note.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 04:09

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

.github/workflows/validate-task.yml:86

  • The PR title/description claims editorconfig-checker was moved to an action wrapper, but this workflow is still running editorconfig-checker via docker run ... mstruebing/editorconfig-checker:latest. Either update the PR metadata to reflect the Docker-based approach, or change this step to use the intended action-based implementation so the code matches the stated purpose.
 - name: Check line endings step
run: docker run --rm -v "$PWD":/check --workdir /check mstruebing/editorconfig-checker:latest

The cspell image entrypoint is cspell, so 'cspell README.md HISTORY.md' passes
'cspell' as a file glob. The image runs without it, matching the VS Code task.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 04:16

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

Comment thread.github/workflows/validate-task.yml
Comment thread.github/workflows/validate-task.yml
Comment thread.vscode/tasks.json
@ptr727
ptr727 merged commit bb6f262 into developJul 11, 2026
12 checks passed
@ptr727
ptr727 deleted the feature/lint-architecture branch July 11, 2026 04:22
ptr727 added a commit that referenced this pull request Jul 12, 2026
…ays (#404)
Forward promotion of the accumulated conformance work (#401/#402/#403).
No release: this is a human merge, so the publish plan gates to
publish=false. No library source (`Utilities/**`) changed.
ptr727-codegenBot pushed a commit to ptr727/LanguageTags that referenced this pull request Jul 15, 2026
Updated
[Microsoft.Extensions.Logging.Abstractions](https://github.com/dotnet/dotnet)
from 10.0.9 to 10.0.10.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.Extensions.Logging.Abstractions's
releases](https://github.com/dotnet/dotnet/releases)._
No release notes found for this version range.
Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>
Updated [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest)
from 18.7.0 to 18.8.1.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.NET.Test.Sdk's
releases](https://github.com/microsoft/vstest/releases)._
## 18.8.1
## What's Changed
* Fix protocol negotiation timeout when STJ reflection is disabled
(18.8.1) by @​nohwnd in microsoft/vstest#16281
**Full Changelog**:
microsoft/vstest@v18.8.0...v18.8.1
## 18.8.0
## What's Changed
* Migrate from Newtonsoft.Json to System.Text.Json / Jsonite (merge to
main) by @​nohwnd in microsoft/vstest#15687
- For more detail refer to
https://devblogs.microsoft.com/dotnet/vs-test-is-removing-its-newtonsoft-json-dependency/
* Create source-only filter package by @​Youssef1313 in
microsoft/vstest#15638
* Add ARM64 msdia140.dll support to test platform packages by @​nohwnd
in microsoft/vstest#15692
* Fix mutex cleanup crash on macOS/Linux by @​nohwnd in
microsoft/vstest#15684
* Restrict artifact temp directory permissions on Unix by @​nohwnd in
microsoft/vstest#15729
* Add support for filtering uncategorized tests with TestCategory=None
by @​Evangelink in microsoft/vstest#15727
* Fix SCI binding failure in DTA hosts (main) by @​nohwnd in
microsoft/vstest#15724
* Fix HTML logger parallel file collision by @​nohwnd in
microsoft/vstest#15435
* Improve error message when testhost cannot be found by @​nohwnd in
microsoft/vstest#16053
* Fix HTML logger exception on invalid XML chars in test display names
by @​nohwnd in microsoft/vstest#16051
**Full Changelog**:
microsoft/vstest@v18.7.0...v18.8.0
Commits viewable in [compare
view](microsoft/vstest@v18.7.0...v18.8.1).
</details>
Updated [Microsoft.SourceLink.GitHub](https://github.com/dotnet/dotnet)
from 10.0.300 to 10.0.301.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.SourceLink.GitHub's
releases](https://github.com/dotnet/dotnet/releases)._
## 10.0.301
You can build .NET 10.0 from the repository by cloning the release tag
`v10.0.301` and following the build instructions in the [main
README.md](https://github.com/dotnet/dotnet/blob/v10.0.301/README.md#building).
Alternatively, you can build from the sources attached to this release
directly.
More information on this process can be found in the [dotnet/dotnet
repository](https://github.com/dotnet/dotnet/blob/v10.0.301/README.md#building-from-released-sources).
Attached are PGP signatures for the GitHub generated tarball and
zipball. You can find the public key at https://dot.net/release-key-2023
Commits viewable in [compare
view](dotnet/dotnet@v10.0.300...v10.0.301).
</details>
Updated [ptr727.Utilities](https://github.com/ptr727/Utilities) from
4.0.7 to 4.0.15.
<details>
<summary>Release notes</summary>
_Sourced from [ptr727.Utilities's
releases](https://github.com/ptr727/Utilities/releases)._
## 4.0.15
## What's Changed
* Cover synchronous FileEx methods with temp-directory tests by @​ptr727
in ptr727/Utilities#399
* Promote: cover synchronous FileEx methods by @​ptr727 in
ptr727/Utilities#400
* conformance: per-surface lint architecture (editorconfig action + VS
Code lint tasks) by @​ptr727 in
ptr727/Utilities#401
* lint: EditorConfig rename + process-type VS Code Lint tasks by
@​ptr727 in ptr727/Utilities#402
* conformance: xUnit v3 migration, config hygiene, --pull=always lint
tasks by @​ptr727 in ptr727/Utilities#403
* Promote develop to main: xUnit v3 tests, per-surface lint,
--pull=always by @​ptr727 in
ptr727/Utilities#404
* Bump softprops/action-gh-release from 3.0.1 to 3.0.2 in the
actions-deps group by @​dependabot[bot] in
ptr727/Utilities#406
* Bump the nuget-deps group with 1 update by @​dependabot[bot] in
ptr727/Utilities#408
**Full Changelog**:
ptr727/Utilities@4.0.7...4.0.15
Commits viewable in [compare
view](ptr727/Utilities@4.0.7...4.0.15).
</details>
Updated [System.CommandLine](https://github.com/dotnet/dotnet) from
2.0.9 to 2.0.10.
<details>
<summary>Release notes</summary>
_Sourced from [System.CommandLine's
releases](https://github.com/dotnet/dotnet/releases)._
No release notes found for this version range.
Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ptr727
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks) by ptr727 · Pull Request #401 · ptr727/Utilities · GitHub
Skip to content

conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks) - #401

Merged
ptr727 merged 5 commits into
developfrom
feature/lint-architecture
Jul 11, 2026
Merged

conformance: per-surface lint architecture (editorconfig action + VS Code lint tasks)#401
ptr727 merged 5 commits into
developfrom
feature/lint-architecture

Conversation

@ptr727

@ptr727ptr727 commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Converges Utilities onto the fleet lint architecture (ProjectTemplate #276). Utilities was already closest — CI on action wrappers, hook language-only — so this is the last two gaps:

  • validate-task.yml: editorconfig-checker runs via docker run mstruebing/editorconfig-checker:latest (the doc linters run as pinned action wrappers; editorconfig-checker's action is install-only, so Docker runs it in one step).
  • .vscode/tasks.json: add the Lint group (editorconfig, actionlint, markdownlint, cspell via Docker :latest, plus a "Lint: All") — the on-demand local doc-lint surface the repo was missing.
  • .husky/pre-commit: add the language-only comment and the if guard (matches the fleet snippet; an absent dotnet exits 0 instead of aborting the commit).

cspell CI scope (README + HISTORY) left as-is. All linters pass locally.

🤖 Generated with Claude Code

- validate-task.yml: editorconfig-checker runs via its action wrapper (pinned),
so all four CI linters are pinned actions.
- .vscode/tasks.json: add the Lint group (full doc-lint set via Docker :latest),
the on-demand local surface the repo was missing.
- .husky/pre-commit: add the language-only comment and the if guard, matching the
fleet snippet (an if block instead of a bare command so an absent dotnet exits 0).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:40
@codecov

codecovBot commented Jul 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.89%. Comparing base (3909a89) to head (cff4ce1).

Additional details and impacted files
@@ Coverage Diff @@## develop #401 +/- ##
========================================
Coverage 66.89% 66.89% ========================================
Files 13 13 Lines 1160 1160 Branches 108 108 ========================================
Hits 776 776 Misses 338 338 Partials 46 46 

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Utilities’ lint surfaces to match the fleet “per-surface” model by shifting EditorConfig line-ending checks to a pinned GitHub Action in CI, adding on-demand VS Code lint tasks for docs/workflows, and making the pre-commit hook language-only and non-blocking when dotnet is absent.

Changes:

  • Switch CI EditorConfig line-ending checking from a docker run invocation to editorconfig-checker/action-editorconfig-checker.
  • Add VS Code “Lint” tasks for line endings, workflows, Markdown, spelling, plus a “Lint: All” aggregator.
  • Update Husky pre-commit hook to document “language-only” behavior and guard dotnet husky run behind a dotnet presence check.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

FileDescription
.vscode/tasks.jsonAdds Docker-based lint tasks (line endings, actionlint, markdownlint, cspell) and a combined “Lint: All”.
.husky/pre-commitMakes pre-commit hook language-only and no-op when dotnet is missing.
.github/workflows/validate-task.ymlReplaces EditorConfig docker lint with the action-based approach.

Comment thread.github/workflows/validate-task.yml Outdated
Comment thread.vscode/tasks.json Outdated
Comment thread.husky/pre-commit
Spell-checking targets user-facing docs only; the governance docs are hub-vetted
and tech-heavy. Keeps the local task consistent with the CI cspell scope.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:52

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.

Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.vscode/tasks.json
Comment thread.husky/pre-commit
editorconfig-checker/action-editorconfig-checker only installs the CLI (its own
example adds a separate run step), so 'uses:' alone never ran the check and CI
passed without validating line endings. Revert to the Docker invocation, which
runs the check in one step (and matches the VS Code Lint task).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 03:56

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

Comment thread.github/workflows/validate-task.yml
Local Docker linters and the VS Code Lint tasks run :latest; CI runs
markdownlint/cspell/actionlint as pinned action wrappers and editorconfig-checker
via Docker :latest. Replaces the stale 'pinned to validate-task.yml versions' note.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 04:09

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

.github/workflows/validate-task.yml:86

  • The PR title/description claims editorconfig-checker was moved to an action wrapper, but this workflow is still running editorconfig-checker via docker run ... mstruebing/editorconfig-checker:latest. Either update the PR metadata to reflect the Docker-based approach, or change this step to use the intended action-based implementation so the code matches the stated purpose.
 - name: Check line endings step
run: docker run --rm -v "$PWD":/check --workdir /check mstruebing/editorconfig-checker:latest

The cspell image entrypoint is cspell, so 'cspell README.md HISTORY.md' passes
'cspell' as a file glob. The image runs without it, matching the VS Code task.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CopilotAI review requested due to automatic review settings July 11, 2026 04:16

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

Comment thread.github/workflows/validate-task.yml
Comment thread.github/workflows/validate-task.yml
Comment thread.vscode/tasks.json
@ptr727
ptr727 merged commit bb6f262 into developJul 11, 2026
12 checks passed
@ptr727
ptr727 deleted the feature/lint-architecture branch July 11, 2026 04:22
ptr727 added a commit that referenced this pull request Jul 12, 2026
…ays (#404)
Forward promotion of the accumulated conformance work (#401/#402/#403).
No release: this is a human merge, so the publish plan gates to
publish=false. No library source (`Utilities/**`) changed.
ptr727-codegenBot pushed a commit to ptr727/LanguageTags that referenced this pull request Jul 15, 2026
Updated
[Microsoft.Extensions.Logging.Abstractions](https://github.com/dotnet/dotnet)
from 10.0.9 to 10.0.10.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.Extensions.Logging.Abstractions's
releases](https://github.com/dotnet/dotnet/releases)._
No release notes found for this version range.
Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>
Updated [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest)
from 18.7.0 to 18.8.1.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.NET.Test.Sdk's
releases](https://github.com/microsoft/vstest/releases)._
## 18.8.1
## What's Changed
* Fix protocol negotiation timeout when STJ reflection is disabled
(18.8.1) by @​nohwnd in microsoft/vstest#16281
**Full Changelog**:
microsoft/vstest@v18.8.0...v18.8.1
## 18.8.0
## What's Changed
* Migrate from Newtonsoft.Json to System.Text.Json / Jsonite (merge to
main) by @​nohwnd in microsoft/vstest#15687
- For more detail refer to
https://devblogs.microsoft.com/dotnet/vs-test-is-removing-its-newtonsoft-json-dependency/
* Create source-only filter package by @​Youssef1313 in
microsoft/vstest#15638
* Add ARM64 msdia140.dll support to test platform packages by @​nohwnd
in microsoft/vstest#15692
* Fix mutex cleanup crash on macOS/Linux by @​nohwnd in
microsoft/vstest#15684
* Restrict artifact temp directory permissions on Unix by @​nohwnd in
microsoft/vstest#15729
* Add support for filtering uncategorized tests with TestCategory=None
by @​Evangelink in microsoft/vstest#15727
* Fix SCI binding failure in DTA hosts (main) by @​nohwnd in
microsoft/vstest#15724
* Fix HTML logger parallel file collision by @​nohwnd in
microsoft/vstest#15435
* Improve error message when testhost cannot be found by @​nohwnd in
microsoft/vstest#16053
* Fix HTML logger exception on invalid XML chars in test display names
by @​nohwnd in microsoft/vstest#16051
**Full Changelog**:
microsoft/vstest@v18.7.0...v18.8.0
Commits viewable in [compare
view](microsoft/vstest@v18.7.0...v18.8.1).
</details>
Updated [Microsoft.SourceLink.GitHub](https://github.com/dotnet/dotnet)
from 10.0.300 to 10.0.301.
<details>
<summary>Release notes</summary>
_Sourced from [Microsoft.SourceLink.GitHub's
releases](https://github.com/dotnet/dotnet/releases)._
## 10.0.301
You can build .NET 10.0 from the repository by cloning the release tag
`v10.0.301` and following the build instructions in the [main
README.md](https://github.com/dotnet/dotnet/blob/v10.0.301/README.md#building).
Alternatively, you can build from the sources attached to this release
directly.
More information on this process can be found in the [dotnet/dotnet
repository](https://github.com/dotnet/dotnet/blob/v10.0.301/README.md#building-from-released-sources).
Attached are PGP signatures for the GitHub generated tarball and
zipball. You can find the public key at https://dot.net/release-key-2023
Commits viewable in [compare
view](dotnet/dotnet@v10.0.300...v10.0.301).
</details>
Updated [ptr727.Utilities](https://github.com/ptr727/Utilities) from
4.0.7 to 4.0.15.
<details>
<summary>Release notes</summary>
_Sourced from [ptr727.Utilities's
releases](https://github.com/ptr727/Utilities/releases)._
## 4.0.15
## What's Changed
* Cover synchronous FileEx methods with temp-directory tests by @​ptr727
in ptr727/Utilities#399
* Promote: cover synchronous FileEx methods by @​ptr727 in
ptr727/Utilities#400
* conformance: per-surface lint architecture (editorconfig action + VS
Code lint tasks) by @​ptr727 in
ptr727/Utilities#401
* lint: EditorConfig rename + process-type VS Code Lint tasks by
@​ptr727 in ptr727/Utilities#402
* conformance: xUnit v3 migration, config hygiene, --pull=always lint
tasks by @​ptr727 in ptr727/Utilities#403
* Promote develop to main: xUnit v3 tests, per-surface lint,
--pull=always by @​ptr727 in
ptr727/Utilities#404
* Bump softprops/action-gh-release from 3.0.1 to 3.0.2 in the
actions-deps group by @​dependabot[bot] in
ptr727/Utilities#406
* Bump the nuget-deps group with 1 update by @​dependabot[bot] in
ptr727/Utilities#408
**Full Changelog**:
ptr727/Utilities@4.0.7...4.0.15
Commits viewable in [compare
view](ptr727/Utilities@4.0.7...4.0.15).
</details>
Updated [System.CommandLine](https://github.com/dotnet/dotnet) from
2.0.9 to 2.0.10.
<details>
<summary>Release notes</summary>
_Sourced from [System.CommandLine's
releases](https://github.com/dotnet/dotnet/releases)._
No release notes found for this version range.
Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@ptr727