Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .devcontainer/dotnet/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,9 @@

"customizations": {
"vscode": {
// Mirror of `recommendations` in DotNet.code-workspace.
// Mirror of `recommendations` in ProjectTemplate.code-workspace.
"extensions": [
"arahata.linter-actionlint",
"csharpier.csharpier-vscode",
"davidanson.vscode-markdownlint",
"editorconfig.editorconfig",
Expand All @@ -51,6 +52,7 @@
"ms-azuretools.vscode-docker",
"ms-dotnettools.csdevkit",
"streetsidesoftware.code-spell-checker",
"timonwong.shellcheck",
"yzhang.markdown-all-in-one"
]
}
Expand Down
4 changes: 3 additions & 1 deletion .devcontainer/python/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,9 @@

"customizations": {
"vscode": {
// Mirror of `recommendations` in Python.code-workspace.
// Mirror of `recommendations` in ProjectTemplate.code-workspace.
"extensions": [
"arahata.linter-actionlint",
"charliermarsh.ruff",
"davidanson.vscode-markdownlint",
"editorconfig.editorconfig",
Expand All @@ -51,6 +52,7 @@
"ms-azuretools.vscode-docker",
"ms-python.python",
"streetsidesoftware.code-spell-checker",
"timonwong.shellcheck",
"yzhang.markdown-all-in-one"
]
}
Expand Down
4 changes: 4 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ end_of_line = crlf
[*.sh]
end_of_line = lf

# Dockerfiles - CRLF breaks RUN heredocs and line continuations
[{Dockerfile,*.Dockerfile}]
end_of_line = lf

# Windows scripts
[*.{cmd,bat,ps1}]
end_of_line = crlf
Expand Down
21 changes: 16 additions & 5 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Leave line endings alone
# git config --global core.autocrlf false
# git add --renormalize .
# git ls-files --eol
* -text
# Default: do not normalize line endings (`* -text`); .editorconfig end_of_line rules guide what the editor writes.
# The exception pins below are git's own enforcement - they force LF for execution-sensitive classes regardless of editor.
# git config --global core.autocrlf false
# git add --renormalize .
# git ls-files --eol
* -text

# Exception: scripts must stay LF regardless of the `* -text` default - a CRLF shebang breaks execution. `.editorconfig`
# covers `*.sh`, but extensionless executables match no extension rule, so pin them here so git enforces LF on checkout
# and `--renormalize`. Any repo whose tooling ships extensionless scripts adds the matching path pin, e.g. s6-overlay
# init `Docker/s6-overlay/** text eol=lf` or husky/git hooks `.husky/pre-commit text eol=lf`.
*.sh text eol=lf

# Dockerfiles must be LF - a CRLF breaks RUN heredocs and line continuations.
Dockerfile text eol=lf
*.Dockerfile text eol=lf
68 changes: 68 additions & 0 deletions .github/rulesets/develop.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
{
"bypass_actors": [
{
"actor_id": 5,
"actor_type": "RepositoryRole",
"bypass_mode": "always"
}
],
"conditions": {
"ref_name": {
"exclude": [],
"include": [
"refs/heads/develop"
]
}
},
"enforcement": "active",
"name": "develop",
"rules": [
{
"type": "deletion"
},
{
"type": "non_fast_forward"
},
{
"type": "required_linear_history"
},
{
"type": "required_signatures"
},
{
"parameters": {
"allowed_merge_methods": [
"squash"
],
"dismiss_stale_reviews_on_push": true,
"require_code_owner_review": false,
"require_last_push_approval": false,
"required_approving_review_count": 0,
"required_review_thread_resolution": true,
"required_reviewers": []
},
"type": "pull_request"
},
{
"parameters": {
"do_not_enforce_on_create": false,
"required_status_checks": [
{
"context": "Check pull request workflow status",
"integration_id": 15368
}
],
"strict_required_status_checks_policy": false
},
"type": "required_status_checks"
},
{
"parameters": {
"review_draft_pull_requests": true,
"review_on_push": true
},
"type": "copilot_code_review"
}
],
"target": "branch"
}
65 changes: 65 additions & 0 deletions .github/rulesets/main.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
{
"bypass_actors": [
{
"actor_id": 5,
"actor_type": "RepositoryRole",
"bypass_mode": "always"
}
],
"conditions": {
"ref_name": {
"exclude": [],
"include": [
"refs/heads/main"
]
}
},
"enforcement": "active",
"name": "main",
"rules": [
{
"type": "deletion"
},
{
"type": "non_fast_forward"
},
{
"type": "required_signatures"
},
{
"parameters": {
"allowed_merge_methods": [
"merge"
],
"dismiss_stale_reviews_on_push": true,
"require_code_owner_review": false,
"require_last_push_approval": false,
"required_approving_review_count": 0,
"required_review_thread_resolution": true,
"required_reviewers": []
},
"type": "pull_request"
},
{
"parameters": {
"do_not_enforce_on_create": false,
"required_status_checks": [
{
"context": "Check pull request workflow status",
"integration_id": 15368
}
],
"strict_required_status_checks_policy": false
},
"type": "required_status_checks"
},
{
"parameters": {
"review_draft_pull_requests": true,
"review_on_push": true
},
"type": "copilot_code_review"
}
],
"target": "branch"
}
12 changes: 4 additions & 8 deletions .github/workflows/build-datebadge-task.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
name: Build BYOB date badge task

# Caller-gated: the publisher invokes this only when main is published - the badge has no per-branch context, it tracks
# the last main build.

on:
workflow_call:
inputs:
# Branch this badge run is for. Required (no github.ref_name fallback) so the main-only gate can't misfire
# when the publisher builds develop from a main-ref run.
branch:
required: true
type: string

jobs:

Expand All @@ -22,8 +19,7 @@ jobs:
run: echo "date=$(date)" >> "$GITHUB_OUTPUT"

- name: Build BYOB date badge step
if: ${{ inputs.branch == 'main' }}
uses: RubbaBoy/BYOB@a4919104bc0ec7cfd7f113e42c405cc45246f2a4 # v1
uses: RubbaBoy/BYOB@24f464284c1fd32028524b59607d417a2e36fee7 # v1.3.0
with:
name: lastbuild
label: "Last Build"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-docker-task.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
steps:

- name: Checkout step
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ inputs.ref }}

Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/build-executable-task.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,12 @@ jobs:
# No NuGet restore caching: restore is cheap here, and setup-dotnet's cache needs a packages.lock.json that
# Central Package Management doesn't produce by default.
- name: Setup .NET SDK step
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0
uses: actions/setup-dotnet@9a946fdbd5fb07b82b2f5a4466058b876ab72bb2 # v5.3.0
with:
dotnet-version: 10.x

