Re: The Trunk: Help-Squeak-Project-ct.115.mcz

Christoph Thiede via Squeak-dev <[email protected]> Sun, 2 Aug 2026 20:37:25 +0200
Newsgroups gmane.comp.lang.smalltalk.squeak.general
Message-ID <a6f14093-61fe-404a-8ab7-b4e3f6919b8d@MX2025-DAG1.hpi.uni-potsdam.de>
--===============0002691743948064223==
Content-Type: multipart/alternative; boundary="==CelesteAttachment24461=="

--==CelesteAttachment24461==
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"

Hi Marcel,

I apologize if "unorthodox" sounded violent to you. It was obviously (?) =
not meant that way and probably the wrong word. I like the fine-tuned hel=
p browser you built for the release image. :-)

You're right, this composition should not have broken the outline tool. U=
nfortunately, some coupling between a help topic and its parent is alread=
y there (see all the "subtopic" selectors in AbstractHelpTopic, which lar=
gely I am to be blamed for), or also #usesCodeStylingForPages and its sen=
ders. By the way, I just noticed that trying to drag "What is New?" into =
the release notes gives you an MNU for a similar reason ... this is proba=
bly not worth fixing prior to the release ... Maybe we should add an expl=
icit reference from each help topic to its parent?

We should discuss this further after the release, and I'd be happy to dis=
cuss revisions to the current API of the outline tool, too. :-)

Best,
Christoph

-- 
Sent from Squeak Inbox Talk

On 2026-08-02T10:32:07+02:00, [email protected] wrote:

> Hi Christoph, hi all --
> 
> I think that the case of re-use (or re-composition) of help topics such=
 
> as this case here with "What is New?" is quite normal and should be 
> expected in a modular and robust system. Any reliance on outside 
> composition structures seems rather surprising and disregarding the "La=
w 
> of Demeter" (i.e., "only talk to your direct neighours"). While we can =

