Skip to content

Normalize build, CI/CD, and centralized versioning - #1

Merged
uniblab merged 36 commits into
mainfrom
normalize-build-versioning
Sep 4, 2026
Merged

Normalize build, CI/CD, and centralized versioning#1
uniblab merged 36 commits into
mainfrom
normalize-build-versioning

Conversation

@uniblab

@uniblab uniblab commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Summary

Normalizes Icod.UtilLinux to the canonical build and release pattern maintained in uniblab/.github, preserves the current 1.0.1 repository version, and adds the repository-level utillinux router/.NET tool package.

Versioning

  • adds root Directory.Build.props as the single version source;
  • centralizes VersionPrefix, Version, PackageVersion, AssemblyVersion, and FileVersion at 1.0.1;
  • removes duplicated <Version>1.0.1</Version> from kill and renice.

Router and package topology

  • adds utillinux/Icod.UtilLinux.Router.csproj;
  • routes utillinux kill [args...] and utillinux renice [args...] directly in-process;
  • adds router-level --help and --version;
  • adds Router.Tests, including -V dry-run dispatch for both commands;
  • makes kill and renice non-packable while retaining them as standalone executable projects;
  • makes Icod.UtilLinux.Tools the sole NuGet/.NET tool package with installed command utillinux;
  • validates exactly one package with package ID Icod.UtilLinux.Tools in local builds, PR CI, distribution validation, and release packaging;
  • keeps utillinux, kill, and renice available to RID release archives.

Local build tooling

  • normalizes build.cmd and build.sh;
  • adds packaging/RepositoryTools.psm1 and metadata/build/package/distribution/archive helpers;
  • local wrappers use Debug and support clean/restore/build/test/pack/validate stages.

CI/CD

Replaces the legacy PR/main workflows with the canonical lifecycle:

  • pull-request.yaml: Staging on Windows, Linux, and macOS, with Linux exact-package validation;
  • main.yaml: Release distribution validation on Windows/Linux/macOS x64 and ARM64;
  • distribution-validation.yaml: manually dispatched Debug/Staging/Release six-runner validation;
  • release.yaml: v<semver> package selection/publication, six RID archives, checksums, and GitHub Release creation.

The legacy pr-build-and-test.yaml and push-main.yaml workflows are removed.

Documentation

  • adds canonical PR/main badges;
  • documents centralized versioning and the normalized lifecycle;
  • documents installation and use of Icod.UtilLinux.Tools / utillinux;
  • adds packaging/README.md.

No kill or renice command semantics are intentionally changed.

@uniblab
uniblab marked this pull request as ready for review September 4, 2026 06:28
@uniblab
uniblab merged commit a40dbb2 into main Sep 4, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant