docs(roadmap): act on the 2026-Q3 review — fix drift, roster shipped work, open the rolling lane - #302
Merged
Merged
Conversation
…work, open the rolling lane The quarterly roadmap review (#281) found the roadmap had fallen behind the repository: every milestone through 2.1.0 was complete, yet two full releases of collections had shipped without ever being rostered, and two pieces of prose still described work that had already landed. Drift fixed: - The Vision section still said Celerity "currently ships a single NuGet package". The 2.0.0 split shipped three; the prose predates that release. - Milestone 2.0.0 still said "what remains is the human-gated go/no-go on the actual v2.0.0 tag (#213)". v2.0.0 shipped 2026-06-21 and #213 is closed. Rostered retroactively: - A new milestone 2.3.0 section records the fourteen types that shipped in v2.3.0 with no roadmap entry: the specialized-set parity family (RobinHoodSet / HashCachingSet / PooledCeleritySet / SmallSet), the enum-keyed pair (EnumSet / EnumMap), the four BCL gaps (Deque / DisjointSet / LruCache / IndexedPriorityQueue), and XorFilter. - BitWriter / BitReader joins milestone 2.1.0's Primitives list, alongside the SpanBits / VarInt work it extends, noting it released in v2.3.0. - The "Built with Celerity" showcase tier (Ring / Sentinel / Cardinality) is described in Vision, explicitly as a downstream tier held to its own bar rather than as a fourth core package. Opened going forward: - Milestone 2.4.0 is a standing home for post-roadmap work, so the tier-(c) lane stops landing unrostered. Trie, SparseSet and FenwickTree are listed as in flight; the open 2.4.0 issues carry the rest. No scope decisions are made here — this only reconciles the roadmap with what the CHANGELOG, the git tags and src/ already say. Closes #281. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Updates ROADMAP.md to reflect the 2026-Q3 roadmap review outcomes by reconciling milestone prose with shipped releases, retroactively recording previously unrostered shipped work, and introducing a standing “rolling” milestone for ongoing post-roadmap items.
Changes:
- Updates Vision and milestone 2.0.0 prose to reflect the post-v2.0.0 multi-package reality and the fact that v2.0.0 has shipped.
- Adds a retroactive milestone 2.3.0 section enumerating the specialized collections that shipped without a roadmap entry.
- Introduces milestone 2.4.0 as a standing milestone and lists “in flight” items merged to
mainawaiting the next tag.
| ## Vision | ||
|
|
||
| Celerity currently ships a single NuGet package (`Celerity.Collections`). Long-term, the project will expand into a family of focused packages — each targeting a specific area where specialized, high-performance implementations can outperform the BCL in niche scenarios. The package structure will mirror the .NET ecosystem's own organization: | ||
| Celerity ships **three** NuGet packages as of v2.0.0 (the package split — see milestone 2.0.0 below; the roadmap previously described a single `Celerity.Collections` package, which predates that release). Long-term, the project will continue to expand into a family of focused packages — each targeting a specific area where specialized, high-performance implementations can outperform the BCL in niche scenarios. The package structure mirrors the .NET ecosystem's own organization: |
|
|
||
| ## Milestone 2.4.0 — rolling post-roadmap work | ||
|
|
||
| The planned roadmap is complete through 2.1.0, and the two releases since have been driven entirely by source-reading rather than by the plan. Rather than let that work keep landing unrostered — the drift the 2026-Q3 review was opened to catch — **2.4.0 is a standing milestone** that new post-roadmap work is filed against as it is identified. It is not a fixed scope with a completion date; it is the home for the tier-(c) lane. |
Comment on lines
+204
to
+206
| - `Trie<TValue>` — ordered prefix tree mapping `string` keys to values; the operation no hash table can do is *prefix* enumeration in sorted order without scanning every key. Status: `done`. Tracked in [#285](https://github.com/marius-bughiu/Celerity/issues/285). | ||
| - `SparseSet` — bounded-universe `[0, Universe)` integer set with `O(1)` clear and dense iteration; the classic ECS / graph-visited-set structure, where `HashSet<int>.Clear()` and hash iteration both lose. Status: `done`. Tracked in [#287](https://github.com/marius-bughiu/Celerity/issues/287). | ||
| - `FenwickTree<T>` — Binary Indexed Tree over a fixed-length sequence: `O(log n)` point update *and* prefix-sum query, where a running-sum array gives `O(1)` query but `O(n)` update and a plain array gives the reverse. Status: `done`. Tracked in [#289](https://github.com/marius-bughiu/Celerity/issues/289). |
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.
Acts on the 2026-Q3 roadmap review (#281). Documentation only — no scope decisions, no code. This reconciles
ROADMAP.mdwith whatCHANGELOG.md, the git tags andsrc/already say.Why
The review found every milestone through 2.1.0 complete (0 open issues across all five), yet two full releases of collections had shipped without ever appearing on the roadmap, and two pieces of prose still described work that had already landed.
Drift fixed
Celerity.Collections)"v2.0.0tag (#213)"Rostered retroactively
A new milestone 2.3.0 section records the fourteen types that shipped in v2.3.0 with no roadmap entry, grouped by the reason each exists:
RobinHoodSet,HashCachingSet,PooledCeleritySet,SmallSet(the dictionary family had four specialized peers; the set family had none)EnumSet<TEnum>,EnumMap<TEnum, TValue>Deque<T>,DisjointSet<T>,LruCache<,,>,IndexedPriorityQueue<,,>XorFilter<T, THasher>Also:
BitWriter/BitReaderjoins milestone 2.1.0's Primitives list next to theSpanBits/VarIntwork it extends, with a note that it released in v2.3.0.Celerity.Ring/Celerity.Sentinel/Celerity.Cardinality) is now described in Vision — explicitly as a downstream tier held to its own domain bar, not as a fourth core package, so the distinction from the core family is on the record.Opened going forward
Milestone 2.4.0 is a new standing milestone for post-roadmap work, so the tier-(c) lane stops landing unrostered — which is the drift this review exists to catch.
Trie,SparseSetandFenwickTreeare listed as in flight (merged tomain, awaiting a tag); the open 2.4.0 issues carry the rest.Not done here
Deliberately out of scope for this PR: no
CHANGELOG.mdentry (this documents history rather than changing behaviour), and no new planned-work items — those are filed as their own issues on the 2.4.0 milestone.Closes #281.
🤖 Generated with Claude Code