Skip to content

Develop - #68

Merged
ptr727 merged 9 commits into
mainfrom
develop
Jan 30, 2026
Merged

Develop#68
ptr727 merged 9 commits into
mainfrom
develop

Conversation

@ptr727

Copy link
Copy Markdown
Owner

No description provided.

ptr727and others added 3 commits January 4, 2026 20:33
* Develop (#60)
* Bump actions/checkout from 4 to 5 in the actions-deps group
Bumps the actions-deps group with 1 update: [actions/checkout](https://github.com/actions/checkout).
Updates `actions/checkout` from 4 to 5
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 3 updates
Bumps csharpier from 1.1.1 to 1.1.2
Bumps xunit.analyzers from 1.23.0 to 1.24.0
Bumps xunit.runner.visualstudio from 3.1.3 to 3.1.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.1.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
- dependency-name: xunit.analyzers
dependency-version: 1.24.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps AwesomeAssertions from 9.1.0 to 9.2.0
---
updated-dependencies:
- dependency-name: AwesomeAssertions
dependency-version: 9.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps xunit.runner.visualstudio from 3.1.4 to 3.1.5
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump csharpier and husky
Bumps csharpier from 1.1.2 to 1.2.1
Bumps husky from 0.7.2 to 0.8.0
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: husky
dependency-version: 0.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump Serilog.Sinks.Console from 6.0.0 to 6.1.1
---
updated-dependencies:
- dependency-name: Serilog.Sinks.Console
dependency-version: 6.1.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Update dependencies
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.1 to 1.2.3
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the actions-deps group across 1 directory with 3 updates (#48)
Bumps the actions-deps group with 3 updates in the / directory: [actions/setup-dotnet](https://github.com/actions/setup-dotnet), [actions/checkout](https://github.com/actions/checkout) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request).
Updates `actions/setup-dotnet` from 4 to 5
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](actions/setup-dotnet@v4...v5)
Updates `actions/checkout` from 5 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)
Updates `peter-evans/create-pull-request` from 7 to 8
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v7...v8)
---
updated-dependencies:
- dependency-name: actions/setup-dotnet
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: peter-evans/create-pull-request
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.3 to 1.2.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.4 to 1.2.5
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Add AOT support, document code and add test cases with help from copilot
* Add version history
* readme
* Fix missing `},` and enable docs generation
* dotnet 10
* install husky
* lf
* crlf
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update language data and generated files (#61)
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
* Merge remote-tracking branch 'origin/develop'
* Develop (#60)
* Bump actions/checkout from 4 to 5 in the actions-deps group
Bumps the actions-deps group with 1 update: [actions/checkout](https://github.com/actions/checkout).
Updates `actions/checkout` from 4 to 5
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 3 updates
Bumps csharpier from 1.1.1 to 1.1.2
Bumps xunit.analyzers from 1.23.0 to 1.24.0
Bumps xunit.runner.visualstudio from 3.1.3 to 3.1.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.1.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
- dependency-name: xunit.analyzers
dependency-version: 1.24.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps AwesomeAssertions from 9.1.0 to 9.2.0
---
updated-dependencies:
- dependency-name: AwesomeAssertions
dependency-version: 9.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps xunit.runner.visualstudio from 3.1.4 to 3.1.5
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump csharpier and husky
Bumps csharpier from 1.1.2 to 1.2.1
Bumps husky from 0.7.2 to 0.8.0
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: husky
dependency-version: 0.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump Serilog.Sinks.Console from 6.0.0 to 6.1.1
---
updated-dependencies:
- dependency-name: Serilog.Sinks.Console
dependency-version: 6.1.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Update dependencies
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.1 to 1.2.3
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the actions-deps group across 1 directory with 3 updates (#48)
Bumps the actions-deps group with 3 updates in the / directory: [actions/setup-dotnet](https://github.com/actions/setup-dotnet), [actions/checkout](https://github.com/actions/checkout) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request).
Updates `actions/setup-dotnet` from 4 to 5
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](actions/setup-dotnet@v4...v5)
Updates `actions/checkout` from 5 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)
Updates `peter-evans/create-pull-request` from 7 to 8
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v7...v8)
---
updated-dependencies:
- dependency-name: actions/setup-dotnet
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: peter-evans/create-pull-request
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.3 to 1.2.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.4 to 1.2.5
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Add AOT support, document code and add test cases with help from copilot
* Add version history
* readme
* Fix missing `},` and enable docs generation
* dotnet 10
* install husky
* lf
* crlf
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update language data and generated files (#61)
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
* Refactor and enhance language tag library
- Change Rfc5646Record to a sealed record for better encapsulation.
- Add tests for null or empty input handling in Iso6392 and Iso6393.
- Enhance LanguageLookupTests with case-insensitive tag comparison and validation for null inputs.
- Extend LanguageTagBuilderTests to include multiple variant additions and null checks.
- Improve LanguageTagTests with new tests for ExtensionTag and PrivateUseTag constructors and equality.
- Add tests for Rfc5646Data to check file date and null input handling.
- Update README.md for improved clarity on build status, usage, and references.
* Refactor language tag classes to be sealed and improve logging and command line handling
- Changed `Iso6392Data`, `Iso6393Data`, and `Rfc5646Data` classes to be sealed for better performance and clarity.
- Updated logging configuration to use Serilog with improved context handling.
- Introduced a new command line interface for downloading and generating language tag data.
- Added options for configuring logging behavior and file paths.
- Implemented data downloading and JSON conversion in a structured manner.
- Removed unused namespaces and improved code organization across various files.
- Added global usings and simplified test project structure.
* Refactor LanguageTags library to support asynchronous operations and enhanced logging
- Updated LanguageSchema to provide asynchronous file writing with WriteFileAsync.
- Enhanced LanguageTag and LanguageTagParser to support parsing with logging options.
- Introduced LogOptions for global logging configuration and integrated logging into parsing and data loading processes.
- Converted data loading and saving methods in Rfc5646Data, Iso6392Data, and Iso6393Data to asynchronous counterparts.
- Added unit tests for asynchronous loading and saving of JSON data for Iso6392Data, Iso6393Data, and Rfc5646Data.
- Improved CreateTagData to utilize asynchronous methods for data conversion and code generation.
* Update README to reflect asynchronous loading methods and add debug log configuration examples
* Update documentation
* Refactor and enhance language tag handling
- Updated launch configuration to include a trailing comma for args.
- Added new language tags "ANTLR" and "datebadge" to the workspace.
- Improved asynchronous file handling in Iso6392Data and Iso6393Data classes by using await using for file streams.
- Simplified record parsing logic in Iso6392Data and Iso6393Data to reduce redundancy.
- Enhanced error handling for invalid records in both classes.
- Updated Rfc5646Data to improve async file operations and error logging.
- Refactored CreateTagData to streamline HTTP stream handling and file writing.
- Modified ExtensionTag to return an empty string when tags are empty.
- Added unit test for ExtensionTag to verify empty tag behavior.
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:13

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

This PR updates LanguageTags to v1.2, refactors file/data IO to async-only APIs, introduces configurable logging (global and per-call), and modernizes the CLI/codegen workflow plus CI automation.

Changes:

  • Bump library version to 1.2 and update documentation/release history accordingly.
  • Refactor data load/save/codegen to stream-based async APIs and add Options/LogOptions logging configuration.
  • Rework LanguageTagsCreate CLI and GitHub Actions workflows for release, codegen PRs, and PR validation.

Reviewed changes

Copilot reviewed 63 out of 66 changed files in this pull request and generated 15 comments.

Show a summary per file
FileDescription
version.jsonBumps project version to 1.2.
README.mdRefreshes documentation: badges, installation, logging, async APIs, and usage sections.
LanguageTagsTests/Rfc5646Tests.csUpdates tests to async load APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/LanguageTagsTests.csprojSimplifies test project properties; removes packaging metadata.
LanguageTagsTests/LanguageTagTests.csAdds tests for ExtensionTag/PrivateUseTag constructors and behavior.
LanguageTagsTests/LanguageTagParserTests.csSwitches to global usings for test dependencies.
LanguageTagsTests/LanguageTagBuilderTests.csAdds argument-null tests and variant range tests for builder APIs.
LanguageTagsTests/LanguageLookupTests.csAdds equivalence tests, overrides mutability test, and null-arg tests.
LanguageTagsTests/Iso6393Tests.csUpdates to async APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/Iso6392Tests.csUpdates to async APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/GlobalUsings.csIntroduces global usings for test project (xUnit/AwesomeAssertions + common BCL).
LanguageTagsTests/Fixture.csSwitches to global usings for test dependencies.
LanguageTagsCreate/Program.csRefactors CLI entrypoint to System.CommandLine + logging initialization + codegen orchestration.
LanguageTagsCreate/LoggerFactory.csAdds Serilog-based logger factory integration for CLI and library logging setup.
LanguageTagsCreate/LanguageTagsCreate.csprojUpdates dependencies (logging, resilience, commandline), adjusts AOT settings.
LanguageTagsCreate/HttpClientFactory.csAdds resilient HttpClient creation and handler pipeline configuration.
LanguageTagsCreate/GlobalUsings.csAdds global usings for the codegen CLI project.
LanguageTagsCreate/Extensions.csAdds logging-related extension helpers for Serilog + MEL.
LanguageTagsCreate/CreateTagData.csExtracts codegen steps into a dedicated type (download → JSON → codegen).
LanguageTagsCreate/CommandLine.csAdds System.CommandLine parsing and execution wiring.
LanguageTagsCreate/AssemblyInfo.csAdds assembly metadata helpers for user-agent/version reporting.
LanguageTagsCreate/.editorconfigAdds local analyzer suppression configuration for the CLI project.
LanguageTags/Rfc5646DataGen.csAdjusts generated data type to sealed partial to match API changes.
LanguageTags/Rfc5646Data.csConverts registry I/O + codegen to async streaming; adds logging hooks and options overloads.
LanguageTags/Options.csAdds public Options type for per-call/per-instance logging configuration.
LanguageTags/LogOptions.csAdds global logging configuration and logger creation helpers.
LanguageTags/LanguageTags.csprojAdds logging abstractions dependency; removes Husky restore target.
LanguageTags/LanguageTagParser.csAdds logging on parse failures/normalization; refactors extensions/private-use handling to immutable records.
LanguageTags/LanguageTagBuilder.csSeals builder; updates extension/private-use handling; adds options overload for Normalize.
LanguageTags/LanguageTag.csSeals type; adds options overloads; refactors ExtensionTag/PrivateUseTag into records with normalization helpers.
LanguageTags/LanguageSchema.csConverts file writing helper to async.
LanguageTags/LanguageLookup.csConverts to primary constructor w/ logger; adds debug logging and equivalence helpers.
LanguageTags/Iso6393Data.csConverts ISO 639-3 I/O + codegen to async streaming; adds logging + options overloads.
LanguageTags/Iso6392DataGen.csAdjusts generated data type to sealed partial to match API changes.
LanguageTags/Iso6392Data.csConverts ISO 639-2 I/O + codegen to async streaming; adds logging + options overloads.
LanguageTags/GlobalUsings.csAdds global usings for the library project.
LanguageTags/Extensions.csAdds strongly-typed LoggerMessage helpers for library operations.
LanguageTags/.editorconfigAdds local analyzer suppression configuration for the library project.
LanguageTags.code-workspaceUpdates cSpell words and default solution reference.
LanguageData/iso6393.jsonUpdates ISO 639-3 data content.
LanguageData/iso6393Updates ISO 639-3 source data content.
LICENSEUpdates copyright year.
HISTORY.mdAdds release history document (including v1.2 notes).
CODESTYLE.mdAdds coding standards/tooling documentation.
AGENTS.mdAdds contributor/agent guidance and project overview pointers.
.vscode/tasks.jsonUpdates build task wiring and dependencies.
.vscode/launch.jsonUpdates launch args to match new CLI --codepath requirement.
.husky/pre-commitAdds Husky pre-commit hook runner script.
.gitignoreAdds additional ignore patterns.
.github/workflows/update-languagedata.ymlRemoves old periodic data update workflow.
.github/workflows/test-task.ymlRemoves old test workflow.
.github/workflows/test-release-task.ymlAdds new test workflow composition for release pipeline validation.
.github/workflows/test-pull-request.ymlAdds PR workflow invoking the release test task and status check.
.github/workflows/test-pr.ymlRemoves old PR test workflow.
.github/workflows/run-periodic-codegen-pull-request.ymlAdds new scheduled weekly codegen PR workflow.
.github/workflows/run-codegen-pull-request-task.ymlAdds reusable workflow task to run codegen + open PR.
.github/workflows/publish-release.ymlRefactors release publishing to use reusable build tasks + date badge job.
.github/workflows/merge-bot-pull-request.ymlRefactors merge automation and tightens conditions for bot merges.
.github/workflows/get-version-task.ymlAdds reusable workflow to compute Nerdbank.GitVersioning outputs.
.github/workflows/build-release-task.ymlAdds reusable workflow for building and optionally publishing GitHub/NuGet releases.
.github/workflows/build-library-task.ymlAdds reusable workflow to build library artifacts and optionally push to NuGet.
.github/workflows/build-datebadge-task.ymlAdds reusable workflow to publish a BYOB “last build” badge.
.github/dependabot.ymlRemoves dependabot config for develop branch updates.
.github/copilot-instructions.mdUpdates project instructions to reflect v1.2 APIs and workflow changes.
.config/dotnet-tools.jsonAdds dotnet-outdated-tool to tool manifest.

Comment threadLanguageTagsCreate/Program.cs Outdated
Comment threadLanguageTags/LanguageTagBuilder.cs
Comment threadLanguageTags/LanguageTagParser.cs
Comment threadCODESTYLE.md Outdated
Comment threadLanguageTagsCreate/CommandLine.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTagsCreate/CreateTagData.cs

CopilotAI commented Jan 30, 2026

Copy link
Copy Markdown

@ptr727 I've opened a new pull request, #69, to work on those changes. Once the pull request is ready, I'll request review from you.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:30

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 64 out of 65 changed files in this pull request and generated 2 comments.

Comment threadLanguageTags/LanguageTag.cs
Comment thread.github/copilot-instructions.md Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:46

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 64 out of 65 changed files in this pull request and generated 9 comments.

Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/LanguageTag.cs
Comment thread.github/workflows/publish-release.yml
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTagsCreate/CommandLine.cs
Comment threadLanguageTags/LogOptions.cs
…d equality checks (#70)
- Added normalization methods for ExtensionTag and PrivateUseTag to
ensure consistent casing and ordering of tags.
- Implemented equality checks and hash code generation for ExtensionTag
and PrivateUseTag.
- Updated LanguageTagBuilder to throw an exception for empty extension
tags.
- Enhanced validation in LanguageTagParser to reject whitespace in
extension tags.
- Added tests to verify new behaviors and ensure robustness.
…ling in Iso6392Data, Iso6393Data, and Rfc5646Data classes; add tests for LanguageTag parsing and normalization with options; implement logging options tests. (#71)
CopilotAI review requested due to automatic review settings January 30, 2026 04:12
@ptr727
ptr727 enabled auto-merge (squash) January 30, 2026 04:13

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 65 out of 66 changed files in this pull request and generated 9 comments.

Comment threadLanguageTagsCreate/Program.cs
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Enhance the LanguageTags library with improved encapsulation,
asynchronous operations, and logging capabilities. Update various
dependencies, including actions and nuget packages, while also refining
documentation and adding tests for new functionalities. Address issues
related to husky installation and improve error handling in language tag
processing.
@ptr727
ptr727 disabled auto-merge January 30, 2026 04:37
@ptr727
ptr727 merged commit 7b1a00b into mainJan 30, 2026
13 checks passed
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.

3 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" + '
Develop by ptr727 · Pull Request #68 · ptr727/LanguageTags · GitHub
Skip to content

Develop - #68

Merged
ptr727 merged 9 commits into
mainfrom
develop
Jan 30, 2026
Merged

Develop#68
ptr727 merged 9 commits into
mainfrom
develop

Conversation

@ptr727

Copy link
Copy Markdown
Owner

No description provided.

ptr727and others added 3 commits January 4, 2026 20:33
* Develop (#60)
* Bump actions/checkout from 4 to 5 in the actions-deps group
Bumps the actions-deps group with 1 update: [actions/checkout](https://github.com/actions/checkout).
Updates `actions/checkout` from 4 to 5
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 3 updates
Bumps csharpier from 1.1.1 to 1.1.2
Bumps xunit.analyzers from 1.23.0 to 1.24.0
Bumps xunit.runner.visualstudio from 3.1.3 to 3.1.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.1.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
- dependency-name: xunit.analyzers
dependency-version: 1.24.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps AwesomeAssertions from 9.1.0 to 9.2.0
---
updated-dependencies:
- dependency-name: AwesomeAssertions
dependency-version: 9.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps xunit.runner.visualstudio from 3.1.4 to 3.1.5
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump csharpier and husky
Bumps csharpier from 1.1.2 to 1.2.1
Bumps husky from 0.7.2 to 0.8.0
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: husky
dependency-version: 0.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump Serilog.Sinks.Console from 6.0.0 to 6.1.1
---
updated-dependencies:
- dependency-name: Serilog.Sinks.Console
dependency-version: 6.1.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Update dependencies
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.1 to 1.2.3
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the actions-deps group across 1 directory with 3 updates (#48)
Bumps the actions-deps group with 3 updates in the / directory: [actions/setup-dotnet](https://github.com/actions/setup-dotnet), [actions/checkout](https://github.com/actions/checkout) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request).
Updates `actions/setup-dotnet` from 4 to 5
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](actions/setup-dotnet@v4...v5)
Updates `actions/checkout` from 5 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)
Updates `peter-evans/create-pull-request` from 7 to 8
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v7...v8)
---
updated-dependencies:
- dependency-name: actions/setup-dotnet
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: peter-evans/create-pull-request
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.3 to 1.2.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.4 to 1.2.5
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Add AOT support, document code and add test cases with help from copilot
* Add version history
* readme
* Fix missing `},` and enable docs generation
* dotnet 10
* install husky
* lf
* crlf
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update language data and generated files (#61)
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
* Merge remote-tracking branch 'origin/develop'
* Develop (#60)
* Bump actions/checkout from 4 to 5 in the actions-deps group
Bumps the actions-deps group with 1 update: [actions/checkout](https://github.com/actions/checkout).
Updates `actions/checkout` from 4 to 5
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 3 updates
Bumps csharpier from 1.1.1 to 1.1.2
Bumps xunit.analyzers from 1.23.0 to 1.24.0
Bumps xunit.runner.visualstudio from 3.1.3 to 3.1.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.1.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
- dependency-name: xunit.analyzers
dependency-version: 1.24.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps AwesomeAssertions from 9.1.0 to 9.2.0
---
updated-dependencies:
- dependency-name: AwesomeAssertions
dependency-version: 9.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps xunit.runner.visualstudio from 3.1.4 to 3.1.5
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump csharpier and husky
Bumps csharpier from 1.1.2 to 1.2.1
Bumps husky from 0.7.2 to 0.8.0
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: husky
dependency-version: 0.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump Serilog.Sinks.Console from 6.0.0 to 6.1.1
---
updated-dependencies:
- dependency-name: Serilog.Sinks.Console
dependency-version: 6.1.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Update dependencies
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.1 to 1.2.3
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the actions-deps group across 1 directory with 3 updates (#48)
Bumps the actions-deps group with 3 updates in the / directory: [actions/setup-dotnet](https://github.com/actions/setup-dotnet), [actions/checkout](https://github.com/actions/checkout) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request).
Updates `actions/setup-dotnet` from 4 to 5
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](actions/setup-dotnet@v4...v5)
Updates `actions/checkout` from 5 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)
Updates `peter-evans/create-pull-request` from 7 to 8
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v7...v8)
---
updated-dependencies:
- dependency-name: actions/setup-dotnet
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: peter-evans/create-pull-request
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.3 to 1.2.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.4 to 1.2.5
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Add AOT support, document code and add test cases with help from copilot
* Add version history
* readme
* Fix missing `},` and enable docs generation
* dotnet 10
* install husky
* lf
* crlf
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update language data and generated files (#61)
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
* Refactor and enhance language tag library
- Change Rfc5646Record to a sealed record for better encapsulation.
- Add tests for null or empty input handling in Iso6392 and Iso6393.
- Enhance LanguageLookupTests with case-insensitive tag comparison and validation for null inputs.
- Extend LanguageTagBuilderTests to include multiple variant additions and null checks.
- Improve LanguageTagTests with new tests for ExtensionTag and PrivateUseTag constructors and equality.
- Add tests for Rfc5646Data to check file date and null input handling.
- Update README.md for improved clarity on build status, usage, and references.
* Refactor language tag classes to be sealed and improve logging and command line handling
- Changed `Iso6392Data`, `Iso6393Data`, and `Rfc5646Data` classes to be sealed for better performance and clarity.
- Updated logging configuration to use Serilog with improved context handling.
- Introduced a new command line interface for downloading and generating language tag data.
- Added options for configuring logging behavior and file paths.
- Implemented data downloading and JSON conversion in a structured manner.
- Removed unused namespaces and improved code organization across various files.
- Added global usings and simplified test project structure.
* Refactor LanguageTags library to support asynchronous operations and enhanced logging
- Updated LanguageSchema to provide asynchronous file writing with WriteFileAsync.
- Enhanced LanguageTag and LanguageTagParser to support parsing with logging options.
- Introduced LogOptions for global logging configuration and integrated logging into parsing and data loading processes.
- Converted data loading and saving methods in Rfc5646Data, Iso6392Data, and Iso6393Data to asynchronous counterparts.
- Added unit tests for asynchronous loading and saving of JSON data for Iso6392Data, Iso6393Data, and Rfc5646Data.
- Improved CreateTagData to utilize asynchronous methods for data conversion and code generation.
* Update README to reflect asynchronous loading methods and add debug log configuration examples
* Update documentation
* Refactor and enhance language tag handling
- Updated launch configuration to include a trailing comma for args.
- Added new language tags "ANTLR" and "datebadge" to the workspace.
- Improved asynchronous file handling in Iso6392Data and Iso6393Data classes by using await using for file streams.
- Simplified record parsing logic in Iso6392Data and Iso6393Data to reduce redundancy.
- Enhanced error handling for invalid records in both classes.
- Updated Rfc5646Data to improve async file operations and error logging.
- Refactored CreateTagData to streamline HTTP stream handling and file writing.
- Modified ExtensionTag to return an empty string when tags are empty.
- Added unit test for ExtensionTag to verify empty tag behavior.
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:13

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

This PR updates LanguageTags to v1.2, refactors file/data IO to async-only APIs, introduces configurable logging (global and per-call), and modernizes the CLI/codegen workflow plus CI automation.

Changes:

  • Bump library version to 1.2 and update documentation/release history accordingly.
  • Refactor data load/save/codegen to stream-based async APIs and add Options/LogOptions logging configuration.
  • Rework LanguageTagsCreate CLI and GitHub Actions workflows for release, codegen PRs, and PR validation.

Reviewed changes

Copilot reviewed 63 out of 66 changed files in this pull request and generated 15 comments.

Show a summary per file
FileDescription
version.jsonBumps project version to 1.2.
README.mdRefreshes documentation: badges, installation, logging, async APIs, and usage sections.
LanguageTagsTests/Rfc5646Tests.csUpdates tests to async load APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/LanguageTagsTests.csprojSimplifies test project properties; removes packaging metadata.
LanguageTagsTests/LanguageTagTests.csAdds tests for ExtensionTag/PrivateUseTag constructors and behavior.
LanguageTagsTests/LanguageTagParserTests.csSwitches to global usings for test dependencies.
LanguageTagsTests/LanguageTagBuilderTests.csAdds argument-null tests and variant range tests for builder APIs.
LanguageTagsTests/LanguageLookupTests.csAdds equivalence tests, overrides mutability test, and null-arg tests.
LanguageTagsTests/Iso6393Tests.csUpdates to async APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/Iso6392Tests.csUpdates to async APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/GlobalUsings.csIntroduces global usings for test project (xUnit/AwesomeAssertions + common BCL).
LanguageTagsTests/Fixture.csSwitches to global usings for test dependencies.
LanguageTagsCreate/Program.csRefactors CLI entrypoint to System.CommandLine + logging initialization + codegen orchestration.
LanguageTagsCreate/LoggerFactory.csAdds Serilog-based logger factory integration for CLI and library logging setup.
LanguageTagsCreate/LanguageTagsCreate.csprojUpdates dependencies (logging, resilience, commandline), adjusts AOT settings.
LanguageTagsCreate/HttpClientFactory.csAdds resilient HttpClient creation and handler pipeline configuration.
LanguageTagsCreate/GlobalUsings.csAdds global usings for the codegen CLI project.
LanguageTagsCreate/Extensions.csAdds logging-related extension helpers for Serilog + MEL.
LanguageTagsCreate/CreateTagData.csExtracts codegen steps into a dedicated type (download → JSON → codegen).
LanguageTagsCreate/CommandLine.csAdds System.CommandLine parsing and execution wiring.
LanguageTagsCreate/AssemblyInfo.csAdds assembly metadata helpers for user-agent/version reporting.
LanguageTagsCreate/.editorconfigAdds local analyzer suppression configuration for the CLI project.
LanguageTags/Rfc5646DataGen.csAdjusts generated data type to sealed partial to match API changes.
LanguageTags/Rfc5646Data.csConverts registry I/O + codegen to async streaming; adds logging hooks and options overloads.
LanguageTags/Options.csAdds public Options type for per-call/per-instance logging configuration.
LanguageTags/LogOptions.csAdds global logging configuration and logger creation helpers.
LanguageTags/LanguageTags.csprojAdds logging abstractions dependency; removes Husky restore target.
LanguageTags/LanguageTagParser.csAdds logging on parse failures/normalization; refactors extensions/private-use handling to immutable records.
LanguageTags/LanguageTagBuilder.csSeals builder; updates extension/private-use handling; adds options overload for Normalize.
LanguageTags/LanguageTag.csSeals type; adds options overloads; refactors ExtensionTag/PrivateUseTag into records with normalization helpers.
LanguageTags/LanguageSchema.csConverts file writing helper to async.
LanguageTags/LanguageLookup.csConverts to primary constructor w/ logger; adds debug logging and equivalence helpers.
LanguageTags/Iso6393Data.csConverts ISO 639-3 I/O + codegen to async streaming; adds logging + options overloads.
LanguageTags/Iso6392DataGen.csAdjusts generated data type to sealed partial to match API changes.
LanguageTags/Iso6392Data.csConverts ISO 639-2 I/O + codegen to async streaming; adds logging + options overloads.
LanguageTags/GlobalUsings.csAdds global usings for the library project.
LanguageTags/Extensions.csAdds strongly-typed LoggerMessage helpers for library operations.
LanguageTags/.editorconfigAdds local analyzer suppression configuration for the library project.
LanguageTags.code-workspaceUpdates cSpell words and default solution reference.
LanguageData/iso6393.jsonUpdates ISO 639-3 data content.
LanguageData/iso6393Updates ISO 639-3 source data content.
LICENSEUpdates copyright year.
HISTORY.mdAdds release history document (including v1.2 notes).
CODESTYLE.mdAdds coding standards/tooling documentation.
AGENTS.mdAdds contributor/agent guidance and project overview pointers.
.vscode/tasks.jsonUpdates build task wiring and dependencies.
.vscode/launch.jsonUpdates launch args to match new CLI --codepath requirement.
.husky/pre-commitAdds Husky pre-commit hook runner script.
.gitignoreAdds additional ignore patterns.
.github/workflows/update-languagedata.ymlRemoves old periodic data update workflow.
.github/workflows/test-task.ymlRemoves old test workflow.
.github/workflows/test-release-task.ymlAdds new test workflow composition for release pipeline validation.
.github/workflows/test-pull-request.ymlAdds PR workflow invoking the release test task and status check.
.github/workflows/test-pr.ymlRemoves old PR test workflow.
.github/workflows/run-periodic-codegen-pull-request.ymlAdds new scheduled weekly codegen PR workflow.
.github/workflows/run-codegen-pull-request-task.ymlAdds reusable workflow task to run codegen + open PR.
.github/workflows/publish-release.ymlRefactors release publishing to use reusable build tasks + date badge job.
.github/workflows/merge-bot-pull-request.ymlRefactors merge automation and tightens conditions for bot merges.
.github/workflows/get-version-task.ymlAdds reusable workflow to compute Nerdbank.GitVersioning outputs.
.github/workflows/build-release-task.ymlAdds reusable workflow for building and optionally publishing GitHub/NuGet releases.
.github/workflows/build-library-task.ymlAdds reusable workflow to build library artifacts and optionally push to NuGet.
.github/workflows/build-datebadge-task.ymlAdds reusable workflow to publish a BYOB “last build” badge.
.github/dependabot.ymlRemoves dependabot config for develop branch updates.
.github/copilot-instructions.mdUpdates project instructions to reflect v1.2 APIs and workflow changes.
.config/dotnet-tools.jsonAdds dotnet-outdated-tool to tool manifest.

Comment threadLanguageTagsCreate/Program.cs Outdated
Comment threadLanguageTags/LanguageTagBuilder.cs
Comment threadLanguageTags/LanguageTagParser.cs
Comment threadCODESTYLE.md Outdated
Comment threadLanguageTagsCreate/CommandLine.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTagsCreate/CreateTagData.cs

CopilotAI commented Jan 30, 2026

Copy link
Copy Markdown

@ptr727 I've opened a new pull request, #69, to work on those changes. Once the pull request is ready, I'll request review from you.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:30

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 64 out of 65 changed files in this pull request and generated 2 comments.

Comment threadLanguageTags/LanguageTag.cs
Comment thread.github/copilot-instructions.md Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:46

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 64 out of 65 changed files in this pull request and generated 9 comments.

Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/LanguageTag.cs
Comment thread.github/workflows/publish-release.yml
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTagsCreate/CommandLine.cs
Comment threadLanguageTags/LogOptions.cs
…d equality checks (#70)
- Added normalization methods for ExtensionTag and PrivateUseTag to
ensure consistent casing and ordering of tags.
- Implemented equality checks and hash code generation for ExtensionTag
and PrivateUseTag.
- Updated LanguageTagBuilder to throw an exception for empty extension
tags.
- Enhanced validation in LanguageTagParser to reject whitespace in
extension tags.
- Added tests to verify new behaviors and ensure robustness.
…ling in Iso6392Data, Iso6393Data, and Rfc5646Data classes; add tests for LanguageTag parsing and normalization with options; implement logging options tests. (#71)
CopilotAI review requested due to automatic review settings January 30, 2026 04:12
@ptr727
ptr727 enabled auto-merge (squash) January 30, 2026 04:13

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 65 out of 66 changed files in this pull request and generated 9 comments.

Comment threadLanguageTagsCreate/Program.cs
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Enhance the LanguageTags library with improved encapsulation,
asynchronous operations, and logging capabilities. Update various
dependencies, including actions and nuget packages, while also refining
documentation and adding tests for new functionalities. Address issues
related to husky installation and improve error handling in language tag
processing.
@ptr727
ptr727 disabled auto-merge January 30, 2026 04:37
@ptr727
ptr727 merged commit 7b1a00b into mainJan 30, 2026
13 checks passed
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.

3 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('^' + ".*" + ' Develop by ptr727 · Pull Request #68 · ptr727/LanguageTags · GitHub
Skip to content

Develop - #68

Merged
ptr727 merged 9 commits into
mainfrom
develop
Jan 30, 2026
Merged

Develop#68
ptr727 merged 9 commits into
mainfrom
develop

Conversation

@ptr727

Copy link
Copy Markdown
Owner

No description provided.

ptr727and others added 3 commits January 4, 2026 20:33
* Develop (#60)
* Bump actions/checkout from 4 to 5 in the actions-deps group
Bumps the actions-deps group with 1 update: [actions/checkout](https://github.com/actions/checkout).
Updates `actions/checkout` from 4 to 5
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 3 updates
Bumps csharpier from 1.1.1 to 1.1.2
Bumps xunit.analyzers from 1.23.0 to 1.24.0
Bumps xunit.runner.visualstudio from 3.1.3 to 3.1.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.1.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
- dependency-name: xunit.analyzers
dependency-version: 1.24.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps AwesomeAssertions from 9.1.0 to 9.2.0
---
updated-dependencies:
- dependency-name: AwesomeAssertions
dependency-version: 9.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps xunit.runner.visualstudio from 3.1.4 to 3.1.5
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump csharpier and husky
Bumps csharpier from 1.1.2 to 1.2.1
Bumps husky from 0.7.2 to 0.8.0
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: husky
dependency-version: 0.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump Serilog.Sinks.Console from 6.0.0 to 6.1.1
---
updated-dependencies:
- dependency-name: Serilog.Sinks.Console
dependency-version: 6.1.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Update dependencies
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.1 to 1.2.3
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the actions-deps group across 1 directory with 3 updates (#48)
Bumps the actions-deps group with 3 updates in the / directory: [actions/setup-dotnet](https://github.com/actions/setup-dotnet), [actions/checkout](https://github.com/actions/checkout) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request).
Updates `actions/setup-dotnet` from 4 to 5
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](actions/setup-dotnet@v4...v5)
Updates `actions/checkout` from 5 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)
Updates `peter-evans/create-pull-request` from 7 to 8
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v7...v8)
---
updated-dependencies:
- dependency-name: actions/setup-dotnet
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: peter-evans/create-pull-request
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.3 to 1.2.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.4 to 1.2.5
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Add AOT support, document code and add test cases with help from copilot
* Add version history
* readme
* Fix missing `},` and enable docs generation
* dotnet 10
* install husky
* lf
* crlf
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update language data and generated files (#61)
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
* Merge remote-tracking branch 'origin/develop'
* Develop (#60)
* Bump actions/checkout from 4 to 5 in the actions-deps group
Bumps the actions-deps group with 1 update: [actions/checkout](https://github.com/actions/checkout).
Updates `actions/checkout` from 4 to 5
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 3 updates
Bumps csharpier from 1.1.1 to 1.1.2
Bumps xunit.analyzers from 1.23.0 to 1.24.0
Bumps xunit.runner.visualstudio from 3.1.3 to 3.1.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.1.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
- dependency-name: xunit.analyzers
dependency-version: 1.24.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps AwesomeAssertions from 9.1.0 to 9.2.0
---
updated-dependencies:
- dependency-name: AwesomeAssertions
dependency-version: 9.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps xunit.runner.visualstudio from 3.1.4 to 3.1.5
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump csharpier and husky
Bumps csharpier from 1.1.2 to 1.2.1
Bumps husky from 0.7.2 to 0.8.0
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: husky
dependency-version: 0.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump Serilog.Sinks.Console from 6.0.0 to 6.1.1
---
updated-dependencies:
- dependency-name: Serilog.Sinks.Console
dependency-version: 6.1.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Update dependencies
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.1 to 1.2.3
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the actions-deps group across 1 directory with 3 updates (#48)
Bumps the actions-deps group with 3 updates in the / directory: [actions/setup-dotnet](https://github.com/actions/setup-dotnet), [actions/checkout](https://github.com/actions/checkout) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request).
Updates `actions/setup-dotnet` from 4 to 5
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](actions/setup-dotnet@v4...v5)
Updates `actions/checkout` from 5 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)
Updates `peter-evans/create-pull-request` from 7 to 8
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v7...v8)
---
updated-dependencies:
- dependency-name: actions/setup-dotnet
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: peter-evans/create-pull-request
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.3 to 1.2.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.4 to 1.2.5
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Add AOT support, document code and add test cases with help from copilot
* Add version history
* readme
* Fix missing `},` and enable docs generation
* dotnet 10
* install husky
* lf
* crlf
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update language data and generated files (#61)
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
* Refactor and enhance language tag library
- Change Rfc5646Record to a sealed record for better encapsulation.
- Add tests for null or empty input handling in Iso6392 and Iso6393.
- Enhance LanguageLookupTests with case-insensitive tag comparison and validation for null inputs.
- Extend LanguageTagBuilderTests to include multiple variant additions and null checks.
- Improve LanguageTagTests with new tests for ExtensionTag and PrivateUseTag constructors and equality.
- Add tests for Rfc5646Data to check file date and null input handling.
- Update README.md for improved clarity on build status, usage, and references.
* Refactor language tag classes to be sealed and improve logging and command line handling
- Changed `Iso6392Data`, `Iso6393Data`, and `Rfc5646Data` classes to be sealed for better performance and clarity.
- Updated logging configuration to use Serilog with improved context handling.
- Introduced a new command line interface for downloading and generating language tag data.
- Added options for configuring logging behavior and file paths.
- Implemented data downloading and JSON conversion in a structured manner.
- Removed unused namespaces and improved code organization across various files.
- Added global usings and simplified test project structure.
* Refactor LanguageTags library to support asynchronous operations and enhanced logging
- Updated LanguageSchema to provide asynchronous file writing with WriteFileAsync.
- Enhanced LanguageTag and LanguageTagParser to support parsing with logging options.
- Introduced LogOptions for global logging configuration and integrated logging into parsing and data loading processes.
- Converted data loading and saving methods in Rfc5646Data, Iso6392Data, and Iso6393Data to asynchronous counterparts.
- Added unit tests for asynchronous loading and saving of JSON data for Iso6392Data, Iso6393Data, and Rfc5646Data.
- Improved CreateTagData to utilize asynchronous methods for data conversion and code generation.
* Update README to reflect asynchronous loading methods and add debug log configuration examples
* Update documentation
* Refactor and enhance language tag handling
- Updated launch configuration to include a trailing comma for args.
- Added new language tags "ANTLR" and "datebadge" to the workspace.
- Improved asynchronous file handling in Iso6392Data and Iso6393Data classes by using await using for file streams.
- Simplified record parsing logic in Iso6392Data and Iso6393Data to reduce redundancy.
- Enhanced error handling for invalid records in both classes.
- Updated Rfc5646Data to improve async file operations and error logging.
- Refactored CreateTagData to streamline HTTP stream handling and file writing.
- Modified ExtensionTag to return an empty string when tags are empty.
- Added unit test for ExtensionTag to verify empty tag behavior.
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:13

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

This PR updates LanguageTags to v1.2, refactors file/data IO to async-only APIs, introduces configurable logging (global and per-call), and modernizes the CLI/codegen workflow plus CI automation.

Changes:

  • Bump library version to 1.2 and update documentation/release history accordingly.
  • Refactor data load/save/codegen to stream-based async APIs and add Options/LogOptions logging configuration.
  • Rework LanguageTagsCreate CLI and GitHub Actions workflows for release, codegen PRs, and PR validation.

Reviewed changes

Copilot reviewed 63 out of 66 changed files in this pull request and generated 15 comments.

Show a summary per file
FileDescription
version.jsonBumps project version to 1.2.
README.mdRefreshes documentation: badges, installation, logging, async APIs, and usage sections.
LanguageTagsTests/Rfc5646Tests.csUpdates tests to async load APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/LanguageTagsTests.csprojSimplifies test project properties; removes packaging metadata.
LanguageTagsTests/LanguageTagTests.csAdds tests for ExtensionTag/PrivateUseTag constructors and behavior.
LanguageTagsTests/LanguageTagParserTests.csSwitches to global usings for test dependencies.
LanguageTagsTests/LanguageTagBuilderTests.csAdds argument-null tests and variant range tests for builder APIs.
LanguageTagsTests/LanguageLookupTests.csAdds equivalence tests, overrides mutability test, and null-arg tests.
LanguageTagsTests/Iso6393Tests.csUpdates to async APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/Iso6392Tests.csUpdates to async APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/GlobalUsings.csIntroduces global usings for test project (xUnit/AwesomeAssertions + common BCL).
LanguageTagsTests/Fixture.csSwitches to global usings for test dependencies.
LanguageTagsCreate/Program.csRefactors CLI entrypoint to System.CommandLine + logging initialization + codegen orchestration.
LanguageTagsCreate/LoggerFactory.csAdds Serilog-based logger factory integration for CLI and library logging setup.
LanguageTagsCreate/LanguageTagsCreate.csprojUpdates dependencies (logging, resilience, commandline), adjusts AOT settings.
LanguageTagsCreate/HttpClientFactory.csAdds resilient HttpClient creation and handler pipeline configuration.
LanguageTagsCreate/GlobalUsings.csAdds global usings for the codegen CLI project.
LanguageTagsCreate/Extensions.csAdds logging-related extension helpers for Serilog + MEL.
LanguageTagsCreate/CreateTagData.csExtracts codegen steps into a dedicated type (download → JSON → codegen).
LanguageTagsCreate/CommandLine.csAdds System.CommandLine parsing and execution wiring.
LanguageTagsCreate/AssemblyInfo.csAdds assembly metadata helpers for user-agent/version reporting.
LanguageTagsCreate/.editorconfigAdds local analyzer suppression configuration for the CLI project.
LanguageTags/Rfc5646DataGen.csAdjusts generated data type to sealed partial to match API changes.
LanguageTags/Rfc5646Data.csConverts registry I/O + codegen to async streaming; adds logging hooks and options overloads.
LanguageTags/Options.csAdds public Options type for per-call/per-instance logging configuration.
LanguageTags/LogOptions.csAdds global logging configuration and logger creation helpers.
LanguageTags/LanguageTags.csprojAdds logging abstractions dependency; removes Husky restore target.
LanguageTags/LanguageTagParser.csAdds logging on parse failures/normalization; refactors extensions/private-use handling to immutable records.
LanguageTags/LanguageTagBuilder.csSeals builder; updates extension/private-use handling; adds options overload for Normalize.
LanguageTags/LanguageTag.csSeals type; adds options overloads; refactors ExtensionTag/PrivateUseTag into records with normalization helpers.
LanguageTags/LanguageSchema.csConverts file writing helper to async.
LanguageTags/LanguageLookup.csConverts to primary constructor w/ logger; adds debug logging and equivalence helpers.
LanguageTags/Iso6393Data.csConverts ISO 639-3 I/O + codegen to async streaming; adds logging + options overloads.
LanguageTags/Iso6392DataGen.csAdjusts generated data type to sealed partial to match API changes.
LanguageTags/Iso6392Data.csConverts ISO 639-2 I/O + codegen to async streaming; adds logging + options overloads.
LanguageTags/GlobalUsings.csAdds global usings for the library project.
LanguageTags/Extensions.csAdds strongly-typed LoggerMessage helpers for library operations.
LanguageTags/.editorconfigAdds local analyzer suppression configuration for the library project.
LanguageTags.code-workspaceUpdates cSpell words and default solution reference.
LanguageData/iso6393.jsonUpdates ISO 639-3 data content.
LanguageData/iso6393Updates ISO 639-3 source data content.
LICENSEUpdates copyright year.
HISTORY.mdAdds release history document (including v1.2 notes).
CODESTYLE.mdAdds coding standards/tooling documentation.
AGENTS.mdAdds contributor/agent guidance and project overview pointers.
.vscode/tasks.jsonUpdates build task wiring and dependencies.
.vscode/launch.jsonUpdates launch args to match new CLI --codepath requirement.
.husky/pre-commitAdds Husky pre-commit hook runner script.
.gitignoreAdds additional ignore patterns.
.github/workflows/update-languagedata.ymlRemoves old periodic data update workflow.
.github/workflows/test-task.ymlRemoves old test workflow.
.github/workflows/test-release-task.ymlAdds new test workflow composition for release pipeline validation.
.github/workflows/test-pull-request.ymlAdds PR workflow invoking the release test task and status check.
.github/workflows/test-pr.ymlRemoves old PR test workflow.
.github/workflows/run-periodic-codegen-pull-request.ymlAdds new scheduled weekly codegen PR workflow.
.github/workflows/run-codegen-pull-request-task.ymlAdds reusable workflow task to run codegen + open PR.
.github/workflows/publish-release.ymlRefactors release publishing to use reusable build tasks + date badge job.
.github/workflows/merge-bot-pull-request.ymlRefactors merge automation and tightens conditions for bot merges.
.github/workflows/get-version-task.ymlAdds reusable workflow to compute Nerdbank.GitVersioning outputs.
.github/workflows/build-release-task.ymlAdds reusable workflow for building and optionally publishing GitHub/NuGet releases.
.github/workflows/build-library-task.ymlAdds reusable workflow to build library artifacts and optionally push to NuGet.
.github/workflows/build-datebadge-task.ymlAdds reusable workflow to publish a BYOB “last build” badge.
.github/dependabot.ymlRemoves dependabot config for develop branch updates.
.github/copilot-instructions.mdUpdates project instructions to reflect v1.2 APIs and workflow changes.
.config/dotnet-tools.jsonAdds dotnet-outdated-tool to tool manifest.

Comment threadLanguageTagsCreate/Program.cs Outdated
Comment threadLanguageTags/LanguageTagBuilder.cs
Comment threadLanguageTags/LanguageTagParser.cs
Comment threadCODESTYLE.md Outdated
Comment threadLanguageTagsCreate/CommandLine.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTagsCreate/CreateTagData.cs

CopilotAI commented Jan 30, 2026

Copy link
Copy Markdown

@ptr727 I've opened a new pull request, #69, to work on those changes. Once the pull request is ready, I'll request review from you.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:30

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 64 out of 65 changed files in this pull request and generated 2 comments.

Comment threadLanguageTags/LanguageTag.cs
Comment thread.github/copilot-instructions.md Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:46

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 64 out of 65 changed files in this pull request and generated 9 comments.

Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/LanguageTag.cs
Comment thread.github/workflows/publish-release.yml
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTagsCreate/CommandLine.cs
Comment threadLanguageTags/LogOptions.cs
…d equality checks (#70)
- Added normalization methods for ExtensionTag and PrivateUseTag to
ensure consistent casing and ordering of tags.
- Implemented equality checks and hash code generation for ExtensionTag
and PrivateUseTag.
- Updated LanguageTagBuilder to throw an exception for empty extension
tags.
- Enhanced validation in LanguageTagParser to reject whitespace in
extension tags.
- Added tests to verify new behaviors and ensure robustness.
…ling in Iso6392Data, Iso6393Data, and Rfc5646Data classes; add tests for LanguageTag parsing and normalization with options; implement logging options tests. (#71)
CopilotAI review requested due to automatic review settings January 30, 2026 04:12
@ptr727
ptr727 enabled auto-merge (squash) January 30, 2026 04:13

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 65 out of 66 changed files in this pull request and generated 9 comments.

Comment threadLanguageTagsCreate/Program.cs
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Enhance the LanguageTags library with improved encapsulation,
asynchronous operations, and logging capabilities. Update various
dependencies, including actions and nuget packages, while also refining
documentation and adding tests for new functionalities. Address issues
related to husky installation and improve error handling in language tag
processing.
@ptr727
ptr727 disabled auto-merge January 30, 2026 04:37
@ptr727
ptr727 merged commit 7b1a00b into mainJan 30, 2026
13 checks passed
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.

3 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('^' + ".*" + ' Develop by ptr727 · Pull Request #68 · ptr727/LanguageTags · GitHub
Skip to content

Develop - #68

Merged
ptr727 merged 9 commits into
mainfrom
develop
Jan 30, 2026
Merged

Develop#68
ptr727 merged 9 commits into
mainfrom
develop

Conversation

@ptr727

Copy link
Copy Markdown
Owner

No description provided.

ptr727and others added 3 commits January 4, 2026 20:33
* Develop (#60)
* Bump actions/checkout from 4 to 5 in the actions-deps group
Bumps the actions-deps group with 1 update: [actions/checkout](https://github.com/actions/checkout).
Updates `actions/checkout` from 4 to 5
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 3 updates
Bumps csharpier from 1.1.1 to 1.1.2
Bumps xunit.analyzers from 1.23.0 to 1.24.0
Bumps xunit.runner.visualstudio from 3.1.3 to 3.1.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.1.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
- dependency-name: xunit.analyzers
dependency-version: 1.24.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps AwesomeAssertions from 9.1.0 to 9.2.0
---
updated-dependencies:
- dependency-name: AwesomeAssertions
dependency-version: 9.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps xunit.runner.visualstudio from 3.1.4 to 3.1.5
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump csharpier and husky
Bumps csharpier from 1.1.2 to 1.2.1
Bumps husky from 0.7.2 to 0.8.0
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: husky
dependency-version: 0.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump Serilog.Sinks.Console from 6.0.0 to 6.1.1
---
updated-dependencies:
- dependency-name: Serilog.Sinks.Console
dependency-version: 6.1.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Update dependencies
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.1 to 1.2.3
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the actions-deps group across 1 directory with 3 updates (#48)
Bumps the actions-deps group with 3 updates in the / directory: [actions/setup-dotnet](https://github.com/actions/setup-dotnet), [actions/checkout](https://github.com/actions/checkout) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request).
Updates `actions/setup-dotnet` from 4 to 5
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](actions/setup-dotnet@v4...v5)
Updates `actions/checkout` from 5 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)
Updates `peter-evans/create-pull-request` from 7 to 8
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v7...v8)
---
updated-dependencies:
- dependency-name: actions/setup-dotnet
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: peter-evans/create-pull-request
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.3 to 1.2.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.4 to 1.2.5
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Add AOT support, document code and add test cases with help from copilot
* Add version history
* readme
* Fix missing `},` and enable docs generation
* dotnet 10
* install husky
* lf
* crlf
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update language data and generated files (#61)
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
* Merge remote-tracking branch 'origin/develop'
* Develop (#60)
* Bump actions/checkout from 4 to 5 in the actions-deps group
Bumps the actions-deps group with 1 update: [actions/checkout](https://github.com/actions/checkout).
Updates `actions/checkout` from 4 to 5
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 3 updates
Bumps csharpier from 1.1.1 to 1.1.2
Bumps xunit.analyzers from 1.23.0 to 1.24.0
Bumps xunit.runner.visualstudio from 3.1.3 to 3.1.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.1.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
- dependency-name: xunit.analyzers
dependency-version: 1.24.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps AwesomeAssertions from 9.1.0 to 9.2.0
---
updated-dependencies:
- dependency-name: AwesomeAssertions
dependency-version: 9.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps xunit.runner.visualstudio from 3.1.4 to 3.1.5
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump csharpier and husky
Bumps csharpier from 1.1.2 to 1.2.1
Bumps husky from 0.7.2 to 0.8.0
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: husky
dependency-version: 0.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump Serilog.Sinks.Console from 6.0.0 to 6.1.1
---
updated-dependencies:
- dependency-name: Serilog.Sinks.Console
dependency-version: 6.1.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Update dependencies
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.1 to 1.2.3
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the actions-deps group across 1 directory with 3 updates (#48)
Bumps the actions-deps group with 3 updates in the / directory: [actions/setup-dotnet](https://github.com/actions/setup-dotnet), [actions/checkout](https://github.com/actions/checkout) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request).
Updates `actions/setup-dotnet` from 4 to 5
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](actions/setup-dotnet@v4...v5)
Updates `actions/checkout` from 5 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)
Updates `peter-evans/create-pull-request` from 7 to 8
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v7...v8)
---
updated-dependencies:
- dependency-name: actions/setup-dotnet
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: peter-evans/create-pull-request
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.3 to 1.2.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.4 to 1.2.5
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Add AOT support, document code and add test cases with help from copilot
* Add version history
* readme
* Fix missing `},` and enable docs generation
* dotnet 10
* install husky
* lf
* crlf
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update language data and generated files (#61)
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
* Refactor and enhance language tag library
- Change Rfc5646Record to a sealed record for better encapsulation.
- Add tests for null or empty input handling in Iso6392 and Iso6393.
- Enhance LanguageLookupTests with case-insensitive tag comparison and validation for null inputs.
- Extend LanguageTagBuilderTests to include multiple variant additions and null checks.
- Improve LanguageTagTests with new tests for ExtensionTag and PrivateUseTag constructors and equality.
- Add tests for Rfc5646Data to check file date and null input handling.
- Update README.md for improved clarity on build status, usage, and references.
* Refactor language tag classes to be sealed and improve logging and command line handling
- Changed `Iso6392Data`, `Iso6393Data`, and `Rfc5646Data` classes to be sealed for better performance and clarity.
- Updated logging configuration to use Serilog with improved context handling.
- Introduced a new command line interface for downloading and generating language tag data.
- Added options for configuring logging behavior and file paths.
- Implemented data downloading and JSON conversion in a structured manner.
- Removed unused namespaces and improved code organization across various files.
- Added global usings and simplified test project structure.
* Refactor LanguageTags library to support asynchronous operations and enhanced logging
- Updated LanguageSchema to provide asynchronous file writing with WriteFileAsync.
- Enhanced LanguageTag and LanguageTagParser to support parsing with logging options.
- Introduced LogOptions for global logging configuration and integrated logging into parsing and data loading processes.
- Converted data loading and saving methods in Rfc5646Data, Iso6392Data, and Iso6393Data to asynchronous counterparts.
- Added unit tests for asynchronous loading and saving of JSON data for Iso6392Data, Iso6393Data, and Rfc5646Data.
- Improved CreateTagData to utilize asynchronous methods for data conversion and code generation.
* Update README to reflect asynchronous loading methods and add debug log configuration examples
* Update documentation
* Refactor and enhance language tag handling
- Updated launch configuration to include a trailing comma for args.
- Added new language tags "ANTLR" and "datebadge" to the workspace.
- Improved asynchronous file handling in Iso6392Data and Iso6393Data classes by using await using for file streams.
- Simplified record parsing logic in Iso6392Data and Iso6393Data to reduce redundancy.
- Enhanced error handling for invalid records in both classes.
- Updated Rfc5646Data to improve async file operations and error logging.
- Refactored CreateTagData to streamline HTTP stream handling and file writing.
- Modified ExtensionTag to return an empty string when tags are empty.
- Added unit test for ExtensionTag to verify empty tag behavior.
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:13

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

This PR updates LanguageTags to v1.2, refactors file/data IO to async-only APIs, introduces configurable logging (global and per-call), and modernizes the CLI/codegen workflow plus CI automation.

Changes:

  • Bump library version to 1.2 and update documentation/release history accordingly.
  • Refactor data load/save/codegen to stream-based async APIs and add Options/LogOptions logging configuration.
  • Rework LanguageTagsCreate CLI and GitHub Actions workflows for release, codegen PRs, and PR validation.

Reviewed changes

Copilot reviewed 63 out of 66 changed files in this pull request and generated 15 comments.

Show a summary per file
FileDescription
version.jsonBumps project version to 1.2.
README.mdRefreshes documentation: badges, installation, logging, async APIs, and usage sections.
LanguageTagsTests/Rfc5646Tests.csUpdates tests to async load APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/LanguageTagsTests.csprojSimplifies test project properties; removes packaging metadata.
LanguageTagsTests/LanguageTagTests.csAdds tests for ExtensionTag/PrivateUseTag constructors and behavior.
LanguageTagsTests/LanguageTagParserTests.csSwitches to global usings for test dependencies.
LanguageTagsTests/LanguageTagBuilderTests.csAdds argument-null tests and variant range tests for builder APIs.
LanguageTagsTests/LanguageLookupTests.csAdds equivalence tests, overrides mutability test, and null-arg tests.
LanguageTagsTests/Iso6393Tests.csUpdates to async APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/Iso6392Tests.csUpdates to async APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/GlobalUsings.csIntroduces global usings for test project (xUnit/AwesomeAssertions + common BCL).
LanguageTagsTests/Fixture.csSwitches to global usings for test dependencies.
LanguageTagsCreate/Program.csRefactors CLI entrypoint to System.CommandLine + logging initialization + codegen orchestration.
LanguageTagsCreate/LoggerFactory.csAdds Serilog-based logger factory integration for CLI and library logging setup.
LanguageTagsCreate/LanguageTagsCreate.csprojUpdates dependencies (logging, resilience, commandline), adjusts AOT settings.
LanguageTagsCreate/HttpClientFactory.csAdds resilient HttpClient creation and handler pipeline configuration.
LanguageTagsCreate/GlobalUsings.csAdds global usings for the codegen CLI project.
LanguageTagsCreate/Extensions.csAdds logging-related extension helpers for Serilog + MEL.
LanguageTagsCreate/CreateTagData.csExtracts codegen steps into a dedicated type (download → JSON → codegen).
LanguageTagsCreate/CommandLine.csAdds System.CommandLine parsing and execution wiring.
LanguageTagsCreate/AssemblyInfo.csAdds assembly metadata helpers for user-agent/version reporting.
LanguageTagsCreate/.editorconfigAdds local analyzer suppression configuration for the CLI project.
LanguageTags/Rfc5646DataGen.csAdjusts generated data type to sealed partial to match API changes.
LanguageTags/Rfc5646Data.csConverts registry I/O + codegen to async streaming; adds logging hooks and options overloads.
LanguageTags/Options.csAdds public Options type for per-call/per-instance logging configuration.
LanguageTags/LogOptions.csAdds global logging configuration and logger creation helpers.
LanguageTags/LanguageTags.csprojAdds logging abstractions dependency; removes Husky restore target.
LanguageTags/LanguageTagParser.csAdds logging on parse failures/normalization; refactors extensions/private-use handling to immutable records.
LanguageTags/LanguageTagBuilder.csSeals builder; updates extension/private-use handling; adds options overload for Normalize.
LanguageTags/LanguageTag.csSeals type; adds options overloads; refactors ExtensionTag/PrivateUseTag into records with normalization helpers.
LanguageTags/LanguageSchema.csConverts file writing helper to async.
LanguageTags/LanguageLookup.csConverts to primary constructor w/ logger; adds debug logging and equivalence helpers.
LanguageTags/Iso6393Data.csConverts ISO 639-3 I/O + codegen to async streaming; adds logging + options overloads.
LanguageTags/Iso6392DataGen.csAdjusts generated data type to sealed partial to match API changes.
LanguageTags/Iso6392Data.csConverts ISO 639-2 I/O + codegen to async streaming; adds logging + options overloads.
LanguageTags/GlobalUsings.csAdds global usings for the library project.
LanguageTags/Extensions.csAdds strongly-typed LoggerMessage helpers for library operations.
LanguageTags/.editorconfigAdds local analyzer suppression configuration for the library project.
LanguageTags.code-workspaceUpdates cSpell words and default solution reference.
LanguageData/iso6393.jsonUpdates ISO 639-3 data content.
LanguageData/iso6393Updates ISO 639-3 source data content.
LICENSEUpdates copyright year.
HISTORY.mdAdds release history document (including v1.2 notes).
CODESTYLE.mdAdds coding standards/tooling documentation.
AGENTS.mdAdds contributor/agent guidance and project overview pointers.
.vscode/tasks.jsonUpdates build task wiring and dependencies.
.vscode/launch.jsonUpdates launch args to match new CLI --codepath requirement.
.husky/pre-commitAdds Husky pre-commit hook runner script.
.gitignoreAdds additional ignore patterns.
.github/workflows/update-languagedata.ymlRemoves old periodic data update workflow.
.github/workflows/test-task.ymlRemoves old test workflow.
.github/workflows/test-release-task.ymlAdds new test workflow composition for release pipeline validation.
.github/workflows/test-pull-request.ymlAdds PR workflow invoking the release test task and status check.
.github/workflows/test-pr.ymlRemoves old PR test workflow.
.github/workflows/run-periodic-codegen-pull-request.ymlAdds new scheduled weekly codegen PR workflow.
.github/workflows/run-codegen-pull-request-task.ymlAdds reusable workflow task to run codegen + open PR.
.github/workflows/publish-release.ymlRefactors release publishing to use reusable build tasks + date badge job.
.github/workflows/merge-bot-pull-request.ymlRefactors merge automation and tightens conditions for bot merges.
.github/workflows/get-version-task.ymlAdds reusable workflow to compute Nerdbank.GitVersioning outputs.
.github/workflows/build-release-task.ymlAdds reusable workflow for building and optionally publishing GitHub/NuGet releases.
.github/workflows/build-library-task.ymlAdds reusable workflow to build library artifacts and optionally push to NuGet.
.github/workflows/build-datebadge-task.ymlAdds reusable workflow to publish a BYOB “last build” badge.
.github/dependabot.ymlRemoves dependabot config for develop branch updates.
.github/copilot-instructions.mdUpdates project instructions to reflect v1.2 APIs and workflow changes.
.config/dotnet-tools.jsonAdds dotnet-outdated-tool to tool manifest.

Comment threadLanguageTagsCreate/Program.cs Outdated
Comment threadLanguageTags/LanguageTagBuilder.cs
Comment threadLanguageTags/LanguageTagParser.cs
Comment threadCODESTYLE.md Outdated
Comment threadLanguageTagsCreate/CommandLine.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTagsCreate/CreateTagData.cs

CopilotAI commented Jan 30, 2026

Copy link
Copy Markdown

@ptr727 I've opened a new pull request, #69, to work on those changes. Once the pull request is ready, I'll request review from you.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:30

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 64 out of 65 changed files in this pull request and generated 2 comments.

Comment threadLanguageTags/LanguageTag.cs
Comment thread.github/copilot-instructions.md Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:46

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 64 out of 65 changed files in this pull request and generated 9 comments.

Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/LanguageTag.cs
Comment thread.github/workflows/publish-release.yml
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTagsCreate/CommandLine.cs
Comment threadLanguageTags/LogOptions.cs
…d equality checks (#70)
- Added normalization methods for ExtensionTag and PrivateUseTag to
ensure consistent casing and ordering of tags.
- Implemented equality checks and hash code generation for ExtensionTag
and PrivateUseTag.
- Updated LanguageTagBuilder to throw an exception for empty extension
tags.
- Enhanced validation in LanguageTagParser to reject whitespace in
extension tags.
- Added tests to verify new behaviors and ensure robustness.
…ling in Iso6392Data, Iso6393Data, and Rfc5646Data classes; add tests for LanguageTag parsing and normalization with options; implement logging options tests. (#71)
CopilotAI review requested due to automatic review settings January 30, 2026 04:12
@ptr727
ptr727 enabled auto-merge (squash) January 30, 2026 04:13

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 65 out of 66 changed files in this pull request and generated 9 comments.

Comment threadLanguageTagsCreate/Program.cs
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Enhance the LanguageTags library with improved encapsulation,
asynchronous operations, and logging capabilities. Update various
dependencies, including actions and nuget packages, while also refining
documentation and adding tests for new functionalities. Address issues
related to husky installation and improve error handling in language tag
processing.
@ptr727
ptr727 disabled auto-merge January 30, 2026 04:37
@ptr727
ptr727 merged commit 7b1a00b into mainJan 30, 2026
13 checks passed
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.

3 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" + ' Develop by ptr727 · Pull Request #68 · ptr727/LanguageTags · GitHub
Skip to content

Develop - #68

Merged
ptr727 merged 9 commits into
mainfrom
develop
Jan 30, 2026
Merged

Develop#68
ptr727 merged 9 commits into
mainfrom
develop

Conversation

@ptr727

Copy link
Copy Markdown
Owner

No description provided.

ptr727and others added 3 commits January 4, 2026 20:33
* Develop (#60)
* Bump actions/checkout from 4 to 5 in the actions-deps group
Bumps the actions-deps group with 1 update: [actions/checkout](https://github.com/actions/checkout).
Updates `actions/checkout` from 4 to 5
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 3 updates
Bumps csharpier from 1.1.1 to 1.1.2
Bumps xunit.analyzers from 1.23.0 to 1.24.0
Bumps xunit.runner.visualstudio from 3.1.3 to 3.1.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.1.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
- dependency-name: xunit.analyzers
dependency-version: 1.24.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps AwesomeAssertions from 9.1.0 to 9.2.0
---
updated-dependencies:
- dependency-name: AwesomeAssertions
dependency-version: 9.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps xunit.runner.visualstudio from 3.1.4 to 3.1.5
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump csharpier and husky
Bumps csharpier from 1.1.2 to 1.2.1
Bumps husky from 0.7.2 to 0.8.0
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: husky
dependency-version: 0.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump Serilog.Sinks.Console from 6.0.0 to 6.1.1
---
updated-dependencies:
- dependency-name: Serilog.Sinks.Console
dependency-version: 6.1.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Update dependencies
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.1 to 1.2.3
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the actions-deps group across 1 directory with 3 updates (#48)
Bumps the actions-deps group with 3 updates in the / directory: [actions/setup-dotnet](https://github.com/actions/setup-dotnet), [actions/checkout](https://github.com/actions/checkout) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request).
Updates `actions/setup-dotnet` from 4 to 5
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](actions/setup-dotnet@v4...v5)
Updates `actions/checkout` from 5 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)
Updates `peter-evans/create-pull-request` from 7 to 8
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v7...v8)
---
updated-dependencies:
- dependency-name: actions/setup-dotnet
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: peter-evans/create-pull-request
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.3 to 1.2.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.4 to 1.2.5
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Add AOT support, document code and add test cases with help from copilot
* Add version history
* readme
* Fix missing `},` and enable docs generation
* dotnet 10
* install husky
* lf
* crlf
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update language data and generated files (#61)
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
* Merge remote-tracking branch 'origin/develop'
* Develop (#60)
* Bump actions/checkout from 4 to 5 in the actions-deps group
Bumps the actions-deps group with 1 update: [actions/checkout](https://github.com/actions/checkout).
Updates `actions/checkout` from 4 to 5
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 3 updates
Bumps csharpier from 1.1.1 to 1.1.2
Bumps xunit.analyzers from 1.23.0 to 1.24.0
Bumps xunit.runner.visualstudio from 3.1.3 to 3.1.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.1.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
- dependency-name: xunit.analyzers
dependency-version: 1.24.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps AwesomeAssertions from 9.1.0 to 9.2.0
---
updated-dependencies:
- dependency-name: AwesomeAssertions
dependency-version: 9.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps xunit.runner.visualstudio from 3.1.4 to 3.1.5
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump csharpier and husky
Bumps csharpier from 1.1.2 to 1.2.1
Bumps husky from 0.7.2 to 0.8.0
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: husky
dependency-version: 0.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump Serilog.Sinks.Console from 6.0.0 to 6.1.1
---
updated-dependencies:
- dependency-name: Serilog.Sinks.Console
dependency-version: 6.1.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Update dependencies
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.1 to 1.2.3
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the actions-deps group across 1 directory with 3 updates (#48)
Bumps the actions-deps group with 3 updates in the / directory: [actions/setup-dotnet](https://github.com/actions/setup-dotnet), [actions/checkout](https://github.com/actions/checkout) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request).
Updates `actions/setup-dotnet` from 4 to 5
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](actions/setup-dotnet@v4...v5)
Updates `actions/checkout` from 5 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)
Updates `peter-evans/create-pull-request` from 7 to 8
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v7...v8)
---
updated-dependencies:
- dependency-name: actions/setup-dotnet
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: peter-evans/create-pull-request
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.3 to 1.2.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.4 to 1.2.5
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Add AOT support, document code and add test cases with help from copilot
* Add version history
* readme
* Fix missing `},` and enable docs generation
* dotnet 10
* install husky
* lf
* crlf
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update language data and generated files (#61)
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
* Refactor and enhance language tag library
- Change Rfc5646Record to a sealed record for better encapsulation.
- Add tests for null or empty input handling in Iso6392 and Iso6393.
- Enhance LanguageLookupTests with case-insensitive tag comparison and validation for null inputs.
- Extend LanguageTagBuilderTests to include multiple variant additions and null checks.
- Improve LanguageTagTests with new tests for ExtensionTag and PrivateUseTag constructors and equality.
- Add tests for Rfc5646Data to check file date and null input handling.
- Update README.md for improved clarity on build status, usage, and references.
* Refactor language tag classes to be sealed and improve logging and command line handling
- Changed `Iso6392Data`, `Iso6393Data`, and `Rfc5646Data` classes to be sealed for better performance and clarity.
- Updated logging configuration to use Serilog with improved context handling.
- Introduced a new command line interface for downloading and generating language tag data.
- Added options for configuring logging behavior and file paths.
- Implemented data downloading and JSON conversion in a structured manner.
- Removed unused namespaces and improved code organization across various files.
- Added global usings and simplified test project structure.
* Refactor LanguageTags library to support asynchronous operations and enhanced logging
- Updated LanguageSchema to provide asynchronous file writing with WriteFileAsync.
- Enhanced LanguageTag and LanguageTagParser to support parsing with logging options.
- Introduced LogOptions for global logging configuration and integrated logging into parsing and data loading processes.
- Converted data loading and saving methods in Rfc5646Data, Iso6392Data, and Iso6393Data to asynchronous counterparts.
- Added unit tests for asynchronous loading and saving of JSON data for Iso6392Data, Iso6393Data, and Rfc5646Data.
- Improved CreateTagData to utilize asynchronous methods for data conversion and code generation.
* Update README to reflect asynchronous loading methods and add debug log configuration examples
* Update documentation
* Refactor and enhance language tag handling
- Updated launch configuration to include a trailing comma for args.
- Added new language tags "ANTLR" and "datebadge" to the workspace.
- Improved asynchronous file handling in Iso6392Data and Iso6393Data classes by using await using for file streams.
- Simplified record parsing logic in Iso6392Data and Iso6393Data to reduce redundancy.
- Enhanced error handling for invalid records in both classes.
- Updated Rfc5646Data to improve async file operations and error logging.
- Refactored CreateTagData to streamline HTTP stream handling and file writing.
- Modified ExtensionTag to return an empty string when tags are empty.
- Added unit test for ExtensionTag to verify empty tag behavior.
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:13

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

This PR updates LanguageTags to v1.2, refactors file/data IO to async-only APIs, introduces configurable logging (global and per-call), and modernizes the CLI/codegen workflow plus CI automation.

Changes:

  • Bump library version to 1.2 and update documentation/release history accordingly.
  • Refactor data load/save/codegen to stream-based async APIs and add Options/LogOptions logging configuration.
  • Rework LanguageTagsCreate CLI and GitHub Actions workflows for release, codegen PRs, and PR validation.

Reviewed changes

Copilot reviewed 63 out of 66 changed files in this pull request and generated 15 comments.

Show a summary per file
FileDescription
version.jsonBumps project version to 1.2.
README.mdRefreshes documentation: badges, installation, logging, async APIs, and usage sections.
LanguageTagsTests/Rfc5646Tests.csUpdates tests to async load APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/LanguageTagsTests.csprojSimplifies test project properties; removes packaging metadata.
LanguageTagsTests/LanguageTagTests.csAdds tests for ExtensionTag/PrivateUseTag constructors and behavior.
LanguageTagsTests/LanguageTagParserTests.csSwitches to global usings for test dependencies.
LanguageTagsTests/LanguageTagBuilderTests.csAdds argument-null tests and variant range tests for builder APIs.
LanguageTagsTests/LanguageLookupTests.csAdds equivalence tests, overrides mutability test, and null-arg tests.
LanguageTagsTests/Iso6393Tests.csUpdates to async APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/Iso6392Tests.csUpdates to async APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/GlobalUsings.csIntroduces global usings for test project (xUnit/AwesomeAssertions + common BCL).
LanguageTagsTests/Fixture.csSwitches to global usings for test dependencies.
LanguageTagsCreate/Program.csRefactors CLI entrypoint to System.CommandLine + logging initialization + codegen orchestration.
LanguageTagsCreate/LoggerFactory.csAdds Serilog-based logger factory integration for CLI and library logging setup.
LanguageTagsCreate/LanguageTagsCreate.csprojUpdates dependencies (logging, resilience, commandline), adjusts AOT settings.
LanguageTagsCreate/HttpClientFactory.csAdds resilient HttpClient creation and handler pipeline configuration.
LanguageTagsCreate/GlobalUsings.csAdds global usings for the codegen CLI project.
LanguageTagsCreate/Extensions.csAdds logging-related extension helpers for Serilog + MEL.
LanguageTagsCreate/CreateTagData.csExtracts codegen steps into a dedicated type (download → JSON → codegen).
LanguageTagsCreate/CommandLine.csAdds System.CommandLine parsing and execution wiring.
LanguageTagsCreate/AssemblyInfo.csAdds assembly metadata helpers for user-agent/version reporting.
LanguageTagsCreate/.editorconfigAdds local analyzer suppression configuration for the CLI project.
LanguageTags/Rfc5646DataGen.csAdjusts generated data type to sealed partial to match API changes.
LanguageTags/Rfc5646Data.csConverts registry I/O + codegen to async streaming; adds logging hooks and options overloads.
LanguageTags/Options.csAdds public Options type for per-call/per-instance logging configuration.
LanguageTags/LogOptions.csAdds global logging configuration and logger creation helpers.
LanguageTags/LanguageTags.csprojAdds logging abstractions dependency; removes Husky restore target.
LanguageTags/LanguageTagParser.csAdds logging on parse failures/normalization; refactors extensions/private-use handling to immutable records.
LanguageTags/LanguageTagBuilder.csSeals builder; updates extension/private-use handling; adds options overload for Normalize.
LanguageTags/LanguageTag.csSeals type; adds options overloads; refactors ExtensionTag/PrivateUseTag into records with normalization helpers.
LanguageTags/LanguageSchema.csConverts file writing helper to async.
LanguageTags/LanguageLookup.csConverts to primary constructor w/ logger; adds debug logging and equivalence helpers.
LanguageTags/Iso6393Data.csConverts ISO 639-3 I/O + codegen to async streaming; adds logging + options overloads.
LanguageTags/Iso6392DataGen.csAdjusts generated data type to sealed partial to match API changes.
LanguageTags/Iso6392Data.csConverts ISO 639-2 I/O + codegen to async streaming; adds logging + options overloads.
LanguageTags/GlobalUsings.csAdds global usings for the library project.
LanguageTags/Extensions.csAdds strongly-typed LoggerMessage helpers for library operations.
LanguageTags/.editorconfigAdds local analyzer suppression configuration for the library project.
LanguageTags.code-workspaceUpdates cSpell words and default solution reference.
LanguageData/iso6393.jsonUpdates ISO 639-3 data content.
LanguageData/iso6393Updates ISO 639-3 source data content.
LICENSEUpdates copyright year.
HISTORY.mdAdds release history document (including v1.2 notes).
CODESTYLE.mdAdds coding standards/tooling documentation.
AGENTS.mdAdds contributor/agent guidance and project overview pointers.
.vscode/tasks.jsonUpdates build task wiring and dependencies.
.vscode/launch.jsonUpdates launch args to match new CLI --codepath requirement.
.husky/pre-commitAdds Husky pre-commit hook runner script.
.gitignoreAdds additional ignore patterns.
.github/workflows/update-languagedata.ymlRemoves old periodic data update workflow.
.github/workflows/test-task.ymlRemoves old test workflow.
.github/workflows/test-release-task.ymlAdds new test workflow composition for release pipeline validation.
.github/workflows/test-pull-request.ymlAdds PR workflow invoking the release test task and status check.
.github/workflows/test-pr.ymlRemoves old PR test workflow.
.github/workflows/run-periodic-codegen-pull-request.ymlAdds new scheduled weekly codegen PR workflow.
.github/workflows/run-codegen-pull-request-task.ymlAdds reusable workflow task to run codegen + open PR.
.github/workflows/publish-release.ymlRefactors release publishing to use reusable build tasks + date badge job.
.github/workflows/merge-bot-pull-request.ymlRefactors merge automation and tightens conditions for bot merges.
.github/workflows/get-version-task.ymlAdds reusable workflow to compute Nerdbank.GitVersioning outputs.
.github/workflows/build-release-task.ymlAdds reusable workflow for building and optionally publishing GitHub/NuGet releases.
.github/workflows/build-library-task.ymlAdds reusable workflow to build library artifacts and optionally push to NuGet.
.github/workflows/build-datebadge-task.ymlAdds reusable workflow to publish a BYOB “last build” badge.
.github/dependabot.ymlRemoves dependabot config for develop branch updates.
.github/copilot-instructions.mdUpdates project instructions to reflect v1.2 APIs and workflow changes.
.config/dotnet-tools.jsonAdds dotnet-outdated-tool to tool manifest.

Comment threadLanguageTagsCreate/Program.cs Outdated
Comment threadLanguageTags/LanguageTagBuilder.cs
Comment threadLanguageTags/LanguageTagParser.cs
Comment threadCODESTYLE.md Outdated
Comment threadLanguageTagsCreate/CommandLine.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTagsCreate/CreateTagData.cs

CopilotAI commented Jan 30, 2026

Copy link
Copy Markdown

@ptr727 I've opened a new pull request, #69, to work on those changes. Once the pull request is ready, I'll request review from you.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:30

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 64 out of 65 changed files in this pull request and generated 2 comments.

Comment threadLanguageTags/LanguageTag.cs
Comment thread.github/copilot-instructions.md Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:46

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 64 out of 65 changed files in this pull request and generated 9 comments.

Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/LanguageTag.cs
Comment thread.github/workflows/publish-release.yml
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTagsCreate/CommandLine.cs
Comment threadLanguageTags/LogOptions.cs
…d equality checks (#70)
- Added normalization methods for ExtensionTag and PrivateUseTag to
ensure consistent casing and ordering of tags.
- Implemented equality checks and hash code generation for ExtensionTag
and PrivateUseTag.
- Updated LanguageTagBuilder to throw an exception for empty extension
tags.
- Enhanced validation in LanguageTagParser to reject whitespace in
extension tags.
- Added tests to verify new behaviors and ensure robustness.
…ling in Iso6392Data, Iso6393Data, and Rfc5646Data classes; add tests for LanguageTag parsing and normalization with options; implement logging options tests. (#71)
CopilotAI review requested due to automatic review settings January 30, 2026 04:12
@ptr727
ptr727 enabled auto-merge (squash) January 30, 2026 04:13

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 65 out of 66 changed files in this pull request and generated 9 comments.

Comment threadLanguageTagsCreate/Program.cs
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Enhance the LanguageTags library with improved encapsulation,
asynchronous operations, and logging capabilities. Update various
dependencies, including actions and nuget packages, while also refining
documentation and adding tests for new functionalities. Address issues
related to husky installation and improve error handling in language tag
processing.
@ptr727
ptr727 disabled auto-merge January 30, 2026 04:37
@ptr727
ptr727 merged commit 7b1a00b into mainJan 30, 2026
13 checks passed
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.

3 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('^' + ".*" + ' Develop by ptr727 · Pull Request #68 · ptr727/LanguageTags · GitHub
Skip to content

Develop - #68

Merged
ptr727 merged 9 commits into
mainfrom
develop
Jan 30, 2026
Merged

Develop#68
ptr727 merged 9 commits into
mainfrom
develop

Conversation

@ptr727

Copy link
Copy Markdown
Owner

No description provided.

ptr727and others added 3 commits January 4, 2026 20:33
* Develop (#60)
* Bump actions/checkout from 4 to 5 in the actions-deps group
Bumps the actions-deps group with 1 update: [actions/checkout](https://github.com/actions/checkout).
Updates `actions/checkout` from 4 to 5
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 3 updates
Bumps csharpier from 1.1.1 to 1.1.2
Bumps xunit.analyzers from 1.23.0 to 1.24.0
Bumps xunit.runner.visualstudio from 3.1.3 to 3.1.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.1.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
- dependency-name: xunit.analyzers
dependency-version: 1.24.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps AwesomeAssertions from 9.1.0 to 9.2.0
---
updated-dependencies:
- dependency-name: AwesomeAssertions
dependency-version: 9.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps xunit.runner.visualstudio from 3.1.4 to 3.1.5
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump csharpier and husky
Bumps csharpier from 1.1.2 to 1.2.1
Bumps husky from 0.7.2 to 0.8.0
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: husky
dependency-version: 0.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump Serilog.Sinks.Console from 6.0.0 to 6.1.1
---
updated-dependencies:
- dependency-name: Serilog.Sinks.Console
dependency-version: 6.1.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Update dependencies
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.1 to 1.2.3
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the actions-deps group across 1 directory with 3 updates (#48)
Bumps the actions-deps group with 3 updates in the / directory: [actions/setup-dotnet](https://github.com/actions/setup-dotnet), [actions/checkout](https://github.com/actions/checkout) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request).
Updates `actions/setup-dotnet` from 4 to 5
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](actions/setup-dotnet@v4...v5)
Updates `actions/checkout` from 5 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)
Updates `peter-evans/create-pull-request` from 7 to 8
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v7...v8)
---
updated-dependencies:
- dependency-name: actions/setup-dotnet
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: peter-evans/create-pull-request
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.3 to 1.2.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.4 to 1.2.5
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Add AOT support, document code and add test cases with help from copilot
* Add version history
* readme
* Fix missing `},` and enable docs generation
* dotnet 10
* install husky
* lf
* crlf
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update language data and generated files (#61)
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
* Merge remote-tracking branch 'origin/develop'
* Develop (#60)
* Bump actions/checkout from 4 to 5 in the actions-deps group
Bumps the actions-deps group with 1 update: [actions/checkout](https://github.com/actions/checkout).
Updates `actions/checkout` from 4 to 5
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 3 updates
Bumps csharpier from 1.1.1 to 1.1.2
Bumps xunit.analyzers from 1.23.0 to 1.24.0
Bumps xunit.runner.visualstudio from 3.1.3 to 3.1.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.1.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
- dependency-name: xunit.analyzers
dependency-version: 1.24.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps AwesomeAssertions from 9.1.0 to 9.2.0
---
updated-dependencies:
- dependency-name: AwesomeAssertions
dependency-version: 9.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps xunit.runner.visualstudio from 3.1.4 to 3.1.5
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump csharpier and husky
Bumps csharpier from 1.1.2 to 1.2.1
Bumps husky from 0.7.2 to 0.8.0
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: husky
dependency-version: 0.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump Serilog.Sinks.Console from 6.0.0 to 6.1.1
---
updated-dependencies:
- dependency-name: Serilog.Sinks.Console
dependency-version: 6.1.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Update dependencies
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.1 to 1.2.3
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the actions-deps group across 1 directory with 3 updates (#48)
Bumps the actions-deps group with 3 updates in the / directory: [actions/setup-dotnet](https://github.com/actions/setup-dotnet), [actions/checkout](https://github.com/actions/checkout) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request).
Updates `actions/setup-dotnet` from 4 to 5
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](actions/setup-dotnet@v4...v5)
Updates `actions/checkout` from 5 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)
Updates `peter-evans/create-pull-request` from 7 to 8
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v7...v8)
---
updated-dependencies:
- dependency-name: actions/setup-dotnet
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: peter-evans/create-pull-request
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.3 to 1.2.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.4 to 1.2.5
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Add AOT support, document code and add test cases with help from copilot
* Add version history
* readme
* Fix missing `},` and enable docs generation
* dotnet 10
* install husky
* lf
* crlf
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update language data and generated files (#61)
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
* Refactor and enhance language tag library
- Change Rfc5646Record to a sealed record for better encapsulation.
- Add tests for null or empty input handling in Iso6392 and Iso6393.
- Enhance LanguageLookupTests with case-insensitive tag comparison and validation for null inputs.
- Extend LanguageTagBuilderTests to include multiple variant additions and null checks.
- Improve LanguageTagTests with new tests for ExtensionTag and PrivateUseTag constructors and equality.
- Add tests for Rfc5646Data to check file date and null input handling.
- Update README.md for improved clarity on build status, usage, and references.
* Refactor language tag classes to be sealed and improve logging and command line handling
- Changed `Iso6392Data`, `Iso6393Data`, and `Rfc5646Data` classes to be sealed for better performance and clarity.
- Updated logging configuration to use Serilog with improved context handling.
- Introduced a new command line interface for downloading and generating language tag data.
- Added options for configuring logging behavior and file paths.
- Implemented data downloading and JSON conversion in a structured manner.
- Removed unused namespaces and improved code organization across various files.
- Added global usings and simplified test project structure.
* Refactor LanguageTags library to support asynchronous operations and enhanced logging
- Updated LanguageSchema to provide asynchronous file writing with WriteFileAsync.
- Enhanced LanguageTag and LanguageTagParser to support parsing with logging options.
- Introduced LogOptions for global logging configuration and integrated logging into parsing and data loading processes.
- Converted data loading and saving methods in Rfc5646Data, Iso6392Data, and Iso6393Data to asynchronous counterparts.
- Added unit tests for asynchronous loading and saving of JSON data for Iso6392Data, Iso6393Data, and Rfc5646Data.
- Improved CreateTagData to utilize asynchronous methods for data conversion and code generation.
* Update README to reflect asynchronous loading methods and add debug log configuration examples
* Update documentation
* Refactor and enhance language tag handling
- Updated launch configuration to include a trailing comma for args.
- Added new language tags "ANTLR" and "datebadge" to the workspace.
- Improved asynchronous file handling in Iso6392Data and Iso6393Data classes by using await using for file streams.
- Simplified record parsing logic in Iso6392Data and Iso6393Data to reduce redundancy.
- Enhanced error handling for invalid records in both classes.
- Updated Rfc5646Data to improve async file operations and error logging.
- Refactored CreateTagData to streamline HTTP stream handling and file writing.
- Modified ExtensionTag to return an empty string when tags are empty.
- Added unit test for ExtensionTag to verify empty tag behavior.
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:13

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

This PR updates LanguageTags to v1.2, refactors file/data IO to async-only APIs, introduces configurable logging (global and per-call), and modernizes the CLI/codegen workflow plus CI automation.

Changes:

  • Bump library version to 1.2 and update documentation/release history accordingly.
  • Refactor data load/save/codegen to stream-based async APIs and add Options/LogOptions logging configuration.
  • Rework LanguageTagsCreate CLI and GitHub Actions workflows for release, codegen PRs, and PR validation.

Reviewed changes

Copilot reviewed 63 out of 66 changed files in this pull request and generated 15 comments.

Show a summary per file
FileDescription
version.jsonBumps project version to 1.2.
README.mdRefreshes documentation: badges, installation, logging, async APIs, and usage sections.
LanguageTagsTests/Rfc5646Tests.csUpdates tests to async load APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/LanguageTagsTests.csprojSimplifies test project properties; removes packaging metadata.
LanguageTagsTests/LanguageTagTests.csAdds tests for ExtensionTag/PrivateUseTag constructors and behavior.
LanguageTagsTests/LanguageTagParserTests.csSwitches to global usings for test dependencies.
LanguageTagsTests/LanguageTagBuilderTests.csAdds argument-null tests and variant range tests for builder APIs.
LanguageTagsTests/LanguageLookupTests.csAdds equivalence tests, overrides mutability test, and null-arg tests.
LanguageTagsTests/Iso6393Tests.csUpdates to async APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/Iso6392Tests.csUpdates to async APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/GlobalUsings.csIntroduces global usings for test project (xUnit/AwesomeAssertions + common BCL).
LanguageTagsTests/Fixture.csSwitches to global usings for test dependencies.
LanguageTagsCreate/Program.csRefactors CLI entrypoint to System.CommandLine + logging initialization + codegen orchestration.
LanguageTagsCreate/LoggerFactory.csAdds Serilog-based logger factory integration for CLI and library logging setup.
LanguageTagsCreate/LanguageTagsCreate.csprojUpdates dependencies (logging, resilience, commandline), adjusts AOT settings.
LanguageTagsCreate/HttpClientFactory.csAdds resilient HttpClient creation and handler pipeline configuration.
LanguageTagsCreate/GlobalUsings.csAdds global usings for the codegen CLI project.
LanguageTagsCreate/Extensions.csAdds logging-related extension helpers for Serilog + MEL.
LanguageTagsCreate/CreateTagData.csExtracts codegen steps into a dedicated type (download → JSON → codegen).
LanguageTagsCreate/CommandLine.csAdds System.CommandLine parsing and execution wiring.
LanguageTagsCreate/AssemblyInfo.csAdds assembly metadata helpers for user-agent/version reporting.
LanguageTagsCreate/.editorconfigAdds local analyzer suppression configuration for the CLI project.
LanguageTags/Rfc5646DataGen.csAdjusts generated data type to sealed partial to match API changes.
LanguageTags/Rfc5646Data.csConverts registry I/O + codegen to async streaming; adds logging hooks and options overloads.
LanguageTags/Options.csAdds public Options type for per-call/per-instance logging configuration.
LanguageTags/LogOptions.csAdds global logging configuration and logger creation helpers.
LanguageTags/LanguageTags.csprojAdds logging abstractions dependency; removes Husky restore target.
LanguageTags/LanguageTagParser.csAdds logging on parse failures/normalization; refactors extensions/private-use handling to immutable records.
LanguageTags/LanguageTagBuilder.csSeals builder; updates extension/private-use handling; adds options overload for Normalize.
LanguageTags/LanguageTag.csSeals type; adds options overloads; refactors ExtensionTag/PrivateUseTag into records with normalization helpers.
LanguageTags/LanguageSchema.csConverts file writing helper to async.
LanguageTags/LanguageLookup.csConverts to primary constructor w/ logger; adds debug logging and equivalence helpers.
LanguageTags/Iso6393Data.csConverts ISO 639-3 I/O + codegen to async streaming; adds logging + options overloads.
LanguageTags/Iso6392DataGen.csAdjusts generated data type to sealed partial to match API changes.
LanguageTags/Iso6392Data.csConverts ISO 639-2 I/O + codegen to async streaming; adds logging + options overloads.
LanguageTags/GlobalUsings.csAdds global usings for the library project.
LanguageTags/Extensions.csAdds strongly-typed LoggerMessage helpers for library operations.
LanguageTags/.editorconfigAdds local analyzer suppression configuration for the library project.
LanguageTags.code-workspaceUpdates cSpell words and default solution reference.
LanguageData/iso6393.jsonUpdates ISO 639-3 data content.
LanguageData/iso6393Updates ISO 639-3 source data content.
LICENSEUpdates copyright year.
HISTORY.mdAdds release history document (including v1.2 notes).
CODESTYLE.mdAdds coding standards/tooling documentation.
AGENTS.mdAdds contributor/agent guidance and project overview pointers.
.vscode/tasks.jsonUpdates build task wiring and dependencies.
.vscode/launch.jsonUpdates launch args to match new CLI --codepath requirement.
.husky/pre-commitAdds Husky pre-commit hook runner script.
.gitignoreAdds additional ignore patterns.
.github/workflows/update-languagedata.ymlRemoves old periodic data update workflow.
.github/workflows/test-task.ymlRemoves old test workflow.
.github/workflows/test-release-task.ymlAdds new test workflow composition for release pipeline validation.
.github/workflows/test-pull-request.ymlAdds PR workflow invoking the release test task and status check.
.github/workflows/test-pr.ymlRemoves old PR test workflow.
.github/workflows/run-periodic-codegen-pull-request.ymlAdds new scheduled weekly codegen PR workflow.
.github/workflows/run-codegen-pull-request-task.ymlAdds reusable workflow task to run codegen + open PR.
.github/workflows/publish-release.ymlRefactors release publishing to use reusable build tasks + date badge job.
.github/workflows/merge-bot-pull-request.ymlRefactors merge automation and tightens conditions for bot merges.
.github/workflows/get-version-task.ymlAdds reusable workflow to compute Nerdbank.GitVersioning outputs.
.github/workflows/build-release-task.ymlAdds reusable workflow for building and optionally publishing GitHub/NuGet releases.
.github/workflows/build-library-task.ymlAdds reusable workflow to build library artifacts and optionally push to NuGet.
.github/workflows/build-datebadge-task.ymlAdds reusable workflow to publish a BYOB “last build” badge.
.github/dependabot.ymlRemoves dependabot config for develop branch updates.
.github/copilot-instructions.mdUpdates project instructions to reflect v1.2 APIs and workflow changes.
.config/dotnet-tools.jsonAdds dotnet-outdated-tool to tool manifest.

Comment threadLanguageTagsCreate/Program.cs Outdated
Comment threadLanguageTags/LanguageTagBuilder.cs
Comment threadLanguageTags/LanguageTagParser.cs
Comment threadCODESTYLE.md Outdated
Comment threadLanguageTagsCreate/CommandLine.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTagsCreate/CreateTagData.cs

CopilotAI commented Jan 30, 2026

Copy link
Copy Markdown

@ptr727 I've opened a new pull request, #69, to work on those changes. Once the pull request is ready, I'll request review from you.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:30

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 64 out of 65 changed files in this pull request and generated 2 comments.

Comment threadLanguageTags/LanguageTag.cs
Comment thread.github/copilot-instructions.md Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:46

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 64 out of 65 changed files in this pull request and generated 9 comments.

Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/LanguageTag.cs
Comment thread.github/workflows/publish-release.yml
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTagsCreate/CommandLine.cs
Comment threadLanguageTags/LogOptions.cs
…d equality checks (#70)
- Added normalization methods for ExtensionTag and PrivateUseTag to
ensure consistent casing and ordering of tags.
- Implemented equality checks and hash code generation for ExtensionTag
and PrivateUseTag.
- Updated LanguageTagBuilder to throw an exception for empty extension
tags.
- Enhanced validation in LanguageTagParser to reject whitespace in
extension tags.
- Added tests to verify new behaviors and ensure robustness.
…ling in Iso6392Data, Iso6393Data, and Rfc5646Data classes; add tests for LanguageTag parsing and normalization with options; implement logging options tests. (#71)
CopilotAI review requested due to automatic review settings January 30, 2026 04:12
@ptr727
ptr727 enabled auto-merge (squash) January 30, 2026 04:13

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 65 out of 66 changed files in this pull request and generated 9 comments.

Comment threadLanguageTagsCreate/Program.cs
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Enhance the LanguageTags library with improved encapsulation,
asynchronous operations, and logging capabilities. Update various
dependencies, including actions and nuget packages, while also refining
documentation and adding tests for new functionalities. Address issues
related to husky installation and improve error handling in language tag
processing.
@ptr727
ptr727 disabled auto-merge January 30, 2026 04:37
@ptr727
ptr727 merged commit 7b1a00b into mainJan 30, 2026
13 checks passed
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.

3 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); } })(); })(); Develop by ptr727 · Pull Request #68 · ptr727/LanguageTags · GitHub
Skip to content

Develop - #68

Merged
ptr727 merged 9 commits into
mainfrom
develop
Jan 30, 2026
Merged

Develop#68
ptr727 merged 9 commits into
mainfrom
develop

Conversation

@ptr727

Copy link
Copy Markdown
Owner

No description provided.

ptr727and others added 3 commits January 4, 2026 20:33
* Develop (#60)
* Bump actions/checkout from 4 to 5 in the actions-deps group
Bumps the actions-deps group with 1 update: [actions/checkout](https://github.com/actions/checkout).
Updates `actions/checkout` from 4 to 5
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 3 updates
Bumps csharpier from 1.1.1 to 1.1.2
Bumps xunit.analyzers from 1.23.0 to 1.24.0
Bumps xunit.runner.visualstudio from 3.1.3 to 3.1.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.1.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
- dependency-name: xunit.analyzers
dependency-version: 1.24.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps AwesomeAssertions from 9.1.0 to 9.2.0
---
updated-dependencies:
- dependency-name: AwesomeAssertions
dependency-version: 9.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps xunit.runner.visualstudio from 3.1.4 to 3.1.5
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump csharpier and husky
Bumps csharpier from 1.1.2 to 1.2.1
Bumps husky from 0.7.2 to 0.8.0
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: husky
dependency-version: 0.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump Serilog.Sinks.Console from 6.0.0 to 6.1.1
---
updated-dependencies:
- dependency-name: Serilog.Sinks.Console
dependency-version: 6.1.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Update dependencies
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.1 to 1.2.3
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the actions-deps group across 1 directory with 3 updates (#48)
Bumps the actions-deps group with 3 updates in the / directory: [actions/setup-dotnet](https://github.com/actions/setup-dotnet), [actions/checkout](https://github.com/actions/checkout) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request).
Updates `actions/setup-dotnet` from 4 to 5
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](actions/setup-dotnet@v4...v5)
Updates `actions/checkout` from 5 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)
Updates `peter-evans/create-pull-request` from 7 to 8
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v7...v8)
---
updated-dependencies:
- dependency-name: actions/setup-dotnet
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: peter-evans/create-pull-request
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.3 to 1.2.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.4 to 1.2.5
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Add AOT support, document code and add test cases with help from copilot
* Add version history
* readme
* Fix missing `},` and enable docs generation
* dotnet 10
* install husky
* lf
* crlf
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update language data and generated files (#61)
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
* Merge remote-tracking branch 'origin/develop'
* Develop (#60)
* Bump actions/checkout from 4 to 5 in the actions-deps group
Bumps the actions-deps group with 1 update: [actions/checkout](https://github.com/actions/checkout).
Updates `actions/checkout` from 4 to 5
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 3 updates
Bumps csharpier from 1.1.1 to 1.1.2
Bumps xunit.analyzers from 1.23.0 to 1.24.0
Bumps xunit.runner.visualstudio from 3.1.3 to 3.1.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.1.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
- dependency-name: xunit.analyzers
dependency-version: 1.24.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps AwesomeAssertions from 9.1.0 to 9.2.0
---
updated-dependencies:
- dependency-name: AwesomeAssertions
dependency-version: 9.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps xunit.runner.visualstudio from 3.1.4 to 3.1.5
---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
dependency-version: 3.1.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump csharpier and husky
Bumps csharpier from 1.1.2 to 1.2.1
Bumps husky from 0.7.2 to 0.8.0
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
- dependency-name: husky
dependency-version: 0.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump Serilog.Sinks.Console from 6.0.0 to 6.1.1
---
updated-dependencies:
- dependency-name: Serilog.Sinks.Console
dependency-version: 6.1.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Update dependencies
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.1 to 1.2.3
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the actions-deps group across 1 directory with 3 updates (#48)
Bumps the actions-deps group with 3 updates in the / directory: [actions/setup-dotnet](https://github.com/actions/setup-dotnet), [actions/checkout](https://github.com/actions/checkout) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request).
Updates `actions/setup-dotnet` from 4 to 5
- [Release notes](https://github.com/actions/setup-dotnet/releases)
- [Commits](actions/setup-dotnet@v4...v5)
Updates `actions/checkout` from 5 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v5...v6)
Updates `peter-evans/create-pull-request` from 7 to 8
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](peter-evans/create-pull-request@v7...v8)
---
updated-dependencies:
- dependency-name: actions/setup-dotnet
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
- dependency-name: peter-evans/create-pull-request
dependency-version: '8'
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: actions-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.3 to 1.2.4
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Bump the nuget-deps group with 1 update
Bumps csharpier from 1.2.4 to 1.2.5
---
updated-dependencies:
- dependency-name: csharpier
dependency-version: 1.2.5
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: nuget-deps
...
Signed-off-by: dependabot[bot] <support@github.com>
* Add AOT support, document code and add test cases with help from copilot
* Add version history
* readme
* Fix missing `},` and enable docs generation
* dotnet 10
* install husky
* lf
* crlf
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update language data and generated files (#61)
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
* Refactor and enhance language tag library
- Change Rfc5646Record to a sealed record for better encapsulation.
- Add tests for null or empty input handling in Iso6392 and Iso6393.
- Enhance LanguageLookupTests with case-insensitive tag comparison and validation for null inputs.
- Extend LanguageTagBuilderTests to include multiple variant additions and null checks.
- Improve LanguageTagTests with new tests for ExtensionTag and PrivateUseTag constructors and equality.
- Add tests for Rfc5646Data to check file date and null input handling.
- Update README.md for improved clarity on build status, usage, and references.
* Refactor language tag classes to be sealed and improve logging and command line handling
- Changed `Iso6392Data`, `Iso6393Data`, and `Rfc5646Data` classes to be sealed for better performance and clarity.
- Updated logging configuration to use Serilog with improved context handling.
- Introduced a new command line interface for downloading and generating language tag data.
- Added options for configuring logging behavior and file paths.
- Implemented data downloading and JSON conversion in a structured manner.
- Removed unused namespaces and improved code organization across various files.
- Added global usings and simplified test project structure.
* Refactor LanguageTags library to support asynchronous operations and enhanced logging
- Updated LanguageSchema to provide asynchronous file writing with WriteFileAsync.
- Enhanced LanguageTag and LanguageTagParser to support parsing with logging options.
- Introduced LogOptions for global logging configuration and integrated logging into parsing and data loading processes.
- Converted data loading and saving methods in Rfc5646Data, Iso6392Data, and Iso6393Data to asynchronous counterparts.
- Added unit tests for asynchronous loading and saving of JSON data for Iso6392Data, Iso6393Data, and Rfc5646Data.
- Improved CreateTagData to utilize asynchronous methods for data conversion and code generation.
* Update README to reflect asynchronous loading methods and add debug log configuration examples
* Update documentation
* Refactor and enhance language tag handling
- Updated launch configuration to include a trailing comma for args.
- Added new language tags "ANTLR" and "datebadge" to the workspace.
- Improved asynchronous file handling in Iso6392Data and Iso6393Data classes by using await using for file streams.
- Simplified record parsing logic in Iso6392Data and Iso6393Data to reduce redundancy.
- Enhanced error handling for invalid records in both classes.
- Updated Rfc5646Data to improve async file operations and error logging.
- Refactored CreateTagData to streamline HTTP stream handling and file writing.
- Modified ExtensionTag to return an empty string when tags are empty.
- Added unit test for ExtensionTag to verify empty tag behavior.
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: ptr727 <2061579+ptr727@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:13

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

This PR updates LanguageTags to v1.2, refactors file/data IO to async-only APIs, introduces configurable logging (global and per-call), and modernizes the CLI/codegen workflow plus CI automation.

Changes:

  • Bump library version to 1.2 and update documentation/release history accordingly.
  • Refactor data load/save/codegen to stream-based async APIs and add Options/LogOptions logging configuration.
  • Rework LanguageTagsCreate CLI and GitHub Actions workflows for release, codegen PRs, and PR validation.

Reviewed changes

Copilot reviewed 63 out of 66 changed files in this pull request and generated 15 comments.

Show a summary per file
FileDescription
version.jsonBumps project version to 1.2.
README.mdRefreshes documentation: badges, installation, logging, async APIs, and usage sections.
LanguageTagsTests/Rfc5646Tests.csUpdates tests to async load APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/LanguageTagsTests.csprojSimplifies test project properties; removes packaging metadata.
LanguageTagsTests/LanguageTagTests.csAdds tests for ExtensionTag/PrivateUseTag constructors and behavior.
LanguageTagsTests/LanguageTagParserTests.csSwitches to global usings for test dependencies.
LanguageTagsTests/LanguageTagBuilderTests.csAdds argument-null tests and variant range tests for builder APIs.
LanguageTagsTests/LanguageLookupTests.csAdds equivalence tests, overrides mutability test, and null-arg tests.
LanguageTagsTests/Iso6393Tests.csUpdates to async APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/Iso6392Tests.csUpdates to async APIs; adds JSON roundtrip and null/empty find tests.
LanguageTagsTests/GlobalUsings.csIntroduces global usings for test project (xUnit/AwesomeAssertions + common BCL).
LanguageTagsTests/Fixture.csSwitches to global usings for test dependencies.
LanguageTagsCreate/Program.csRefactors CLI entrypoint to System.CommandLine + logging initialization + codegen orchestration.
LanguageTagsCreate/LoggerFactory.csAdds Serilog-based logger factory integration for CLI and library logging setup.
LanguageTagsCreate/LanguageTagsCreate.csprojUpdates dependencies (logging, resilience, commandline), adjusts AOT settings.
LanguageTagsCreate/HttpClientFactory.csAdds resilient HttpClient creation and handler pipeline configuration.
LanguageTagsCreate/GlobalUsings.csAdds global usings for the codegen CLI project.
LanguageTagsCreate/Extensions.csAdds logging-related extension helpers for Serilog + MEL.
LanguageTagsCreate/CreateTagData.csExtracts codegen steps into a dedicated type (download → JSON → codegen).
LanguageTagsCreate/CommandLine.csAdds System.CommandLine parsing and execution wiring.
LanguageTagsCreate/AssemblyInfo.csAdds assembly metadata helpers for user-agent/version reporting.
LanguageTagsCreate/.editorconfigAdds local analyzer suppression configuration for the CLI project.
LanguageTags/Rfc5646DataGen.csAdjusts generated data type to sealed partial to match API changes.
LanguageTags/Rfc5646Data.csConverts registry I/O + codegen to async streaming; adds logging hooks and options overloads.
LanguageTags/Options.csAdds public Options type for per-call/per-instance logging configuration.
LanguageTags/LogOptions.csAdds global logging configuration and logger creation helpers.
LanguageTags/LanguageTags.csprojAdds logging abstractions dependency; removes Husky restore target.
LanguageTags/LanguageTagParser.csAdds logging on parse failures/normalization; refactors extensions/private-use handling to immutable records.
LanguageTags/LanguageTagBuilder.csSeals builder; updates extension/private-use handling; adds options overload for Normalize.
LanguageTags/LanguageTag.csSeals type; adds options overloads; refactors ExtensionTag/PrivateUseTag into records with normalization helpers.
LanguageTags/LanguageSchema.csConverts file writing helper to async.
LanguageTags/LanguageLookup.csConverts to primary constructor w/ logger; adds debug logging and equivalence helpers.
LanguageTags/Iso6393Data.csConverts ISO 639-3 I/O + codegen to async streaming; adds logging + options overloads.
LanguageTags/Iso6392DataGen.csAdjusts generated data type to sealed partial to match API changes.
LanguageTags/Iso6392Data.csConverts ISO 639-2 I/O + codegen to async streaming; adds logging + options overloads.
LanguageTags/GlobalUsings.csAdds global usings for the library project.
LanguageTags/Extensions.csAdds strongly-typed LoggerMessage helpers for library operations.
LanguageTags/.editorconfigAdds local analyzer suppression configuration for the library project.
LanguageTags.code-workspaceUpdates cSpell words and default solution reference.
LanguageData/iso6393.jsonUpdates ISO 639-3 data content.
LanguageData/iso6393Updates ISO 639-3 source data content.
LICENSEUpdates copyright year.
HISTORY.mdAdds release history document (including v1.2 notes).
CODESTYLE.mdAdds coding standards/tooling documentation.
AGENTS.mdAdds contributor/agent guidance and project overview pointers.
.vscode/tasks.jsonUpdates build task wiring and dependencies.
.vscode/launch.jsonUpdates launch args to match new CLI --codepath requirement.
.husky/pre-commitAdds Husky pre-commit hook runner script.
.gitignoreAdds additional ignore patterns.
.github/workflows/update-languagedata.ymlRemoves old periodic data update workflow.
.github/workflows/test-task.ymlRemoves old test workflow.
.github/workflows/test-release-task.ymlAdds new test workflow composition for release pipeline validation.
.github/workflows/test-pull-request.ymlAdds PR workflow invoking the release test task and status check.
.github/workflows/test-pr.ymlRemoves old PR test workflow.
.github/workflows/run-periodic-codegen-pull-request.ymlAdds new scheduled weekly codegen PR workflow.
.github/workflows/run-codegen-pull-request-task.ymlAdds reusable workflow task to run codegen + open PR.
.github/workflows/publish-release.ymlRefactors release publishing to use reusable build tasks + date badge job.
.github/workflows/merge-bot-pull-request.ymlRefactors merge automation and tightens conditions for bot merges.
.github/workflows/get-version-task.ymlAdds reusable workflow to compute Nerdbank.GitVersioning outputs.
.github/workflows/build-release-task.ymlAdds reusable workflow for building and optionally publishing GitHub/NuGet releases.
.github/workflows/build-library-task.ymlAdds reusable workflow to build library artifacts and optionally push to NuGet.
.github/workflows/build-datebadge-task.ymlAdds reusable workflow to publish a BYOB “last build” badge.
.github/dependabot.ymlRemoves dependabot config for develop branch updates.
.github/copilot-instructions.mdUpdates project instructions to reflect v1.2 APIs and workflow changes.
.config/dotnet-tools.jsonAdds dotnet-outdated-tool to tool manifest.

Comment threadLanguageTagsCreate/Program.cs Outdated
Comment threadLanguageTags/LanguageTagBuilder.cs
Comment threadLanguageTags/LanguageTagParser.cs
Comment threadCODESTYLE.md Outdated
Comment threadLanguageTagsCreate/CommandLine.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTagsCreate/CreateTagData.cs

CopilotAI commented Jan 30, 2026

Copy link
Copy Markdown

@ptr727 I've opened a new pull request, #69, to work on those changes. Once the pull request is ready, I'll request review from you.

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:30

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 64 out of 65 changed files in this pull request and generated 2 comments.

Comment threadLanguageTags/LanguageTag.cs
Comment thread.github/copilot-instructions.md Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings January 30, 2026 02:46

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 64 out of 65 changed files in this pull request and generated 9 comments.

Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/LanguageTag.cs
Comment thread.github/workflows/publish-release.yml
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTagsCreate/CommandLine.cs
Comment threadLanguageTags/LogOptions.cs
…d equality checks (#70)
- Added normalization methods for ExtensionTag and PrivateUseTag to
ensure consistent casing and ordering of tags.
- Implemented equality checks and hash code generation for ExtensionTag
and PrivateUseTag.
- Updated LanguageTagBuilder to throw an exception for empty extension
tags.
- Enhanced validation in LanguageTagParser to reject whitespace in
extension tags.
- Added tests to verify new behaviors and ensure robustness.
…ling in Iso6392Data, Iso6393Data, and Rfc5646Data classes; add tests for LanguageTag parsing and normalization with options; implement logging options tests. (#71)
CopilotAI review requested due to automatic review settings January 30, 2026 04:12
@ptr727
ptr727 enabled auto-merge (squash) January 30, 2026 04:13

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 65 out of 66 changed files in this pull request and generated 9 comments.

Comment threadLanguageTagsCreate/Program.cs
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/LanguageTag.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Iso6392Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Iso6393Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Comment threadLanguageTags/Rfc5646Data.cs
Enhance the LanguageTags library with improved encapsulation,
asynchronous operations, and logging capabilities. Update various
dependencies, including actions and nuget packages, while also refining
documentation and adding tests for new functionalities. Address issues
related to husky installation and improve error handling in language tag
processing.
@ptr727
ptr727 disabled auto-merge January 30, 2026 04:37
@ptr727
ptr727 merged commit 7b1a00b into mainJan 30, 2026
13 checks passed
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.

3 participants

@ptr727