Skip to content

feat: enhance solution structure and CI workflows#9

Merged
hpractv merged 6 commits into
mainfrom
bug-fix-releases
May 15, 2026
Merged

feat: enhance solution structure and CI workflows#9
hpractv merged 6 commits into
mainfrom
bug-fix-releases

Conversation

@hpractv

@hpractv hpractv commented May 11, 2026

Copy link
Copy Markdown
Owner
  • Added new projects: analyticsLibrary.ReleaseTooling, analyticsLibrary.NuGetMaintenance, and their corresponding test projects to the solution.
  • Updated Directory.Packages.props to include NuGet.Versioning package.
  • Improved CI workflows by adding a linting job for GitHub Actions and refining the release process to include deprecation of older package versions.
  • Updated README to clarify the stable release process and CI configurations.

Copilot AI review requested due to automatic review settings May 11, 2026 15:46
@hpractv hpractv force-pushed the bug-fix-releases branch from 4449abb to f157768 Compare May 11, 2026 15:51

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adds release-tooling and NuGet maintenance utilities to support automated deprecation of older NuGet versions, updates CI/release workflows (including GitHub Actions linting), and documents the revised stable/beta release process.

Changes:

  • Introduces analyticsLibrary.ReleaseTooling + tests, and a analyticsLibrary.NuGetMaintenance tool to apply NuGet.org deprecations.
  • Refactors release.yml to always pack all packages at a single version, deploy, then deprecate prior CI beta builds and older stable versions.
  • Enhances ci.yml with an actionlint job and broader “tooling changes” detection; updates README and central packages.

Reviewed changes

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

