Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
957ef33
added workflow_dispatch to workflows
petesramek Apr 4, 2026
ceb6349
Merge branch 'preview/1.0' into develop/1.0
petesramek Apr 4, 2026
df5a5e0
moved version selector to the left
petesramek Apr 4, 2026
e7b2263
feat: version-snapshot guides alongside API reference, fix index.md l…
Copilot Apr 4, 2026
bdce7f5
Merge branch 'preview/1.0' into develop/1.0
petesramek Apr 4, 2026
311c57a
Merge branch 'develop/1.0' of https://github.com/petesramek/polyline-…
petesramek Apr 4, 2026
3e9793f
ExceptionGuard made internal
petesramek Apr 4, 2026
22bcfef
Updated docs for version 1.0
petesramek Apr 4, 2026
96330ad
refactor(docs): version picker left-aligned, Reference dropdown repla…
Copilot Apr 4, 2026
d8340a7
Merge remote-tracking branch 'origin/preview/1.0' into develop/1.0
petesramek Apr 4, 2026
8b572e0
Merge branch 'develop/1.0' of https://github.com/petesramek/polyline-…
petesramek Apr 4, 2026
764e8f9
Merge branch 'preview/1.0' into develop/1.0
petesramek Apr 4, 2026
0236a8b
Fix version switcher URL bug and improve docs navigation/landing page…
Copilot Apr 4, 2026
4f96217
feat: add backtrack workflow with branch locking to prevent race cond…
Copilot Apr 4, 2026
387bb95
fix: backtrack workflow fails with 403 — lock/unlock steps are invert…
Copilot Apr 4, 2026
3909e6c
resolved issues
petesramek Apr 4, 2026
f61e57c
fix(backtrack): lock all target branches upfront before merging (#188)
Copilot Apr 4, 2026
9caa7cc
resolved issues
petesramek Apr 4, 2026
c8a957c
fix(backtrack): unblock Merges API when enforce_admins + PR reviews a…
Copilot Apr 4, 2026
0f56fe8
resolved issues
petesramek Apr 4, 2026
29b9131
Backtrack: merge preview/1.0 into develop/1.0
petesramek Apr 4, 2026
70dcc81
fix: backtrack workflow leaves concrete branch rules behind after aut…
Copilot Apr 4, 2026
fc1622b
Backtrack: merge preview/1.0 into develop/1.0
petesramek Apr 4, 2026
71c0230
fix: enable merge commits during backtrack by explicitly setting requ…
Copilot Apr 4, 2026
df35c6d
Backtrack: merge preview/1.0 into develop/1.0
petesramek Apr 4, 2026
3585491
Backtrack: merge preview/1.0 into develop/1.0
petesramek Apr 4, 2026
7bd72ff
Backtrack: merge preview/1.0 into develop/1.0
petesramek Apr 4, 2026
3d75b25
Backtrack: merge preview/1.0 into develop/1.0
petesramek Apr 4, 2026
1840e67
Backtrack: merge preview/1.0 into develop/1.0
petesramek Apr 4, 2026
b75aef4
refactor: extract repeated git identity configuration into reusable c…
Copilot Apr 4, 2026
6b1acec
No changes — design clarification only (#204)
Copilot Apr 4, 2026
0a374f4
fix: checkout missing in workflow-variables job causes promote-branch…
Copilot Apr 4, 2026
6847c9a
fix: fetch target branch before `gh pr create --fill` in promote-bran…
Copilot Apr 4, 2026
d3eeb38
Backtrack: merge preview/1.0 into develop/1.0
petesramek Apr 4, 2026
7ae8aba
Backtrack: merge preview/1.0 into develop/1.0
petesramek Apr 4, 2026
989d09a
fix: push release tag to remote before `gh release create` (#209)
Copilot Apr 4, 2026
a26d37b
Backtrack: merge preview/1.0 into develop/1.0
petesramek Apr 4, 2026
c83fc81
Backtrack: merge preview/1.0 into develop/1.0
petesramek Apr 4, 2026
eeebf3b
fix: add `pull-requests: write` permission to `merge-to-main` job (#213)
Copilot Apr 4, 2026
63de2fc
Backtrack: merge preview/1.0 into develop/1.0
petesramek Apr 4, 2026
e98b8d1
Backtrack: merge preview/1.0 into develop/1.0
petesramek Apr 4, 2026
543938d
Remove redundant branch protection lock on support branch creation (#…
Copilot Apr 5, 2026
31a7240
Enforce RS0017 as a hard build error; handle preview API removals in …
Copilot Apr 5, 2026
730c70b
docs: improve README user-friendliness for repo and NuGet package (#220)
Copilot Apr 5, 2026
f93fc21
fixed normalization (#221)
petesramek Apr 5, 2026
303ae50
chore: overhaul GitHub issue/PR templates, add security policy (#222)
Copilot Apr 5, 2026
05221ab
chore: add CODEOWNERS, Code of Conduct, CHANGELOG, Source Link, and w…
Copilot Apr 5, 2026
e9e1420
feat: automate CHANGELOG.md updates from GitHub Release notes (#224)
Copilot Apr 5, 2026
1dd28dd
Add Release Notes column to API reference versions table (#225)
Copilot Apr 5, 2026
0b16dcd
Add benchmark results to API reference docs on version deploy (#226)
Copilot Apr 5, 2026
e8cfaa1
removed SIMD validation. only one passthrough for ValidateFormat method
petesramek Apr 21, 2026
dc29b29
removed tests of ValidateBlockLength and ValidateCharRange that has b…
petesramek Apr 21, 2026
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
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -274,3 +274,6 @@ dotnet_naming_style.underscore_camel_case.capitalization = camel_case
# Public API analyzer

dotnet_public_api_analyzer.require_api_files = true

# RS0017: Symbol removed from public API - error severity (IDE guidance; build enforcement via WarningsAsErrors in .csproj)
dotnet_diagnostic.RS0017.severity = error
5 changes: 5 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
* @petesramek

.github/ @petesramek
src/ @petesramek
tests/ @petesramek
32 changes: 13 additions & 19 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
title: '[Bug]: '
labels: 'bug'
assignees: ''

---
Expand All @@ -11,28 +11,22 @@ assignees: ''
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
Minimal code snippet that reproduces the issue:

```csharp
// paste reproduction code here
```

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
**Actual behavior**
A clear and concise description of what actually happens (include exception messages/stack traces if applicable).

**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]
**Environment**
- Package version: [e.g. 2.1.0]
- .NET version: [e.g. net8.0]
- OS: [e.g. Windows 11, Ubuntu 24.04]

**Additional context**
Add any other context about the problem here.
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Ask a question
url: https://github.com/petesramek/polyline-algorithm-csharp/discussions
about: Use GitHub Discussions for questions, ideas, or general feedback.
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
title: '[Feature]: '
labels: 'enhancement'
assignees: ''

---
Expand Down
19 changes: 19 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
## Summary

<!-- Briefly describe what this PR does and why. -->

## Type of change

- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation / samples only

## Checklist

- [ ] Unit tests added or updated (`/tests`)
- [ ] Benchmarks added or updated (`/benchmarks`) — if performance-impacting
- [ ] XML doc comments updated for all public API changes
- [ ] `dotnet format` run with no issues
- [ ] README and `/samples` updated — if public API changed
- [ ] PR label added (`breaking` / `feat` / `fix` / `docs`) — for changelog categorization
2 changes: 1 addition & 1 deletion .github/actions/source/compile/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ inputs:
file-version:
description: 'Assembly file version.'
required: true
treat-warnins-as-error:
treat-warnings-as-error:
description: 'Treat warnings as errors.'
required: true
project-path:
Expand Down
12 changes: 12 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,23 @@ updates:
directory: "/"
schedule:
interval: "weekly"
labels:
- "dependencies"
assignees:
- "petesramek"
- package-ecosystem: "nuget"
directory: "/"
schedule:
interval: "weekly"
labels:
- "dependencies"
assignees:
- "petesramek"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
labels:
- "dependencies"
assignees:
- "petesramek"
23 changes: 23 additions & 0 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
changelog:
exclude:
labels:
- ignore-for-release
categories:
- title: Breaking Changes
labels:
- breaking
- title: New Features
labels:
- feat
- enhancement
- title: Bug Fixes
labels:
- fix
- bug
- title: Documentation
labels:
- docs
- documentation
- title: Other Changes
labels:
- '*'
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ jobs:
assembly-version: ${{ env.assembly-version }}
assembly-informational-version: ${{ env.assembly-informational-version }}
file-version: ${{ env.file-version }}
treat-warnins-as-error: ${{ needs.workflow-variables.outputs.is-release }}
treat-warnings-as-error: ${{ needs.workflow-variables.outputs.is-release }}

test:
name: 'Run tests'
Expand Down
21 changes: 18 additions & 3 deletions .github/workflows/publish-documentation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,21 @@ jobs:
run: |
cp -r api-reference/guide api-reference/${{ env.friendly-version }}/guide

- name: 'Download benchmark results'
uses: actions/download-artifact@v8
with:
pattern: benchmark-*
path: /tmp/benchmarks
merge-multiple: true

- name: 'Inject benchmark results into guide for v${{ env.friendly-version }}'
shell: bash
run: |
find /tmp/benchmarks -name "*-report-github.md" | sort | xargs -r cat > /tmp/benchmark_results.md
awk '/{benchmarks_section}/{while((getline line < "/tmp/benchmark_results.md") > 0) print line; close("/tmp/benchmark_results.md"); next} {print}' \
"api-reference/${{ env.friendly-version }}/guide/benchmarks.md" > /tmp/benchmarks.md
mv /tmp/benchmarks.md "api-reference/${{ env.friendly-version }}/guide/benchmarks.md"

- name: 'Discover all versions'
id: discover-versions
shell: bash
Expand Down Expand Up @@ -151,15 +166,15 @@ jobs:
{
echo "## Released Versions"
echo ""
echo "| Version | Guide | API Reference |"
echo "|---------|-------|---------------|"
echo "| Version | Guide | API Reference | Release Notes |"
echo "|---------|-------|---------------|---------------|"
for ver in $(echo "${{ steps.discover-versions.outputs.versions }}" | tr ',' '\n' | sort -Vr); do
if [ "$ver" = "$latest" ]; then
label="v${ver} (latest)"
else
label="v${ver}"
fi
echo "| ${label} | [Guide](${ver}/guide/getting-started.html) | [API Reference](${ver}/PolylineAlgorithm.html) |"
echo "| ${label} | [Guide](${ver}/guide/getting-started.html) | [API Reference](${ver}/PolylineAlgorithm.html) | [Release Notes](https://github.com/petesramek/polyline-algorithm-csharp/releases/tag/v${ver}) |"
done
} > /tmp/versions_section.md
awk '/{versions_section}/{while((getline line < "/tmp/versions_section.md") > 0) print line; close("/tmp/versions_section.md"); next} {print}' \
Expand Down
47 changes: 14 additions & 33 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ permissions:
id-token: write
contents: write

concurrency:
group: pull-request-${{ github.head_ref || github.ref }}
concurrency:
group: pull-request-${{ github.head_ref || github.ref }}
cancel-in-progress: true

env:
Expand Down Expand Up @@ -120,7 +120,7 @@ jobs:
assembly-version: ${{ env.assembly-version }}
assembly-informational-version: ${{ env.assembly-informational-version }}
file-version: ${{ env.file-version }}
treat-warnins-as-error: ${{ needs.workflow-variables.outputs.is-release }}
treat-warnings-as-error: ${{ needs.workflow-variables.outputs.is-release }}

test:
name: 'Run tests'
Expand Down Expand Up @@ -189,7 +189,7 @@ jobs:
- name: Pack with .NET
run: |
dotnet pack ${{ vars.SRC_DEFAULT_GLOB_PATTERN }} --configuration ${{ env.build-configuration }} /p:Platform="${{ env.build-platform }}" /p:PackageVersion=${{ env.release-version }} /p:Version=${{ env.assembly-version }} /p:AssemblyInformationalVersion=${{ env.assembly-informational-version }} /p:FileVersion=${{ env.file-version }} --output ${{ runner.temp }}/${{ env.nuget-packages-directory }}

- name: Upload Package
uses: actions/upload-artifact@v7
with:
Expand Down Expand Up @@ -222,39 +222,20 @@ jobs:
nuget-feed-api-key: ${{ secrets.NUGET_PACKAGE_FEED_API_KEY }}
nuget-feed-server: 'AzureArtifacts'
working-directory: ${{ runner.temp }}/${{ env.nuget-packages-directory }}
dotnet-sdk-version: ${{ env.dotnet-sdk-version }}'
dotnet-sdk-version: ${{ env.dotnet-sdk-version }}

benchmark:
if: ${{ github.env.is_release || vars.BENCHMARKDOTNET_RUN_OVERRIDE == 'true' }}
name: Benchmark with .NET CLI on ${{ matrix.os }}
security:
name: 'Check for vulnerable packages'
needs: [build]
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
runs-on: ubuntu-latest
steps:
- name: 'Checkout ${{ github.head_ref || github.ref }}'
uses: actions/checkout@v6
- name: Install .NET SDK

- name: 'Setup .NET'
uses: actions/setup-dotnet@v5
with:
dotnet-version: |
8.x
10.x
- name: Download Build
uses: actions/download-artifact@v8
with:
name: build
- name: Benchmark
working-directory: ${{ vars.BENCHMARKDOTNET_WORKING_DIRECTORY }}
run: dotnet run --configuration ${{ env.build-configuration }} /p:Platform=${{ env.build-platform }} --framework ${{ vars.DEFAULT_BUILD_FRAMEWORK }} --runtimes ${{ vars.BENCHMARKDOTNET_RUNTIMES }} --filter ${{ vars.BENCHMARKDOTNET_FILTER }} --artifacts ${{ runner.temp }}/benchmarks/ --exporters GitHub --memory --iterationTime 100 --join
- name: Upload Benchmark Results
uses: actions/upload-artifact@v7
with:
name: benchmark-${{ matrix.os }}
path: |
${{ runner.temp }}/benchmarks/**/*-report-github.md
- name: Write Benchmark Summary
shell: bash
run: cat **/*-report-github.md > $GITHUB_STEP_SUMMARY
working-directory: ${{ runner.temp }}/benchmarks/
dotnet-version: ${{ env.dotnet-sdk-version }}

- name: 'Check for vulnerable packages'
run: dotnet list src/PolylineAlgorithm/PolylineAlgorithm.csproj package --vulnerable --include-transitive
Loading
Loading