Skip to content

Document non-SemVer package ordering on channel package version rules#3191

Open
NickJosevski wants to merge 3 commits into
mainfrom
nj/non-semver-package-ordering
Open

Document non-SemVer package ordering on channel package version rules#3191
NickJosevski wants to merge 3 commits into
mainfrom
nj/non-semver-package-ordering

Conversation

@NickJosevski

@NickJosevski NickJosevski commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds public docs for the new Most recently published ordering strategy and Version tag regex field on Channel Package Version Rules — a feature implemented in OctopusDeploy/OctopusDeploy PR #43750 that lets channels rank package versions by publish date instead of SemVer comparison.

This enables feed triggers and release creation to work with non-SemVer schemes like feature-branch tags (feature-checkout-04), CI build numbers (build-1234), and date-stamped names (2026-05-29-nightly).

Details

  • Expanded the Package version rules section to introduce the Ordering strategy choice (Use semantic version / Use most recently published) at step 3 of rule creation. Added a new Most recently published rules subsection with:

    • A regex examples table for the version tag regex field
    • supported feeds (built-in NuGet, external NuGet, S3, GCS, Helm, NPM, GitHub Releases, PyPI, Artifactory Generic) and unsupported feeds (Docker / DockerHub / GHCR / ECR / GCR / OCI)
    • A note that the Design Rule dialog is disabled under this strategy
    • A note on the deterministic publish-date tie-break
  • Expanded the troubleshooting line that previously said "The trigger's version evaluator uses SemVer" into a paragraph that points at the new MRP option, with the unsupported-feed caveat.

  • Tip for: Choosing a versioning scheme for users whose toolchain produces non-SemVer version strings.

🤖 Generated with Claude Code

@NickJosevski NickJosevski force-pushed the nj/non-semver-package-ordering branch from 7637a7a to 6d48063 Compare June 1, 2026 07:11
@NickJosevski NickJosevski requested a review from zentron June 1, 2026 07:17
@NickJosevski

Copy link
Copy Markdown
Contributor Author

Blocked by https://github.com/OctopusDeploy/OctopusDeploy/pull/43780 being reviewed

@team-marketing-branch-protections

Copy link
Copy Markdown

Pull request environment is available at https://stoctodocspr3191.z22.web.core.windows.net.

You can view the ephemeral environment status in Octopus Deploy.

This environment will be automatically deprovisioned when the pull request is closed, or after 7 days of inactivity.

NickJosevski and others added 2 commits July 14, 2026 13:07
Adds documentation for the new "Most recently published" ordering strategy
and version tag regex on Channel Package Version Rules — a feature that
lets channels rank package versions by publish date instead of SemVer
comparison, enabling feed triggers and release creation to work with
non-SemVer schemes like feature-branch tags, build numbers, and
date-stamped builds.

Primary change:
- releases/channels/index.md: expanded the Package version rules section
  to introduce the Ordering strategy choice (Semantic version / Most
  recently published) at step 3 of rule creation. Added a "Most recently
  published rules" subsection with a regex examples table and a callout
  listing supported and unsupported feed types.

Cross-references:
- projects/project-triggers/external-feed-triggers.md: expanded the
  troubleshooting note that previously said the trigger evaluator only
  uses SemVer to point at the new MRP option, with a note on unsupported
  container/OCI feeds.
- packaging-applications/create-packages/versioning.md: added a one-line
  pointer under "Choosing a versioning scheme" for users whose
  toolchain produces non-SemVer version strings.

Related: OctopusDeploy/OctopusDeploy PR #43780

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CI runs markdownlint-cli2 only on files changed by the PR, so the prior
commit's single-sentence addition to versioning.md surfaced 23 long-
standing violations in the same file that had been latent on main.
Fixed mechanically:

- MD029 (ordered-list prefix): continuation paragraphs under list
  items 1, 3, 4 were indented 2 spaces instead of 3, breaking them
  out of the list and making each subsequent item look like a fresh
  "1." Indented to 3 spaces so the list stays connected.
- MD005 (list-indent): item " 3." in the "How Octopus Deploy treats
  semantic versions" list had a stray leading space.
- MD004 (ul-style): two unordered lists under "Maven versions" used
  `*` bullets; the repo style is `-`.
- MD007 (ul-indent): "Learn more" list items were indented one space;
  should be column 0.

No content changes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@NickJosevski NickJosevski force-pushed the nj/non-semver-package-ordering branch from 541d0e2 to a0dfffb Compare July 14, 2026 03:07
GitHub feeds don't implement publish-date ordering, so remove them from
the supported list. Add a note that feeds without publish dates (Maven,
GitHub) silently fall back to version ordering, and that the strategy is
gated behind the non-semver-ordering feature toggle.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@NickJosevski

Copy link
Copy Markdown
Contributor Author

Corrections after cross-checking against implementation PR #43750

Verified the docs against the merged server implementation and pushed a fix (e57aba5):

  • Removed "GitHub Releases" from the supported-feeds list. GitHubPackageFeed only implements IPackageFeedWithLocalCache, not IPackageFeedWithPublishDateOrdering, so it doesn't support Most recently published ordering. This also matches the feed list in the implementation PR description, which names no GitHub feed. The confirmed supported feeds are: built-in NuGet, external HTTP & filesystem NuGet, S3, GCS, Helm, NPM, PyPI, and Artifactory Generic.
  • Added a silent-fallback caveat. Unlike container/OCI feeds (which throw MostRecentlyPublishedNotSupportedException and get an editor warning), feeds without publish dates — Maven and GitHub — don't error; they quietly fall back to version-string ordering. Called this out so it isn't assumed to work.
  • Added a feature-toggle note. The feature is gated behind the non-semver-ordering toggle (OrderByMostRecentlyPublished = nonSemVerOrderingEnabled && …). While disabled, the ordering-strategy choice is unavailable and channels rank by SemVer.

Claims that checked out and were left unchanged: regex matched against the full version string, SemVer-higher tie-break as the secondary sort, container/OCI unsupported set, and the Design Rule dialog being disabled under MRP.

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.

2 participants