Commit ae86058
committed
docs(changelog): convert CHANGES.txt to Keep a Changelog
CHANGES.txt held twenty years of releases in a format that grew by accretion:
93 sections under six different heading shapes, 51 dates in five formats,
sixteen entry prefixes, and product sub-headings that partitioned a version
between core, the Eclipse plug-in and the IDEA plug-in. It is now CHANGELOG.md,
following Keep a Changelog 1.1.0.
The conversion is a format change. Every entry, sub-bullet, issue reference and
attribution is carried over word for word; the 751 GITHUB- and TESTNG-
references come out at 751, none lost and none invented, and the 93 sections
stay 93. What the file recorded about itself is kept too: a release that was
pulled keeps its own words and gains a [YANKED] marker, and the version that
[Unreleased] is heading for is named rather than dropped.
The sixteen prefixes fold into the six Keep a Changelog categories: New and
Added become Added, Update and Improved behavior become Changed, Fix a typo for
Fixed. A product sub-heading becomes a bold prefix on each of its entries, since
the format has no place for it. The breaking-change block, which three entries
refer to by name, stays a block, nested under Changed as a fourth-level heading.
Three things the file could not state are now stated:
- Dates. Sections stopped carrying one after 6.11, so 6.12 through 7.12.0 had
none. They are reconstructed from tags, GitHub releases and Maven Central
publication records. 4.6 was recorded as 2006/27/02, and month 27 does not
exist; in an era spelling dates YYYY/MM/DD the day and month are swapped, so
it reads 2006-02-27. The dates of 4.5 and 5.0 are chronologically impossible
and are carried unchanged, because correcting them would be inventing.
- 7.5.1. It was released from the release_7.5 branch and never reached this
file. Its section is reconstructed from the two commits between the 7.5 and
7.5.1 tags, and sits where its date puts it, between 7.8.0 and 7.7.1.
- 5.0.1 was declared twice, in two sections separated by a rule. One version,
one section.
Comparison links close the file for the 50 versions whose boundaries are both
tagged. 7.1.0 is not among them: it was published to Maven Central and never
tagged. Each link's base is the release the section's changes are measured
against, read from the release lineage rather than from the section above it. For
a release made from master that base is also a Git ancestor; it is not for 7.5.1,
whose branch forked before the 7.5 tag, and 7.5...7.5.1 is a divergent comparison
that still shows exactly the two commits that release shipped. Ordering by
section would have compared 7.8.0 against 7.5.1 and answered with 150 commits of
divergence instead of its 25.
The header does not claim Semantic Versioning. The version being prepared is a
minor one and its own Possible backward incompatible changes block breaks
org.testng, not only org.testng.internal, so the header says what the project
does instead: a minor release may carry a breaking change, and each is listed in
the section that ships it.
Around the file: .gitattributes carries the union merge strategy to the new
path, so two pull requests can still add a line each without conflicting.
AGENTS.md and the pull request template name the new file and its categories.
RELEASE_PROCESS.md gains the step that promotes [Unreleased] into a dated
section, which until now existed only in the habit of doing it. It runs after
tagging, not before, because the promotion adds commits and the tag has to point
at what was built -- which is the order 7.12.0 was actually released in. Its tag
command adopts a v prefix: the release stays 7.10.0, which is what
gradle.properties and Maven Central carry, and v7.10.0 is the name of the ref.
Releases up to 7.12.0 carry no prefix, so the first v tag compares against a bare
one and the rest follow. It also names the commit the publish workflow built rather than whatever local HEAD happens to
be: that workflow is dispatched by hand and checks out the branch head of the
moment, while the tagging happens half an hour later. The run is named
outright rather than taken as the most recent successful one, which a re-run, a
staged USER_MANAGED run or a second dispatch of the same version would each
satisfy, and its conclusion and the version its commit declares are both checked
before the tag is written.
Promoting the changelog now starts by diffing it against that commit. A pull
request merging while Central syncs leaves its entry under Unreleased with its
code outside the artifacts, and dating the section wholesale would file that work
under a version that never carried it while removing it from the one that will.
README.md now points at the changelog above its list of mailing list
announcements, which it keeps: the archive makes a single release hard to find,
which is why the list exists. The release step that updated README.md is now
about that list alone -- the four other things it named, a Maven example, a
Gradle example, download links and version badges, are none of them in that
file -- and it moves after the announcement, which is when the thread it links
to starts existing.1 parent f23ffc9 commit ae86058
8 files changed
Lines changed: 2468 additions & 2147 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
248 | 248 | | |
249 | 249 | | |
250 | 250 | | |
251 | | - | |
252 | | - | |
253 | | - | |
254 | | - | |
255 | | - | |
256 | | - | |
257 | | - | |
258 | | - | |
259 | | - | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
260 | 267 | | |
261 | 268 | | |
262 | 269 | | |
| |||
313 | 320 | | |
314 | 321 | | |
315 | 322 | | |
316 | | - | |
| 323 | + | |
317 | 324 | | |
318 | 325 | | |
319 | 326 | | |
| |||
Large diffs are not rendered by default.
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
15 | 20 | | |
16 | 21 | | |
17 | 22 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
70 | 70 | | |
71 | 71 | | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
78 | 80 | | |
79 | 81 | | |
80 | 82 | | |
| |||
102 | 104 | | |
103 | 105 | | |
104 | 106 | | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
105 | 111 | | |
106 | 112 | | |
107 | 113 | | |
| |||
113 | 119 | | |
114 | 120 | | |
115 | 121 | | |
116 | | - | |
| 122 | + | |
117 | 123 | | |
118 | 124 | | |
119 | 125 | | |
| |||
173 | 179 | | |
174 | 180 | | |
175 | 181 | | |
176 | | - | |
| 182 | + | |
177 | 183 | | |
178 | 184 | | |
179 | 185 | | |
| |||
313 | 319 | | |
314 | 320 | | |
315 | 321 | | |
316 | | - | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
317 | 333 | | |
318 | 334 | | |
319 | | - | |
320 | 335 | | |
321 | 336 | | |
322 | | - | |
323 | | - | |
324 | | - | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
325 | 442 | | |
326 | 443 | | |
327 | | - | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
328 | 459 | | |
329 | | - | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
330 | 469 | | |
331 | 470 | | |
332 | 471 | | |
333 | 472 | | |
334 | 473 | | |
335 | | - | |
336 | | - | |
337 | | - | |
338 | | - | |
339 | | - | |
340 | | - | |
341 | | - | |
| 474 | + | |
| 475 | + | |
342 | 476 | | |
343 | 477 | | |
344 | | - | |
| 478 | + | |
345 | 479 | | |
346 | 480 | | |
347 | 481 | | |
| |||
382 | 516 | | |
383 | 517 | | |
384 | 518 | | |
385 | | - | |
| 519 | + | |
386 | 520 | | |
387 | | - | |
| 521 | + | |
| 522 | + | |
388 | 523 | | |
389 | | - | |
390 | | - | |
391 | | - | |
392 | | - | |
393 | | - | |
394 | | - | |
395 | | - | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
396 | 527 | | |
| 528 | + | |
397 | 529 | | |
398 | | - | |
| 530 | + | |
399 | 531 | | |
400 | 532 | | |
401 | 533 | | |
402 | | - | |
| 534 | + | |
403 | 535 | | |
404 | 536 | | |
405 | 537 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
325 | 325 | | |
326 | 326 | | |
327 | 327 | | |
328 | | - | |
329 | | - | |
330 | | - | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
331 | 333 | | |
332 | 334 | | |
333 | 335 | | |
0 commit comments