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&cont...
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... HelpBrowser openOn: SqueakContributionHelp;,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://foru... ://github.com/SquareBracketAssociates/SqueakByExample-english;I1,,Rhttps://pdxscholar.library.pdx.edu/cgi/viewcontent.cgi?article=1112&cont...' 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... tp://stephane.ducasse.free.fr/FreeBooks.html;I1!!' readStream nextChunkText) key: #squeakResourcesOnline; shouldStyle: false; yourself!
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. There is a public mailing list archive, but to engage in any discussion, you have to sign up to the list. Alternatively, you can report issues on our GitHub issue tracker.
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
On 2022-06-21T20:59:48+00:00, commits@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&cont...
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... HelpBrowser openOn: SqueakContributionHelp;,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://foru...
://github.com/SquareBracketAssociates/SqueakByExample-english;I1,,Rhttps://pdxscholar.library.pdx.edu/cgi/viewcontent.cgi?article=1112&cont...' 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...
tp://stephane.ducasse.free.fr/FreeBooks.html;I1!!' readStream nextChunkText) key: #squeakResourcesOnline; shouldStyle: false; yourself!
+100 for pushing this to trunk
On Tue, Jun 21, 2022 at 2:14 PM christoph.thiede@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/...
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@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"
^(HelpTopic title: 'Squeak Resources Online' contents:<generated>
'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&cont...
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&cont...' 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&cont...
tp://stephane.ducasse.free.fr/FreeBooks.html;I1!!' readStream
nextChunkText)
key: #squeakResourcesOnline; shouldStyle: false; yourself!
On Thu, Jun 23, 2022 at 10:25 AM Eliot Miranda eliot.miranda@gmail.com wrote:
+100 for pushing this to trunk
Easier to review & edit there.
On Tue, Jun 21, 2022 at 2:14 PM < christoph.thiede@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/...
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@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"
^(HelpTopic title: 'Squeak Resources Online' contents:<generated>
'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&cont...
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&cont...' 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&cont...
tp://stephane.ducasse.free.fr/FreeBooks.html;I1!!' readStream
nextChunkText)
key: #squeakResourcesOnline; shouldStyle: false; yourself!
-- _,,,^..^,,,_ best, Eliot
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? :-)
Best,
Christoph
________________________________ Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von Eliot Miranda eliot.miranda@gmail.com Gesendet: Donnerstag, 23. Juni 2022 19:25:31 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] The Inbox: Help-Squeak-Project-ct.94.mcz
On Thu, Jun 23, 2022 at 10:25 AM Eliot Miranda <eliot.miranda@gmail.commailto:eliot.miranda@gmail.com> wrote: +100 for pushing this to trunk
Easier to review & edit there.
On Tue, Jun 21, 2022 at 2:14 PM <christoph.thiede@student.hpi.uni-potsdam.demailto:christoph.thiede@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 listhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev . There is a public mailing list archivehttp://lists.squeakfoundation.org/pipermail/squeak-dev/ , but to engage in any discussion, you have to sign uphttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev#:~:text=Subscribing%20to%20Squeak%2Ddev to the list. Alternatively, you can report issues on our GitHub issue trackerhttps://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 Talkhttps://github.com/hpi-swa-lab/squeak-inbox-talk
On 2022-06-21T20:59:48+00:00, commits@source.squeak.orgmailto:commits@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"
^(HelpTopic title: 'Squeak Resources Online' contents:<generated>
'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.
http://lists.squeakfoundation.org/mailman/listinfo/squeak-devFor more information on the community and the contribution process, check out the tutorial Contributing to Squeak in the following pages.
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&cont...
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.orghttp://www.squeak.org;,I0,I0i,Rhttp://news.squeak.orghttp://news.squeak.org;,I0,I0i,I0,Rhttp://www.squeak.org/downloadshttp://www.squeak.org/downloads;,I0,I0i,I0,Rhttps://github.com/OpenSmalltalk/opensmalltalk-vmhttp://github.com/OpenSmalltalk/opensmalltalk-vm;,I0,I0i,I0,Rhttps://github.com/squeak-smalltalk/squeak-object-memory/issueshttp://github.com/squeak-smalltalk/squeak-object-memory/issues;,I0,I0b,I0,,i,,b,Rhttp://lists.squeakfoundation.org/mailman/listinfo/beginnershttp://lists.squeakfoundation.org/mailman/listinfo/beginners;,,Rhttp://forum.world.st/Squeak-Beginners-f107673.html;=,,i,b,,Rcode://http://forum.world.st/Squeak-Beginners-f107673.html;=,,i,b,,Rcode:// HelpBrowser openOn: SqueakContributionHelp;,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-devhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://forum.world.st/Squeak-Dev-f45488.html;=,,i,,Rhttp://lists.squeakfound...http://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://lis...http://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,,Rhttpshttp://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&cont...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!!' 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.orghttp://www.squeak.org;,I0,I0i,Rhttp://news.squeak.orghttp://news.squeak.org;,I0,I0i,I0,Rhttp://www.squeak.org/downloadshttp://www.squeak.org/downloads;,I0,Rhttps://github.com/OpenSmalltalk/opensmalltalk-vmhttp://github.com/OpenSmalltalk/opensmalltalk-vm;,I0,I0b,I0,,i,,b,Rhttp://lists.squeakfoundation.org/mailman/listinfo/beginnershttp://lists.squeakfoundation.org/mailman/listinfo/beginners;,,Rhttp://forum.world.st/Squeak-Beginners-f107673.htmlhttp://forum.world.st/Squeak-Beginners-f107673.html;,,i,b,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-devhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://forum.world.st/Squeak-Dev-f45488.htmlhttp://forum.world.st/Squeak-Dev-f45488.html;,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-beginnershttp://lists.squeakfoundation.org/mailman/listinfo/vm-beginners;,,Rhttp://forum.world.st/Smalltalk-VM-Beginners-f3068605.htmlhttp://forum.world.st/Smalltalk-VM-Beginners-f3068605.html;,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-devhttp://lists.squeakfoundation.org/mailman/listinfo/vm-dev;,,Rhttp://forum.world.st/Squeak-VM-f104410.htmlhttp://forum.world.st/Squeak-VM-f104410.html;,,b,,i,b,,Rhttps://github.com/SquareBracketAssociates/SqueakByExample-english;I1,,Rhttp...http://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!http://stephane.ducasse.free.fr/FreeBooks.html;I1!!' readStream nextChunkText) key: #squeakResourcesOnline; shouldStyle: false; yourself!
-- _,,,^..^,,,_ best, Eliot
-- _,,,^..^,,,_ best, Eliot
On Tue, Jun 28, 2022 at 4:50 AM Thiede, Christoph < Christoph.Thiede@student.hpi.uni-potsdam.de> wrote:
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? :-)
perhaps not :-) But can you email me the text?
Best,
Christoph
*Von:* Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von Eliot Miranda eliot.miranda@gmail.com *Gesendet:* Donnerstag, 23. Juni 2022 19:25:31 *An:* The general-purpose Squeak developers list *Betreff:* Re: [squeak-dev] The Inbox: Help-Squeak-Project-ct.94.mcz
On Thu, Jun 23, 2022 at 10:25 AM Eliot Miranda eliot.miranda@gmail.com wrote:
+100 for pushing this to trunk
Easier to review & edit there.
On Tue, Jun 21, 2022 at 2:14 PM < christoph.thiede@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/...
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@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"
^(HelpTopic title: 'Squeak Resources Online' contents:<generated>
'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&cont...
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&cont...' 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&cont...
tp://stephane.ducasse.free.fr/FreeBooks.html;I1!!' readStream
nextChunkText)
key: #squeakResourcesOnline; shouldStyle: false; yourself!
-- _,,,^..^,,,_ best, Eliot
-- _,,,^..^,,,_ best, Eliot
Hi Eliot,
But can you email me the text?
Here it is:
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 listhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev. There is a public mailing list archivehttp://lists.squeakfoundation.org/pipermail/squeak-dev/, but to engage in any discussion, you have to sign uphttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev#:~:text=Subscribing%20to%20Squeak%2Ddev to the list. Alternatively, you can report issues on our GitHub issue trackerhttps://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. :-)
Best, Christoph
________________________________ Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von Eliot Miranda eliot.miranda@gmail.com Gesendet: Mittwoch, 29. Juni 2022 00:48 Uhr An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] The Inbox: Help-Squeak-Project-ct.94.mcz
On Tue, Jun 28, 2022 at 4:50 AM Thiede, Christoph <Christoph.Thiede@student.hpi.uni-potsdam.demailto:Christoph.Thiede@student.hpi.uni-potsdam.de> wrote:
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? :-)
perhaps not :-) But can you email me the text?
Best,
Christoph
________________________________ Von: Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.orgmailto:squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Eliot Miranda <eliot.miranda@gmail.commailto:eliot.miranda@gmail.com> Gesendet: Donnerstag, 23. Juni 2022 19:25:31 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] The Inbox: Help-Squeak-Project-ct.94.mcz
On Thu, Jun 23, 2022 at 10:25 AM Eliot Miranda <eliot.miranda@gmail.commailto:eliot.miranda@gmail.com> wrote: +100 for pushing this to trunk
Easier to review & edit there.
On Tue, Jun 21, 2022 at 2:14 PM <christoph.thiede@student.hpi.uni-potsdam.demailto:christoph.thiede@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 listhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev . There is a public mailing list archivehttp://lists.squeakfoundation.org/pipermail/squeak-dev/ , but to engage in any discussion, you have to sign uphttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev#:~:text=Subscribing%20to%20Squeak%2Ddev to the list. Alternatively, you can report issues on our GitHub issue trackerhttps://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 Talkhttps://github.com/hpi-swa-lab/squeak-inbox-talk
On 2022-06-21T20:59:48+00:00, commits@source.squeak.orgmailto:commits@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"
^(HelpTopic title: 'Squeak Resources Online' contents:<generated>
'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.
http://lists.squeakfoundation.org/mailman/listinfo/squeak-devFor more information on the community and the contribution process, check out the tutorial Contributing to Squeak in the following pages.
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&cont...
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.orghttp://www.squeak.org;,I0,I0i,Rhttp://news.squeak.orghttp://news.squeak.org;,I0,I0i,I0,Rhttp://www.squeak.org/downloadshttp://www.squeak.org/downloads;,I0,I0i,I0,Rhttps://github.com/OpenSmalltalk/opensmalltalk-vmhttp://github.com/OpenSmalltalk/opensmalltalk-vm;,I0,I0i,I0,Rhttps://github.com/squeak-smalltalk/squeak-object-memory/issueshttp://github.com/squeak-smalltalk/squeak-object-memory/issues;,I0,I0b,I0,,i,,b,Rhttp://lists.squeakfoundation.org/mailman/listinfo/beginnershttp://lists.squeakfoundation.org/mailman/listinfo/beginners;,,Rhttp://forum.world.st/Squeak-Beginners-f107673.html;=,,i,b,,Rcode://http://forum.world.st/Squeak-Beginners-f107673.html;=,,i,b,,Rcode:// HelpBrowser openOn: SqueakContributionHelp;,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-devhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://forum.world.st/Squeak-Dev-f45488.html;=,,i,,Rhttp://lists.squeakfound...http://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://lis...http://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,,Rhttpshttp://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&cont...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!!' 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.orghttp://www.squeak.org;,I0,I0i,Rhttp://news.squeak.orghttp://news.squeak.org;,I0,I0i,I0,Rhttp://www.squeak.org/downloadshttp://www.squeak.org/downloads;,I0,Rhttps://github.com/OpenSmalltalk/opensmalltalk-vmhttp://github.com/OpenSmalltalk/opensmalltalk-vm;,I0,I0b,I0,,i,,b,Rhttp://lists.squeakfoundation.org/mailman/listinfo/beginnershttp://lists.squeakfoundation.org/mailman/listinfo/beginners;,,Rhttp://forum.world.st/Squeak-Beginners-f107673.htmlhttp://forum.world.st/Squeak-Beginners-f107673.html;,,i,b,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-devhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://forum.world.st/Squeak-Dev-f45488.htmlhttp://forum.world.st/Squeak-Dev-f45488.html;,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-beginnershttp://lists.squeakfoundation.org/mailman/listinfo/vm-beginners;,,Rhttp://forum.world.st/Smalltalk-VM-Beginners-f3068605.htmlhttp://forum.world.st/Smalltalk-VM-Beginners-f3068605.html;,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-devhttp://lists.squeakfoundation.org/mailman/listinfo/vm-dev;,,Rhttp://forum.world.st/Squeak-VM-f104410.htmlhttp://forum.world.st/Squeak-VM-f104410.html;,,b,,i,b,,Rhttps://github.com/SquareBracketAssociates/SqueakByExample-english;I1,,Rhttp...http://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!http://stephane.ducasse.free.fr/FreeBooks.html;I1!!' readStream nextChunkText) key: #squeakResourcesOnline; shouldStyle: false; yourself!
-- _,,,^..^,,,_ best, Eliot
-- _,,,^..^,,,_ best, Eliot
-- _,,,^..^,,,_ best, Eliot
Hi all, dear native English Squeakers,
the new docs on Contributing to Squeak are almost, but we need some feedback from a native speaker on whether everything reads fluently. Could anybody please take a look and report back?
Attached is a changeset that adds the new help contents into the help browser and the docking bar menu. For convenience, here is a file-out of the latest version of the text (missing all interactive links):
***
Contributing to Squeak
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 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. There is a public mailing list archive, but to engage in any discussion, you have to sign up to the list. Alternatively, you can report issues on our GitHub issue tracker.
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/
Making Your First Contribution
* Install the latest Trunk updates. * Make your change, preferably starting 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 an optional 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.
More 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 change sets, 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. :-)
***
Thanks in advance!
Best, Christoph
--- Sent from Squeak Inbox Talk
On 2022-06-29T06:48:30+00:00, christoph.thiede@student.hpi.uni-potsdam.de wrote:
Hi Eliot,
But can you email me the text?
Here it is:
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 trackerhttps://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. :-)
Best, Christoph
Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im Auftrag von Eliot Miranda <eliot.miranda at gmail.com> Gesendet: Mittwoch, 29. Juni 2022 00:48 Uhr An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] The Inbox: Help-Squeak-Project-ct.94.mcz
On Tue, Jun 28, 2022 at 4:50 AM Thiede, Christoph <Christoph.Thiede at student.hpi.uni-potsdam.de<mailto:Christoph.Thiede at student.hpi.uni-potsdam.de>> wrote:
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? :-)
perhaps not :-) But can you email me the text?
Best,
Christoph
Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org<mailto:squeak-dev-bounces at lists.squeakfoundation.org>> im Auftrag von Eliot Miranda <eliot.miranda at gmail.com<mailto:eliot.miranda at gmail.com>> Gesendet: Donnerstag, 23. Juni 2022 19:25:31 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] The Inbox: Help-Squeak-Project-ct.94.mcz
On Thu, Jun 23, 2022 at 10:25 AM Eliot Miranda <eliot.miranda at gmail.com<mailto:eliot.miranda at gmail.com>> wrote: +100 for pushing this to trunk
Easier to review & edit there.
On Tue, Jun 21, 2022 at 2:14 PM <christoph.thiede at student.hpi.uni-potsdam.de<mailto: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 listhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev . There is a public mailing list archivehttp://lists.squeakfoundation.org/pipermail/squeak-dev/ , but to engage in any discussion, you have to sign uphttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev#:~:text=Subscribing%20to%20Squeak%2Ddev to the list. Alternatively, you can report issues on our GitHub issue trackerhttps://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 Talkhttps://github.com/hpi-swa-lab/squeak-inbox-talk
On 2022-06-21T20:59:48+00:00, commits at source.squeak.org<mailto: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"
^(HelpTopic title: 'Squeak Resources Online' contents:<generated>
'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.
http://lists.squeakfoundation.org/mailman/listinfo/squeak-devFor more information on the community and the contribution process, check out the tutorial Contributing to Squeak in the following pages.
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&cont...
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.orghttp://www.squeak.org;,I0,I0i,Rhttp://news.squeak.orghttp://news.squeak.org;,I0,I0i,I0,Rhttp://www.squeak.org/downloadshttp://www.squeak.org/downloads;,I0,I0i,I0,Rhttps://github.com/OpenSmalltalk/opensmalltalk-vmhttp://github.com/OpenSmalltalk/opensmalltalk-vm;,I0,I0i,I0,Rhttps://github.com/squeak-smalltalk/squeak-object-memory/issueshttp://github.com/squeak-smalltalk/squeak-object-memory/issues;,I0,I0b,I0,,i,,b,Rhttp://lists.squeakfoundation.org/mailman/listinfo/beginnershttp://lists.squeakfoundation.org/mailman/listinfo/beginners;,,Rhttp://forum.world.st/Squeak-Beginners-f107673.html;=,,i,b,,Rcode://http://forum.world.st/Squeak-Beginners-f107673.html;=,,i,b,,Rcode:// HelpBrowser openOn: SqueakContributionHelp;,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-devhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://forum.world.st/Squeak-Dev-f45488.html;=,,i,,Rhttp://lists.squeakfound...http://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://lis...http://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,,Rhttpshttp://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&cont...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!!' 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.orghttp://www.squeak.org;,I0,I0i,Rhttp://news.squeak.orghttp://news.squeak.org;,I0,I0i,I0,Rhttp://www.squeak.org/downloadshttp://www.squeak.org/downloads;,I0,Rhttps://github.com/OpenSmalltalk/opensmalltalk-vmhttp://github.com/OpenSmalltalk/opensmalltalk-vm;,I0,I0b,I0,,i,,b,Rhttp://lists.squeakfoundation.org/mailman/listinfo/beginnershttp://lists.squeakfoundation.org/mailman/listinfo/beginners;,,Rhttp://forum.world.st/Squeak-Beginners-f107673.htmlhttp://forum.world.st/Squeak-Beginners-f107673.html;,,i,b,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-devhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://forum.world.st/Squeak-Dev-f45488.htmlhttp://forum.world.st/Squeak-Dev-f45488.html;,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-beginnershttp://lists.squeakfoundation.org/mailman/listinfo/vm-beginners;,,Rhttp://forum.world.st/Smalltalk-VM-Beginners-f3068605.htmlhttp://forum.world.st/Smalltalk-VM-Beginners-f3068605.html;,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-devhttp://lists.squeakfoundation.org/mailman/listinfo/vm-dev;,,Rhttp://forum.world.st/Squeak-VM-f104410.htmlhttp://forum.world.st/Squeak-VM-f104410.html;,,b,,i,b,,Rhttps://github.com/SquareBracketAssociates/SqueakByExample-english;I1,,Rhttp...http://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!http://stephane.ducasse.free.fr/FreeBooks.html;I1!!' readStream nextChunkText) key: #squeakResourcesOnline; shouldStyle: false; yourself!
-- _,,,^..^,,,_ best, Eliot
-- _,,,^..^,,,_ best, Eliot
-- _,,,^..^,,,_ best, Eliot
Hi all,
thanks for all of your extensive reviews! I have now uploaded the new tutorial to the trunk, you can quickly open it from the help menu in the docking bar > Contributing to Squeak. You can still proof-read it and upload any suggestions to the trunk. :-)
Best, Christoph
--- Sent from Squeak Inbox Talk
On 2022-08-22T17:47:39+02:00, christoph.thiede@student.hpi.uni-potsdam.de wrote:
Hi all, dear native English Squeakers,
the new docs on Contributing to Squeak are almost, but we need some feedback from a native speaker on whether everything reads fluently. Could anybody please take a look and report back?
Attached is a changeset that adds the new help contents into the help browser and the docking bar menu. For convenience, here is a file-out of the latest version of the text (missing all interactive links):
***
Contributing to Squeak
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 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. There is a public mailing list archive, but to engage in any discussion, you have to sign up to the list. Alternatively, you can report issues on our GitHub issue tracker.
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/
Making Your First Contribution
* Install the latest Trunk updates. * Make your change, preferably starting 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 an optional 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.
More 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 change sets, 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. :-)
***
Thanks in advance!
Best, Christoph
Sent from Squeak Inbox Talk
On 2022-06-29T06:48:30+00:00, christoph.thiede at student.hpi.uni-potsdam.de wrote:
Hi Eliot,
But can you email me the text?
Here it is:
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 trackerhttps://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. :-)
Best, Christoph
Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im Auftrag von Eliot Miranda <eliot.miranda at gmail.com> Gesendet: Mittwoch, 29. Juni 2022 00:48 Uhr An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] The Inbox: Help-Squeak-Project-ct.94.mcz
On Tue, Jun 28, 2022 at 4:50 AM Thiede, Christoph <Christoph.Thiede at student.hpi.uni-potsdam.de<mailto:Christoph.Thiede at student.hpi.uni-potsdam.de>> wrote:
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? :-)
perhaps not :-) But can you email me the text?
Best,
Christoph
Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org<mailto:squeak-dev-bounces at lists.squeakfoundation.org>> im Auftrag von Eliot Miranda <eliot.miranda at gmail.com<mailto:eliot.miranda at gmail.com>> Gesendet: Donnerstag, 23. Juni 2022 19:25:31 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] The Inbox: Help-Squeak-Project-ct.94.mcz
On Thu, Jun 23, 2022 at 10:25 AM Eliot Miranda <eliot.miranda at gmail.com<mailto:eliot.miranda at gmail.com>> wrote: +100 for pushing this to trunk
Easier to review & edit there.
On Tue, Jun 21, 2022 at 2:14 PM <christoph.thiede at student.hpi.uni-potsdam.de<mailto: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 listhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev . There is a public mailing list archivehttp://lists.squeakfoundation.org/pipermail/squeak-dev/ , but to engage in any discussion, you have to sign uphttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev#:~:text=Subscribing%20to%20Squeak%2Ddev to the list. Alternatively, you can report issues on our GitHub issue trackerhttps://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 Talkhttps://github.com/hpi-swa-lab/squeak-inbox-talk
On 2022-06-21T20:59:48+00:00, commits at source.squeak.org<mailto: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"
^(HelpTopic title: 'Squeak Resources Online' contents:<generated>
'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.
http://lists.squeakfoundation.org/mailman/listinfo/squeak-devFor more information on the community and the contribution process, check out the tutorial Contributing to Squeak in the following pages.
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&cont...
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.orghttp://www.squeak.org;,I0,I0i,Rhttp://news.squeak.orghttp://news.squeak.org;,I0,I0i,I0,Rhttp://www.squeak.org/downloadshttp://www.squeak.org/downloads;,I0,I0i,I0,Rhttps://github.com/OpenSmalltalk/opensmalltalk-vmhttp://github.com/OpenSmalltalk/opensmalltalk-vm;,I0,I0i,I0,Rhttps://github.com/squeak-smalltalk/squeak-object-memory/issueshttp://github.com/squeak-smalltalk/squeak-object-memory/issues;,I0,I0b,I0,,i,,b,Rhttp://lists.squeakfoundation.org/mailman/listinfo/beginnershttp://lists.squeakfoundation.org/mailman/listinfo/beginners;,,Rhttp://forum.world.st/Squeak-Beginners-f107673.html;=,,i,b,,Rcode://http://forum.world.st/Squeak-Beginners-f107673.html;=,,i,b,,Rcode:// HelpBrowser openOn: SqueakContributionHelp;,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-devhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://forum.world.st/Squeak-Dev-f45488.html;=,,i,,Rhttp://lists.squeakfound...http://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://lis...http://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,,Rhttpshttp://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&cont...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!!' 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.orghttp://www.squeak.org;,I0,I0i,Rhttp://news.squeak.orghttp://news.squeak.org;,I0,I0i,I0,Rhttp://www.squeak.org/downloadshttp://www.squeak.org/downloads;,I0,Rhttps://github.com/OpenSmalltalk/opensmalltalk-vmhttp://github.com/OpenSmalltalk/opensmalltalk-vm;,I0,I0b,I0,,i,,b,Rhttp://lists.squeakfoundation.org/mailman/listinfo/beginnershttp://lists.squeakfoundation.org/mailman/listinfo/beginners;,,Rhttp://forum.world.st/Squeak-Beginners-f107673.htmlhttp://forum.world.st/Squeak-Beginners-f107673.html;,,i,b,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-devhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://forum.world.st/Squeak-Dev-f45488.htmlhttp://forum.world.st/Squeak-Dev-f45488.html;,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-beginnershttp://lists.squeakfoundation.org/mailman/listinfo/vm-beginners;,,Rhttp://forum.world.st/Smalltalk-VM-Beginners-f3068605.htmlhttp://forum.world.st/Smalltalk-VM-Beginners-f3068605.html;,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-devhttp://lists.squeakfoundation.org/mailman/listinfo/vm-dev;,,Rhttp://forum.world.st/Squeak-VM-f104410.htmlhttp://forum.world.st/Squeak-VM-f104410.html;,,b,,i,b,,Rhttps://github.com/SquareBracketAssociates/SqueakByExample-english;I1,,Rhttp...http://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!http://stephane.ducasse.free.fr/FreeBooks.html;I1!!' readStream nextChunkText) key: #squeakResourcesOnline; shouldStyle: false; yourself!
-- _,,,^..^,,,_ best, Eliot
-- _,,,^..^,,,_ best, Eliot
-- _,,,^..^,,,_ best, Eliot
I just did an update but there is no apparent new contributing content. The update went to 22111 - should that have loaded up the new stuff?
On 2022-09-27, at 2:43 AM, christoph.thiede@student.hpi.uni-potsdam.de wrote:
Hi all,
thanks for all of your extensive reviews! I have now uploaded the new tutorial to the trunk, you can quickly open it from the help menu in the docking bar > Contributing to Squeak. You can still proof-read it and upload any suggestions to the trunk. :-)
Best, Christoph
Sent from Squeak Inbox Talk
On 2022-08-22T17:47:39+02:00, christoph.thiede@student.hpi.uni-potsdam.de wrote:
Hi all, dear native English Squeakers,
the new docs on Contributing to Squeak are almost, but we need some feedback from a native speaker on whether everything reads fluently. Could anybody please take a look and report back?
Attached is a changeset that adds the new help contents into the help browser and the docking bar menu. For convenience, here is a file-out of the latest version of the text (missing all interactive links):
*** Contributing to Squeak 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 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. There is a public mailing list archive, but to engage in any discussion, you have to sign up to the list. Alternatively, you can report issues on our GitHub issue tracker. 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/ Making Your First Contribution * Install the latest Trunk updates. * Make your change, preferably starting 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 an optional 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. More 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 change sets, 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. :-) ***
Thanks in advance!
Best, Christoph
Sent from Squeak Inbox Talk
On 2022-06-29T06:48:30+00:00, christoph.thiede at student.hpi.uni-potsdam.de wrote:
Hi Eliot,
But can you email me the text?
Here it is:
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 listhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev. There is a public mailing list archivehttp://lists.squeakfoundation.org/pipermail/squeak-dev/, but to engage in any discussion, you have to sign uphttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev#:~:text=Subscribing%20to%20Squeak%2Ddev to the list. Alternatively, you can report issues on our GitHub issue trackerhttps://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. :-)
Best, Christoph
Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im Auftrag von Eliot Miranda <eliot.miranda at gmail.com> Gesendet: Mittwoch, 29. Juni 2022 00:48 Uhr An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] The Inbox: Help-Squeak-Project-ct.94.mcz
On Tue, Jun 28, 2022 at 4:50 AM Thiede, Christoph <Christoph.Thiede at student.hpi.uni-potsdam.de<mailto:Christoph.Thiede at student.hpi.uni-potsdam.de>> wrote:
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? :-)
perhaps not :-) But can you email me the text?
Best,
Christoph
Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org<mailto:squeak-dev-bounces at lists.squeakfoundation.org>> im Auftrag von Eliot Miranda <eliot.miranda at gmail.com<mailto:eliot.miranda at gmail.com>> Gesendet: Donnerstag, 23. Juni 2022 19:25:31 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] The Inbox: Help-Squeak-Project-ct.94.mcz
On Thu, Jun 23, 2022 at 10:25 AM Eliot Miranda <eliot.miranda at gmail.com<mailto:eliot.miranda at gmail.com>> wrote: +100 for pushing this to trunk
Easier to review & edit there.
On Tue, Jun 21, 2022 at 2:14 PM <christoph.thiede at student.hpi.uni-potsdam.de<mailto: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 listhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev . There is a public mailing list archivehttp://lists.squeakfoundation.org/pipermail/squeak-dev/ , but to engage in any discussion, you have to sign uphttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev#:~:text=Subscribing%20to%20Squeak%2Ddev to the list. Alternatively, you can report issues on our GitHub issue trackerhttps://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 Talkhttps://github.com/hpi-swa-lab/squeak-inbox-talk
On 2022-06-21T20:59:48+00:00, commits at source.squeak.org<mailto: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)
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)
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)
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)
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&cont...
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.orghttp://www.squeak.org;,I0,I0i,Rhttp://news.squeak.orghttp://news.squeak.org;,I0,I0i,I0,Rhttp://www.squeak.org/downloadshttp://www.squeak.org/downloads;,I0,I0i,I0,Rhttps://github.com/OpenSmalltalk/opensmalltalk-vmhttp://github.com/OpenSmalltalk/opensmalltalk-vm;,I0,I0i,I0,Rhttps://github.com/squeak-smalltalk/squeak-object-memory/issueshttp://github.com/squeak-smalltalk/squeak-object-memory/issues;,I0,I0b,I0,,i,,b,Rhttp://lists.squeakfoundation.org/mailman/listinfo/beginnershttp://lists.squeakfoundation.org/mailman/listinfo/beginners;,,Rhttp://forum.world.st/Squeak-Beginners-f107673.html;=,,i,b,,Rcode://http://forum.world.st/Squeak-Beginners-f107673.html;=,,i,b,,Rcode:// HelpBrowser openOn: SqueakContributionHelp;,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-devhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://forum.world.st/Squeak-Dev-f45488.html;=,,i,,Rhttp://lists.squeakfound...http://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://lis...http://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,,Rhttpshttp://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&cont...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!!' 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.orghttp://www.squeak.org;,I0,I0i,Rhttp://news.squeak.orghttp://news.squeak.org;,I0,I0i,I0,Rhttp://www.squeak.org/downloadshttp://www.squeak.org/downloads;,I0,Rhttps://github.com/OpenSmalltalk/opensmalltalk-vmhttp://github.com/OpenSmalltalk/opensmalltalk-vm;,I0,I0b,I0,,i,,b,Rhttp://lists.squeakfoundation.org/mailman/listinfo/beginnershttp://lists.squeakfoundation.org/mailman/listinfo/beginners;,,Rhttp://forum.world.st/Squeak-Beginners-f107673.htmlhttp://forum.world.st/Squeak-Beginners-f107673.html;,,i,b,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-devhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://forum.world.st/Squeak-Dev-f45488.htmlhttp://forum.world.st/Squeak-Dev-f45488.html;,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-beginnershttp://lists.squeakfoundation.org/mailman/listinfo/vm-beginners;,,Rhttp://forum.world.st/Smalltalk-VM-Beginners-f3068605.htmlhttp://forum.world.st/Smalltalk-VM-Beginners-f3068605.html;,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-devhttp://lists.squeakfoundation.org/mailman/listinfo/vm-dev;,,Rhttp://forum.world.st/Squeak-VM-f104410.htmlhttp://forum.world.st/Squeak-VM-f104410.html;,,b,,i,b,,Rhttps://github.com/SquareBracketAssociates/SqueakByExample-english;I1,,Rhttp...http://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!http://stephane.ducasse.free.fr/FreeBooks.html;I1!!' readStream nextChunkText) key: #squeakResourcesOnline; shouldStyle: false; yourself!
-- _,,,^..^,,,_ best, Eliot
-- _,,,^..^,,,_ best, Eliot
-- _,,,^..^,,,_ best, Eliot
That's weird, I'm here at 22221. 22111 is the latest image version for Squeak 6.0. Do you maybe need to change your image to follow the Trunk (Squeak 6.1Alpha) again?
Best,
Christoph
________________________________ Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von tim Rowledge tim@rowledge.org Gesendet: Dienstag, 27. September 2022 18:58:04 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] Docs on Contributing to Squeak (was: The Inbox: Help-Squeak-Project-ct.94.mcz)
I just did an update but there is no apparent new contributing content. The update went to 22111 - should that have loaded up the new stuff?
On 2022-09-27, at 2:43 AM, christoph.thiede@student.hpi.uni-potsdam.de wrote:
Hi all,
thanks for all of your extensive reviews! I have now uploaded the new tutorial to the trunk, you can quickly open it from the help menu in the docking bar > Contributing to Squeak. You can still proof-read it and upload any suggestions to the trunk. :-)
Best, Christoph
Sent from Squeak Inbox Talk
On 2022-08-22T17:47:39+02:00, christoph.thiede@student.hpi.uni-potsdam.de wrote:
Hi all, dear native English Squeakers,
the new docs on Contributing to Squeak are almost, but we need some feedback from a native speaker on whether everything reads fluently. Could anybody please take a look and report back?
Attached is a changeset that adds the new help contents into the help browser and the docking bar menu. For convenience, here is a file-out of the latest version of the text (missing all interactive links):
*** Contributing to Squeak 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 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. There is a public mailing list archive, but to engage in any discussion, you have to sign up to the list. Alternatively, you can report issues on our GitHub issue tracker. 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/ Making Your First Contribution * Install the latest Trunk updates. * Make your change, preferably starting 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 an optional 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. More 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 change sets, 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. :-) ***
Thanks in advance!
Best, Christoph
Sent from Squeak Inbox Talk
On 2022-06-29T06:48:30+00:00, christoph.thiede at student.hpi.uni-potsdam.de wrote:
Hi Eliot,
But can you email me the text?
Here it is:
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 listhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev. There is a public mailing list archivehttp://lists.squeakfoundation.org/pipermail/squeak-dev/, but to engage in any discussion, you have to sign uphttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev#:~:text=Subscribing%20to%20Squeak%2Ddev to the list. Alternatively, you can report issues on our GitHub issue trackerhttps://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. :-)
Best, Christoph
Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im Auftrag von Eliot Miranda <eliot.miranda at gmail.com> Gesendet: Mittwoch, 29. Juni 2022 00:48 Uhr An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] The Inbox: Help-Squeak-Project-ct.94.mcz
On Tue, Jun 28, 2022 at 4:50 AM Thiede, Christoph <Christoph.Thiede at student.hpi.uni-potsdam.de<mailto:Christoph.Thiede at student.hpi.uni-potsdam.de>> wrote:
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? :-)
perhaps not :-) But can you email me the text?
Best,
Christoph
Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org<mailto:squeak-dev-bounces at lists.squeakfoundation.org>> im Auftrag von Eliot Miranda <eliot.miranda at gmail.com<mailto:eliot.miranda at gmail.com>> Gesendet: Donnerstag, 23. Juni 2022 19:25:31 An: The general-purpose Squeak developers list Betreff: Re: [squeak-dev] The Inbox: Help-Squeak-Project-ct.94.mcz
On Thu, Jun 23, 2022 at 10:25 AM Eliot Miranda <eliot.miranda at gmail.com<mailto:eliot.miranda at gmail.com>> wrote: +100 for pushing this to trunk
Easier to review & edit there.
On Tue, Jun 21, 2022 at 2:14 PM <christoph.thiede at student.hpi.uni-potsdam.de<mailto: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 listhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev . There is a public mailing list archivehttp://lists.squeakfoundation.org/pipermail/squeak-dev/ , but to engage in any discussion, you have to sign uphttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev#:~:text=Subscribing%20to%20Squeak%2Ddev to the list. Alternatively, you can report issues on our GitHub issue trackerhttps://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 Talkhttps://github.com/hpi-swa-lab/squeak-inbox-talk
On 2022-06-21T20:59:48+00:00, commits at source.squeak.org<mailto: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)
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)
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)
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)
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&cont...
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.orghttp://www.squeak.org;,I0,I0i,Rhttp://news.squeak.orghttp://news.squeak.org;,I0,I0i,I0,Rhttp://www.squeak.org/downloadshttp://www.squeak.org/downloads;,I0,I0i,I0,Rhttps://github.com/OpenSmalltalk/opensmalltalk-vmhttp://github.com/OpenSmalltalk/opensmalltalk-vm;,I0,I0i,I0,Rhttps://github.com/squeak-smalltalk/squeak-object-memory/issueshttp://github.com/squeak-smalltalk/squeak-object-memory/issues;,I0,I0b,I0,,i,,b,Rhttp://lists.squeakfoundation.org/mailman/listinfo/beginnershttp://lists.squeakfoundation.org/mailman/listinfo/beginners;,,Rhttp://forum.world.st/Squeak-Beginners-f107673.html;=,,i,b,,Rcode://http://forum.world.st/Squeak-Beginners-f107673.html;=,,i,b,,Rcode:// HelpBrowser openOn: SqueakContributionHelp;,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-devhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://forum.world.st/Squeak-Dev-f45488.html;=,,i,,Rhttp://lists.squeakfound...http://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://lis...http://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,,Rhttpshttp://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&cont...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!!' 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.orghttp://www.squeak.org;,I0,I0i,Rhttp://news.squeak.orghttp://news.squeak.org;,I0,I0i,I0,Rhttp://www.squeak.org/downloadshttp://www.squeak.org/downloads;,I0,Rhttps://github.com/OpenSmalltalk/opensmalltalk-vmhttp://github.com/OpenSmalltalk/opensmalltalk-vm;,I0,I0b,I0,,i,,b,Rhttp://lists.squeakfoundation.org/mailman/listinfo/beginnershttp://lists.squeakfoundation.org/mailman/listinfo/beginners;,,Rhttp://forum.world.st/Squeak-Beginners-f107673.htmlhttp://forum.world.st/Squeak-Beginners-f107673.html;,,i,b,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-devhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://forum.world.st/Squeak-Dev-f45488.htmlhttp://forum.world.st/Squeak-Dev-f45488.html;,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-beginnershttp://lists.squeakfoundation.org/mailman/listinfo/vm-beginners;,,Rhttp://forum.world.st/Smalltalk-VM-Beginners-f3068605.htmlhttp://forum.world.st/Smalltalk-VM-Beginners-f3068605.html;,,i,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/vm-devhttp://lists.squeakfoundation.org/mailman/listinfo/vm-dev;,,Rhttp://forum.world.st/Squeak-VM-f104410.htmlhttp://forum.world.st/Squeak-VM-f104410.html;,,b,,i,b,,Rhttps://github.com/SquareBracketAssociates/SqueakByExample-english;I1,,Rhttp...http://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!http://stephane.ducasse.free.fr/FreeBooks.html;I1!!' readStream nextChunkText) key: #squeakResourcesOnline; shouldStyle: false; yourself!
-- _,,,^..^,,,_ best, Eliot
-- _,,,^..^,,,_ best, Eliot
-- _,,,^..^,,,_ best, Eliot
On Wed, Sep 28, 2022 at 03:23:07PM +0000, Thiede, Christoph wrote:
That's weird, I'm here at 22221. 22111 is the latest image version for Squeak 6.0. Do you maybe need to change your image to follow the Trunk (Squeak 6.1Alpha) again?
Now that you mention it, this is easy to overlook and I wonder how many new users even know that the trunk stream is available to them?
Perhaps we could have something like this in a menu, perhaps right below the "Update Squeak" option in the menu bar:
(MCMcmUpdater defaultUpdateURL copyAfterLast: $/ ) in: [ :repo | repo = 'trunk' ifFalse: [ (self confirm: 'Change to master trunk development stream (currently updating from ', repo, ')?') ifTrue: [MCMcmUpdater defaultUpdateURL: 'https://source.squeak.org/trunk']]]
Dave
I would deem an extra pop-up too intrusive. Probably many people use a stable release image deliberately and only want to receive backported patches for that. But maybe we could add a short note into the Transcript or the "updated completed" dialog?
Best,
Christoph
________________________________ Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von David T. Lewis lewis@mail.msen.com Gesendet: Mittwoch, 28. September 2022 19:10:14 An: The general-purpose Squeak developers list Betreff: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak)
On Wed, Sep 28, 2022 at 03:23:07PM +0000, Thiede, Christoph wrote:
That's weird, I'm here at 22221. 22111 is the latest image version for Squeak 6.0. Do you maybe need to change your image to follow the Trunk (Squeak 6.1Alpha) again?
Now that you mention it, this is easy to overlook and I wonder how many new users even know that the trunk stream is available to them?
Perhaps we could have something like this in a menu, perhaps right below the "Update Squeak" option in the menu bar:
(MCMcmUpdater defaultUpdateURL copyAfterLast: $/ ) in: [ :repo | repo = 'trunk' ifFalse: [ (self confirm: 'Change to master trunk development stream (currently updating from ', repo, ')?') ifTrue: [MCMcmUpdater defaultUpdateURL: 'https://source.squeak.org/trunk']]]
Dave
Dave is suggesting another option in the menu, not a pop-up thing.
I'd also consider making it part of the dialogue that already pops up at the end of an update -
In the default downloaded state it shows the Url as 'http://source.squeak.org/squeak60'. If we added a button 'update from trunk from now on' this would be reasonably obvious and very easy to use.
On 2022-09-28, at 12:04 PM, Thiede, Christoph Christoph.Thiede@student.hpi.uni-potsdam.de wrote:
I would deem an extra pop-up too intrusive. Probably many people use a stable release image deliberately and only want to receive backported patches for that. But maybe we could add a short note into the Transcript or the "updated completed" dialog?
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: RSC: Rewind System Clock
I agree with Dave that switching update streams is too hidden and would be very convenient to change with "one click". Whatever UI approach is chosen to expose it better, please ensure the action ends up also ensuring whichever one is switched to (trunk) is the top HTTP repository in each MCWorkingCopy, so that the revisions will be ready to go as well.
- Chris
On Wed, Sep 28, 2022 at 2:48 PM tim Rowledge tim@rowledge.org wrote:
Dave is suggesting another option in the menu, not a pop-up thing.
I'd also consider making it part of the dialogue that already pops up at the end of an update -
In the default downloaded state it shows the Url as 'http://source.squeak.org/squeak60'. If we added a button 'update from trunk from now on' this would be reasonably obvious and very easy to use.
On 2022-09-28, at 12:04 PM, Thiede, Christoph < Christoph.Thiede@student.hpi.uni-potsdam.de> wrote:
I would deem an extra pop-up too intrusive. Probably many people use a stable release image deliberately and only want to receive backported patches for that. But maybe we could add a short note into the Transcript or the "updated completed" dialog?
tim
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: RSC: Rewind System Clock
Now that you mention it, this is easy to overlook and I wonder how
many new users even know that the trunk stream is available to them?
I agree with Dave that switching update streams is too hidden and would be very convenient to change with "one click".
+1, very much agree with Dave… I had no idea about a trunk. I would have appreciated such convenience/encouragement to switch to the trunk when started :)
Jaromir
From: Chris Mullermailto:asqueaker@gmail.com Sent: Wednesday, September 28, 2022 23:35 To: The general-purpose Squeak developers listmailto:squeak-dev@lists.squeakfoundation.org Subject: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak)
I agree with Dave that switching update streams is too hidden and would be very convenient to change with "one click". Whatever UI approach is chosen to expose it better, please ensure the action ends up also ensuring whichever one is switched to (trunk) is the top HTTP repository in each MCWorkingCopy, so that the revisions will be ready to go as well.
- Chris
On Wed, Sep 28, 2022 at 2:48 PM tim Rowledge <tim@rowledge.orgmailto:tim@rowledge.org> wrote: Dave is suggesting another option in the menu, not a pop-up thing.
I'd also consider making it part of the dialogue that already pops up at the end of an update - [cid:183860102b21593e9fd1]
In the default downloaded state it shows the Url as 'http://source.squeak.org/squeak60'. If we added a button 'update from trunk from now onhttp://source.squeak.org/squeak60'.%20If%20we%20added%20a%20button%20'update%20from%20trunk%20from%20now%20on' this would be reasonably obvious and very easy to use.
On 2022-09-28, at 12:04 PM, Thiede, Christoph <Christoph.Thiede@student.hpi.unimailto:Christoph.Thiede@student.hpi.uni-potsdam.dehttp://potsdam.de> wrote:
I would deem an extra pop-up too intrusive. Probably many people use a stable release image deliberately and only want to receive backported patches for that. But maybe we could add a short note into the Transcript or the "updated completed" dialog?
tim -- tim Rowledge; tim@rowledge.orgmailto:tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: RSC: Rewind System Clock
Please add a warning that Trunk is bleeding edge, that the image can and will break. But it is still fun for the most part :-D
Best, Karl
On Thu, Sep 29, 2022 at 1:45 AM Jaromir Matas mail@jaromir.net wrote:
Now that you mention it, this is easy to overlook and I wonder how
many new users even know that the trunk stream is available to them?
I agree with Dave that switching update streams is too hidden and would
be very convenient to change with "one click".
+1, very much agree with Dave… I had no idea about a trunk. I would have appreciated such convenience/encouragement to switch to the trunk when started :)
Jaromir
*From: *Chris Muller asqueaker@gmail.com *Sent: *Wednesday, September 28, 2022 23:35 *To: *The general-purpose Squeak developers list squeak-dev@lists.squeakfoundation.org *Subject: *Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak)
I agree with Dave that switching update streams is too hidden and would be very convenient to change with "one click". Whatever UI approach is chosen to expose it better, please ensure the action ends up also ensuring whichever one is switched to (trunk) is the top HTTP repository in each MCWorkingCopy, so that the revisions will be ready to go as well.
- Chris
On Wed, Sep 28, 2022 at 2:48 PM tim Rowledge tim@rowledge.org wrote:
Dave is suggesting another option in the menu, not a pop-up thing.
I'd also consider making it part of the dialogue that already pops up at the end of an update -
In the default downloaded state it shows the Url as 'http://source.squeak.org/squeak60'. If we added a button 'update from trunk from now on http://source.squeak.org/squeak60'.%20If%20we%20added%20a%20button%20'update%20from%20trunk%20from%20now%20on' this would be reasonably obvious and very easy to use.
On 2022-09-28, at 12:04 PM, Thiede, Christoph < Christoph.Thiede@student.hpi.uni-potsdam.de> wrote:
I would deem an extra pop-up too intrusive. Probably many people use a stable release image deliberately and only want to receive backported patches for that. But maybe we could add a short note into the Transcript or the "updated completed" dialog?
tim
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: RSC: Rewind System Clock
This could fit well into SystemVersion>>#description. Could we also promote new versions there, e.g., if you update a Squeak 5.3 image, say something like:
Stable version. A newer release (Squeak 6.0) is available (click here to upgrade). You can also upgrade to the latest Trunk (bleeding edge, click here).
Wdyt?
Best,
Christoph
________________________________ Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von karl ramberg karlramberg@gmail.com Gesendet: Donnerstag, 29. September 2022 06:48:12 An: The general-purpose Squeak developers list Cc: ma.chris.m@gmail.com Betreff: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak)
Please add a warning that Trunk is bleeding edge, that the image can and will break. But it is still fun for the most part :-D
Best, Karl
On Thu, Sep 29, 2022 at 1:45 AM Jaromir Matas <mail@jaromir.netmailto:mail@jaromir.net> wrote:
Now that you mention it, this is easy to overlook and I wonder how
many new users even know that the trunk stream is available to them?
I agree with Dave that switching update streams is too hidden and would be very convenient to change with "one click".
+1, very much agree with Dave… I had no idea about a trunk. I would have appreciated such convenience/encouragement to switch to the trunk when started :)
Jaromir
From: Chris Mullermailto:asqueaker@gmail.com Sent: Wednesday, September 28, 2022 23:35 To: The general-purpose Squeak developers listmailto:squeak-dev@lists.squeakfoundation.org Subject: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak)
I agree with Dave that switching update streams is too hidden and would be very convenient to change with "one click". Whatever UI approach is chosen to expose it better, please ensure the action ends up also ensuring whichever one is switched to (trunk) is the top HTTP repository in each MCWorkingCopy, so that the revisions will be ready to go as well.
- Chris
On Wed, Sep 28, 2022 at 2:48 PM tim Rowledge <tim@rowledge.orgmailto:tim@rowledge.org> wrote: Dave is suggesting another option in the menu, not a pop-up thing.
I'd also consider making it part of the dialogue that already pops up at the end of an update - [cid:183878f10ff1593e9fd1]
In the default downloaded state it shows the Url as 'http://source.squeak.org/squeak60'. If we added a button 'update from trunk from now onhttp://source.squeak.org/squeak60'.%20If%20we%20added%20a%20button%20'update%20from%20trunk%20from%20now%20on' this would be reasonably obvious and very easy to use.
On 2022-09-28, at 12:04 PM, Thiede, Christoph <Christoph.Thiede@student.hpi.unimailto:Christoph.Thiede@student.hpi.uni-potsdam.dehttp://potsdam.de> wrote:
I would deem an extra pop-up too intrusive. Probably many people use a stable release image deliberately and only want to receive backported patches for that. But maybe we could add a short note into the Transcript or the "updated completed" dialog?
tim -- tim Rowledge; tim@rowledge.orgmailto:tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: RSC: Rewind System Clock
Hi all --
As soon as we make switching update streams easier and more discoverable, we might get a new kind of support requests for arbitrary combinations such as "I cannot update 5.1 to 6.0 or Trunk" and so on.
In general, we cannot guarantee an easy migration from some older Squeak version to a newer one. It remains experimental. Biggest reason for that is that there will be versions missing between some release repository and another or the latest Trunk, where actually a specific point in the Trunk update stream should be started with.
Best, Marcel Am 29.09.2022 09:27:28 schrieb Thiede, Christoph christoph.thiede@student.hpi.uni-potsdam.de: This could fit well into SystemVersion>>#description. Could we also promote new versions there, e.g., if you update a Squeak 5.3 image, say something like:
Stable version. A newer release (Squeak 6.0) is available (click here to upgrade). You can also upgrade to the latest Trunk (bleeding edge, click here).
Wdyt?
Best, Christoph Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von karl ramberg karlramberg@gmail.com Gesendet: Donnerstag, 29. September 2022 06:48:12 An: The general-purpose Squeak developers list Cc: ma.chris.m@gmail.com Betreff: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak) Please add a warning that Trunk is bleeding edge, that the image can and will break. But it is still fun for the most part :-D
Best, Karl
On Thu, Sep 29, 2022 at 1:45 AM Jaromir Matas <mail@jaromir.net [mailto:mail@jaromir.net]> wrote:
Now that you mention it, this is easy to overlook and I wonder how
many new users even know that the trunk stream is available to them?
I agree with Dave that switching update streams is too hidden and would be very convenient to change with "one click".
+1, very much agree with Dave… I had no idea about a trunk. I would have appreciated such convenience/encouragement to switch to the trunk when started :) Jaromir From: Chris Muller [mailto:asqueaker@gmail.com] Sent: Wednesday, September 28, 2022 23:35 To: The general-purpose Squeak developers list [mailto:squeak-dev@lists.squeakfoundation.org] Subject: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak) I agree with Dave that switching update streams is too hidden and would be very convenient to change with "one click". Whatever UI approach is chosen to expose it better, please ensure the action ends up also ensuring whichever one is switched to (trunk) is the top HTTP repository in each MCWorkingCopy, so that the revisions will be ready to go as well. - Chris On Wed, Sep 28, 2022 at 2:48 PM tim Rowledge <tim@rowledge.org [mailto:tim@rowledge.org]> wrote: Dave is suggesting another option in the menu, not a pop-up thing. I'd also consider making it part of the dialogue that already pops up at the end of an update -
In the default downloaded state it shows the Url as 'http://source.squeak.org/squeak60'. If we added a button 'update from trunk from now on [http://source.squeak.org/squeak60%27.%20If%20we%20added%20a%20button%20%27up...]' this would be reasonably obvious and very easy to use.
On 2022-09-28, at 12:04 PM, Thiede, Christoph <Christoph.Thiede@student.hpi.uni [mailto:Christoph.Thiede@student.hpi.uni]-potsdam.de [http://potsdam.de%5D%3E wrote:
I would deem an extra pop-up too intrusive. Probably many people use a stable release image deliberately and only want to receive backported patches for that. But maybe we could add a short note into the Transcript or the "updated completed" dialog?
tim -- tim Rowledge; tim@rowledge.org [mailto:tim@rowledge.org]; http://www.rowledge.org/tim [http://www.rowledge.org/tim] Strange OpCodes: RSC: Rewind System Clock
Hi Marcel,
that's a fair point. We could still just display a notice in the dialog without a button for switching the update stream, maybe this:
Stable version. A newer release (Squeak 6.0) is available (click here to [download](https://squeak.org/downloads/)).
What do you think about this? :-)
Best,
Christoph
________________________________ Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von Taeumel, Marcel Gesendet: Dienstag, 11. Oktober 2022 10:56:09 An: squeak-dev Betreff: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak)
Hi all --
As soon as we make switching update streams easier and more discoverable, we might get a new kind of support requests for arbitrary combinations such as "I cannot update 5.1 to 6.0 or Trunk" and so on.
In general, we cannot guarantee an easy migration from some older Squeak version to a newer one. It remains experimental. Biggest reason for that is that there will be versions missing between some release repository and another or the latest Trunk, where actually a specific point in the Trunk update stream should be started with.
Best, Marcel
Am 29.09.2022 09:27:28 schrieb Thiede, Christoph christoph.thiede@student.hpi.uni-potsdam.de:
This could fit well into SystemVersion>>#description. Could we also promote new versions there, e.g., if you update a Squeak 5.3 image, say something like:
Stable version. A newer release (Squeak 6.0) is available (click here to upgrade). You can also upgrade to the latest Trunk (bleeding edge, click here).
Wdyt?
Best,
Christoph
________________________________ Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von karl ramberg karlramberg@gmail.com Gesendet: Donnerstag, 29. September 2022 06:48:12 An: The general-purpose Squeak developers list Cc: ma.chris.m@gmail.com Betreff: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak)
Please add a warning that Trunk is bleeding edge, that the image can and will break. But it is still fun for the most part :-D
Best, Karl
On Thu, Sep 29, 2022 at 1:45 AM Jaromir Matas <mail@jaromir.netmailto:mail@jaromir.net> wrote:
Now that you mention it, this is easy to overlook and I wonder how
many new users even know that the trunk stream is available to them?
I agree with Dave that switching update streams is too hidden and would be very convenient to change with "one click".
+1, very much agree with Dave… I had no idea about a trunk. I would have appreciated such convenience/encouragement to switch to the trunk when started :)
Jaromir
From: Chris Mullermailto:asqueaker@gmail.com Sent: Wednesday, September 28, 2022 23:35 To: The general-purpose Squeak developers listmailto:squeak-dev@lists.squeakfoundation.org Subject: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak)
I agree with Dave that switching update streams is too hidden and would be very convenient to change with "one click". Whatever UI approach is chosen to expose it better, please ensure the action ends up also ensuring whichever one is switched to (trunk) is the top HTTP repository in each MCWorkingCopy, so that the revisions will be ready to go as well.
- Chris
On Wed, Sep 28, 2022 at 2:48 PM tim Rowledge <tim@rowledge.orgmailto:tim@rowledge.org> wrote: Dave is suggesting another option in the menu, not a pop-up thing.
I'd also consider making it part of the dialogue that already pops up at the end of an update - [cid:183878f10ff1593e9fd1]
In the default downloaded state it shows the Url as 'http://source.squeak.org/squeak60'. If we added a button 'update from trunk from now onhttp://source.squeak.org/squeak60'.%20If%20we%20added%20a%20button%20'update%20from%20trunk%20from%20now%20on' this would be reasonably obvious and very easy to use.
On 2022-09-28, at 12:04 PM, Thiede, Christoph <Christoph.Thiede@student.hpi.unimailto:Christoph.Thiede@student.hpi.uni-potsdam.dehttp://potsdam.de> wrote:
I would deem an extra pop-up too intrusive. Probably many people use a stable release image deliberately and only want to receive backported patches for that. But maybe we could add a short note into the Transcript or the "updated completed" dialog?
tim -- tim Rowledge; tim@rowledge.orgmailto:tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: RSC: Rewind System Clock
Well, I don't like that Windows 10 bugs me about updating to Windows 11 ... so ... not a fan of this proposal. ;-)
Best, Marcel Am 11.10.2022 13:17:28 schrieb Thiede, Christoph christoph.thiede@student.hpi.uni-potsdam.de: Hi Marcel,
that's a fair point. We could still just display a notice in the dialog without a button for switching the update stream, maybe this:
Stable version. A newer release (Squeak 6.0) is available (click here to [download](https://squeak.org/downloads/ [https://squeak.org/downloads/])).
What do you think about this? :-)
Best, Christoph Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von Taeumel, Marcel Gesendet: Dienstag, 11. Oktober 2022 10:56:09 An: squeak-dev Betreff: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak) Hi all --
As soon as we make switching update streams easier and more discoverable, we might get a new kind of support requests for arbitrary combinations such as "I cannot update 5.1 to 6.0 or Trunk" and so on.
In general, we cannot guarantee an easy migration from some older Squeak version to a newer one. It remains experimental. Biggest reason for that is that there will be versions missing between some release repository and another or the latest Trunk, where actually a specific point in the Trunk update stream should be started with.
Best, Marcel Am 29.09.2022 09:27:28 schrieb Thiede, Christoph christoph.thiede@student.hpi.uni-potsdam.de: This could fit well into SystemVersion>>#description. Could we also promote new versions there, e.g., if you update a Squeak 5.3 image, say something like:
Stable version. A newer release (Squeak 6.0) is available (click here to upgrade). You can also upgrade to the latest Trunk (bleeding edge, click here).
Wdyt?
Best, Christoph Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von karl ramberg karlramberg@gmail.com Gesendet: Donnerstag, 29. September 2022 06:48:12 An: The general-purpose Squeak developers list Cc: ma.chris.m@gmail.com Betreff: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak) Please add a warning that Trunk is bleeding edge, that the image can and will break. But it is still fun for the most part :-D
Best, Karl
On Thu, Sep 29, 2022 at 1:45 AM Jaromir Matas <mail@jaromir.net [mailto:mail@jaromir.net]> wrote:
Now that you mention it, this is easy to overlook and I wonder how
many new users even know that the trunk stream is available to them?
I agree with Dave that switching update streams is too hidden and would be very convenient to change with "one click".
+1, very much agree with Dave… I had no idea about a trunk. I would have appreciated such convenience/encouragement to switch to the trunk when started :) Jaromir From: Chris Muller [mailto:asqueaker@gmail.com] Sent: Wednesday, September 28, 2022 23:35 To: The general-purpose Squeak developers list [mailto:squeak-dev@lists.squeakfoundation.org] Subject: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak) I agree with Dave that switching update streams is too hidden and would be very convenient to change with "one click". Whatever UI approach is chosen to expose it better, please ensure the action ends up also ensuring whichever one is switched to (trunk) is the top HTTP repository in each MCWorkingCopy, so that the revisions will be ready to go as well. - Chris On Wed, Sep 28, 2022 at 2:48 PM tim Rowledge <tim@rowledge.org [mailto:tim@rowledge.org]> wrote: Dave is suggesting another option in the menu, not a pop-up thing. I'd also consider making it part of the dialogue that already pops up at the end of an update -
In the default downloaded state it shows the Url as 'http://source.squeak.org/squeak60'. If we added a button 'update from trunk from now on [http://source.squeak.org/squeak60%27.%20If%20we%20added%20a%20button%20%27up...]' this would be reasonably obvious and very easy to use.
On 2022-09-28, at 12:04 PM, Thiede, Christoph <Christoph.Thiede@student.hpi.uni [mailto:Christoph.Thiede@student.hpi.uni]-potsdam.de [http://potsdam.de%5D%3E wrote:
I would deem an extra pop-up too intrusive. Probably many people use a stable release image deliberately and only want to receive backported patches for that. But maybe we could add a short note into the Transcript or the "updated completed" dialog?
tim -- tim Rowledge; tim@rowledge.org [mailto:tim@rowledge.org]; http://www.rowledge.org/tim [http://www.rowledge.org/tim] Strange OpCodes: RSC: Rewind System Clock
There's a bit of a difference between "there is a new version you might like to download" and "Windows eleventy-twelve version umpty-grump is going to install itself unless you hit the moving single pixel target twice in the next 0.0001 seconds, and by the way it will lock your machine for the next 5 min... wait, no 17, no, 5 hour.. no wait 3 months" :-)
On 2022-10-12, at 2:10 AM, Marcel Taeumel marcel.taeumel@hpi.de wrote:
Well, I don't like that Windows 10 bugs me about updating to Windows 11 ... so ... not a fan of this proposal. ;-)
Best, Marcel
Am 11.10.2022 13:17:28 schrieb Thiede, Christoph christoph.thiede@student.hpi.uni-potsdam.de:
Hi Marcel,
that's a fair point. We could still just display a notice in the dialog without a button for switching the update stream, maybe this:
Stable version. A newer release (Squeak 6.0) is available (click here to [download](https://squeak.org/downloads/)).
What do you think about this? :-)
Best,
Christoph
Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von Taeumel, Marcel Gesendet: Dienstag, 11. Oktober 2022 10:56:09 An: squeak-dev Betreff: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak)
Hi all --
As soon as we make switching update streams easier and more discoverable, we might get a new kind of support requests for arbitrary combinations such as "I cannot update 5.1 to 6.0 or Trunk" and so on.
In general, we cannot guarantee an easy migration from some older Squeak version to a newer one. It remains experimental. Biggest reason for that is that there will be versions missing between some release repository and another or the latest Trunk, where actually a specific point in the Trunk update stream should be started with.
Best, Marcel
Am 29.09.2022 09:27:28 schrieb Thiede, Christoph christoph.thiede@student.hpi.uni-potsdam.de:
This could fit well into SystemVersion>>#description. Could we also promote new versions there, e.g., if you update a Squeak 5.3 image, say something like:
Stable version. A newer release (Squeak 6.0) is available (click here to upgrade). You can also upgrade to the latest Trunk (bleeding edge, click here).
Wdyt?
Best,
Christoph
Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von karl ramberg karlramberg@gmail.com Gesendet: Donnerstag, 29. September 2022 06:48:12 An: The general-purpose Squeak developers list Cc: ma.chris.m@gmail.com Betreff: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak)
Please add a warning that Trunk is bleeding edge, that the image can and will break. But it is still fun for the most part :-D
Best, Karl
On Thu, Sep 29, 2022 at 1:45 AM Jaromir Matas mail@jaromir.net wrote:
Now that you mention it, this is easy to overlook and I wonder how
many new users even know that the trunk stream is available to them?
I agree with Dave that switching update streams is too hidden and would be very convenient to change with "one click".
+1, very much agree with Dave… I had no idea about a trunk. I would have appreciated such convenience/encouragement to switch to the trunk when started :)
Jaromir
From: Chris Muller Sent: Wednesday, September 28, 2022 23:35 To: The general-purpose Squeak developers list Subject: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak)
I agree with Dave that switching update streams is too hidden and would be very convenient to change with "one click". Whatever UI approach is chosen to expose it better, please ensure the action ends up also ensuring whichever one is switched to (trunk) is the top HTTP repository in each MCWorkingCopy, so that the revisions will be ready to go as well.
- Chris
On Wed, Sep 28, 2022 at 2:48 PM tim Rowledge tim@rowledge.org wrote:
Dave is suggesting another option in the menu, not a pop-up thing.
I'd also consider making it part of the dialogue that already pops up at the end of an update - <Screen Shot 2022-09-28 at 12.45.12 PM.png>
In the default downloaded state it shows the Url as 'http://source.squeak.org/squeak60'. If we added a button 'update from trunk from now on' this would be reasonably obvious and very easy to use.
On 2022-09-28, at 12:04 PM, Thiede, Christoph Christoph.Thiede@student.hpi.uni-potsdam.de wrote:
I would deem an extra pop-up too intrusive. Probably many people use a stable release image deliberately and only want to receive backported patches for that. But maybe we could add a short note into the Transcript or the "updated completed" dialog?
tim
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: RSC: Rewind System Clock
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim "How many Teela Browns does it take to change a lightbulb?” "Stupid question."
I mean, a single line "there is a new version available" might suggest that your current configuration and project might run better than before. I we can only try to make this true for a specific update stream. It might be a hassle when migrating your image from, say, 5.2 to 6.0. Especially since the migration scripts, which we maintain in the Trunk stream, are missing in the release repositories.
Best, Marcel Am 12.10.2022 19:03:58 schrieb tim Rowledge tim@rowledge.org: There's a bit of a difference between "there is a new version you might like to download" and "Windows eleventy-twelve version umpty-grump is going to install itself unless you hit the moving single pixel target twice in the next 0.0001 seconds, and by the way it will lock your machine for the next 5 min... wait, no 17, no, 5 hour.. no wait 3 months" :-)
On 2022-10-12, at 2:10 AM, Marcel Taeumel wrote:
Well, I don't like that Windows 10 bugs me about updating to Windows 11 ... so ... not a fan of this proposal. ;-)
Best, Marcel
Am 11.10.2022 13:17:28 schrieb Thiede, Christoph :
Hi Marcel,
that's a fair point. We could still just display a notice in the dialog without a button for switching the update stream, maybe this:
Stable version. A newer release (Squeak 6.0) is available (click here to [download](https://squeak.org/downloads/)).
What do you think about this? :-)
Best,
Christoph
Von: Squeak-dev im Auftrag von Taeumel, Marcel Gesendet: Dienstag, 11. Oktober 2022 10:56:09 An: squeak-dev Betreff: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak)
Hi all --
As soon as we make switching update streams easier and more discoverable, we might get a new kind of support requests for arbitrary combinations such as "I cannot update 5.1 to 6.0 or Trunk" and so on.
In general, we cannot guarantee an easy migration from some older Squeak version to a newer one. It remains experimental. Biggest reason for that is that there will be versions missing between some release repository and another or the latest Trunk, where actually a specific point in the Trunk update stream should be started with.
Best, Marcel
Am 29.09.2022 09:27:28 schrieb Thiede, Christoph :
This could fit well into SystemVersion>>#description. Could we also promote new versions there, e.g., if you update a Squeak 5.3 image, say something like:
Stable version. A newer release (Squeak 6.0) is available (click here to upgrade). You can also upgrade to the latest Trunk (bleeding edge, click here).
Wdyt?
Best,
Christoph
Von: Squeak-dev im Auftrag von karl ramberg Gesendet: Donnerstag, 29. September 2022 06:48:12 An: The general-purpose Squeak developers list Cc: ma.chris.m@gmail.com Betreff: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak)
Please add a warning that Trunk is bleeding edge, that the image can and will break. But it is still fun for the most part :-D
Best, Karl
On Thu, Sep 29, 2022 at 1:45 AM Jaromir Matas wrote:
Now that you mention it, this is easy to overlook and I wonder how
many new users even know that the trunk stream is available to them?
I agree with Dave that switching update streams is too hidden and would be very convenient to change with "one click".
+1, very much agree with Dave… I had no idea about a trunk. I would have appreciated such convenience/encouragement to switch to the trunk when started :)
Jaromir
From: Chris Muller Sent: Wednesday, September 28, 2022 23:35 To: The general-purpose Squeak developers list Subject: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak)
I agree with Dave that switching update streams is too hidden and would be very convenient to change with "one click". Whatever UI approach is chosen to expose it better, please ensure the action ends up also ensuring whichever one is switched to (trunk) is the top HTTP repository in each MCWorkingCopy, so that the revisions will be ready to go as well.
- Chris
On Wed, Sep 28, 2022 at 2:48 PM tim Rowledge wrote:
Dave is suggesting another option in the menu, not a pop-up thing.
I'd also consider making it part of the dialogue that already pops up at the end of an update -
In the default downloaded state it shows the Url as 'http://source.squeak.org/squeak60'. If we added a button 'update from trunk from now on' this would be reasonably obvious and very easy to use.
On 2022-09-28, at 12:04 PM, Thiede, Christoph wrote:
I would deem an extra pop-up too intrusive. Probably many people use a stable release image deliberately and only want to receive backported patches for that. But maybe we could add a short note into the Transcript or the "updated completed" dialog?
tim
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: RSC: Rewind System Clock
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim "How many Teela Browns does it take to change a lightbulb?” "Stupid question."
I was not suggesting recommending a migration path from an older image to the latest trunk. But we could just let users who have just updated their Squeak 5.2 image know: There is a newer release. You can go to squeak.org/downloads and get a newer image there. This would not introduce any migration problems, and I am with Tim that one or two additional lines in an existing dialog would not cause significant irritation in any users.
Best,
Christoph
________________________________ Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von Taeumel, Marcel Gesendet: Donnerstag, 13. Oktober 2022 14:51:31 An: squeak-dev Betreff: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak)
I mean, a single line "there is a new version available" might suggest that your current configuration and project might run better than before. I we can only try to make this true for a specific update stream. It might be a hassle when migrating your image from, say, 5.2 to 6.0. Especially since the migration scripts, which we maintain in the Trunk stream, are missing in the release repositories.
Best, Marcel
Am 12.10.2022 19:03:58 schrieb tim Rowledge tim@rowledge.org:
There's a bit of a difference between "there is a new version you might like to download" and "Windows eleventy-twelve version umpty-grump is going to install itself unless you hit the moving single pixel target twice in the next 0.0001 seconds, and by the way it will lock your machine for the next 5 min... wait, no 17, no, 5 hour.. no wait 3 months" :-)
On 2022-10-12, at 2:10 AM, Marcel Taeumel wrote:
Well, I don't like that Windows 10 bugs me about updating to Windows 11 ... so ... not a fan of this proposal. ;-)
Best, Marcel
Am 11.10.2022 13:17:28 schrieb Thiede, Christoph :
Hi Marcel,
that's a fair point. We could still just display a notice in the dialog without a button for switching the update stream, maybe this:
Stable version. A newer release (Squeak 6.0) is available (click here to [download](https://squeak.org/downloads/)).
What do you think about this? :-)
Best,
Christoph
Von: Squeak-dev im Auftrag von Taeumel, Marcel Gesendet: Dienstag, 11. Oktober 2022 10:56:09 An: squeak-dev Betreff: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak)
Hi all --
As soon as we make switching update streams easier and more discoverable, we might get a new kind of support requests for arbitrary combinations such as "I cannot update 5.1 to 6.0 or Trunk" and so on.
In general, we cannot guarantee an easy migration from some older Squeak version to a newer one. It remains experimental. Biggest reason for that is that there will be versions missing between some release repository and another or the latest Trunk, where actually a specific point in the Trunk update stream should be started with.
Best, Marcel
Am 29.09.2022 09:27:28 schrieb Thiede, Christoph :
This could fit well into SystemVersion>>#description. Could we also promote new versions there, e.g., if you update a Squeak 5.3 image, say something like:
Stable version. A newer release (Squeak 6.0) is available (click here to upgrade). You can also upgrade to the latest Trunk (bleeding edge, click here).
Wdyt?
Best,
Christoph
Von: Squeak-dev im Auftrag von karl ramberg Gesendet: Donnerstag, 29. September 2022 06:48:12 An: The general-purpose Squeak developers list Cc: ma.chris.m@gmail.com Betreff: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak)
Please add a warning that Trunk is bleeding edge, that the image can and will break. But it is still fun for the most part :-D
Best, Karl
On Thu, Sep 29, 2022 at 1:45 AM Jaromir Matas wrote:
Now that you mention it, this is easy to overlook and I wonder how
many new users even know that the trunk stream is available to them?
I agree with Dave that switching update streams is too hidden and would be very convenient to change with "one click".
+1, very much agree with Dave… I had no idea about a trunk. I would have appreciated such convenience/encouragement to switch to the trunk when started :)
Jaromir
From: Chris Muller Sent: Wednesday, September 28, 2022 23:35 To: The general-purpose Squeak developers list Subject: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak)
I agree with Dave that switching update streams is too hidden and would be very convenient to change with "one click". Whatever UI approach is chosen to expose it better, please ensure the action ends up also ensuring whichever one is switched to (trunk) is the top HTTP repository in each MCWorkingCopy, so that the revisions will be ready to go as well.
- Chris
On Wed, Sep 28, 2022 at 2:48 PM tim Rowledge wrote:
Dave is suggesting another option in the menu, not a pop-up thing.
I'd also consider making it part of the dialogue that already pops up at the end of an update -
In the default downloaded state it shows the Url as 'http://source.squeak.org/squeak60'. If we added a button 'update from trunk from now on' this would be reasonably obvious and very easy to use.
On 2022-09-28, at 12:04 PM, Thiede, Christoph wrote:
I would deem an extra pop-up too intrusive. Probably many people use a stable release image deliberately and only want to receive backported patches for that. But maybe we could add a short note into the Transcript or the "updated completed" dialog?
tim
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: RSC: Rewind System Clock
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim "How many Teela Browns does it take to change a lightbulb?” "Stupid question."
My original thought in starting this thread was simply that a new user starting with a release image may not be aware that they can easily follow the trunk, and they might not know that they can open a preference browser to do so. If you are in a classroom setting then someone will explain it to you, but if nobody is around to tell you about it, then how would you know?
Yes I know that having newbies updating from the trunk is likely to result in "why is my package dirty" questions, but that's OK and maybe it will motivate us to find better ways to keep the update stream clean.
Dave
Yes, and that’s exactly what I would have appreciated to know when I started contributing:) I didn’t know about a Trunk because, of course, I hadn’t read all the more or less available pieces of documentation etc. The release version is fine if you plan to build something, I guess; but for learning (self-learning in my case) I’d say the Trunk is better… especially if you follow Squeak-dev or Slack discussions where the Trunk version is usually referenced (without saying so).
Thanks,
--
Jaromír Matas
mail@jaromir.net
From: David T. Lewismailto:lewis@mail.msen.com Sent: Friday, October 14, 2022 0:58 To: The general-purpose Squeak developers listmailto:squeak-dev@lists.squeakfoundation.org Subject: Re: [squeak-dev] Make the trunk stream more discoverable? (was: Docs on Contributing to Squeak)
My original thought in starting this thread was simply that a new user starting with a release image may not be aware that they can easily follow the trunk, and they might not know that they can open a preference browser to do so. If you are in a classroom setting then someone will explain it to you, but if nobody is around to tell you about it, then how would you know?
Yes I know that having newbies updating from the trunk is likely to result in "why is my package dirty" questions, but that's OK and maybe it will motivate us to find better ways to keep the update stream clean.
Dave
On Wed, Sep 28, 2022 at 12:48:12PM -0700, tim Rowledge wrote:
On 2022-09-28, at 12:04 PM, Thiede, Christoph Christoph.Thiede@student.hpi.uni-potsdam.de wrote:
I would deem an extra pop-up too intrusive. Probably many people use a stable release image deliberately and only want to receive backported patches for that. But maybe we could add a short note into the Transcript or the "updated completed" dialog?
Dave is suggesting another option in the menu, not a pop-up thing.
I'd also consider making it part of the dialogue that already pops up at the end of an update -
In the default downloaded state it shows the Url as 'http://source.squeak.org/squeak60'. If we added a button 'update from trunk from now on' this would be reasonably obvious and very easy to use.
I like the "update from trunk from now on" wording. That gets the idea across nicely.
I do not have access to any new users of Squeak to ask the question, but I wonder how many people are using the "stable" release simply because they don't know any better. They would not know that trunk is available to them, and they would not know that that trunk is actually very stable in its own right.
If I was a new user, I would certainly go with the "stable" version because it sounds like the right thing to do and I would not know any better. But if you gave me the option to "update from trunk from now on" then maybe I would give it a try and be happily surprised by the quality and stability of the trunk update stream.
I might also be more inclined to contribute to Squeak development if I was using a trunk image, even if I was a total newbie. All of us who contribute to Squeak started out as total newbies, so that might be a very good thing to encourage :-)
Dave
On 2022-09-28, at 8:23 AM, Thiede, Christoph Christoph.Thiede@student.hpi.uni-potsdam.de wrote:
That's weird, I'm here at 22221. 22111 is the latest image version for Squeak 6.0. Do you maybe need to change your image to follow the Trunk (Squeak 6.1Alpha) again?
Goodness me, yes. I haven't done that in so long I'd quite forgotten.
So now it's actually loading updates and that reminds me that there are still occasional issues where the updating stops to require the user to do some MC merge actions (first instance is for update-mt.542.mcm/ReleaseBuilder-mt.239. That would be a good thing to solve someday.
Aaaand now it gets to Graphics-mt.533 (or something like that, hard to see it now) and appears to lock the system... now it has big red "help, I'm Morphic and I crashed horribly" crosses everywhere, and now it has apparently made an attempt to go to the emergency project and... nothing. Well, that's a bit naff. Cmd-. does nothing at all during any of this which is rather disappointing.
OK, try again, but this time in an image without my preferences set; - another MC stop for update-mt.544/Graphics-mt.533 - and another for TrueType-mt.98 (this one wouldn't allow just 'all newer' I had to individually accept items before I could merge) - Morphic-mt.2023 - Morphic-ct.2046
OK, now it's all updated and I see your new help doc and it is good. :-) I especially like to see the little images in the help texts.
So I wonder what about my preferences caused so much trouble with Graphics-mt.533 Basically I go for no mouse button swapping (because the middle button is the menu, dammit!), scrollbars on the left (because on the right is the work of Santa), turn off enclose brackets, and I think the only other change is the display background form.
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Useful random insult:- She's a screensaver: Looks good, but useless.
“because on the right is the work of Santa”
LOL! Cracks me up! Dyslexia anyone?
“Useful random insult:- She's a screensaver: Looks good, but useless”
Likewise! Thanks for your levity!
Have a Good One; Keep it, Light. Kindly, rabbit . .. … ‘…^,^
Sent from Callisto House :: decentralized mobile homeless solutions
On Sep 28, 2022, at 13:44, tim Rowledge tim@rowledge.org wrote:
On 2022-09-28, at 8:23 AM, Thiede, Christoph Christoph.Thiede@student.hpi.uni-potsdam.de wrote:
That's weird, I'm here at 22221. 22111 is the latest image version for Squeak 6.0. Do you maybe need to change your image to follow the Trunk (Squeak 6.1Alpha) again?
Goodness me, yes. I haven't done that in so long I'd quite forgotten.
So now it's actually loading updates and that reminds me that there are still occasional issues where the updating stops to require the user to do some MC merge actions (first instance is for update-mt.542.mcm/ReleaseBuilder-mt.239. That would be a good thing to solve someday.
Aaaand now it gets to Graphics-mt.533 (or something like that, hard to see it now) and appears to lock the system... now it has big red "help, I'm Morphic and I crashed horribly" crosses everywhere, and now it has apparently made an attempt to go to the emergency project and... nothing. Well, that's a bit naff. Cmd-. does nothing at all during any of this which is rather disappointing.
OK, try again, but this time in an image without my preferences set;
- another MC stop for update-mt.544/Graphics-mt.533
- and another for TrueType-mt.98 (this one wouldn't allow just 'all newer' I had to individually accept items before I could merge)
- Morphic-mt.2023
- Morphic-ct.2046
OK, now it's all updated and I see your new help doc and it is good. :-) I especially like to see the little images in the help texts.
So I wonder what about my preferences caused so much trouble with Graphics-mt.533 Basically I go for no mouse button swapping (because the middle button is the menu, dammit!), scrollbars on the left (because on the right is the work of Santa), turn off enclose brackets, and I think the only other change is the display background form.
tim
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Useful random insult:- She's a screensaver: Looks good, but useless.
Which is of course why I was so very bummed out by about everything, the way I’ve acted. My sincere apologies, brother.
Have a Good One; Keep it, Light. Kindly, rabbit . .. … ‘…^,^
Sent from Callisto House :: decentralized mobile homeless solutions
On Sep 28, 2022, at 13:57, rabbit rabbit@callistohouse.org wrote:
“because on the right is the work of Santa”
LOL! Cracks me up! Dyslexia anyone?
“Useful random insult:- She's a screensaver: Looks good, but useless”
Likewise! Thanks for your levity!
Have a Good One; Keep it, Light. Kindly, rabbit . .. … ‘…^,^
Sent from Callisto House :: decentralized mobile homeless solutions
On Sep 28, 2022, at 13:44, tim Rowledge tim@rowledge.org wrote:
On 2022-09-28, at 8:23 AM, Thiede, Christoph Christoph.Thiede@student.hpi.uni-potsdam.de wrote:
That's weird, I'm here at 22221. 22111 is the latest image version for Squeak 6.0. Do you maybe need to change your image to follow the Trunk (Squeak 6.1Alpha) again?
Goodness me, yes. I haven't done that in so long I'd quite forgotten.
So now it's actually loading updates and that reminds me that there are still occasional issues where the updating stops to require the user to do some MC merge actions (first instance is for update-mt.542.mcm/ReleaseBuilder-mt.239. That would be a good thing to solve someday.
Aaaand now it gets to Graphics-mt.533 (or something like that, hard to see it now) and appears to lock the system... now it has big red "help, I'm Morphic and I crashed horribly" crosses everywhere, and now it has apparently made an attempt to go to the emergency project and... nothing. Well, that's a bit naff. Cmd-. does nothing at all during any of this which is rather disappointing.
OK, try again, but this time in an image without my preferences set;
- another MC stop for update-mt.544/Graphics-mt.533
- and another for TrueType-mt.98 (this one wouldn't allow just 'all newer' I had to individually accept items before I could merge)
- Morphic-mt.2023
- Morphic-ct.2046
OK, now it's all updated and I see your new help doc and it is good. :-) I especially like to see the little images in the help texts.
So I wonder what about my preferences caused so much trouble with Graphics-mt.533 Basically I go for no mouse button swapping (because the middle button is the menu, dammit!), scrollbars on the left (because on the right is the work of Santa), turn off enclose brackets, and I think the only other change is the display background form.
tim
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Useful random insult:- She's a screensaver: Looks good, but useless.
You could try to narrow this further down ... If you use exactly the same image from the first run but change all the preferences you mention to their defaults, does the update stream actually work? Then you could bisect your set of custom preferences. Maybe you have a SqueakDebug.log lying around anywhere?
Best,
Christoph
________________________________ Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von tim Rowledge tim@rowledge.org Gesendet: Mittwoch, 28. September 2022 19:44:40 An: The general-purpose Squeak developers list Betreff: [squeak-dev] Updating 6.0 image (was Re: Docs on Contributing to Squeak (was: The Inbox: Help-Squeak-Project-ct.94.mcz))
On 2022-09-28, at 8:23 AM, Thiede, Christoph Christoph.Thiede@student.hpi.uni-potsdam.de wrote:
That's weird, I'm here at 22221. 22111 is the latest image version for Squeak 6.0. Do you maybe need to change your image to follow the Trunk (Squeak 6.1Alpha) again?
Goodness me, yes. I haven't done that in so long I'd quite forgotten.
So now it's actually loading updates and that reminds me that there are still occasional issues where the updating stops to require the user to do some MC merge actions (first instance is for update-mt.542.mcm/ReleaseBuilder-mt.239. That would be a good thing to solve someday.
Aaaand now it gets to Graphics-mt.533 (or something like that, hard to see it now) and appears to lock the system... now it has big red "help, I'm Morphic and I crashed horribly" crosses everywhere, and now it has apparently made an attempt to go to the emergency project and... nothing. Well, that's a bit naff. Cmd-. does nothing at all during any of this which is rather disappointing.
OK, try again, but this time in an image without my preferences set; - another MC stop for update-mt.544/Graphics-mt.533 - and another for TrueType-mt.98 (this one wouldn't allow just 'all newer' I had to individually accept items before I could merge) - Morphic-mt.2023 - Morphic-ct.2046
OK, now it's all updated and I see your new help doc and it is good. :-) I especially like to see the little images in the help texts.
So I wonder what about my preferences caused so much trouble with Graphics-mt.533 Basically I go for no mouse button swapping (because the middle button is the menu, dammit!), scrollbars on the left (because on the right is the work of Santa), turn off enclose brackets, and I think the only other change is the display background form.
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Useful random insult:- She's a screensaver: Looks good, but useless.
Hi Christoph, I very much like such a chapter in Squeak Help, thanks! As this, I suppose, aims at beginners it seems to me it’s a bit ‘hidden’ under the heading ‘The Project’ which imo doesn’t say much to a beginner. It took me a while to locate ‘Contributing to Squeak’ in the Help hierarchy; for beginners having it on the same level as Tutorials would seem to me more appropriate.
Other than that I’ve noticed just two minor things: 1) Inbox Talk screenshot contains a link to Tools -> Monticello (a bug?) 2) On ‘Squeak Resource Online’ page I don’t like that beginners are being encouraged to use the beginners mail list (http://lists.squeakfoundation.org/pipermail/beginners/); the list is (almost) never being used now and may only confuse newcomers; it’s only value may be as an archive, imo (same for vm-beginners I guess). From my own experience I know old or outdated links leading to half-abandoned places are discouraging… Slack is way more useful for beginners than the beginners list.
Thanks again! Best,
--
Jaromír Matas
mail@jaromir.net
From: christoph.thiede@student.hpi.uni-potsdam.demailto:christoph.thiede@student.hpi.uni-potsdam.de Sent: Tuesday, June 21, 2022 23:14 To: squeak-dev@lists.squeakfoundation.orgmailto:squeak-dev@lists.squeakfoundation.org Subject: Re: [squeak-dev] The Inbox: Help-Squeak-Project-ct.94.mcz
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 colorscode://%20SqueakTheme%20class%3e%3e#addSyntaxHighlighting: , fix a bugcode://self%20systemNavigation%20browseAllImplementorsOf:%20#expectedFailures 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 listhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev . There is a public mailing list archivehttp://lists.squeakfoundation.org/pipermail/squeak-dev/ , but to engage in any discussion, you have to sign uphttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev#:~:text=Subscribing%20to%20Squeak%2Ddev to the list. Alternatively, you can report issues on our GitHub issue trackerhttps://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 Monticellocode://%20MCWorkingCopyBrowser%20open.%20nil. 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 updatescode://SqueakContributionHelp%09openDockingBarMenuThat:%20[:m%20|%20(m%20owner%20submorphIndexOf:%20m)%20=%201]%09filterItem:%20'Update'
* Make your change, preferably from a clean image (to avoid configuration drift)
* Open the Monticello Browsercode://SqueakContributionHelp%09openDockingBarMenuThat:%20[:m%20|%20m%20contents%20=%20'Tools']%09filterItem:%20'Monticello%20Browser': * 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 menucode://SqueakContributionHelp%09openDockingBarMenuThat:%20[:m%20|%20m%20contents%20=%20'Tools']%09filterItem:%20'Squeak%20Inbox%20Talk' 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 Toolscode://SqueakContributionHelp%09openDockingBarMenuThat:%20[:m%20|%20m%20contents%20=%20'Tools']%09filterItem:%20'Dual%20Change%20Sorter' and Changescode://SqueakContributionHelp%09openDockingBarMenuThat:%20[:item%20|%20(item%20respondsTo:%20#updateContents)%20and:%20[(item%20instVarNamed:%20'wordingSelector')%20=%20#browseChangesLabel]] filterItem:%20'Dual%20Change%20Sorter' 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 listcode://SqueakContributionHelp%09openDockingBarMenuThat:%20[:m%20|%20m%20contents%20=%20'Tools']%09filterItem:%20'File%20List' 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 browsercode://SqueakContributionHelp%09openDockingBarMenuThat:%20[:m%20|%20m%20contents%20=%20'Tools']%09filterItem:%20'Monticello%20Browser' 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 Talkhttps://github.com/hpi-swa-lab/squeak-inbox-talk
On 2022-06-21T20:59:48+00:00, commits@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"
^(HelpTopic title: 'Squeak Resources Online' contents:<generated>
'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.
http://lists.squeakfoundation.org/mailman/listinfo/squeak-devFor more information on the community and the contribution process, check out the tutorial Contributing to Squeak in the following pages.
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&cont...
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... HelpBrowser openOn: SqueakContributionHelp;,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://foru...
://github.com/SquareBracketAssociates/SqueakByExample-english;I1,,Rhttps://pdxscholar.library.pdx.edu/cgi/viewcontent.cgi?article=1112&cont...' 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...
tp://stephane.ducasse.free.fr/FreeBooks.html;I1!!' readStream nextChunkText) key: #squeakResourcesOnline; shouldStyle: false; yourself!
Hi Jaromir,
thanks for your feedback, it has been applied in the latest cs.
I don?t like that beginners are being encouraged to use the beginners mail list (http://lists.squeakfoundation.org/pipermail/beginners/); the list is (almost) never being used now and may only confuse newcomers; it?s only value may be as an archive, imo (same for vm-beginners I guess).
Slightly disagree. :) Yes, there's not happening a lot on squeak-beginners, but I think that most questions there will indeed be answered. IMHO having multiple lists for different purposes might help people to get in contact with the community w/o receiving dozens of messages per week ...
Best, Christoph
--- Sent from Squeak Inbox Talk
On 2022-06-28T18:37:11+00:00, mail@jaromir.net wrote:
Hi Christoph, I very much like such a chapter in Squeak Help, thanks! As this, I suppose, aims at beginners it seems to me it?s a bit ?hidden? under the heading ?The Project? which imo doesn?t say much to a beginner. It took me a while to locate ?Contributing to Squeak? in the Help hierarchy; for beginners having it on the same level as Tutorials would seem to me more appropriate.
Other than that I?ve noticed just two minor things:
- Inbox Talk screenshot contains a link to Tools -> Monticello (a bug?)
- On ?Squeak Resource Online? page I don?t like that beginners are being encouraged to use the beginners mail list (http://lists.squeakfoundation.org/pipermail/beginners/); the list is (almost) never being used now and may only confuse newcomers; it?s only value may be as an archive, imo (same for vm-beginners I guess). From my own experience I know old or outdated links leading to half-abandoned places are discouraging? Slack is way more useful for beginners than the beginners list.
Thanks again! Best,
--
Jaromír Matas
mail at jaromir.net
From: christoph.thiede at student.hpi.uni-potsdam.de<mailto:christoph.thiede at student.hpi.uni-potsdam.de> Sent: Tuesday, June 21, 2022 23:14 To: squeak-dev at lists.squeakfoundation.org<mailto:squeak-dev at lists.squeakfoundation.org> Subject: Re: [squeak-dev] The Inbox: Help-Squeak-Project-ct.94.mcz
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 colorscode://%20SqueakTheme%20class%3e%3e#addSyntaxHighlighting: , fix a bugcode://self%20systemNavigation%20browseAllImplementorsOf:%20#expectedFailures 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 listhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev . There is a public mailing list archivehttp://lists.squeakfoundation.org/pipermail/squeak-dev/ , but to engage in any discussion, you have to sign uphttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev#:~:text=Subscribing%20to%20Squeak%2Ddev to the list. Alternatively, you can report issues on our GitHub issue trackerhttps://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 Monticellocode://%20MCWorkingCopyBrowser%20open.%20nil. 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 updatescode://SqueakContributionHelp%09openDockingBarMenuThat:%20[:m%20|%20(m%20owner%20submorphIndexOf:%20m)%20=%201]%09filterItem:%20'Update'
Make your change, preferably from a clean image (to avoid configuration drift)
Open the Monticello Browsercode://SqueakContributionHelp%09openDockingBarMenuThat:%20[:m%20|%20m%20contents%20=%20'Tools']%09filterItem:%20'Monticello%20Browser': * 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 menucode://SqueakContributionHelp%09openDockingBarMenuThat:%20[:m%20|%20m%20contents%20=%20'Tools']%09filterItem:%20'Squeak%20Inbox%20Talk' 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
Toolscode://SqueakContributionHelp%09openDockingBarMenuThat:%20[:m%20|%20m%20contents%20=%20'Tools']%09filterItem:%20'Dual%20Change%20Sorter' and Changescode://SqueakContributionHelp%09openDockingBarMenuThat:%20[:item%20|%20(item%20respondsTo:%20#updateContents)%20and:%20[(item%20instVarNamed:%20'wordingSelector')%20=%20#browseChangesLabel]] filterItem:%20'Dual%20Change%20Sorter' 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 listcode://SqueakContributionHelp%09openDockingBarMenuThat:%20[:m%20|%20m%20contents%20=%20'Tools']%09filterItem:%20'File%20List' 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 browsercode://SqueakContributionHelp%09openDockingBarMenuThat:%20[:m%20|%20m%20contents%20=%20'Tools']%09filterItem:%20'Monticello%20Browser' 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 Talkhttps://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"
^(HelpTopic title: 'Squeak Resources Online' contents:<generated>
'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.
http://lists.squeakfoundation.org/mailman/listinfo/squeak-devFor more information on the community and the contribution process, check out the tutorial Contributing to Squeak in the following pages.
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&cont...
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... HelpBrowser openOn: SqueakContributionHelp;,,Rhttp://lists.squeakfoundation.org/mailman/listinfo/squeak-dev;,,Rhttp://foru...
://github.com/SquareBracketAssociates/SqueakByExample-english;I1,,Rhttps://pdxscholar.library.pdx.edu/cgi/viewcontent.cgi?article=1112&cont...' 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...
tp://stephane.ducasse.free.fr/FreeBooks.html;I1!!' readStream nextChunkText) key: #squeakResourcesOnline; shouldStyle: false; yourself!
squeak-dev@lists.squeakfoundation.org