1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2026-01-18 09:00:20 +00:00

Release Notes: Introduce impact notes attached to change notes (#9385)

* Introduce impact notes attached to change notes

No styles yet

* Add more tickets for demo and testing purposes

* Slightly better description for v5.4.0

* Formatting. More to do.

* Embarrassing typo

* Update field names

* Styling refinements

* Disable the #8702 changenote as it is not yet merged

* Add incompleteness warning
This commit is contained in:
Jeremy Ruston
2025-11-09 16:05:00 +00:00
committed by GitHub
parent 3cf71365a5
commit f1ce35036e
21 changed files with 355 additions and 91 deletions

View File

@@ -4,5 +4,5 @@ release: 5.3.8
tags: $:/tags/ChangeNote
change-type: enhancement
change-category: translation
links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9133
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9133
github-contributors: BramChen

View File

@@ -4,5 +4,5 @@ release: 5.3.8
tags: $:/tags/ChangeNote
change-type: bugfix
change-category: translation
links: https://github.com/TiddlyWiki/TiddlyWiki5/issue/9166
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/issue/9166
github-contributors: Leilei332

View File

@@ -4,5 +4,5 @@ release: 5.3.8
tags: $:/tags/ChangeNote
change-type: bugfix
change-category: palette
links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9175
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9175
github-contributors: Leilei332

View File

@@ -4,5 +4,5 @@ release: 5.3.8
tags: $:/tags/ChangeNote
change-type: enhancement
change-category: translation
links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9184
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9184
github-contributors: EvidentlyCube

View File

@@ -4,5 +4,5 @@ release: 5.3.8
tags: $:/tags/ChangeNote
change-type: bugfix
change-category: plugin
links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9185
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9185
github-contributors: Leilei332

View File

@@ -4,7 +4,7 @@ release: 5.3.8
tags: $:/tags/ChangeNote
change-type: bugfix
change-category: hackability
links: https://github.com/TiddlyWiki/TiddlyWiki5/commit/32caeb69c3e7b75a80a84a1e14363e87175b164e
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/commit/32caeb69c3e7b75a80a84a1e14363e87175b164e
github-contributors: Jermolene
Reverted the [[change in v5.3.7|https://github.com/TiddlyWiki/TiddlyWiki5/pull/8721]] that broke the [[list-tagged-draggable Macro]]. The change involved updating some core macros to use procedures

View File

@@ -4,5 +4,5 @@ release: 5.3.8
tags: $:/tags/ChangeNote
change-type: enhancement
change-category: translation
links: https://github.com/TiddlyWiki/TiddlyWiki5/commit/75502266176de9d4a5e1f89cd7f2e455b7a2f6da
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/commit/75502266176de9d4a5e1f89cd7f2e455b7a2f6da
github-contributors: superuser-does

View File

@@ -4,5 +4,5 @@ release: 5.3.8
tags: $:/tags/ChangeNote
change-type: bugfix
change-category: usability
links: https://github.com/TiddlyWiki/TiddlyWiki5/commit/93d30f374da4a6b2037b335f7f7d4eddce8192db
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/commit/93d30f374da4a6b2037b335f7f7d4eddce8192db
github-contributors: Jermolene

View File

@@ -0,0 +1,8 @@
title: $:/changenotes/5.4.0/#8702/impacts/darkmode-info-tiddler
changenote: $:/changenotes/5.4.0/#8702
created: 20250901000000000
modified: 20250901000000000
tags: $:/tags/ImpactNote
description: `$:/info/darkmode` has been superseded by `$:/info/browser/darkmode`
impact-type: deprecation

View File

@@ -0,0 +1,9 @@
title: $:/changenotes/5.4.0/#8702/impacts/palette-pluginisation
changenote: $:/changenotes/5.4.0/#8702
created: 20250901000000000
modified: 20250901000000000
tags: $:/tags/ImpactNote
description: Existing colour palettes have been moved to a new "palettes-legacy" plugin
impact-type: pluginisation
Add the plugin to your wiki in order to continue using the legacy palettes.

View File

@@ -0,0 +1,27 @@
title: $:/changenotes/5.4.0/#8702
description: Colour handling improvements
release: 5.4.0-disabled because this PR is not yet merged
tags: $:/tags/ChangeNote
change-type: enhancement
change-category: hackability
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/8702
github-contributors: Jermolene
This PR brings several new features for end users:
* Automatically switching between a dark and light palette as the operating system setting changes (and to do so without making the wiki dirty)
* Customisation options for palettes. For example, users might choose a base hue, with the colours of the palette automatically adapting to it
* A generalisation of the dark vs. light mechanism to allow an arbitrary number of distinct schemes that are dynamically selected. For example, a palette that has a different scheme for night, morning, day and evening that automatically change with the time of day
There are also new capabilities for palette authors:
* Inheritance for palettes, making it easy to create chains of variants of a base palette
* Self contained palettes that can contain both dark and light variants (or variants for any other custom scheme)
To make all of these new features possible, this PR also includes some useful new general purpose mechanisms and features:
* Background actions that are triggered whenever there is a change to the results of a specified filter
* Several new filter operators for manipulating colour values. The underlying functionality comes from the [[color.js|https://colorjs.io/]] library
* New media query tracking mechanism that can track the results of any CSS media query (not just dark mode), storing the results in a shadow `$:/info/...` tiddler
* New `changecount` filter operator
* New `:apply` filter run prefix (to be replaced by the `:let` filter run prefix in [[#8972|https://github.com/TiddlyWiki/TiddlyWiki5/pull/8972]]))

View File

@@ -0,0 +1,8 @@
title: $:/changenotes/5.4.0/#9103
description: Add support for commands and startups which return promises
release: 5.4.0
tags: $:/tags/ChangeNote
change-type: enhancement
change-category: developer
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9103
github-contributors: Arlen22

View File

@@ -0,0 +1,9 @@
title: $:/changenotes/5.4.0/#9183/impacts/core-server-pluginisation
changenote: $:/changenotes/5.4.0/#9183
created: 20250901000000000
modified: 20250901000000000
tags: $:/tags/ImpactNote
description: Server components of the core have been moved into a new `$:/core-server` plugin
impact-type: pluginisation
It is not necessary for wikis to explicitly include the `$:/core-server` plugin.

View File

@@ -2,9 +2,9 @@ title: $:/changenotes/5.4.0/#9183
description: Offload server-only components to a plugin
release: 5.4.0
tags: $:/tags/ChangeNote
change-type: pluginisation
change-type: performance
change-category: internal
links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9183 https://github.com/TiddlyWiki/TiddlyWiki5/pull/9288
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9183 https://github.com/TiddlyWiki/TiddlyWiki5/pull/9288
github-contributors: Jermolene Leilei332
This change reduces the size of the core plugin by 119.3KB or about 4.5%.

View File

@@ -4,7 +4,7 @@ release: 5.4.0
tags: $:/tags/ChangeNote
change-type: enhancement
change-category: internal
links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9287
github-links: https://github.com/TiddlyWiki/TiddlyWiki5/pull/9287
github-contributors: Jermolene
Doing so enables us to filter and group changes. For example, we could show all the breaking changes between two releases.

View File

@@ -6,8 +6,12 @@ title: Release 5.4.0
type: text/vnd.tiddlywiki
description: Under development
\define release-introduction()
Release v5.4.0 includes major improvements in a number of areas. See the [[project plan|https://github.com/orgs/TiddlyWiki/projects/4]] for more details.
\procedure release-introduction()
Release v5.4.0 is an important release because it deliberately and forensically loosens backwards compatibility where needed to allow significant new features and fundamental improvements to be made.
''Please note that this release note is not yet fully completed, please see the change history on ~GitHub for the full list of changes included in this release.''
See the [[project plan|https://github.com/orgs/TiddlyWiki/projects/4]] for full details.
\end release-introduction
<<releasenote 5.4.0>>

View File

@@ -0,0 +1,55 @@
title: Release Notes and Changes Internals
! Release Notes
Release notes describe the changes in a release, and the impact of those changes.
Release note fields:
* `caption` - the plain version number (eg `5.4.0`)
* `created` - in DateFormat
* `modified` - in DateFormat
* `released` - in DateFormat -- only present if the release has been published
* `tags` - must include `ReleaseNotes`
* `title` - the title of the release note (eg `Release 5.4.0`)
* `description` - a brief description of the release
* `text` - see below
The text of the release note should consist of the definition of a variable `release-introduction` followed by the invocation of the `releasenote` procedure. For example:
```
\define release-introduction()
Release v5.4.0 includes major improvements in a number of areas. See the [[project plan|https://github.com/orgs/TiddlyWiki/projects/4]] for more details.
\end release-introduction
<<releasenote 5.4.0>>
```
! Change Notes
Change notes describe a discrete change within a release. Change note fields:
* `title` - by convention titles are formed `$:/changenotes/<version>/<unique identifier>`. The unique identifier is typically the primary GitHub PR or issue like `#1234` or a GitHub commit ID such as `98f850609d29bc36ded83f90c0d5be231649254b`
* `tags` - must include `$:/tags/ChangeNote`
* `change-type` - the type of change as a single string; see [[here|Release Notes and Changes]] for valid values
* `change-category` - the category of the change; see [[here|Release Notes and Changes]] for valid values
* `text` - full description of the change
* `description` - brief description of the change
* `release` - the release with which this change note is associated (eg `5.4.0`)
* `github-links` - a list of the ~GitHub links associated with this change
* `github-contributors` - a list of the ~GitHub handles of the developers responsible for the PR/commits
! Impact Notes
Impact notes describe the impact of a particular change. There can be multiple impact notes for a given change.
Impact note fields:
* `title` - by convention, the title of the associated change note with `/deprecations/` and a unique ID appended `$:/changenotes/5.4.0/#8702/deprecations/darkmode-info-tiddler`
* `changenote` - the title of the associated change note
* `created` - in DateFormat
* `modified` - in DateFormat
* `tags` - must include `$:/tags/ImpactNote`
* `description` - a brief description of the impact
* `impact-type` - the type of impact; see [[here|Release Notes and Changes]] for valid values
* `text` - description of the impact if required

View File

@@ -1,18 +1,25 @@
title: Release Notes and Changes
See [[Release Notes and Changes Internals]] for a detailed breakdown of the tiddlers that make up a release note.
! Release Notes
Release notes describe the changes in a release, and the impact of those changes. They comprise the following information:
* the version number (eg `5.4.0`)
* the release date if the release has been published
* a brief description of the release
! Change Notes
* `title` by convention titles are formed `$:/changenotes/<version>/<unique identifier>`. The unique identifier is typically a GitHub PR or issue like `#1234` or a GitHub commit ID such as `98f850609d29bc36ded83f90c0d5be231649254b`
* `tags` must include `$:/tags/ChangeNote`, see below for other valid tags
* `change-type` the type of change as a single string; see below for values
* `change-category` the category of the change; see below for vqalues
Change notes describe a discrete change within a release. Change note comprise the following information:
Other valid tags for change notes:
* `$:/tags/ChangeNote/Deprecation`
* `$:/tags/ChangeNote/Breaking`
* the associated release
* the change-type from the list below
* the change-category from the list below
* a description of the change
* a list of the ~GitHub links associated with this change
* a list of the ~GitHub handles of the developers responsible for the PR/commits
Valid change note types are as follows:
@@ -21,7 +28,7 @@ Valid change note types are as follows:
* ''enhancement''
* ''deprecation''
* ''security''
* ''pluginisation''
* ''performance''
Valid change categories are as follows:
@@ -36,3 +43,17 @@ Valid change categories are as follows:
* ''nodejs''
* ''performance''
* ''developer''
! Impact Notes
Impact notes describe the impact of a particular change. There can be multiple impact notes for a given change. They comprise the following information:
* the associated change note
* a description of the impact
* the impact type from the list below
Valid impact types are as follows:
* ''deprecation'' - there are features or functionality that should no longer be used in new code
* ''compatibility-break'' - changes are included that break backwards compatibility
* ''pluginisation'' - functionality has been moved from the core to a plugin

View File

@@ -11,15 +11,24 @@ categories/hackability/caption: Hackability
categories/nodejs/caption: Node.js
categories/performance/caption: Performance
categories/developer/caption: Developer
change-types/bugfix/caption: BUGFIX
change-types/bugfix/caption: Bugfix
change-types/bugfix/colour: #ffe246
change-types/feature/caption: FEATURE
change-types/feature/caption: Feature
change-types/feature/colour: #91ba66
change-types/enhancement/caption: ENHANCEMENT
change-types/enhancement/caption: Enhancement
change-types/enhancement/colour: #cba5ff
change-types/deprecation/caption: DEPRECATION
change-types/deprecation/caption: Deprecation
change-types/deprecation/colour: #ff9d6c
change-types/security/caption: SECURITY
change-types/security/caption: Security
change-types/security/colour: #ff6666
change-types/pluginisation/caption: PLUGINISATION
change-types/pluginisation/colour: #aaaaaa
change-types/performance/caption: Performance
change-types/performance/colour: #c2c7ff
impact-types/deprecation/caption: Deprecation
impact-types/deprecation/colour/foreground: #882222
impact-types/deprecation/colour/background: #ffdddd
impact-types/compatibility-break/caption: Compatibility Break
impact-types/compatibility-break/colour/foreground: #228822
impact-types/compatibility-break/colour/background: #ddffdd
impact-types/pluginisation/caption: Pluginisation
impact-types/pluginisation/colour/foreground: #222288
impact-types/pluginisation/colour/background: #ddddff

View File

@@ -1,80 +1,115 @@
title: $:/tw5.com/releases/procedures
tags: $:/tags/Global
\procedure github-changes-link()
<!-- Generate a link to the changes since the previous release -->
\procedure github-release-changes-link(release)
<a
class="tc-tiddlylink-external"
href=`https://github.com/TiddlyWiki/TiddlyWiki5/compare/v${ [all[tiddlers]tag[ReleaseNotes]has[released]!sort[released]] :filter[get[released]compare:number:lt<releaseTiddlerCreated>] +[get[caption]] }$...${ [<releaseTiddler>has[released]get[caption]addprefix[v]] :else[[master]] }$`
rel="noopener noreferrer"
target="_blank"
>the detailed change history on ~GitHub</a>
\end github-changes-link
\end github-release-changes-link
\procedure banner-credits()
<%if [<banner-credit-user-name>!match[]] %>
<img src=<<banner-credit-permalink>> width="140" style="float:left;margin-right:0.5em;"/>
Congratulations to
<a
class="tc-tiddlylink-external"
href=<<banner-credit-user-link>>
rel="noopener noreferrer"
target="_blank"
><$text text=<<banner-credit-user-name>>/></a>
for their winning design for the banner for this release (here is the
<a
class="tc-tiddlylink-external"
href=<<banner-credit-discussion-link>>
rel="noopener noreferrer"
target="_blank"
>discussion</a>).
<img src=<<banner-credit-permalink>> width="140" style="float:left;margin-right:0.5em;"/>
Congratulations to
<a
class="tc-tiddlylink-external"
href=<<banner-credit-user-link>>
rel="noopener noreferrer"
target="_blank"
><$text text=<<banner-credit-user-name>>/></a>
for their winning design for the banner for this release (here is the
<a
class="tc-tiddlylink-external"
href=<<banner-credit-discussion-link>>
rel="noopener noreferrer"
target="_blank"
>discussion</a>).
<%else%>
<$image source="New Release Banner" width="140">
<$image source="New Release Banner" width="140"/>
<%endif%>
<div style="clear:both;"/>
\end banner-credits
\procedure impact-pill(impact-type)
\whitespace trim
<span
style.fill={{{ [<impact-type>addprefix[$:/tw5.com/releases/info/impact-types/]addsuffix[/colour/foreground]get[text]] }}}
style.color={{{ [<impact-type>addprefix[$:/tw5.com/releases/info/impact-types/]addsuffix[/colour/background]get[text]] }}}
class={{{ doc-change-note-impact-pill-icon [[doc-change-note-impact-pill-]addsuffix<impact-type>] +[join[ ]] }}}
>{{$:/core/images/star-filled}}</span>
<span
class="doc-change-note-impact-pill-text"
>
<$text text=<<impact-type>>/>
</span>
\end impact-pill
\procedure change-list()
\whitespace trim
<$list filter="[enlist{$:/tw5.com/releases/info/category-order}]" variable="category">
<%if [tag[$:/tags/ChangeNote]] :filter[{!!release}match<release>] :filter[{!!change-category}match<category>] %>
<h2>
<$text text={{{ [[$:/tw5.com/releases/info/categories/]addsuffix<category>addsuffix[/caption]get[text]] }}} />
</h2>
<ul>
<$list filter="[tag[$:/tags/ChangeNote]] :filter[{!!release}match<release>] :filter[{!!change-category}match<category>]" variable="change">
<li>
<$link
to="Release Notes and Changes"
class="doc-link-badge"
target="_blank"
rel="noopener noreferrer"
style.backgroundColor={{{ [<change>get[change-type]addprefix[$:/tw5.com/releases/info/change-types/]addsuffix[/colour]get[text]] }}}
>
<$text text={{{ [<change>get[change-type]addprefix[$:/tw5.com/releases/info/change-types/]addsuffix[/caption]get[text]] }}}/>
</$link>
<$text text=" "/>
<$list filter="[<change>get[links]enlist-input[]]" variable="link">
<a
href=<<link>>
class="doc-github-link"
target="_blank"
rel="noopener noreferrer"
<div class="doc-release-note">
<$list filter="[enlist{$:/tw5.com/releases/info/category-order}]" variable="category">
<%if [tag[$:/tags/ChangeNote]] :filter[{!!release}match<release>] :filter[{!!change-category}match<category>] %>
<div class="doc-release-note-heading">
<h2 class="doc-change-note-category">
<$text text={{{ [[$:/tw5.com/releases/info/categories/]addsuffix<category>addsuffix[/caption]get[text]] }}} />
</h2>
</div>
<$list filter="[tag[$:/tags/ChangeNote]] :filter[{!!release}match<release>] :filter[{!!change-category}match<category>sort[description]]" variable="change">
<div class="doc-change-note-item">
<h3 class="doc-change-note-heading">
<$link
to="Release Notes and Changes"
class="doc-link-badge"
style.backgroundColor={{{ [<change>get[change-type]addprefix[$:/tw5.com/releases/info/change-types/]addsuffix[/colour]get[text]] }}}
>
{{$:/core/images/github}}
</a>
<$text text=" "/>
</$list>
<$transclude $tiddler=<<change>> $field="description" $mode="inline"/>
<div class="doc-changenote-body">
<$text text={{{ [<change>get[change-type]addprefix[$:/tw5.com/releases/info/change-types/]addsuffix[/caption]get[text]] }}}/>
</$link> <$transclude $tiddler=<<change>> $field="description" $mode="inline"/></h3>
<div class="doc-change-note-info-list">
<$list filter="[tag[$:/tags/ImpactNote]] :filter[{!!changenote}match<change>] +[sort[description]]" variable="impact" counter="impactCount">
<div class="doc-change-note-info-list-item-caption">
<%if [<impactCount>match[1]] %>
Impact:
<%endif%>
</div>
<div class="doc-change-note-info-list-item-description">
<div class="doc-change-note-info-list-item-description-summary">
<$transclude $variable="impact-pill" $mode="inline" impact-type={{{ [<impact>get[impact-type]] }}}/>
<$text text=": "/>
<$transclude $tiddler=<<impact>> $field="description" $mode="inline"/>
</div>
<div class="doc-change-note-info-list-item-description-details">
<$transclude $tiddler=<<impact>> $field="text" $mode="block"/>
</div>
</div>
</$list>
<div class="doc-change-note-info-list-item-caption">
<$text text="GitHub: "/>
</div>
<div class="doc-change-note-info-list-item-description">
<$list filter="[<change>get[github-links]enlist-input[]]" variable="link">
<a
href=<<link>>
class="doc-github-link"
target="_blank"
rel="noopener noreferrer"
>
{{$:/core/images/github}}
</a>
</$list>
</div>
</div>
<div class="doc-change-note-description">
<$transclude $tiddler=<<change>> $mode="block"/>
</div>
</li>
</div>
</$list>
</ul>
<%endif%>
</$list>
<%endif%>
</$list>
</div>
\end change-list
\procedure acknowledgements()
@@ -82,10 +117,8 @@ for their winning design for the banner for this release (here is the
<$list filter="[enlist<release-github-contributors>sort[]]" variable="username">
<li>
<a href={{{ [[https://github.com/]addsuffix<username>] }}} class="tc-tiddlylink-external" target="_blank" rel="noopener noreferrer">
<img src={{{ [[https://github.com/]addsuffix<username>addsuffix[.png?size=64]] }}} width="64" height="64"/>
<span class="doc-github-contributor-username">
@<$text text=<<username>>/>
</span>
<span class="doc-github-contributor-avatar"><img src={{{ [[https://github.com/]addsuffix<username>addsuffix[.png?size=64]] }}} width="64" height="64"/></span>
<span class="doc-github-contributor-username">@<$text text=<<username>>/></span>
</a>
</li>
</$list>
@@ -99,7 +132,7 @@ for their winning design for the banner for this release (here is the
release-github-contributors={{{ [tag[$:/tags/ChangeNote]] :filter[{!!release}match<release>] :map:flat[enlist{!!github-contributors}] +[sort[]format:titlelist[]join[ ]]}}}
>
See <<github-changes-link>> and [[other versions|TiddlyWiki Releases]].
See <<github-release-changes-link>> and [[other releases|TiddlyWiki Releases]].
<<banner-credits>>
@@ -109,9 +142,7 @@ See <<github-changes-link>> and [[other versions|TiddlyWiki Releases]].
! Changes
This release includes the following changes.
<<change-list>>
<$transclude $variable="change-list" $mode="inline"/>
<!-- Acknowledgement list -->

View File

@@ -1,3 +1,86 @@
title: $:/tw5.com/releases/styles
tags: $:/tags/Stylesheet
type: text/vnd.tiddlywiki
.doc-release-note {
}
.doc-release-note-heading {
}
.doc-change-note-category, .doc-change-note-heading {
font-weight: 600;
margin: 0;
}
.doc-release-note, .doc-release-note-heading, .doc-change-note-type, .doc-change-note-body, .doc-change-note-impacts {
}
.doc-change-note-item {
border: 2px solid #e8e8e8;
border-radius: 0.5em;
margin-top: 1em;
margin-bottom: 1em;
background: #f9f9f9;
}
.doc-change-note-item {
}
.doc-change-note-heading {
padding: 0.25em;
background: #e8e8e8;
color: <<colour foreground>>;
}
.doc-change-note-heading .doc-link-badge {
margin-right: 0.25em;
display: inline-block;
vertical-align: baseline;
}
.doc-change-note-github-links {
border-top: 1px solid #e8e8e8;
border-bottom: 1px solid #e8e8e8;
}
.doc-change-note-info-list {
display: grid;
grid-template-columns: max-content 1fr;
gap: 0.5rem;
padding: 0.5rem;
}
.doc-change-note-info-list-item-caption {
text-transform: uppercase;
font-size: 0.7em;
font-weight: bold;
white-space: nowrap;
text-align: right;
}
.doc-change-note-impact-pill-icon {
}
.doc-change-note-impact-pill-icon svg {
width: 1em;
height: 1em;
vertical-align: middle;
}
.doc-change-note-info-list-item-description-summary {
font-weight: bold;
font-size: 0.9em;
}
.doc-change-note-info-list-item-description-details {
font-size: 0.85em;
margin-top: 0.25em;
padding-left: 1.5em;
border-left: 2px solid #e8e8e8;
}
.doc-change-note-description {
padding: 0.25em;
background: #ffffff;
}