Skip to content

release: Unsga3 0.1.5 - #9

Merged
jkbennitt merged 1 commit into
mainfrom
cursor/release-0-1-5-a5f7
Sep 22, 2026
Merged

jkbennitt merged 1 commit into
mainfrom
cursor/release-0-1-5-a5f7

Conversation

@jkbennitt

@jkbennitt jkbennitt commented Sep 22, 2026 •

Copy link
Copy Markdown
Member

Summary

Release prep for Unsga3 0.1.5 (2026-09-22). This PR bumps the package version and moves the merged forensic-audit wave (G1–G10) out of [Unreleased] into ## [0.1.5]. It does not tag v0.1.5 and does not publish to GitHub Packages or NuGet. After merge, the owner tags v0.1.5 and publishes.

Package id stays Unsga3. Version sources: Directory.Build.props, CITATION.cff, README status line, bug-report placeholder. No Version / PackageVersion overrides in the csproj files.

Left under [Unreleased] (not part of 0.1.5): the optional TypeSafe pass, and the earlier docs wording for initialPopulation.

What landed in 0.1.5

Honesty notes and small edge fixes from the forensic wave. The published 15-seed table is not rewritten. The default tournament stays RankNicheDistance — this release does not switch mating to Seada & Deb Algorithm 2 or to PymooCompatible.

  • G1. DTLZ2 pymoo oracle passes n_var=12 (k=10) to match Dtlz2Problem. The published table used pymoo’s default n_var=10 and stays as published. Seed 1 was remeasured at n_var=12.
  • G2. ZDT IGD compares the C# full non-dominated front with pymoo res.F. ReferenceDirectionThinning.OnePerDirection is a cardinality aid, not a parity claim.
  • G3. Collapsed-nadir fallback (nadir = ideal + 1 when the span stays ≤ 1e-6) is documented. pymoo 0.6.2 stops at the worst point in the population. Behavior is unchanged.
  • G4. Default RankNicheDistance is not Seada and Deb Algorithm 2. PymooCompatible matches the paper’s same-niche split; p_c stays 1.0 (paper experiments use 0.9). Default tournament unchanged.
  • G5. Infeasible points still enter the hyperplane. Fixture: feasible (1, 1) beside infeasible (0, 0) keeps ideal at (0, 0).
  • G6. Mating calls PrepareForSelection, which re-associates survivors. pymoo keeps the niche ids from survival.
  • G7. WithDasDennis(1, 1) throws because N must be at least 2. Single-objective runs pass an explicit population size. N = 1 is not accepted.
  • G8. Euclidean distance rejects a shorter vector. Single-point Pareto samplers throw. IGD+ has a hand-case test. ZDT6’s 0.280775 floor and ZDT3’s 0.1822287280 endpoint stay locked.
  • G9. Duplicate elimination no longer spins when mutation cannot change the decision vector. The key is G12 significant digits. After the attempt cap, remaining offspring slots may be duplicates.
  • G10. Equivalence docs no longer say the published Wilcoxon table is within 1–2% of pymoo. The DTLZ2 seed-1 guard is 2× the published mismatched scalar 0.00350. Das–Dennis Count uses a checked 64-bit combination. Two-layer reference directions remain absent.

Next step (owner, after merge)

  1. Tag v0.1.5 on the merge commit.
  2. Let the existing v* publish workflow ship the Unsga3 package (GitHub Packages). nuget.org is still the planned path, not this PR.

This PR does not create the tag and does not publish a package.

Checklist

  • CHANGELOG.md: forensic/docs/fix items under 0.1.5; unrelated Unreleased items kept
  • Version 0.1.5 in Directory.Build.props, CITATION.cff, README status line
  • Compare links: [Unreleased] → v0.1.5...HEAD, [0.1.5] → v0.1.4...v0.1.5
  • dotnet test Unsga3.slnx -c Release — 66 passed, 0 failed (SDK 10.0.401)
  • No tag and no package publish in this PR
  • Public API: ReferenceDirectionThinning already documented in XML comments from the forensic wave

Test plan

  • dotnet test Unsga3.slnx -c Release — Passed: 66, Failed: 0, Skipped: 0.
  • Local pack check (not published): Unsga3.0.1.5.nupkg, id Unsga3, version 0.1.5.
Open in Web Open in Cursor 

Move the G1–G10 forensic notes into the 0.1.5 changelog and bump
package metadata. Tag and NuGet publish stay with the owner after merge.

Co-authored-by: Jason <jkbennitt@users.noreply.github.com>
@jkbennitt
jkbennitt merged commit f832c41 into main Sep 22, 2026
2 checks passed
@jkbennitt
jkbennitt deleted the cursor/release-0-1-5-a5f7 branch September 22, 2026 06:09
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