Skip to content

Commit 9d2301d

Browse files
authored
doc: updated tracking and roadmap to v2.5.0 (#112)
Signed-off-by: Frederic BIDON <fredbi@yahoo.com>
1 parent 7af5b77 commit 9d2301d

3 files changed

Lines changed: 25 additions & 34 deletions

File tree

README.md

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,6 @@ This is the go-openapi fork of the great [testify](https://github.com/stretchr/t
4343

4444
## Announcements
4545

46-
* **2025-12-19** : new community chat on discord
47-
* a new discord community channel is available to be notified of changes and support users
48-
* our venerable Slack channel remains open, and will be eventually discontinued on **2026-03-31**
49-
50-
You may join the discord community by clicking the invite link on the discord badge (also above). [![Discord Channel][discord-badge]][discord-url]
51-
52-
Or join our Slack channel: [![Slack Channel][slack-logo]![slack-badge]][slack-url]
53-
5446
### Status
5547

5648
Design and exploration phase completed. The published API is now stable:
@@ -192,9 +184,6 @@ Maintainers can cut a new release by either:
192184
[example-with-generics-url]: https://go-openapi.github.io/testify#usage-with-generics
193185
[godoc-badge]: https://pkg.go.dev/badge/github.com/go-openapi/testify/v2
194186
[godoc-url]: https://pkg.go.dev/github.com/go-openapi/testify/v2
195-
[slack-logo]: https://a.slack-edge.com/e6a93c1/img/icons/favicon-32.png
196-
[slack-badge]: https://img.shields.io/badge/slack-blue?link=https%3A%2F%2Fgoswagger.slack.com%2Farchives%2FC04R30YM
197-
[slack-url]: https://goswagger.slack.com/archives/C04R30YMU
198187
[discord-badge]: https://img.shields.io/discord/1446918742398341256?logo=discord&label=discord&color=blue
199188
[discord-url]: https://discord.gg/FfnFYaC3k5
200189

docs/doc-site/project/maintainers/ROADMAP.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,10 @@ timeline
3737
: Eventually, Eventually (with context), Consistently
3838
: Migration tool
3939
section Q2 2026
40-
📝 v2.5 (May 2026) : synctest opt-in for Eventually, Never, Consistently, EventuallyWith
40+
v2.5 (May 2026) : synctest opt-in for Eventually, Never, Consistently, EventuallyWith
4141
: NoFileDescriptorLeak (macOS)
42-
: InEpsilonSymmetric, Blocked/NotBlocked
42+
: InEpsilonSymmetric, Blocked/NotBlocked
43+
: redactor functons for JSON & YAML assertions
4344
: export internal tools (spew, difflib)
4445
: go1.25+
4546
🔍 v2.6 (June 2026) : (tentative)

docs/doc-site/usage/TRACKING.md

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,23 @@ We continue to monitor and selectively adopt changes from the upstream repositor
1414
-[#1805] - IsOfTypeT[T] generic assertions
1515
-[#1685] - Partial iterator support (SeqContainsT variants)
1616
-[#1828] - Spew panic fixes
17-
-[#1825], [#1818], [#1223], [#1813], [#1611], [#1822], [#1829] - Various bug fixes
17+
-[#1611] - Goroutine leak in Eventually/Never (drove the context-based pollCondition refactor)
18+
-[#1825], [#1818], [#1223], [#1813], [#1822], [#1829] - Various bug fixes
1819
-[#1606], [#1087] - Consistently assertion
1920
-[#1848] - Subset error message
20-
21-
### Monitoring
22-
- 🔍 [#1601] - `NoFieldIsZero`
21+
-[#1839] - `InEpsilonSymmetric` (number equality with symmetric role)
22+
-[#1840] - JSON/YAML `Redactor` pattern (dynamic input redaction, inspired by Insta)
23+
- [#1859] - Channel assertions (`Blocked` / `NotBlocked`)
2324

2425
### Superseded by Our Implementation
26+
-[#1801] - Error message on large collections for `Len`
2527
-[#1845] - Fix Eventually/Never regression (superseded by context-based pollCondition)
2628
-[#1830] - CollectT.Halt() (implemented as `CollectT.Cancel()` in v2.4 — see [CHANGES](./CHANGES.md))
2729
-[#1819] - Handle unexpected exits (handled by per-tick goroutine wrap in v2.4)
2830
-[#1824] - Spew testing (superseded by property-based fuzzing)
2931

30-
[#1087]: https://github.com/stretchr/testify/pull/1087
31-
[#1601]: https://github.com/stretchr/testify/issues/1601
3232
[#1830]: https://github.com/stretchr/testify/pull/1830
3333
[#1824]: https://github.com/stretchr/testify/pull/1824
34-
[#1819]: https://github.com/stretchr/testify/pull/1819
35-
[#1845]: https://github.com/stretchr/testify/pull/1845
36-
[#1848]: https://github.com/stretchr/testify/pull/1848
3734

3835
**Review frequency**: Quarterly (next review: May 2026)
3936

@@ -60,28 +57,28 @@ This table catalogs all upstream PRs and issues from [github.com/stretchr/testif
6057
| Reference | Type | Summary | Outcome in Fork |
6158
|-----------|------|---------|-----------------|
6259
| [#994] | PR | Colorize expected vs actual values | ✅ Adapted into `enable/color` module with themes and configuration |
60+
| [#1087] | Issue | Consistently assertion | ✅ Adapted |
6361
| [#1223] | PR | Display uint values in decimal instead of hex | ✅ Merged - Applied to diff output |
6462
| [#1232] | PR | Colorized output for expected/actual/errors | ✅ Adapted into `enable/color` module |
6563
| [#1356] | PR | panic(nil) handling for Go 1.21+ | ✅ Merged - Updated panic assertions |
6664
| [#1467] | PR | Colorized output with terminal detection | ✅ Adapted into `enable/color` module (most mature implementation) |
6765
| [#1480] | PR | Colorized diffs via TESTIFY_COLORED_DIFF env var | ✅ Adapted with env var support in `enable/color` |
6866
| [#1513] | PR | JSONEqBytes for byte slice JSON comparison | ✅ Merged - Added to JSON domain |
67+
| [#1606] | PR | Consistently assertion | ✅ Adapted |
68+
| [#1611] | Issue | Goroutine leak in Eventually/Never | ✅ Fixed by using context.Context (consolidation into single pollCondition function) |
6969
| [#1685] | PR | Iterator support (`iter.Seq`) for Contains/ElementsMatch | ✅ Partial - Implemented SeqContainsT and SeqNotContainsT only |
7070
| [#1772] | PR | YAML library migration to maintained fork | ✅ Adapted - Used gopkg.in/yaml.v3 in optional `enable/yaml` module |
7171
| [#1797] | PR | Codegen package consolidation and licensing | ✅ Adapted - Complete rewrite of code generation system |
7272
| [#1803] | PR | Kind/NotKind assertions | ✅ Merged - Added to Type domain |
7373
| [#1805] | Issue | Generic `IsOfType[T]()` without dummy value | ✅ Implemented - IsOfTypeT and IsNotOfTypeT in Type domain |
74+
| [#1813] | Issue | Panic with unexported fields | ✅ Fixed via #1828 in internalized spew |
7475
| [#1816] | Issue | Fix panic on unexported struct key in map | ✅ Fixed in internalized go-spew |
7576
| [#1818] | PR | Fix panic on invalid regex in Regexp/NotRegexp | ✅ Merged - Added graceful error handling |
7677
| [#1822] | Issue | Deterministic map ordering in diffs | ✅ Fixed in internalized go-spew |
7778
| [#1825] | PR | Fix panic using EqualValues with incomparable types | ✅ Merged - Enhanced type safety in EqualValues |
7879
| [#1826] | Issue | Type safety with spew (meta-issue) | ✅ Addressed through comprehensive fuzzing and fixes |
7980
| [#1828] | PR | Fixed panic with unexported fields in maps | ✅ Merged into internalized go-spew |
8081
| [#1829] | Issue | Fix time.Time rendering in diffs | ✅ Fixed in internalized go-spew |
81-
| [#1611] | Issue | Goroutine leak in Eventually/Never | ✅ Fixed by using context.Context (consolidation into single pollCondition function) |
82-
| [#1813] | Issue | Panic with unexported fields | ✅ Fixed via #1828 in internalized spew |
83-
| [#1087] | Issue | Consistently assertion | ✅ Adapted |
84-
| [#1606] | PR | Consistently assertion | ✅ Adapted |
8582
| [#1848] | PR | Subset (garbled error message) | ✅ Adapted |
8683
| [#1839] | PR | Number equality with symmetric role | ✅ Adapted |
8784
| [#1840] | Issue | JSON presence check without exact values | ✅ Adapted |
@@ -93,6 +90,7 @@ This table catalogs all upstream PRs and issues from [github.com/stretchr/testif
9390
[#1467]: https://github.com/stretchr/testify/pull/1467
9491
[#1480]: https://github.com/stretchr/testify/pull/1480
9592
[#1576]: https://github.com/stretchr/testify/pull/1576
93+
[#1601]: https://github.com/stretchr/testify/issues/1601
9694
[#1772]: https://github.com/stretchr/testify/pull/1772
9795
[#1797]: https://github.com/stretchr/testify/pull/1797
9896
[#1816]: https://github.com/stretchr/testify/issues/1816
@@ -109,6 +107,7 @@ This table catalogs all upstream PRs and issues from [github.com/stretchr/testif
109107

110108
| Reference | Type | Summary | Why Superseded |
111109
|-----------|------|---------|----------------|
110+
| [#1801] | Issue | `Len` error printing large collections | Duplicate issue upstream. This is fixed by generalized truncation |
112111
| [#1845] | PR | Fix Eventually/Never regression | Superseded by context-based pollCondition implementation (we don't have this bug) |
113112
| [#1819] | PR | Handle unexpected exits in Eventually | Implemented in v2.4 via per-tick goroutine wrap — a `runtime.Goexit` in the condition only aborts the current tick |
114113
| [#1824] | PR | Spew testing improvements | Superseded by property-based fuzzing with random type generator |
@@ -120,7 +119,6 @@ This table catalogs all upstream PRs and issues from [github.com/stretchr/testif
120119
| Reference | Type | Summary | Status |
121120
|-----------|------|---------|--------|
122121
| [#1576] | Issue/PR | `EqualValues` assertion | 🔍 Monitoring [#1863]- Wrong equality when comparing float32 and float64|
123-
| [#1601] | Issue | `NoFieldIsZero` assertion | 🔍 Monitoring - Considering implementation |
124122
| [#1860] | Issue+PR | `ErrorAsType[E]` for Go 1.26+ - PR: [#1861] | 🔍 Monitoring - Interesting UX syntax |
125123

126124
### Informational (Not Implemented)
@@ -129,13 +127,16 @@ This table catalogs all upstream PRs and issues from [github.com/stretchr/testif
129127
|-----------|------|---------|---------|
130128
| [#1147] | Issue | General discussion about generics adoption | ℹ️ Marked "Not Planned" upstream - We implemented our own generics approach ({{% siteparam "metrics.generics" %}} functions) |
131129
| [#1308] | PR | Comprehensive refactor with generic type parameters | ℹ️ Draft for v2.0.0 upstream - We took a different approach with the same objective |
132-
| [#1862] | Issue | `CollectT` extension/redesign | 🔍 Monitoring - Breaking change |
130+
| [#1591], [#1601] | PR + Issue | `NoFieldIsZero` recursive zero-value assertion |**Won't do** - Considered and prototyped (2026-04-26). Same conclusion as upstream maintainers: semantics is too ambiguous (map keys, []byte, pointer targets, unexported fields, cycles, time.Time-style smart-zero types) and overlaps too heavily with [Equal](...) for legitimate use cases. Each pitfall fix adds a knob; full version is a struct validator, not an assertion. |
131+
| [#1862] | Issue | `CollectT` redesign / `testing.TB` interop |**Won't do (for now)** - Studied in depth (2026-04-17). All four design options (interface widening, embedding `*testing.T`, opt-in `CollectTB` wrapper, `CollectT`-as-interface) carry visible costs; Go's `testing.TB.private()` blocks any clean proxy. Workaround for affected users is a 3-line per-helper adapter. Revisit if traction warrants the breaking churn. |
133132

134-
[#1819]: https://github.com/stretchr/testify/pull/1819
135-
[#1845]: https://github.com/stretchr/testify/pull/1845
136133
[#1147]: https://github.com/stretchr/testify/issues/1147
137134
[#1308]: https://github.com/stretchr/testify/pull/1308
135+
[#1591]: https://github.com/stretchr/testify/pull/1591
138136
[#1576]: https://github.com/stretchr/testify/pull/1576
137+
[#1801]: https://github.com/stretchr/testify/pull/1801
138+
[#1819]: https://github.com/stretchr/testify/pull/1819
139+
[#1845]: https://github.com/stretchr/testify/pull/1845
139140
[#1859]: https://github.com/stretchr/testify/pull/1859
140141
[#1860]: https://github.com/stretchr/testify/pull/1860
141142
[#1861]: https://github.com/stretchr/testify/pull/1861
@@ -147,10 +148,10 @@ This table catalogs all upstream PRs and issues from [github.com/stretchr/testif
147148
| Category | Count |
148149
|----------|-------|
149150
| **Implemented/Merged** | 27 |
150-
| **Superseded** | 4 |
151-
| **Monitoring** | 3 |
152-
| **Informational** | 3 |
153-
| **Total Processed** | 37 |
151+
| **Superseded** | 5 |
152+
| **Monitoring** | 2 |
153+
| **Informational** | 4 |
154+
| **Total Processed** | 38 |
154155

155156
**Note**: This fork maintains an active relationship with upstream, regularly reviewing new PRs and issues. The quarterly review process ensures we stay informed about upstream developments while maintaining our architectural independence.
156157

0 commit comments

Comments
 (0)