- name: Checkout code step
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ inputs.ref }}

Expand All @@ -68,7 +68,7 @@ jobs:
# job is `!smoke`, so the per-runtime output would have no consumer.
- name: Upload matrix build artifacts step
if: ${{ !inputs.smoke }}
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: publish-${{ inputs.branch }}-${{ matrix.runtime }}
path: ${{ runner.temp }}/publish
Expand All @@ -86,7 +86,7 @@ jobs:
steps:

- name: Download matrix build artifacts step
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
pattern: publish-${{ inputs.branch }}-*
merge-multiple: true
Expand All @@ -98,7 +98,7 @@ jobs:
# GitHub-release asset, uploaded under the `release-asset-<branch>-*` pattern that the `github-release` job
# collects. Branch-suffixed so the publisher can build both branches in one run without colliding on the name.
- name: Upload build artifacts step
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: release-asset-${{ inputs.branch }}-executable
path: ${{ runner.temp }}/Console.7z
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/build-nugetlibrary-task.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,12 @@ jobs:
steps:

- name: Setup .NET SDK step
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0
uses: actions/setup-dotnet@9a946fdbd5fb07b82b2f5a4466058b876ab72bb2 # v5.3.0
with:
dotnet-version: 10.x

- name: Checkout code step
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ inputs.ref }}

Expand Down Expand Up @@ -81,7 +81,7 @@ jobs:
# Skipped on smoke: the github-release job is `!smoke`, so nothing would consume it.
- name: Upload build artifacts step
if: ${{ !inputs.smoke }}
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: release-asset-${{ inputs.branch }}-nugetlibrary
path: ${{ runner.temp }}/NuGetLibrary.7z
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-pypilibrary-task.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ jobs:
steps:

- name: Checkout code step
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ inputs.ref }}

Expand Down Expand Up @@ -113,7 +113,7 @@ jobs:
- name: Upload build artifacts step
id: artifact-upload-step
if: ${{ !inputs.smoke }}
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: pypilibrary-build-${{ inputs.branch }}
path: PyPiLibrary/dist/*
Expand Down
Loading
Loading