Repository navigation
release: v1.0.0 - #151
Merged
Merged
release: v1.0.0#151
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014bZeDEJcuNRdhY6SZ58mrZ
Contributor
|
🚀 Cloudflare Pages preview for https://6a677730.cats-eo-docs.pages.dev Branch alias: https://ccr-e93cf778-o0l24d.cats-eo-docs.pages.dev Built from commit |
Contributor
Benchmark A/BAllocation (B/op) — authoritative
481 more benchmarks
Timing (ns/op) — directional only, same-VM but shared runner
base_sha: Informational only · head |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Prepares the v1.0.0 release, following CONTRIBUTING's "Releasing a new version" procedure. This PR pushes no tag.
build.sbt:ThisBuild / tlBaseVersion := "1.0"(was"0.18").CHANGELOG.md:## [1.0.0] - 2026-10-25is cut out of[Unreleased], with an empty## [Unreleased]placeholder above it. Compare links are updated ([Unreleased]now compares fromv1.0.0, and a new[1.0.0]link comparesv0.18.0...v1.0.0). The section opens with the recompile warning: inline-spliced call sites built against 0.18.x fail at runtime. It also says that Scala 3.9.x is now required downstream: TASTy 28.9 comes from the Scala 3.9.0 toolchain bump in build(deps): sbt 1.13.0 and audited dependency bumps; replace Scala Steward with Dependabot sbt #122, after v0.18.0. Then it says what 1.0.0 means: MiMa from here on, and kyo is experimental. It links site pages only. I ran the release workflow's awk extractor locally: it returns a 195-line body with Added / Changed / Fixed / Removed.MiMa policy: on from 1.0.0
mima.sbt: theThisBuild / tlMimaPreviousVersions := Set.emptyoverride is removed, so sbt-typelevel's default applies. I rewrote the header comment: MiMa is on from 1.0.0, the kyo exception, and the ProblemFilter guidance (internal symbols only; a public break waits for a major bump). The 0.x break history is kept as history. The never-released "Unreleased" / "0.19" entries are merged into one 1.0.0 entry, covering theOptionalredesign, removal of the MultiFocus Grate kernel andRepresentativeIndex, theOptic.allreturn type, and Scala 3.9 TASTy.sbt-typelevel-mima/-kernel0.8.7 sources): it takes the git tags reachable with--no-contains HEAD, keeps the non-prereleases, and filters them withV.mustBeBinCompatWith, which needs the same major andmajor > 0. Every existing tag is 0.x, so 1.0.0 gets nothing. 1.0.1 and later get1.0.0and every later 1.x tag.project/plugins.sbt: refreshed a stale comment that said MiMa runs "from 0.1.1 onward".cats-eo-kyois EXPERIMENTALkyoIntegration / tlMimaPreviousVersions := Set.emptyis set inbuild.sbt, with a comment: it builds on kyo1.0.0-RC7, a release candidate; lift the override once kyo 1.0.0 final ships. The module is still published. It is marked experimental in:RC6→RC7);Also fixed: README and getting-started said "Scala 3.8.x" and now say 3.9.x. I left the README artifact versions alone:
update-readme-version.ymlbumps them after publish.CHANGELOG gaps filled
I compared
git log v0.18.0..origin/mainwith the Unreleased section and added:PSVec.pSVecTraverse.traverseshared one result array acrossG's continuations, somodifyAunder List / Vector / Tuple2K / re-run State or IO aliased results.cats-eo-laws): multi-shotForgetfulTraverselaws (sequential and parallel composition,traverseMultiShotAgreesWithFoci) in the newforgetfulTraverseMultiShotrule set, and D2ModifyAListLaws/ModifyAListTests(modifyA[List]).Optionaldependency); scalacheck 1.20.0 incats-eo-laws.Optic.all), refactor(core): retire MultiFocus.representableAt — therepr0index was unobservable #123 / feat(core): supply the Grate bridge's index — the read stops being forged #127 / refactor(core): separate Indexed from container MultiFocus #129 (under Removed). Skipped because they aren't user-visible: CI, the benchmark sweeps, the demo refactor refactor(demos): framing test helpers are split / join, like the pipes #134, the test-only bump build(deps): bump io.github.martinhh:scalacheck-derived_3 from 0.10.0 to 0.11.0 #148, and build(deps): land #118 + #124 + #126 as one verified bump; fix avro's stryker blocker (#115) #128 (benchmark-only and plugin bumps).No benchmark numbers are quoted.
Validation (JDK 25.0.5, sbt 1.13.0)
sbt githubWorkflowGenerateproduced noci.ymldrift, andgithubWorkflowCheckpasses.mimaReportBinaryIssuessucceeds: every module logs "mimaPreviousArtifacts is empty, not analyzing binary compatibility".show tlMimaPreviousVersionsandshow mimaPreviousArtifactsareSet()for every module.v1.0.0on this commit:version=1.0.0andtlMimaPreviousVersions=Set().version=1.0.0-1-f868d6b-SNAPSHOT.core / tlMimaPreviousVersions=Set(1.0.0), andmimaPreviousArtifacts=dev.constructive:cats-eo:1.0.0(andcats-eo-laws:1.0.0for laws).kyoIntegrationstays atSet().sbt test(root aggregate, including kyo): every suite passes. 1,516 tests: 1,514 passed, 0 failed, 2 skipped.scalafmtCheckAll scalafmtSbtCheckpass.docs/mdocanddocs/laikaSitepass.publishLocal(no signing) publishes 12 modules: cats-eo, -laws, -generics, -schemes, -schemes-laws, -circe, -avro, -jsoniter, -iron, -zio, -kyo, -chimney.show versionbefore the tag:1.0-058c5f9-SNAPSHOT.After merge
v1.0.0on the merge commit and push the tag:git tag v1.0.0 <merge-sha> && git push origin v1.0.0.update-readme-version.ymlbumps the README artifact lines to 1.0.0, andgithub-release.ymlbuilds the GitHub Release from the## [1.0.0]section.https://repo1.maven.org/maven2/dev/constructive/cats-eo_3/1.0.0/.Generated by Claude Code