> still write this kind of code (here: #outlineRoots), we should be extra=
 
> careful and prefer "simpler" solutions if they seem feasible.
> 
> In general, we should also be attentive when writing commit messages (o=
r 
> any message to the community) to use non-violent phrasing whenever 
> possible. In this case, a simple omission of the word "unorthodox" woul=
d 
> not have done this message any harm.
> 
> Kind regards,
> Marcel
> 
> Am 02.08.2026 um 03:07 schrieb commits(a)source.squeak.org:
> > Christoph Thiede uploaded a new version of Help-Squeak-Project to pro=
ject The Trunk:
> > http://source.squeak.org/trunk/Help-Squeak-Project-ct.115.mcz
> >
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Summary =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> >
> > Name: Help-Squeak-Project-ct.115
> > Author: ct
> > Time: 2 August 2026, 3:07:08.816874 am
> > UUID: 36b81c10-c8c3-43e4-ae42-a25885794d0e
> > Ancestors: Help-Squeak-Project-mt.114
> >
> > Fixes release notes outline viewer for the unorthodox composition of =
the release notes under the "What is New?" page in the welcome contents. =
Also fixes a stupid slip in a #detect:ifNone:.
> >
> > This was urgent. :-)
> >
> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Diff against Help-Squeak-Project-mt.114 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D
> >
> > Item was changed:
> > ----- Method: SqueakHelpOutlineTool>>outlineRoots (in category 'acces=
sing') -----
> > outlineRoots
> > 
> > =C2=A0=C2=A0=C2=A0=C2=A0| parentTopic topic |
> > =C2=A0=C2=A0=C2=A0=C2=A0outlineRoots ifNotNil: [^ outlineRoots].
> > =C2=A0=C2=A0=C2=A0=C2=A0
> > =C2=A0=C2=A0=C2=A0=C2=A0parentTopic :=3D self helpBrowser currentParentTopic.
> > =C2=A0=C2=A0=C2=A0=C2=A0topic :=3D self helpBrowser currentTopic.
> > =C2=A0=C2=A0=C2=A0=C2=A0(parentTopic isNil or: [topic isNil]) ifTrue: [^ outlineRoots=
 :=3D #()].
> > + =C2=A0=C2=A0=C2=A0=C2=A0(parentTopic respondsTo: #outlineRootsFor:in:) ifFalse:
> > + =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0["See ReleaseBuilder class>>#openWelcomeWorkspacesW=
ith:"
> > + =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0topic title asString asLowercase =3D 'What is New?' a=
sLowercase ifTrue:
> > + =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0[parentTopic :=3D SqueakReleaseNotes]].
> > =C2=A0=C2=A0=C2=A0=C2=A0(parentTopic respondsTo: #outlineRootsFor:in:) ifFalse: [^ ou=
tlineRoots :=3D #()].
> > =C2=A0=C2=A0=C2=A0=C2=A0^ outlineRoots :=3D parentTopic
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0outlineRootsFor: topic
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0in: self editedTopicContents!
> >
> > Item was changed:
> > ----- Method: SqueakReleaseNotes class>>findHelpBrowser (in category =
'examples - support') -----
> > findHelpBrowser
> > 
> > + =C2=A0=C2=A0=C2=A0=C2=A0| windows |
> > + =C2=A0=C2=A0=C2=A0=C2=A0windows :=3D (SystemWindow windowsIn: Project current world)
> > + =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0select: [:ea | ea model isKindOf: HelpBrowser].
> > + =C2=A0=C2=A0=C2=A0=C2=A0windows
> > - =C2=A0=C2=A0=C2=A0=C2=A0^ ((SystemWindow windowsIn: Project current world)
> > - =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0select: [:ea | ea model isKindOf: HelpBrowser])
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0detect: [:ea |
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0ea model currentParentTopic isClassBasedHelpT=
opic
> > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0and: [ea model currentParentTopic hel=
pClass =3D SqueakReleaseNotes]]
> > + =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0ifFound: [:ea | ^ ea].
> > + =C2=A0=C2=A0=C2=A0=C2=A0^ windows
> > + =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0ifNotEmpty: [windows anyOne]
> > + =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0ifEmpty: [nil]!
> > - =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0ifNone: [:ea | (ea ifEmpty: [^ nil]) first]!
> >
> > Squeak-dev mailing list -- squeak-dev(a)lists.squeakfoundation.org
> > To unsubscribe send an email to squeak-dev-leave(a)lists.squeakfounda=
tion.org
--==CelesteAttachment24461==
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="UTF-8"

Hi Marcel,<br>
<br>
I apologize if &quot;unorthodox&quot; sounded violent to you. It was obvi=
ously (?) not meant that way and probably the wrong word. I like the fine=
-tuned help browser you built for the release image. :-)<br>
<br>
You&apos;re right, this composition should not have broken the outline to=
ol. Unfortunately, some coupling between a help topic and its parent is a=
lready there (see all the &quot;subtopic&quot; selectors in AbstractHelpT=
opic, which largely I am to be blamed for), or also #usesCodeStylingForPa=
ges and its senders. By the way, I just noticed that trying to drag &quot=
;What is New?&quot; into the release notes gives you an MNU for a similar=
 reason ... this is probably not worth fixing prior to the release ... Ma=
ybe we should add an explicit reference from each help topic to its paren=
t?<br>
<br>
We should discuss this further after the release, and I&apos;d be happy t=
o discuss revisions to the current API of the outline tool, too. :-)<br>
<br>
Best,<br>
Christoph<br>
<br>
<font color=3D"#808080">-- <br>
</font><font color=3D"#808080"><i>Sent from </i></font><font color=3D"#808080=
"><i><a href=3D"https://github.com/hpi-swa-lab/squeak-inbox-talk"><font col=
or=3D"#808080">Squeak Inbox Talk</font></a></i></font><br>
<br>
On 2026-08-02T10:32:07+02:00, [email protected] wrote:<br>
<br>
<blockquote>Hi Christoph, hi all --<br>
<br>
I think that the case of re-use (or re-composition) of help topics such <=
br>
as this case here with &quot;What is New?&quot; is quite normal and shoul=
d be <br>
expected in a modular and robust system. Any reliance on outside <br>
composition structures seems rather surprising and disregarding the &quot=
;Law <br>
of Demeter&quot; (i.e., &quot;only talk to your direct neighours&quot;). =
While we can <br>
still write this kind of code (here: #outlineRoots), we should be extra <=
br>
careful and prefer &quot;simpler&quot; solutions if they seem feasible.<b=
r>
<br>
In general, we should also be attentive when writing commit messages (or =
<br>
any message to the community) to use non-violent phrasing whenever <br>
possible. In this case, a simple omission of the word &quot;unorthodox&qu=
ot; would <br>
not have done this message any harm.<br>
<br>
Kind regards,<br>
Marcel<br>
<br>
Am 02.08.2026 um 03:07 schrieb commits(a)source.squeak.org:<br>
&gt; Christoph Thiede uploaded a new version of Help-Squeak-Project to pr=
oject The Trunk:<br>
&gt; http://source.squeak.org/trunk/Help-Squeak-Project-ct.115.mcz<br>
&gt;<br>
&gt; =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Summary =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br>
&gt;<br>
&gt; Name: Help-Squeak-Project-ct.115<br>
&gt; Author: ct<br>
&gt; Time: 2 August 2026, 3:07:08.816874 am<br>
&gt; UUID: 36b81c10-c8c3-43e4-ae42-a25885794d0e<br>
&gt; Ancestors: Help-Squeak-Project-mt.114<br>
&gt;<br>
&gt; Fixes release notes outline viewer for the unorthodox composition of=
 the release notes under the &quot;What is New?&quot; page in the welcome=
 contents. Also fixes a stupid slip in a #detect:ifNone:.<br>
&gt;<br>
&gt; This was urgent. :-)<br>
&gt;<br>
&gt; =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Diff against Help-Squeak-Project-mt.114 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D<br>
&gt;<br>
&gt; Item was changed:<br>
&gt; ----- Method: SqueakHelpOutlineTool&gt;&gt;outlineRoots (in category=
 &apos;accessing&apos;) -----<br>
&gt; outlineRoots<br>
&gt; <br>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;| parentTopic topic |<br>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;outlineRoots ifNotNil: [^ outlineRoots].<br>=

&gt; &nbsp;&nbsp;&nbsp;&nbsp;<br>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;parentTopic :=3D self helpBrowser currentParen=
tTopic.<br>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;topic :=3D self helpBrowser currentTopic.<br>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;(parentTopic isNil or: [topic isNil]) ifTrue=
: [^ outlineRoots :=3D #()].<br>
&gt; + &nbsp;&nbsp;&nbsp;&nbsp;(parentTopic respondsTo: #outlineRootsFor:=
in:) ifFalse:<br>
&gt; + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&quot;See Release=
Builder class&gt;&gt;#openWelcomeWorkspacesWith:&quot;<br>
&gt; + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;topic title asStri=
ng asLowercase =3D &apos;What is New?&apos; asLowercase ifTrue:<br>
&gt; + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;[parentTopic :=3D SqueakReleaseNotes]].<br>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;(parentTopic respondsTo: #outlineRootsFor:in=
:) ifFalse: [^ outlineRoots :=3D #()].<br>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;^ outlineRoots :=3D parentTopic<br>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outlineRootsFor: top=
ic<br>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in: self editedTopic=
Contents!<br>
&gt;<br>
&gt; Item was changed:<br>
&gt; ----- Method: SqueakReleaseNotes class&gt;&gt;findHelpBrowser (in ca=
tegory &apos;examples - support&apos;) -----<br>
&gt; findHelpBrowser<br>
&gt; <br>
&gt; + &nbsp;&nbsp;&nbsp;&nbsp;| windows |<br>
&gt; + &nbsp;&nbsp;&nbsp;&nbsp;windows :=3D (SystemWindow windowsIn: Projec=
t current world)<br>
&gt; + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select: [:ea | ea =
model isKindOf: HelpBrowser].<br>
&gt; + &nbsp;&nbsp;&nbsp;&nbsp;windows<br>
&gt; - &nbsp;&nbsp;&nbsp;&nbsp;^ ((SystemWindow windowsIn: Project curren=
t world)<br>
&gt; - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select: [:ea | ea =
model isKindOf: HelpBrowser])<br>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;detect: [:ea |<br>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;ea model currentParentTopic isClassBasedHelpTopic<br>
&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;and: [ea model currentParentTopic helpClass =3D=
 SqueakReleaseNotes]]<br>
&gt; + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ifFound: [:ea | ^ =
ea].<br>
&gt; + &nbsp;&nbsp;&nbsp;&nbsp;^ windows<br>
&gt; + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ifNotEmpty: [windo=
ws anyOne]<br>
&gt; + &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ifEmpty: [nil]!<br=
>
&gt; - &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ifNone: [:ea | (ea=
 ifEmpty: [^ nil]) first]!<br>
&gt;<br>
&gt; Squeak-dev mailing list -- squeak-dev(a)lists.squeakfoundation.org<b=
r>
&gt; To unsubscribe send an email to squeak-dev-leave(a)lists.squeakfound=
ation.org</blockquote>
--==CelesteAttachment24461==--

--===============0002691743948064223==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Squeak-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
--===============0002691743948064223==--