Skip to content

Release: v1.0 = core rewrite, CI/CD, docs, and test suite overhaul#166

Merged
petesramek merged 50 commits intorelease/1.0from
preview/1.0
Apr 4, 2026
Merged

Release: v1.0 = core rewrite, CI/CD, docs, and test suite overhaul#166
petesramek merged 50 commits intorelease/1.0from
preview/1.0

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented Apr 4, 2026

Overview

Promotes preview/1.0 to release/1.0 in preparation for the 1.0 release. This batch brings in a full rewrite of the library's core, docs, CI/CD pipeline, and test suite accumulated since the last preview snapshot.

What's included

🏗️ CI/CD & Workflows

📚 Documentation

  • New /docs developer guides: local development, testing conventions, benchmarks, composite actions catalogue, CI workflow reference, branch strategy, versioning pipeline, API doc generation, extensibility guide (docs: add developer documentation under /docs #155)
  • Updated API reference YAMLs for version 1.0
  • Fixed grammar, TOC typo, and outdated API references in docs
  • Updated CONTRIBUTING.md with links to all new docs articles
  • Flushed PublicAPI.Unshipped.txt

🔧 Source (library)

  • Refactored internal structure: CoordinateDelta, CoordinateVariance, Pow10, Defaults, ExceptionGuard, logging helpers
  • Updated PolylineEncoder, PolylineDecoder, PolylineEncoding, PolylineEncodingOptions, PolylineEncodingOptionsBuilder
  • Public API cleanup; .editorconfig updated (primary constructors disabled)

✅ Tests

  • Reorganized test files into proper namespace folders (Abstraction/, Extensions/, Internal/)
  • Added new test classes for CoordinateDelta, CoordinateVariance, Pow10, ExceptionGuard, LogDebugExtensions, LogWarningExtensions, InvalidPolylineException, PolylineEncodingOptionsBuilder, and encoder/decoder extensions
  • Removed stale/duplicate test files

🛠️ Build & Config

  • Cleaned up PolylineAlgorithm.slnx, Directory.Build.props, benchmarks config
  • Updated .gitignore to exclude dynamically generated api-reference/_docs/
  • Misc cleanup (removed junk files, updated AGENTS.md)

github-actions Bot and others added 30 commits September 11, 2025 16:42
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Pete Sramek <me@petesramek.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Pete Sramek <me@petesramek.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Pete Sramek <me@petesramek.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Pete Sramek <me@petesramek.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Pete Sramek <me@petesramek.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Pete Sramek <me@petesramek.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Pete Sramek <me@petesramek.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Pete Sramek <me@petesramek.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Pete Sramek <me@petesramek.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
petesramek and others added 20 commits March 16, 2026 21:06
## Complete rewrite and v1.0 release preparation

This PR represents a full rewrite of the PolylineAlgorithm library,
modernizing the API surface, improving extensibility, and preparing for
a stable v1.0 release targeting .NET Standard 2.1+.

---

### Breaking Changes / New Public API

- **New generic interfaces** `IPolylineEncoder<TCoordinate, TPolyline>`
and `IPolylineDecoder<TPolyline, TCoordinate>` replace the old encoding
abstraction, allowing callers to use any coordinate and polyline
representation.
- **Abstract base classes** `AbstractPolylineEncoder<TCoordinate,
TPolyline>` and `AbstractPolylineDecoder<TPolyline, TCoordinate>`
provide the shared encoding/decoding algorithm; consumers override only
`GetLatitude`, `GetLongitude`, `CreatePolyline` (encoder) or
`CreateCoordinate`, `GetReadOnlyMemory` (decoder).
- **Extension methods** `PolylineEncoderExtensions` and
`PolylineDecoderExtensions` add convenience overloads for `List<T>` and
arrays.
- **`PolylineEncoding`** static utility class exposes low-level
normalization, validation, encoding and decoding primitives.
- **`PolylineEncodingOptions`** and **`PolylineEncodingOptionsBuilder`**
expose configurable precision, stack-alloc buffer limit and
`ILoggerFactory` integration.
- **`InvalidPolylineException`** added for descriptive error reporting
on malformed input.
- All `Encode`/`Decode` methods accept an optional `CancellationToken`.

### Other Changes

- Integrated `Microsoft.Extensions.Logging` support for diagnostics / CI
audit trails.
- Added `PolylineAlgorithm.NetTopologySuite.Sample` demonstrating
integration with NetTopologySuite.
- Comprehensive XML doc comments on all public APIs.
- Updated README, CONTRIBUTING, AGENTS and all guide docs under
`api-reference/guide/` (getting-started, advanced-scenarios,
configuration, FAQ).
- DocFX API reference updated for v1.0 under `api-reference/1.0/`.
- Updated unit tests and benchmarks.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…rhaul (#159)

## Overview

Promotes `develop/1.0` to `preview/1.0` in preparation for the 1.0
preview release. This batch brings in a full rewrite of the library's
core, docs, CI/CD pipeline, and test suite accumulated since the last
preview snapshot.

## What's included

### 🏗️ CI/CD & Workflows
- **New workflows**: `bump-version`, `promote-branch` with source-branch
enforcement, auto merge-to-main on release
- **Branch protection**: new `lock`/`unlock` composite actions;
`preview/**` and `release/**` branches are now automatically locked
after creation
- **Fix**: removed invalid `administration` permission from
`release.yml` that caused workflow parse failures (#158)
- **Fix**: corrected pull-request-finding logic in promote workflow
- **Docs publishing**: URL-aware version switcher via `docs-versioning`
template; `versions.json` manifest; reworked `generate-docs` job (#157)

### 📚 Documentation
- New `/docs` developer guides: local development, testing conventions,
benchmarks, composite actions catalogue, CI workflow reference, branch
strategy, versioning pipeline, API doc generation, extensibility guide
(#155)
- Updated API reference YAMLs for version 1.0
- Fixed grammar, TOC typo, and outdated API references in docs
- Updated `CONTRIBUTING.md` with links to all new docs articles
- Flushed `PublicAPI.Unshipped.txt`

### 🔧 Source (library)
- Refactored internal structure: `CoordinateDelta`,
`CoordinateVariance`, `Pow10`, `Defaults`, `ExceptionGuard`, logging
helpers
- Updated `PolylineEncoder`, `PolylineDecoder`, `PolylineEncoding`,
`PolylineEncodingOptions`, `PolylineEncodingOptionsBuilder`
- Public API cleanup; `.editorconfig` updated (primary constructors
disabled)

### ✅ Tests
- Reorganized test files into proper namespace folders (`Abstraction/`,
`Extensions/`, `Internal/`)
- Added new test classes for `CoordinateDelta`, `CoordinateVariance`,
`Pow10`, `ExceptionGuard`, `LogDebugExtensions`, `LogWarningExtensions`,
`InvalidPolylineException`, `PolylineEncodingOptionsBuilder`, and
encoder/decoder extensions
- Removed stale/duplicate test files

### 🛠️ Build & Config
- Cleaned up `PolylineAlgorithm.slnx`, `Directory.Build.props`,
benchmarks config
- Updated `.gitignore` to exclude dynamically generated
`api-reference/_docs/`
- Misc cleanup (removed junk files, updated `AGENTS.md`)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
- Removed administration permission

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
- Removed administration permission

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Pete Sramek <petr.sramek@dropoutcoder.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@petesramek petesramek changed the title Promote preview/1.0 to release/1.0 Release: v1.0 = core rewrite, CI/CD, docs, and test suite overhaul Apr 4, 2026
@petesramek petesramek merged commit 69df3e8 into release/1.0 Apr 4, 2026
5 checks passed
petesramek pushed a commit that referenced this pull request Apr 5, 2026
- **Release: v1.0 = core rewrite, CI/CD, docs, and test suite overhaul
(#166)**
- **fixes for 1.0 (#171)**
- **FIX: workflows (#173)**
- **version-snapshot guides alongside API reference, fix index.md links,
add released versions table (#176)**
- **minor updates to code and docs generation (#180)**
- **Fix version switcher URL bug and improve docs navigation/landing
page (#183)**
- **backtracking (#189)**
- **backtracking (#195)**
- **backtracking 2 (#198)**
- **Preview/1.0 (#202)**
- **Promote preview/1.0 to release/1.0 (#208)**
- **Promote preview/1.0 to release/1.0 (#211)**
- **Promote preview/1.0 to release/1.0 (#215)**
Sign up for free to 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.

1 participant