<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<div id="divtagdefaultwrapper" style="font-size: 12pt; color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;" dir="ltr">
<p>Hi Eliot,</p>
<p><br>
</p>
<p>> <span>But can you email me the text?</span></p>
<p><span><br>
</span></p>
<p><span>Here it is:</span></p>
<p><span><br>
</span></p>
<p><span></span></p>
<div align="left" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<b><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">   </span>Contributing To Squeak<br>
<br>
</b></div>
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    </span>As you might have noticed, Squeak is a <i>completely open
 system</i>, which makes it very easy not only to explore every interesting detail in the image but also to customize everything at your will. Whether you would like to <span><a style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">adjust
 some colors</a></span>, fix a <span><a style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">bug </a></span>you have stumbled
 upon, or <span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">add a new feature </span></span>, everything is flexible
 and under your control.<span>
<div align="left" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br>
</div>
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    </span></span><i>Squeak lives from your contributions!</i> Squeak
 is powered to 100% by volunteer open-source contributions. Whenever you make an adjustment to the base system, you might ask yourself: <i>could others benefit from this change, too?</i>, and if the answer is yes, we invite you to consider contributing back
 to the community. Also, if you just discovered a bug, have a question, or would like to discuss an idea, our forums are open!<span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span><br style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">   </span></span><b>The Squeak Community Model</b><span>
<div align="left" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br>
</div>
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    </span></span>The majority of communication about the Squeak
 development takes place on the <span><a href="http://lists.squeakfoundation.org/mailman/listinfo/squeak-dev" target="_blank" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">squeak-dev
 mailing list</a></span>. There is a public <span><a href="http://lists.squeakfoundation.org/pipermail/squeak-dev/" target="_blank" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">mailing
 list archive</a>,</span> but to engage in any discussion, you have to <span><a href="http://lists.squeakfoundation.org/mailman/listinfo/squeak-dev#:~:text=Subscribing%20to%20Squeak%2Ddev" target="_blank" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">sign
 up</a><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"></span>
<div align="left" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
to the list. Alternatively, you can report issues on our <a href="https://github.com/squeak-smalltalk/squeak-object-memory/issues" target="_blank">GitHub issue tracker</a>.</div>
<div align="left" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br>
</div>
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    </span></span>On the mailing list, ideas, bug reports, and patches
 are exchanged. Version control for all Squeak packages is run via <span><a style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">Monticello</a><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">.
 All versions that are uploaded to any Squeak package will automatically be forwarded to the list for further discussion. There are three package repositories:</span><br style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    * The </span><i style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">Trunk
 repository</i><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"> contains the latest integrated patches. Only core
 developers have write access.</span><br style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    * The </span><i style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">Inbox
 repository</i><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"> is the place for all new suggestions and requests
 for review. Everyone can upload proposals here without the need to create an account. (You can still create an account on </span><a href="https://source.squeak.org/" target="_blank" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">https://source.squeak.org/</a><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"> and </span><i style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">edit
 the repository info</i><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"> of the inbox repository with your credentials.)</span><br style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    * The </span><i style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">Treated
 Inbox</i><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"> repository is the sidetrack for versions that have been
 dealt with or that have been superseded.</span>
<div align="left" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br>
<br>
</div>
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    </span></span>The usual workflow for a new contribution is to
 upload it to the inbox, where others will discuss and review it on squeak-dev, and from where it usually will be merged into the Trunk eventually. Here you can learn more about the development process: <span><a href="https://squeak.org/development_process/" target="_blank" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">https://squeak.org/development_process/</a><br style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    <squeakDevelopmentProcess.png></span><br style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    </span></span><b>Making your first contribution</b><span>
<div align="left" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br>
</div>
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    </span></span>*<span><a style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">Install
 the latest Trunk updates</a><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"></span>
<div align="left" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span style="font-size: 12pt;">    </span><span style="font-size: 12pt;">* Make your change, preferably from a clean image (to avoid configuration drift)</span><br>
</div>
</span><span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    </span></span>* <a>Open the Monticello Browser</a>:<span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">        * </span></span><b>On the left,</b> select the <b>package</b> you
 have changed (denoted with a <i>*star</i>).<span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    </span></span>    * <b>On the right,</b> select the <b>inbox</b> repository.<span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    </span></span>    * On the top, press <b>save.</b><span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    </span></span> Review your changes, enter a meaningful
 version message, and <b>accept</b> the new version to upload it.<span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    </span></span>* <i>That's it!</i> Your contribution has
 arrived in the inbox and soon you will receive feedback from the community through the mailing list. Keep an eye on your mailbox!<span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span><br style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">   </span></span><b>Squeak Inbox Talk</b><span>
<div align="left" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br>
</div>
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">   </span></span>Squeak Inbox Talk is a third-party tool that attempts
 to simplify the development process by bringing together all the different artifacts that belong to the development process - mailing list, archives, and Monticello versions - and allowing you to interact with them directly from your image. You can access
 it <span><a style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">from the Tools menu </a></span>or install it via:<span>
<div align="left" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br>
</div>
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">        Installer installSqueakInboxTalk.</span><br style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    <</span><a href="https://raw.githubusercontent.com/hpi-swa-lab/squeak-inbox-talk/main/assets/SqueakInboxTalk.png" target="_blank" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">https://raw.githubusercontent.com/hpi-swa-lab/squeak-inbox-talk/main/assets/SqueakInboxTalk.png</a><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">></span><br style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<div align="left" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br>
</div>
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    Further information can be found on GitHub: </span><a href="https://github.com/hpi-swa-lab/squeak-inbox-talk" target="_blank" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">https://github.com/hpi-swa-lab/squeak-inbox-talk</a><br style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    </span></span><b>Further Concepts</b><span>
<div align="left" style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">
<br>
</div>
<span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    </span></span>* <b>Change sets:</b> Usually, new proposals are
 best exchanged through an inbox version. However, some ideas consist of changes to multiple packages, when it becomes tricky to work with multiple inbox versions. In this case, a change set is a good alternative. You can open a <i>dual change sorter</i> from
 the <span><a style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">Tools </a></span>and <span><a style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">Changes </a></span>menus
 in the docking bar and make a yellow click on the change set list on the left to bring up some options. <i>Create a new change set</i> and <i>copy</i> or <i>move</i> all relevant changes to it. <i>Add a preamble</i> to the change set to add an explaining message
 and finally <i>file out</i> or <i>mail to list</i> it directly. To install a change set, you can <i>file in</i> it from the <span><a style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">file
 list </a></span>or by dragging it into the image.<span><a style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</a><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    </span></span>* <b>Preambles and postscripts:</b> Some changes
 make it necessary to run some scripts before or after loading the new code to perform any migrations or changes to the object graph. This is possible through preambles and postscripts. To add or edit a script for a Monticello package, select it in the <span><a style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">Monticello
 browser </a></span>and press the <i>Scripts</i> button. Add your logic to the code, test it, accept it, and include it in your next inbox version. Note that preambles and postscripts in Trunk packages are required to be idempotent and may be evaluated multiple
 times. For changesets, you can add a preamble and a postscript as well from the yellow-button menu of the change set list in the change sorter.<span><a style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</a><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;">    </span></span>* If you identify any other contribution-related
 concepts that should be mentioned or explained in greater detail here, please feel free to add them here. This would make an ideal first contribution. :-)<span><span style="font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols; font-size: 16px;"><br>
</span><br>
</span>
<p></p>
Best,</div>
<div id="divtagdefaultwrapper" style="font-size: 12pt; color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;" dir="ltr">
Christoph<br>
<br>
<div style="color: rgb(0, 0, 0);">
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Eliot Miranda <eliot.miranda@gmail.com><br>
<b>Gesendet:</b> Mittwoch, 29. Juni 2022 00:48 Uhr<br>
<b>An:</b> The general-purpose Squeak developers list<br>
<b>Betreff:</b> Re: [squeak-dev] The Inbox: Help-Squeak-Project-ct.94.mcz</font>
<div> </div>
</div>
<div>
<div dir="ltr">
<div dir="ltr">
<div class="gmail_default" style="font-size:small"><br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Tue, Jun 28, 2022 at 4:50 AM Thiede, Christoph <<a href="mailto:Christoph.Thiede@student.hpi.uni-potsdam.de">Christoph.Thiede@student.hpi.uni-potsdam.de</a>> wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left-width:1px; border-left-style:solid; border-left-color:rgb(204,204,204); padding-left:1ex">
<div>
<div id="gmail-m_-3038714796409122207divtagdefaultwrapper" dir="ltr" style="font-size: 12pt; color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<p>Hi Eliot, could you please confirm that you would like me to push these - yet unreviewed - documentation contents to the Trunk while we are in Code Freeze? :-)</p>
</div>
</div>
</blockquote>
<div><br>
</div>
<div class="gmail_default" style="font-size:small">perhaps not :-)  But can you email me the text?</div>
<div class="gmail_default" style="font-size:small"><br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left-width:1px; border-left-style:solid; border-left-color:rgb(204,204,204); padding-left:1ex">
<div>
<div id="gmail-m_-3038714796409122207divtagdefaultwrapper" dir="ltr" style="font-size: 12pt; color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;">
<p><br>
</p>
<p>Best,</p>
<p>Christoph</p>
</div>
<hr style="display:inline-block; width:98%">
<div id="gmail-m_-3038714796409122207divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>Von:</b> Squeak-dev <<a href="mailto:squeak-dev-bounces@lists.squeakfoundation.org" target="_blank">squeak-dev-bounces@lists.squeakfoundation.org</a>>
 im Auftrag von Eliot Miranda <<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>><br>
<b>Gesendet:</b> Donnerstag, 23. Juni 2022 19:25:31<br>
<b>An:</b> The general-purpose Squeak developers list<br>
<b>Betreff:</b> Re: [squeak-dev] The Inbox: Help-Squeak-Project-ct.94.mcz</font>
<div> </div>
</div>
<div>
<div dir="ltr">
<div dir="ltr">
<div style="font-size:small"><br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Thu, Jun 23, 2022 at 10:25 AM Eliot Miranda <<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>> wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left-width:1px; border-left-style:solid; border-left-color:rgb(204,204,204); padding-left:1ex">
<div dir="ltr">
<div style="font-size:small">+100 for pushing this to trunk</div>
</div>
</blockquote>
<div><br>
</div>
<div style="font-size:small">Easier to review & edit there.</div>
<div style="font-size:small"></div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left-width:1px; border-left-style:solid; border-left-color:rgb(204,204,204); padding-left:1ex">
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Tue, Jun 21, 2022 at 2:14 PM <<a href="mailto:christoph.thiede@student.hpi.uni-potsdam.de" target="_blank">christoph.thiede@student.hpi.uni-potsdam.de</a>> wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex; border-left-width:1px; border-left-style:solid; border-left-color:rgb(204,204,204); padding-left:1ex">
Community service: Read the HTML-rendered copy of the proposed book below:<br>
<br>
    
<div align="left"><b>Contributing To Squeak<br>
<br>
</b></div>
    
<div align="left">As you might have noticed, Squeak is a <i>completely open system</i>, which makes it very easy not only to explore every interesting detail in the image but also to customize everything at your will. Whether you would like to
</div>
<a>adjust some colors</a>
<div align="left">, fix a </div>
<a>bug</a>
<div align="left">you have stumbled upon, or </div>
add a new feature
<div align="left">, everything is flexible and under your control.<br>
<br>
</div>
    
<div align="left"><i>Squeak lives from your contributions!</i> Squeak is powered to 100% by volunteer open-source contributions. Whenever you make an adjustment to the base system, you might ask yourself:
<i>could others benefit from this change, too?</i>, and if the answer is yes, we invite you to consider contributing back to the community. Also, if you just discovered a bug, have a question, or would like to discuss an idea, our forums are open!</div>
<br>
<br>
    
<div align="left"><b>The Squeak Community Model</b><br>
<br>
</div>
    
<div align="left">The majority of communication about the Squeak development takes place on the
</div>
<a href="http://lists.squeakfoundation.org/mailman/listinfo/squeak-dev" target="_blank">squeak-dev mailing list</a>
<div align="left">. There is a public </div>
<a href="http://lists.squeakfoundation.org/pipermail/squeak-dev/" target="_blank">mailing list archive</a>
<div align="left">, but to engage in any discussion, you have to </div>
<a href="http://lists.squeakfoundation.org/mailman/listinfo/squeak-dev#:~:text=Subscribing%20to%20Squeak%2Ddev" target="_blank">sign up</a>
<div align="left">to the list. Alternatively, you can report issues on our </div>
<a href="https://github.com/squeak-smalltalk/squeak-object-memory/issues" target="_blank">GitHub issue tracker</a>
<div align="left">.<br>
<br>
</div>
    
<div align="left">On the mailing list, ideas, bug reports, and patches are exchanged. Version control for all Squeak packages is run via
</div>
<a>Monticello</a>. All versions that are uploaded to any Squeak package will automatically be forwarded to the list for further discussion. There are three package repositories:<br>
<br>
    * The <i>Trunk repository</i> contains the latest integrated patches. Only core developers have write access.<br>
    * The <i>Inbox repository</i> is the place for all new suggestions and requests for review. Everyone can upload proposals here without the need to create an account. (You can still create an account on
<a href="https://source.squeak.org/" target="_blank">https://source.squeak.org/</a> and
<i>edit the repository info</i> of the inbox repository with your credentials.)<br>
    * The <i>Treated Inbox</i> repository is the sidetrack for versions that have been dealt with or that have been superseded.
<div align="left"><br>
<br>
</div>
    
<div align="left">The usual workflow for a new contribution is to upload it to the inbox, where others will discuss and review it on squeak-dev, and from where it usually will be merged into the Trunk eventually. Here you can learn more about the development
 process: </div>
<a href="https://squeak.org/development_process/" target="_blank">https://squeak.org/development_process/</a><br>
<br>
    <squeakDevelopmentProcess.png><br>
<br>
    
<div align="left"><b>Making your first contribution</b><br>
<br>
</div>
    
<div align="left">* </div>
<a>Install the latest Trunk updates</a>
<div align="left"><br>
</div>
    
<div align="left">* Make your change, preferably from a clean image (to avoid configuration drift)<br>
</div>
    
<div align="left">* </div>
<a>Open the Monticello Browser</a>:<br>
        *
<div align="left"><b>On the left,</b> select the <b>package</b> you have changed (denoted with a
<i>*star</i>).<br>
</div>
    
<div align="left">    * <b>On the right,</b> select the <b>inbox</b> repository.<br>
</div>
    
<div align="left">    * On the top, press <b>save.</b><br>
</div>
    
<div align="left">* Review your changes, enter a meaningful version message, and <b>
accept</b> the new version to upload it.<br>
</div>
    
<div align="left">* <i>That's it!</i> Your contribution has arrived in the inbox and soon you will receive feedback from the community through the mailing list. Keep an eye on your mailbox!</div>
<br>
<br>
    
<div align="left"><b>Squeak Inbox Talk</b><br>
<br>
</div>
    
<div align="left">Squeak Inbox Talk is a third-party tool that attempts to simplify the development process by bringing together all the different artifacts that belong to the development process - mailing list, archives, and Monticello versions - and allowing
 you to interact with them directly from your image. You can access it </div>
<a>from the Tools menu</a>
<div align="left">or install it via:<br>
<br>
</div>
        Installer installSqueakInboxTalk.<br>
<br>
    <<a href="https://raw.githubusercontent.com/hpi-swa-lab/squeak-inbox-talk/main/assets/SqueakInboxTalk.png" target="_blank">https://raw.githubusercontent.com/hpi-swa-lab/squeak-inbox-talk/main/assets/SqueakInboxTalk.png</a>><br>
<div align="left"><br>
</div>
    Further information can be found on GitHub: <a href="https://github.com/hpi-swa-lab/squeak-inbox-talk" target="_blank">
https://github.com/hpi-swa-lab/squeak-inbox-talk</a><br>
<br>
    
<div align="left"><b>Further Concepts</b><br>
<br>
</div>
    
<div align="left">* <b>Change sets:</b> Usually, new proposals are best exchanged through an inbox version. However, some ideas consist of changes to multiple packages, when it becomes tricky to work with multiple inbox versions. In this case, a change set
 is a good alternative. You can open a <i>dual change sorter</i> from the </div>
<a>Tools</a>
<div align="left">and </div>
<a>Changes</a>
<div align="left">menus in the docking bar and make a yellow click on the change set list on the left to bring up some options.
<i>Create a new change set</i> and <i>copy</i> or <i>move</i> all relevant changes to it.
<i>Add a preamble</i> to the change set to add an explaining message and finally <i>
file out</i> or <i>mail to list</i> it directly. To install a change set, you can
<i>file in</i> it from the </div>
<a>file list</a>
<div align="left">or by dragging it into the image.<br>
</div>
    
<div align="left">* <b>Preambles and postscripts:</b> Some changes make it necessary to run some scripts before or after loading the new code to perform any migrations or changes to the object graph. This is possible through preambles and postscripts. To add
 or edit a script for a Monticello package, select it in the </div>
<a>Monticello browser</a>
<div align="left">and press the <i>Scripts</i> button. Add your logic to the code, test it, accept it, and include it in your next inbox version. Note that preambles and postscripts in Trunk packages are required to be idempotent and may be evaluated multiple
 times. For changesets, you can add a preamble and a postscript as well from the yellow-button menu of the change set list in the change sorter.<br>
</div>
    
<div align="left">* If you identify any other contribution-related concepts that should be mentioned or explained in greater detail here, please feel free to add them here. This would make an ideal first contribution. :-)</div>
<br>
<br>
Open to all your feedback. But, please, let's not prolong the review process too much to not hinder this from going into the RC. :-)<br>
<br>
Best,<br>
Christoph<br>
<br>
<font color="#808080">---<br>
</font><font color="#808080"><i>Sent from </i></font><font color="#808080"><i><a href="https://github.com/hpi-swa-lab/squeak-inbox-talk" target="_blank"><u><font color="#808080">Squeak Inbox Talk</font></u></a></i></font><br>
<br>
On 2022-06-21T20:59:48+00:00, <a href="mailto:commits@source.squeak.org" target="_blank">
commits@source.squeak.org</a> wrote:<br>
<br>
> A new version of Help-Squeak-Project was added to project The Inbox:<br>
> <a href="http://source.squeak.org/inbox/Help-Squeak-Project-ct.94.mcz" target="_blank">
http://source.squeak.org/inbox/Help-Squeak-Project-ct.94.mcz</a><br>
> <br>
> ==================== Summary ====================<br>
> <br>
> Name: Help-Squeak-Project-ct.94<br>
> Author: ct<br>
> Time: 21 June 2022, 10:59:45.096176 pm<br>
> UUID: e922e850-4074-764e-bb2d-a7754075a639<br>
> Ancestors: Help-Squeak-Project-ct.93<br>
> <br>
> Proposal: Adds help on how to contribute to Squeak. Short description of the community model, the development process, and some required/recommended tools. Updates the URLs in the page 'Squeak Resources Online' and adds a link to the new tutorial. Reorders
 project pages. Adds a very simple way to include figures to the new help book.<br>
> <br>
> =============== Diff against Help-Squeak-Project-ct.93 ===============<br>
> <br>
> Item was added:<br>
> + SqueakProjectHelp subclass: #SqueakContributionHelp<br>
> +     instanceVariableNames: ''<br>
> +     classVariableNames: ''<br>
> +     poolDictionaries: ''<br>
> +     category: 'Help-Squeak-Project'!<br>
> <br>
> Item was added:<br>
> + ----- Method: SqueakContributionHelp class>>bookBlurb (in category 'accessing') -----<br>
> + bookBlurb<br>
> + <br>
> +     self flag: #moveUpstream.<br>
> +     ^ (self perform: self defaultPage) contents!<br>
> <br>
> Item was added:<br>
> + ----- Method: SqueakContributionHelp class>>bookName (in category 'accessing') -----<br>
> + bookName<br>
> + <br>
> +     ^ 'Contributing to Squeak'!<br>
> <br>
> Item was added:<br>
> + ----- Method: SqueakContributionHelp class>>communityModel (in category 'pages') -----<br>
> (excessive size, no diff calculated)<br>
> <br>
> Item was added:<br>
> + ----- Method: SqueakContributionHelp class>>contributingToSqueak (in category 'pages') -----<br>
> + contributingToSqueak<br>
> +     "This method was automatically generated. Edit it using:"<br>
> +     "SqueakContributionHelp edit: #contributingToSqueak"<br>
> +     <generated><br>
> +     ^(HelpTopic<br>
> +         title: 'Contributing'<br>
> +         contents: <br>
> + 'Contributing To Squeak<br>
> + <br>
> + As you might have noticed, Squeak is a completely open system, which makes it very easy not only to explore every interesting detail in the image but also to customize everything at your will. Whether you would like to adjust some colors, fix a bug you
 have stumbled upon, or add a new feature, everything is flexible and under your control.<br>
> + <br>
> + Squeak lives from your contributions!!!! Squeak is powered to 100% by volunteer open-source contributions. Whenever you make an adjustment to the base system, you might ask yourself: could others benefit from this change, too?, and if the answer is yes,
 we invite you to consider contributing back to the community. Also, if you just discovered a bug, have a question, or would like to discuss an idea, our forums are open!!!!!!<br>
> + ]style[(24 39 22 158 18 8 3 28 17 50 37 143 43 197)a0b,a0,a0i,a0,Rcode:// SqueakTheme class>>#addSyntaxHighlighting:;,a0,Rcode://<br>
> + self systemNavigation browseAllImplementorsOf: #expectedFailures;,a0,,a0,a0i,a0,a0i,a0!!' readStream nextChunkText)<br>
> +             key: #contributingToSqueak;<br>
> +             shouldStyle: false;<br>
> +             yourself!<br>
> <br>
> Item was added:<br>
> + ----- Method: SqueakContributionHelp class>>defaultPage (in category 'accessing') -----<br>
> + defaultPage<br>
> + <br>
> +     ^ #contributingToSqueak!<br>
> <br>
> Item was added:<br>
> + ----- Method: SqueakContributionHelp class>>firstContribution (in category 'pages') -----<br>
> + firstContribution<br>
> +     "This method was automatically generated. Edit it using:"<br>
> +     "SqueakContributionHelp edit: #firstContribution"<br>
> +     <generated><br>
> +     ^(HelpTopic<br>
> +         title: 'First Contribution'<br>
> +         contents: <br>
> + 'Making your first contribution<br>
> + <br>
> + * Install the latest Trunk updates<br>
> + * Make your change, preferably from a clean image (to avoid configuration drift)<br>
> + * Open the Monticello Browser:<br>
> +     * On the left, select the package you have changed (denoted with a *star).<br>
> +     * On the right, select the inbox repository.<br>
> +     * On the top, press save.<br>
> + * Review your changes, enter a meaningful version message, and accept the new version to upload it.<br>
> + * That''s it!!!! Your contribution has arrived in the inbox and soon you will receive feedback from the community through the mailing list. Keep an eye on your mailbox!!!!!!<br>
> + ]style[(30 4 32 84 27 5 12 12 7 34 5 6 13 12 5 34 5 64 6 33 10 152)a0b,a0,Rcode://<br>
> + SqueakContributionHelp<br>
> +     openDockingBarMenuThat: [:m | (m owner submorphIndexOf: m) = 1]<br>
> +     filterItem: ''Update'';,a0,Rcode://<br>
> + SqueakContributionHelp<br>
> +     openDockingBarMenuThat: [:m | m contents = ''Tools'']<br>
> +     filterItem: ''Monticello Browser'';,,a0b,a0,a0b,a0,a0i,a0,a0b,a0,a0b,a0,a0b,a0,a0b,a0,a0i,a0!!' readStream nextChunkText)<br>
> +             key: #firstContribution;<br>
> +             shouldStyle: false;<br>
> +             yourself!<br>
> <br>
> Item was added:<br>
> + ----- Method: SqueakContributionHelp class>>furtherConcepts (in category 'pages') -----<br>
> + furtherConcepts<br>
> +     "This method was automatically generated. Edit it using:"<br>
> +     "SqueakContributionHelp edit: #furtherConcepts"<br>
> +     <generated><br>
> +     ^(HelpTopic<br>
> +         title: 'Further Concepts'<br>
> +         contents: <br>
> + 'Further Concepts<br>
> + <br>
> + * Change sets: Usually, new proposals are best exchanged through an inbox version. However, some ideas consist of changes to multiple packages, when it becomes tricky to work with multiple inbox versions. In this case, a change set is a good alternative.
 You can open a dual change sorter from the Tools and Changes menus in the docking bar and make a yellow click on the change set list on the left to bring up some options. Create a new change set and copy or move all relevant changes to it. Add a preamble to
 the change set to add an explaining message and finally file out or mail to list it directly. To install a change set, you can file in it from the file list or by dragging it into the image.<br>
> + * Preambles and postscripts: Some changes make it necessary to run some scripts before or after loading the new code to perform any migrations or changes to the object graph. This is possible through preambles and postscripts. To add or edit a script for
 a Monticello package, select it in the Monticello browser and press the Scripts button. Add your logic to the code, test it, accept it, and include it in your next inbox version. Note that preambles and postscripts in Trunk packages are required to be idempotent
 and may be evaluated multiple times. For changesets, you can add a preamble and a postscript as well from the yellow-button menu of the change set list in the change sorter.<br>
> + * If you identify any other contribution-related concepts that should be mentioned or explained in greater detail here, please feel free to add them here. This would make an ideal first contribution. :-)!!<br>
> + ]style[(16 4 12 256 18 10 5 5 7 111 23 5 4 4 4 29 14 60 8 4 12 47 7 13 9 37 26 266 18 15 7 561)a0b,a0,a0b,a0,a0i,a0,Rcode://<br>
> + SqueakContributionHelp<br>
> +     openDockingBarMenuThat: [:m | m contents = ''Tools'']<br>
> +     filterItem: ''Dual Change Sorter'';,a0,Rcode://<br>
> + SqueakContributionHelp<br>
> +     openDockingBarMenuThat: [:item | (item respondsTo: #updateContents) and: [(item instVarNamed: ''wordingSelector'') = #browseChangesLabel]]<br>
> +     filterItem: ''Dual Change Sorter'';,a0,a0i,a0,a0i,a0,a0i,a0,a0i,a0,a0i,a0,a0i,a0,a0i,a0,Rcode://<br>
> + SqueakContributionHelp<br>
> +     openDockingBarMenuThat: [:m | m contents = ''Tools'']<br>
> +     filterItem: ''File List'';,a0,a0b,a0,Rcode://<br>
> + SqueakContributionHelp<br>
> +     openDockingBarMenuThat: [:m | m contents = ''Tools'']<br>
> +     filterItem: ''Monticello Browser'';,a0,a0i,a0!!' readStream nextChunkText)<br>
> +             key: #furtherConcepts;<br>
> +             shouldStyle: false;<br>
> +             yourself!<br>
> <br>
> Item was added:<br>
> + ----- Method: SqueakContributionHelp class>>openDockingBarMenuThat:filterItem: (in category 'support') -----<br>
> + openDockingBarMenuThat: menuBlock filterItem: filterString<br>
> + <br>
> +     | dockingBar menu |<br>
> +     dockingBar := (self currentWorld mainDockingBars ifEmpty: [^ self]) first.<br>
> +     menu := (dockingBar submorphs select: #isMenuItemMorph) detect: menuBlock ifNone: [^ self].<br>
> +     dockingBar selectItem: menu event: self currentEvent.<br>
> +     menu subMenu setProperty: #matchString toValue: filterString.<br>
> +     menu subMenu displayFiltered: self currentEvent.<br>
> +     ^ nil "do not answer a Behavior here, which would trigger another browser when sending this message from a TextURL"!<br>
> <br>
> Item was added:<br>
> + ----- Method: SqueakContributionHelp class>>pages (in category 'accessing') -----<br>
> + pages<br>
> + <br>
> +     ^ #(contributingToSqueak communityModel firstContribution squeakInboxTalk furtherConcepts)!<br>
> <br>
> Item was added:<br>
> + ----- Method: SqueakContributionHelp class>>squeakInboxTalk (in category 'pages') -----<br>
> (excessive size, no diff calculated)<br>
> <br>
> Item was added:<br>
> + TextAnchor subclass: #SqueakHelpTextImage<br>
> +     instanceVariableNames: ''<br>
> +     classVariableNames: ''<br>
> +     poolDictionaries: ''<br>
> +     category: 'Help-Squeak-Project'!<br>
> + <br>
> + !SqueakHelpTextImage commentStamp: 'ct 6/21/2022 22:54' prior: 0!<br>
> + I embed a form into a text as a text anchor. I add support for fileIn/fileOut by storing the form as a base64 string. In the future, I'd like to make a great carrier and be moved "upstream" to a real Trunk package. For now, I still provide my humble service
 to some pages in the Squeak help.!<br>
> <br>
> Item was added:<br>
> + ----- Method: SqueakHelpTextImage class>>forForm: (in category 'instance creation') -----<br>
> + forForm: aForm<br>
> + <br>
> +     ^ self new<br>
> +         form: aForm;<br>
> +         yourself!<br>
> <br>
> Item was added:<br>
> + ----- Method: SqueakHelpTextImage class>>scanCharacter (in category 'fileIn/Out') -----<br>
> + scanCharacter<br>
> + <br>
> +     ^ $m!<br>
> <br>
> Item was added:<br>
> + ----- Method: SqueakHelpTextImage class>>scanFrom: (in category 'fileIn/Out') -----<br>
> + scanFrom: aStream<br>
> + <br>
> +     | base64 data form |<br>
> +     base64 := aStream upTo: $;.<br>
> +     data := Base64MimeConverter mimeDecodeToBytes: base64 readStream.<br>
> +     form := ImageReadWriter formFromStream: data.<br>
> +     ^ self forForm: form!<br>
> <br>
> Item was added:<br>
> + ----- Method: SqueakHelpTextImage>>exportBase64 (in category 'fileIn/fileOut') -----<br>
> + exportBase64<br>
> + <br>
> +     ^ (ByteArray streamContents: [:stream |<br>
> +         PNGReadWriter putForm: self form onStream: stream])<br>
> +             base64Encoded<br>
> + !<br>
> <br>
> Item was added:<br>
> + ----- Method: SqueakHelpTextImage>>form (in category 'accessing') -----<br>
> + form<br>
> + <br>
> +     ^ self anchoredMorph image!<br>
> <br>
> Item was added:<br>
> + ----- Method: SqueakHelpTextImage>>form: (in category 'accessing') -----<br>
> + form: aForm<br>
> + <br>
> +     self anchoredMorph: aForm asMorph.!<br>
> <br>
> Item was added:<br>
> + ----- Method: SqueakHelpTextImage>>writeScanOn: (in category 'fileIn/fileOut') -----<br>
> + writeScanOn: aStream<br>
> + <br>
> +     aStream<br>
> +         nextPut: self class scanCharacter;<br>
> +         nextPutAll: self exportBase64;<br>
> +         nextPut: $;.!<br>
> <br>
> Item was changed:<br>
> ----- Method: SqueakProjectHelp class>>pages (in category 'accessing') -----<br>
> pages<br>
> +     ^#(workingWithSqueak squeakUserInterface extendingTheSystem squeakResourcesOnline)!<br>
> -     ^#(extendingTheSystem squeakResourcesOnline squeakUserInterface workingWithSqueak)!<br>
> <br>
> Item was changed:<br>
> ----- Method: SqueakProjectHelp class>>squeakResourcesOnline (in category 'pages') -----<br>
> squeakResourcesOnline<br>
>     "This method was automatically generated. Edit it using:"<br>
>     "SqueakProjectHelp edit: #squeakResourcesOnline"<br>
> +     <generated><br>
>     ^(HelpTopic<br>
>         title: 'Squeak Resources Online'<br>
>         contents: <br>
> 'Web sites<br>
> <br>
> Main site of Squeak<br>
>     <a href="http://www.squeak.org" target="_blank">http://www.squeak.org</a><br>
> Weekly Squeak<br>
>     <a href="http://news.squeak.org" target="_blank">http://news.squeak.org</a><br>
> Downloads for many versions<br>
>     <a href="http://www.squeak.org/downloads" target="_blank">http://www.squeak.org/downloads</a><br>
> Main site of OpenSmalltalk VM<br>
>     <a href="https://github.com/OpenSmalltalk/opensmalltalk-vm" target="_blank">https://github.com/OpenSmalltalk/opensmalltalk-vm</a><br>
> + GitHub Issue Tracker<br>
> +     <a href="https://github.com/squeak-smalltalk/squeak-object-memory/issues" target="_blank">https://github.com/squeak-smalltalk/squeak-object-memory/issues</a><br>
> <br>
> Mailing lists<br>
> <br>
> beginners<br>
>     This is the place to ask even the most basic questions. Don''t be afraid. Just ask. The community will help you get started with Squeak.<br>
>     <a href="http://lists.squeakfoundation.org/mailman/listinfo/beginners" target="_blank">http://lists.squeakfoundation.org/mailman/listinfo/beginners</a><br>
> +     <a href="http://forum.world.st/Squeak-Beginners-f107673.html" target="_blank">http://forum.world.st/Squeak-Beginners-f107673.html</a> (currently defect)<br>
> -     <a href="http://forum.world.st/Squeak-Beginners-f107673.html" target="_blank">http://forum.world.st/Squeak-Beginners-f107673.html</a><br>
> <br>
> squeak-dev<br>
>     This is the main Squeak mailing list. Join that list to be part in the community. Subscribe to the mail server or read on a forum.<br>
> +     For more information on the community and the contribution process, check out the tutorial Contributing to Squeak in the following pages.<br>
>     <a href="http://lists.squeakfoundation.org/mailman/listinfo/squeak-dev" target="_blank">http://lists.squeakfoundation.org/mailman/listinfo/squeak-dev</a><br>
> +     <a href="http://forum.world.st/Squeak-Dev-f45488.html" target="_blank">http://forum.world.st/Squeak-Dev-f45488.html</a> (currently defect)<br>
> -     <a href="http://forum.world.st/Squeak-Dev-f45488.html" target="_blank">http://forum.world.st/Squeak-Dev-f45488.html</a><br>
> <br>
> vm-beginners<br>
>     This is the entry point for people who want to learn more about how Squeak runs on your operating system. You may ask even basic questions. :-)<br>
>     <a href="http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners" target="_blank">http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners</a><br>
> +     <a href="http://forum.world.st/Smalltalk-VM-Beginners-f3068605.html" target="_blank">http://forum.world.st/Smalltalk-VM-Beginners-f3068605.html</a> (currently defect)<br>
> -     <a href="http://forum.world.st/Smalltalk-VM-Beginners-f3068605.html" target="_blank">http://forum.world.st/Smalltalk-VM-Beginners-f3068605.html</a><br>
> <br>
> vm-dev<br>
>     This is the place where discussions about the OpenSmalltalk virtual machine happen. Join that list the be a part of the community.<br>
>     <a href="http://lists.squeakfoundation.org/mailman/listinfo/vm-dev" target="_blank">http://lists.squeakfoundation.org/mailman/listinfo/vm-dev</a><br>
> +     <a href="http://forum.world.st/Squeak-VM-f104410.html" target="_blank">http://forum.world.st/Squeak-VM-f104410.html</a> (currently defect)<br>
> -     <a href="http://forum.world.st/Squeak-VM-f104410.html" target="_blank">http://forum.world.st/Squeak-VM-f104410.html</a><br>
> <br>
> Books<br>
> <br>
> Squeak By Example<br>
>     A beginners textbook, based on Squeak 3.9 and so a little out of date in some visual aspects and some details. Still a valuable resource. The content is maintained in github at<br>
> <a href="https://github.com/SquareBracketAssociates/SqueakByExample-english" target="_blank">
https://github.com/SquareBracketAssociates/SqueakByExample-english</a><br>
> but a prepared and ready to read pdf version can be found at<br>
> <a href="https://pdxscholar.library.pdx.edu/cgi/viewcontent.cgi?article=1112&context=compsci_fac" target="_blank">
https://pdxscholar.library.pdx.edu/cgi/viewcontent.cgi?article=1112&context=compsci_fac</a><br>
> <br>
> Other books<br>
>     Many books about Squeak and Smalltalk in general have been made available and are hosted at<br>
> <a href="http://stephane.ducasse.free.fr/FreeBooks.html" target="_blank">http://stephane.ducasse.free.fr/FreeBooks.html</a>!!<br>
> + ]style[(11 19 2 21 1 15 22 1 27 2 31 1 29 2 49 1 20 2 63 2 13 1 1 11 135 2 60 2 51 21 10 2 223 22 26 61 2 44 21 14 145 63 2 58 21 6 134 57 2 44 21 5 2 17 2 177 66 62 87 2 11 94 46)b,I0i,I0,Rhttp://<a href="http://www.squeak.org" target="_blank">www.squeak.org</a>;,I0,I0i,Rhttp://<a href="http://news.squeak.org" target="_blank">news.squeak.org</a>;,I0,I0i,I0,Rhttp://<a href="http://www.squeak.org/downloads" target="_blank">www.squeak.org/downloads</a>;,I0,I0i,I0,Rhttps://<a href="http://github.com/OpenSmalltalk/opensmalltalk-vm" target="_blank">github.com/OpenSmalltalk/opensmalltalk-vm</a>;,I0,I0i,I0,Rhttps://<a href="http://github.com/squeak-smalltalk/squeak-object-memory/issues" target="_blank">github.com/squeak-smalltalk/squeak-object-memory/issues</a>;,I0,I0b,I0,,i,,b,Rhttp://<a href="http://lists.squeakfoundation.org/mailman/listinfo/beginners" target="_blank">lists.squeakfoundation.org/mailman/listinfo/beginners</a>;,,Rhttp://<a href="http://forum.world.st/Squeak-Beginners-f107673.html;=,,i,b,,Rcode://" target="_blank">forum.world.st/Squeak-Beginners-f107673.html;=,,i,b,,Rcode://</a>
 HelpBrowser openOn: SqueakContributionHelp;,,Rhttp://<a href="http://lists.squeakfoundation.org/mailman/listinfo/squeak-dev" target="_blank">lists.squeakfoundation.org/mailman/listinfo/squeak-dev</a>;,,Rhttp://<a href="http://forum.world.st/Squeak-Dev-f45488.html;=,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-beginners" target="_blank">forum.world.st/Squeak-Dev-f45488.html;=,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-beginners</a>;,,Rhttp://<a href="http://forum.world.st/Smalltalk-VM-Beginners-f3068605.html;=,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-dev" target="_blank">forum.world.st/Smalltalk-VM-Beginners-f3068605.html;=,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-dev</a>;,,Rhttp://<a href="http://forum.world.st/Squeak-VM-f104410.html;=,,b,,i,b,,Rhttps" target="_blank">forum.world.st/Squeak-VM-f104410.html;=,,b,,i,b,,Rhttps</a><br>
> ://<a href="http://github.com/SquareBracketAssociates/SqueakByExample-english;I1,,Rhttps://pdxscholar.library.pdx.edu/cgi/viewcontent.cgi?article=1112&context=compsci_fac;I1,,i,,Rhttp://stephane.ducasse.free.fr/FreeBooks.html;I1!" target="_blank">github.com/SquareBracketAssociates/SqueakByExample-english;I1,,Rhttps://pdxscholar.library.pdx.edu/cgi/viewcontent.cgi?article=1112&context=compsci_fac;I1,,i,,Rhttp://stephane.ducasse.free.fr/FreeBooks.html;I1!</a>!'
 readStream nextChunkText)<br>
> - ]style[(11 19 2 21 1 15 22 1 27 2 31 32 49 2 13 1 1 11 135 2 60 2 51 2 10 2 132 61 2 44 2 14 145 63 2 58 2 6 134 57 2 44 2 5 2 17 2 177 66 62 87 2 11 94 46)b,I0i,I0,Rhttp://<a href="http://www.squeak.org" target="_blank">www.squeak.org</a>;,I0,I0i,Rhttp://<a href="http://news.squeak.org" target="_blank">news.squeak.org</a>;,I0,I0i,I0,Rhttp://<a href="http://www.squeak.org/downloads" target="_blank">www.squeak.org/downloads</a>;,I0,Rhttps://<a href="http://github.com/OpenSmalltalk/opensmalltalk-vm" target="_blank">github.com/OpenSmalltalk/opensmalltalk-vm</a>;,I0,I0b,I0,,i,,b,Rhttp://<a href="http://lists.squeakfoundation.org/mailman/listinfo/beginners" target="_blank">lists.squeakfoundation.org/mailman/listinfo/beginners</a>;,,Rhttp://<a href="http://forum.world.st/Squeak-Beginners-f107673.html" target="_blank">forum.world.st/Squeak-Beginners-f107673.html</a>;,,i,b,,Rhttp://<a href="http://lists.squeakfoundation.org/mailman/listinfo/squeak-dev" target="_blank">lists.squeakfoundation.org/mailman/listinfo/squeak-dev</a>;,,Rhttp://<a href="http://forum.world.st/Squeak-Dev-f45488.html" target="_blank">forum.world.st/Squeak-Dev-f45488.html</a>;,,i,,Rhttp://<a href="http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners" target="_blank">lists.squeakfoundation.org/mailman/listinfo/vm-beginners</a>;,,Rhttp://<a href="http://forum.world.st/Smalltalk-VM-Beginners-f3068605.html" target="_blank">forum.world.st/Smalltalk-VM-Beginners-f3068605.html</a>;,,i,,Rhttp://<a href="http://lists.squeakfoundation.org/mailman/listinfo/vm-dev" target="_blank">lists.squeakfoundation.org/mailman/listinfo/vm-dev</a>;,,Rhttp://<a href="http://forum.world.st/Squeak-VM-f104410.html" target="_blank">forum.world.st/Squeak-VM-f104410.html</a>;,,b,,i,b,,Rhttps://<a href="http://github.com/SquareBracketAssociates/SqueakByExample-english;I1,,Rhttps://pdxscholar.library.pdx.edu/cgi/viewcontent.cgi?article=1112&context=compsci_fac;I1,,i,,Rht" target="_blank">github.com/SquareBracketAssociates/SqueakByExample-english;I1,,Rhttps://pdxscholar.library.pdx.edu/cgi/viewcontent.cgi?article=1112&context=compsci_fac;I1,,i,,Rht</a><br>
> tp://<a href="http://stephane.ducasse.free.fr/FreeBooks.html;I1!" target="_blank">stephane.ducasse.free.fr/FreeBooks.html;I1!</a>!' readStream nextChunkText)<br>
>             key: #squeakResourcesOnline;<br>
>             shouldStyle: false;<br>
>             yourself!<br>
> <br>
> <br>
</blockquote>
</div>
<br clear="all">
<div><br>
</div>
-- <br>
<div dir="ltr">
<div dir="ltr">
<div><span style="font-size:small; border-collapse:separate">
<div>_,,,^..^,,,_<br>
</div>
<div>best, Eliot</div>
</span></div>
</div>
</div>
</blockquote>
</div>
<br clear="all">
<div><br>
</div>
-- <br>
<div dir="ltr">
<div dir="ltr">
<div><span style="font-size:small; border-collapse:separate">
<div>_,,,^..^,,,_<br>
</div>
<div>best, Eliot</div>
</span></div>
</div>
</div>
</div>
</div>
</div>
<br>
</blockquote>
</div>
<br clear="all">
<div><br>
</div>
-- <br>
<div dir="ltr" class="gmail_signature">
<div dir="ltr">
<div><span style="font-size:small; border-collapse:separate">
<div>_,,,^..^,,,_<br>
</div>
<div>best, Eliot</div>
</span></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>