Show a summary per file
File Description
tools/analyticsLibrary.NuGetMaintenance/Program.cs CLI tool to list published versions and apply deprecations via NuGet.org API.
tools/analyticsLibrary.NuGetMaintenance/analyticsLibrary.NuGetMaintenance.csproj Adds new non-packable .NET 8 tool project referencing ReleaseTooling.
tests/analyticsLibrary.ReleaseTooling.Tests/VersionDeprecationPlannerTests.cs Unit tests for version classification and stable/legacy logic.
tests/analyticsLibrary.ReleaseTooling.Tests/NuGetGalleryDeprecationApiTests.cs Verifies request method/headers/content type for deprecation API calls.
tests/analyticsLibrary.ReleaseTooling.Tests/NuGetFlatContainerIntegrationTests.cs Adds a live NuGet API integration test (currently runs in default test runs).
tests/analyticsLibrary.ReleaseTooling.Tests/GlobalUsings.cs Enables global xUnit using for the new test project.
tests/analyticsLibrary.ReleaseTooling.Tests/FlatContainerIndexParserTests.cs Unit tests for parsing flat container version JSON.
tests/analyticsLibrary.ReleaseTooling.Tests/analyticsLibrary.ReleaseTooling.Tests.csproj New .NET 8 xUnit test project for ReleaseTooling.
src/analyticsLibrary.ReleaseTooling/VersionDeprecationPlanner.cs Implements rules for CI beta detection and “older stable than release” checks.
src/analyticsLibrary.ReleaseTooling/ReleaseConstants.cs Centralizes package IDs and deprecation messages/prefixes.
src/analyticsLibrary.ReleaseTooling/NuGetGalleryDeprecationApi.cs Builds NuGet.org deprecation PUT requests (form-urlencoded).
src/analyticsLibrary.ReleaseTooling/NuGetFlatContainerHttp.cs Fetches published versions via NuGet v3 flat container index.
src/analyticsLibrary.ReleaseTooling/FlatContainerIndexParser.cs Parses the versions array out of flat container JSON.
src/analyticsLibrary.ReleaseTooling/analyticsLibrary.ReleaseTooling.csproj New .NET 8 tooling library with NuGet.Versioning dependency.
README.md Documents beta/stable release behavior, actionlint, and deprecation behavior/requirements.
Directory.Packages.props Adds centrally-managed NuGet.Versioning version.
Analytics Library.sln Adds ReleaseTooling, its tests, and the NuGetMaintenance tool; introduces a “tools” solution folder.
.github/workflows/release.yml Packs all packages, deploys, then runs deprecation tool after publishing.
.github/workflows/ci.yml Adds actionlint job and broadens change detection to include tooling paths.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +5 to +12
[Trait("Category", "Integration")]
public class NuGetFlatContainerIntegrationTests
{
[Fact]
public async Task Flat_container_index_for_core_has_versions_array()
{
using var http = new HttpClient { Timeout = TimeSpan.FromSeconds(30) };
Exception? last = null;
Comment thread .github/workflows/release.yml Outdated
@@ -155,80 +46,33 @@ jobs:
- name: Test
run: dotnet test -c Release --no-build --verbosity normal
var chunks = new List<List<string>>();
for (var i = 0; i < items.Count; i += size)
{
chunks.Add(items.Skip(i).Take(size).ToList());
- Added new projects: `analyticsLibrary.ReleaseTooling`, `analyticsLibrary.NuGetMaintenance`, and their corresponding test projects to the solution.
- Updated `Directory.Packages.props` to include `NuGet.Versioning` package.
- Improved CI workflows by adding a linting job for GitHub Actions and refining the release process to include deprecation of older package versions.
- Updated README to clarify the stable release process and CI configurations.
@hpractv hpractv force-pushed the bug-fix-releases branch from f157768 to fc9c1a5 Compare May 11, 2026 16:17
@hpractv

hpractv commented May 11, 2026

Copy link
Copy Markdown
Owner Author

@copilot apply changes based on the comments in this thread

Copilot AI review requested due to automatic review settings May 11, 2026 17:01
@hpractv hpractv removed the request for review from Copilot May 11, 2026 17:01
Copilot AI review requested due to automatic review settings May 11, 2026 17:04
@hpractv hpractv removed the request for review from Copilot May 11, 2026 17:04

Copilot AI commented May 11, 2026

Copy link
Copy Markdown
Contributor

@copilot apply changes based on the comments in this thread

Implemented the requested review-thread updates in commits 54239c0 and 9a2baf0: the NuGet flat container test is now deterministic (no live network dependency), CI/release workflows now exclude Category=Integration by default, and Chunk in NuGetMaintenance was rewritten to index-based linear chunking.

…onsistency

- Upgraded actions/checkout, actions/setup-dotnet, and actions/upload-artifact to their latest versions in CI and release workflows.
- Refactored class names in the analytics library to follow PascalCase convention, improving code readability and consistency across the project.
Copilot AI review requested due to automatic review settings May 11, 2026 20:37

Copilot AI left a comment

Copy link
Copy Markdown

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

Comment thread src/analyticsLibrary.Core/table.cs Outdated
Comment on lines +6 to +11
[Serializable]
public class table
public class Table
{
public string schema { get; set; }
public string name { get; set; }
public IEnumerable<column> columns { get; set; }
public IEnumerable<Column> columns { get; set; }
using System.Linq;

namespace analyticsLibrary.Core
{
Comment on lines 5 to 9
namespace analyticsLibrary.Algorithms
{
public static class sorting
public static class Sorting
{
private static bool stringLess(object value1, object value2) => string.Compare(value1.ToString(), value2.ToString()) <= 0;
Comment thread .github/workflows/release.yml Outdated
@@ -243,3 +87,13 @@ jobs:
--api-key ${{ secrets.NUGET_API_KEY }} \
Comment thread .github/workflows/release.yml Outdated
Comment on lines +29 to +59
dotnet pack src/analyticsLibrary.Excel/analyticsLibrary.Excel.csproj -c Release --no-build -p:Version=$V -o ./artifacts
dotnet pack src/analyticsLibrary.Access/analyticsLibrary.Access.csproj -c Release --no-build -p:Version=$V -o ./artifacts
dotnet pack src/analyticsLibrary.Hadoop/analyticsLibrary.Hadoop.csproj -c Release --no-build -p:Version=$V -o ./artifacts
dotnet pack src/analyticsLibrary/analyticsLibrary.csproj -c Release --no-build -p:Version=$V -o ./artifacts
Comment thread src/analyticsLibrary.Core/table.cs Outdated
Comment on lines +6 to +11
[Serializable]
public class table
public class Table
{
public string schema { get; set; }
public string name { get; set; }
public IEnumerable<column> columns { get; set; }
public IEnumerable<Column> columns { get; set; }
@hpractv

hpractv commented May 15, 2026

Copy link
Copy Markdown
Owner Author

@copilot apply changes based on the comments in this thread

Copilot AI review requested due to automatic review settings May 15, 2026 19:16
@hpractv hpractv removed the request for review from Copilot May 15, 2026 19:16

Copilot AI commented May 15, 2026

Copy link
Copy Markdown
Contributor

@copilot apply changes based on the comments in this thread

Applied the thread updates in bb03b46 and 5ed1546: restored the previous public API type names to avoid unintended breaking renames, quoted the NuGet API key in release push, and added release-version validation to block workflow dispatches below project versions. No UI changes were made (workflow/library-only changes), so there is no UI screenshot.

@hpractv hpractv merged commit 3664041 into main May 15, 2026
4 checks passed
@hpractv hpractv deleted the bug-fix-releases branch May 15, 2026 19:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants