[squeak-dev] The Inbox: Help-Squeak-Project-ct.94.mcz

Eliot Miranda eliot.miranda at gmail.com
Thu Jun 23 17:25:00 UTC 2022


+100 for pushing this to trunk

On Tue, Jun 21, 2022 at 2:14 PM <christoph.thiede at student.hpi.uni-potsdam.de>
wrote:

> Community service: Read the HTML-rendered copy of the proposed book below:
>
>
>
>
> *Contributing To Squeak *
>
> 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.
>
>
> *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!
>
>
>
> *The Squeak Community Model*
>
>
> The majority of communication about the Squeak development takes place on
> the
> squeak-dev mailing list
> <http://lists.squeakfoundation.org/mailman/listinfo/squeak-dev>
> . There is a public
> mailing list archive
> <http://lists.squeakfoundation.org/pipermail/squeak-dev/>
> , but to engage in any discussion, you have to
> sign up
> <http://lists.squeakfoundation.org/mailman/listinfo/squeak-dev#:~:text=Subscribing%20to%20Squeak%2Ddev>
> to the list. Alternatively, you can report issues on our
> GitHub issue tracker
> <https://github.com/squeak-smalltalk/squeak-object-memory/issues>
> .
>
>
> On the mailing list, ideas, bug reports, and patches are exchanged.
> Version control for all Squeak packages is run via
> Monticello. All versions that are uploaded to any Squeak package will
> automatically be forwarded to the list for further discussion. There are
> three package repositories:
>
>     * The *Trunk repository* contains the latest integrated patches. Only
> core developers have write access.
>     * The *Inbox repository* 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
> https://source.squeak.org/ and *edit the repository info* of the inbox
> repository with your credentials.)
>     * The *Treated Inbox* repository is the sidetrack for versions that
> have been dealt with or that have been superseded.
>
>
>
> 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:
> https://squeak.org/development_process/
>
>     <squeakDevelopmentProcess.png>
>
>
> *Making your first contribution*
>
>
> *
> Install the latest Trunk updates
>
>
> * Make your change, preferably from a clean image (to avoid configuration
> drift)
>
> *
> Open the Monticello Browser:
>         *
> *On the left,* select the *package* you have changed (denoted with a
> **star*).
>
>     * *On the right,* select the *inbox* repository.
>
>     * On the top, press *save.*
>
> * Review your changes, enter a meaningful version message, and *accept*
> the new version to upload it.
>
> * *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!
>
>
>
> *Squeak Inbox Talk*
>
>
> 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
> from the Tools menu
> or install it via:
>
>         Installer installSqueakInboxTalk.
>
>     <
> https://raw.githubusercontent.com/hpi-swa-lab/squeak-inbox-talk/main/assets/SqueakInboxTalk.png
> >
>
>     Further information can be found on GitHub:
> https://github.com/hpi-swa-lab/squeak-inbox-talk
>
>
> *Further Concepts*
>
>
> * *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.
>
> * *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.
>
> * 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. :-)
>
>
> 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. :-)
>
> Best,
> Christoph
>
> ---
> *Sent from **Squeak Inbox Talk
> <https://github.com/hpi-swa-lab/squeak-inbox-talk>*
>
> On 2022-06-21T20:59:48+00:00, commits at source.squeak.org wrote:
>
> > A new version of Help-Squeak-Project was added to project The Inbox:
> > http://source.squeak.org/inbox/Help-Squeak-Project-ct.94.mcz
> >
> > ==================== Summary ====================
> >
> > Name: Help-Squeak-Project-ct.94
> > Author: ct
> > Time: 21 June 2022, 10:59:45.096176 pm
> > UUID: e922e850-4074-764e-bb2d-a7754075a639
> > Ancestors: Help-Squeak-Project-ct.93
> >
> > 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.
> >
> > =============== Diff against Help-Squeak-Project-ct.93 ===============
> >
> > Item was added:
> > + SqueakProjectHelp subclass: #SqueakContributionHelp
> > +     instanceVariableNames: ''
> > +     classVariableNames: ''
> > +     poolDictionaries: ''
> > +     category: 'Help-Squeak-Project'!
> >
> > Item was added:
> > + ----- Method: SqueakContributionHelp class>>bookBlurb (in category
> 'accessing') -----
> > + bookBlurb
> > +
> > +     self flag: #moveUpstream.
> > +     ^ (self perform: self defaultPage) contents!
> >
> > Item was added:
> > + ----- Method: SqueakContributionHelp class>>bookName (in category
> 'accessing') -----
> > + bookName
> > +
> > +     ^ 'Contributing to Squeak'!
> >
> > Item was added:
> > + ----- Method: SqueakContributionHelp class>>communityModel (in
> category 'pages') -----
> > (excessive size, no diff calculated)
> >
> > Item was added:
> > + ----- Method: SqueakContributionHelp class>>contributingToSqueak (in
> category 'pages') -----
> > + contributingToSqueak
> > +     "This method was automatically generated. Edit it using:"
> > +     "SqueakContributionHelp edit: #contributingToSqueak"
> > +     <generated>
> > +     ^(HelpTopic
> > +         title: 'Contributing'
> > +         contents:
> > + 'Contributing To Squeak
> > +
> > + 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.
> > +
> > + 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!!!!!!
> > + ]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://
> > + self systemNavigation browseAllImplementorsOf:
> #expectedFailures;,a0,,a0,a0i,a0,a0i,a0!!' readStream nextChunkText)
> > +             key: #contributingToSqueak;
> > +             shouldStyle: false;
> > +             yourself!
> >
> > Item was added:
> > + ----- Method: SqueakContributionHelp class>>defaultPage (in category
> 'accessing') -----
> > + defaultPage
> > +
> > +     ^ #contributingToSqueak!
> >
> > Item was added:
> > + ----- Method: SqueakContributionHelp class>>firstContribution (in
> category 'pages') -----
> > + firstContribution
> > +     "This method was automatically generated. Edit it using:"
> > +     "SqueakContributionHelp edit: #firstContribution"
> > +     <generated>
> > +     ^(HelpTopic
> > +         title: 'First Contribution'
> > +         contents:
> > + 'Making your first contribution
> > +
> > + * Install the latest Trunk updates
> > + * Make your change, preferably from a clean image (to avoid
> configuration drift)
> > + * Open the Monticello Browser:
> > +     * On the left, select the package you have changed (denoted with a
> *star).
> > +     * On the right, select the inbox repository.
> > +     * On the top, press save.
> > + * Review your changes, enter a meaningful version message, and accept
> the new version to upload it.
> > + * 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!!!!!!
> > + ]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://
> > + SqueakContributionHelp
> > +     openDockingBarMenuThat: [:m | (m owner submorphIndexOf: m) = 1]
> > +     filterItem: ''Update'';,a0,Rcode://
> > + SqueakContributionHelp
> > +     openDockingBarMenuThat: [:m | m contents = ''Tools'']
> > +     filterItem: ''Monticello
> Browser'';,,a0b,a0,a0b,a0,a0i,a0,a0b,a0,a0b,a0,a0b,a0,a0b,a0,a0i,a0!!'
> readStream nextChunkText)
> > +             key: #firstContribution;
> > +             shouldStyle: false;
> > +             yourself!
> >
> > Item was added:
> > + ----- Method: SqueakContributionHelp class>>furtherConcepts (in
> category 'pages') -----
> > + furtherConcepts
> > +     "This method was automatically generated. Edit it using:"
> > +     "SqueakContributionHelp edit: #furtherConcepts"
> > +     <generated>
> > +     ^(HelpTopic
> > +         title: 'Further Concepts'
> > +         contents:
> > + 'Further Concepts
> > +
> > + * 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.
> > + * 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.
> > + * 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. :-)!!
> > + ]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://
> > + SqueakContributionHelp
> > +     openDockingBarMenuThat: [:m | m contents = ''Tools'']
> > +     filterItem: ''Dual Change Sorter'';,a0,Rcode://
> > + SqueakContributionHelp
> > +     openDockingBarMenuThat: [:item | (item respondsTo:
> #updateContents) and: [(item instVarNamed: ''wordingSelector'') =
> #browseChangesLabel]]
> > +     filterItem: ''Dual Change
> Sorter'';,a0,a0i,a0,a0i,a0,a0i,a0,a0i,a0,a0i,a0,a0i,a0,a0i,a0,Rcode://
> > + SqueakContributionHelp
> > +     openDockingBarMenuThat: [:m | m contents = ''Tools'']
> > +     filterItem: ''File List'';,a0,a0b,a0,Rcode://
> > + SqueakContributionHelp
> > +     openDockingBarMenuThat: [:m | m contents = ''Tools'']
> > +     filterItem: ''Monticello Browser'';,a0,a0i,a0!!' readStream
> nextChunkText)
> > +             key: #furtherConcepts;
> > +             shouldStyle: false;
> > +             yourself!
> >
> > Item was added:
> > + ----- Method: SqueakContributionHelp
> class>>openDockingBarMenuThat:filterItem: (in category 'support') -----
> > + openDockingBarMenuThat: menuBlock filterItem: filterString
> > +
> > +     | dockingBar menu |
> > +     dockingBar := (self currentWorld mainDockingBars ifEmpty: [^
> self]) first.
> > +     menu := (dockingBar submorphs select: #isMenuItemMorph) detect:
> menuBlock ifNone: [^ self].
> > +     dockingBar selectItem: menu event: self currentEvent.
> > +     menu subMenu setProperty: #matchString toValue: filterString.
> > +     menu subMenu displayFiltered: self currentEvent.
> > +     ^ nil "do not answer a Behavior here, which would trigger another
> browser when sending this message from a TextURL"!
> >
> > Item was added:
> > + ----- Method: SqueakContributionHelp class>>pages (in category
> 'accessing') -----
> > + pages
> > +
> > +     ^ #(contributingToSqueak communityModel firstContribution
> squeakInboxTalk furtherConcepts)!
> >
> > Item was added:
> > + ----- Method: SqueakContributionHelp class>>squeakInboxTalk (in
> category 'pages') -----
> > (excessive size, no diff calculated)
> >
> > Item was added:
> > + TextAnchor subclass: #SqueakHelpTextImage
> > +     instanceVariableNames: ''
> > +     classVariableNames: ''
> > +     poolDictionaries: ''
> > +     category: 'Help-Squeak-Project'!
> > +
> > + !SqueakHelpTextImage commentStamp: 'ct 6/21/2022 22:54' prior: 0!
> > + 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.!
> >
> > Item was added:
> > + ----- Method: SqueakHelpTextImage class>>forForm: (in category
> 'instance creation') -----
> > + forForm: aForm
> > +
> > +     ^ self new
> > +         form: aForm;
> > +         yourself!
> >
> > Item was added:
> > + ----- Method: SqueakHelpTextImage class>>scanCharacter (in category
> 'fileIn/Out') -----
> > + scanCharacter
> > +
> > +     ^ $m!
> >
> > Item was added:
> > + ----- Method: SqueakHelpTextImage class>>scanFrom: (in category
> 'fileIn/Out') -----
> > + scanFrom: aStream
> > +
> > +     | base64 data form |
> > +     base64 := aStream upTo: $;.
> > +     data := Base64MimeConverter mimeDecodeToBytes: base64 readStream.
> > +     form := ImageReadWriter formFromStream: data.
> > +     ^ self forForm: form!
> >
> > Item was added:
> > + ----- Method: SqueakHelpTextImage>>exportBase64 (in category
> 'fileIn/fileOut') -----
> > + exportBase64
> > +
> > +     ^ (ByteArray streamContents: [:stream |
> > +         PNGReadWriter putForm: self form onStream: stream])
> > +             base64Encoded
> > + !
> >
> > Item was added:
> > + ----- Method: SqueakHelpTextImage>>form (in category 'accessing') -----
> > + form
> > +
> > +     ^ self anchoredMorph image!
> >
> > Item was added:
> > + ----- Method: SqueakHelpTextImage>>form: (in category 'accessing')
> -----
> > + form: aForm
> > +
> > +     self anchoredMorph: aForm asMorph.!
> >
> > Item was added:
> > + ----- Method: SqueakHelpTextImage>>writeScanOn: (in category
> 'fileIn/fileOut') -----
> > + writeScanOn: aStream
> > +
> > +     aStream
> > +         nextPut: self class scanCharacter;
> > +         nextPutAll: self exportBase64;
> > +         nextPut: $;.!
> >
> > Item was changed:
> > ----- Method: SqueakProjectHelp class>>pages (in category 'accessing')
> -----
> > pages
> > +     ^#(workingWithSqueak squeakUserInterface extendingTheSystem
> squeakResourcesOnline)!
> > -     ^#(extendingTheSystem squeakResourcesOnline squeakUserInterface
> workingWithSqueak)!
> >
> > Item was changed:
> > ----- Method: SqueakProjectHelp class>>squeakResourcesOnline (in
> category 'pages') -----
> > squeakResourcesOnline
> >     "This method was automatically generated. Edit it using:"
> >     "SqueakProjectHelp edit: #squeakResourcesOnline"
> > +     <generated>
> >     ^(HelpTopic
> >         title: 'Squeak Resources Online'
> >         contents:
> > 'Web sites
> >
> > Main site of Squeak
> >     http://www.squeak.org
> > Weekly Squeak
> >     http://news.squeak.org
> > Downloads for many versions
> >     http://www.squeak.org/downloads
> > Main site of OpenSmalltalk VM
> >     https://github.com/OpenSmalltalk/opensmalltalk-vm
> > + GitHub Issue Tracker
> > +     https://github.com/squeak-smalltalk/squeak-object-memory/issues
> >
> > Mailing lists
> >
> > beginners
> >     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.
> >     http://lists.squeakfoundation.org/mailman/listinfo/beginners
> > +     http://forum.world.st/Squeak-Beginners-f107673.html (currently
> defect)
> > -     http://forum.world.st/Squeak-Beginners-f107673.html
> >
> > squeak-dev
> >     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.
> > +     For more information on the community and the contribution
> process, check out the tutorial Contributing to Squeak in the following
> pages.
> >     http://lists.squeakfoundation.org/mailman/listinfo/squeak-dev
> > +     http://forum.world.st/Squeak-Dev-f45488.html (currently defect)
> > -     http://forum.world.st/Squeak-Dev-f45488.html
> >
> > vm-beginners
> >     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. :-)
> >     http://lists.squeakfoundation.org/mailman/listinfo/vm-beginners
> > +     http://forum.world.st/Smalltalk-VM-Beginners-f3068605.html
> (currently defect)
> > -     http://forum.world.st/Smalltalk-VM-Beginners-f3068605.html
> >
> > vm-dev
> >     This is the place where discussions about the OpenSmalltalk virtual
> machine happen. Join that list the be a part of the community.
> >     http://lists.squeakfoundation.org/mailman/listinfo/vm-dev
> > +     http://forum.world.st/Squeak-VM-f104410.html (currently defect)
> > -     http://forum.world.st/Squeak-VM-f104410.html
> >
> > Books
> >
> > Squeak By Example
> >     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
> > https://github.com/SquareBracketAssociates/SqueakByExample-english
> > but a prepared and ready to read pdf version can be found at
> >
> https://pdxscholar.library.pdx.edu/cgi/viewcontent.cgi?article=1112&context=compsci_fac
> >
> > Other books
> >     Many books about Squeak and Smalltalk in general have been made
> available and are hosted at
> > http://stephane.ducasse.free.fr/FreeBooks.html!!
> > + ]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://www.squeak.org
> ;,I0,I0i,Rhttp://news.squeak.org;,I0,I0i,I0,Rhttp://
> www.squeak.org/downloads;,I0,I0i,I0,Rhttps://
> github.com/OpenSmalltalk/opensmalltalk-vm;,I0,I0i,I0,Rhttps://
> github.com/squeak-smalltalk/squeak-object-memory/issues
> ;,I0,I0b,I0,,i,,b,Rhttp://
> lists.squeakfoundation.org/mailman/listinfo/beginners;,,Rhttp://
> forum.world.st/Squeak-Beginners-f107673.html;=,,i,b,,Rcode:// HelpBrowser
> openOn: SqueakContributionHelp;,,Rhttp://
> lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://
> forum.world.st/Squeak-Dev-f45488.html;=,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-beginners
> ;,,Rhttp://
> forum.world.st/Smalltalk-VM-Beginners-f3068605.html;=,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-dev
> ;,,Rhttp://forum.world.st/Squeak-VM-f104410.html;=,,b,,i,b,,Rhttps
> > ://
> 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!!'
> readStream nextChunkText)
> > - ]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://www.squeak.org;,I0,I0i,Rhttp://news.squeak.org
> ;,I0,I0i,I0,Rhttp://www.squeak.org/downloads;,I0,Rhttps://
> github.com/OpenSmalltalk/opensmalltalk-vm;,I0,I0b,I0,,i,,b,Rhttp://
> lists.squeakfoundation.org/mailman/listinfo/beginners;,,Rhttp://
> forum.world.st/Squeak-Beginners-f107673.html;,,i,b,,Rhttp://
> lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://
> forum.world.st/Squeak-Dev-f45488.html;,,i,,Rhttp://
> lists.squeakfoundation.org/mailman/listinfo/vm-beginners;,,Rhttp://
> forum.world.st/Smalltalk-VM-Beginners-f3068605.html;,,i,,Rhttp://
> lists.squeakfoundation.org/mailman/listinfo/vm-dev;,,Rhttp://
> forum.world.st/Squeak-VM-f104410.html;,,b,,i,b,,Rhttps://
> github.com/SquareBracketAssociates/SqueakByExample-english;I1,,Rhttps://pdxscholar.library.pdx.edu/cgi/viewcontent.cgi?article=1112&context=compsci_fac;I1,,i,,Rht
> > tp://stephane.ducasse.free.fr/FreeBooks.html;I1!!' readStream
> nextChunkText)
> >             key: #squeakResourcesOnline;
> >             shouldStyle: false;
> >             yourself!
> >
> >
>


-- 
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220623/3318c140/attachment-0001.html>


More information about the Squeak-dev mailing list