Marcel Taeumel uploaded a new version of PreferenceBrowser to project The Trunk:
http://source.squeak.org/trunk/PreferenceBrowser-mt.128.mcz
==================== Summary ====================
Name: PreferenceBrowser-mt.128
Author: mt
Time: 31 January 2022, 2:01:38.104089 pm
UUID: 59284507-bd8a-6543-82fe-3a77a6f18a0a
Ancestors: PreferenceBrowser-dtl.127
Complements Installer-Core-mt.444.
Feel free to revise the help texts if you find a better phrasing.
=============== Diff against PreferenceBrowser-dtl.127 ===============
Item was changed:
----- Method: PreferenceWizardMorph>>initializePage99ExtraPackages (in category 'initialization - pages') -----
initializePage99ExtraPackages
"Let the user install extra packages."
| currentPage packagesList installButton |
currentPage := self createPage.
currentPage
cellPositioning: #topCenter;
addMorphBack: self createHorizontalSpacer;
addMorphBack: ((self createLabel: 'Do you want to install extra packages?' color: Color white)
hResizing: #shrinkWrap;
yourself);
addMorphBack: ((self createLabel: 'Note that the installation process requires a network connection with Internet access and might take several minutes.' color: (Color gray: 0.9))
hResizing: #rigid;
vResizing: #shrinkWrap;
width: (self defaultFont widthOf: $x) * 55;
yourself).
currentPage submorphs last text addAttribute: TextAlignment centered.
currentPage submorphs last layoutChanged.
currentPage addMorphBack: (self createVerticalSpace height: self layoutInset).
packagesList := self createScrollPane.
packagesList
width: (self defaultFont widthOf: $x) * 40;
hResizing: #rigid;
vResizing: #spaceFill.
packagesList scroller firstSubmorph addAllMorphsBack: {
self createCheckbox: 'Latest system updates' translated for: #InstallLatestUpdates help: 'Install the latest patches for ' translated, SystemVersion current version.
+ self createCheckbox: 'Refactoring support in code browsers' translated for: #InstallRefactoringTools help: 'Refactoring is a process of re-writing or re-organizing text or code. The purpose of a refactor is to make the code or text more understandable and readable while exactly preserving its meaning and behavior' translated.
+ self createCheckbox: 'Autocomplete in code editors' translated for: #InstallAutoComplete help: 'Package that provides interactive, context-sensitive auto-completion for Squeak' translated.
+ self createCheckbox: 'Git support and browser' translated for: #InstallGitInfrastructure help: 'From the Git Browser, you can create new commits, synchronize with remote repositories (fetch, pull, push), manage and merge branches, switch between them, and compare different versions' translated.
- self createCheckbox: 'Refactoring support in code browsers' translated for: #InstallRefactoringTools help: 'Refactoring is a process of re-writing or re-organizing text or code. The purpose of a refactor is to make the code or text more understandable and readable while exactly preserving its meaning and behavior.' translated.
- self createCheckbox: 'Autocomplete in code editors' translated for: #InstallAutoComplete help: 'Package that provides interactive, context-sensitive auto-completion for Squeak.' translated.
- self createCheckbox: 'Git support and browser' translated for: #InstallGitInfrastructure help: 'From the Git Browser, you can create new commits, synchronize with remote repositories (fetch, pull, push), manage and merge branches, switch between them, and compare different versions.' translated.
self createCheckbox: 'Foreign function interface (FFI)' translated for: #InstallFFI help: 'FFI, the Squeak Foreign Function Interface, is used to call functions located in shared libraries that are not part of the Squeak VM nor its plugins' translated.
+ self createCheckbox: 'Access OS functions' translated for: #InstallOSProcess help: 'OSProcess provides access to operating system functions, including pipes and child process creation' translated.
+ self createCheckbox: 'Integrate Squeak''s mailing lists' translated for: #InstallSqueakInboxTalk help: 'Through Squeak Inbox Talk, you can engage with our community from within Squeak using tools that integrate our mailing lists such as squeak-dev and vm-dev' translated.
- self createCheckbox: 'Access OS functions' translated for: #InstallOSProcess help: 'OSProcess provides access to operating system functions, including pipes and child process creation.' translated.
}.
currentPage addMorphBack: packagesList.
currentPage addMorphBack: ((self createLabel: 'Find more on www.squeak.org/projects' color: (Color gray: 0.9))
hResizing: #shrinkWrap; yourself).
installButton := (self createButton action: #installExtraPackages).
currentPage addMorphBack: installButton.
currentPage addMorphBack: (self createButton action: #showSqueak; label: 'No, maybe later.' translated).
self setProperty: #checkInternet toValue: true.
self checkInternetOn: installButton.
^ currentPage!
Item was changed:
----- Method: PreferenceWizardMorph>>installExtraPackages (in category 'actions') -----
installExtraPackages
"Removes the buttons and adds the progress bar during installation."
| steps page |
self removeProperty: #checkInternet. "No frequent checks for connectivity from here."
steps := #(
InstallLatestUpdates
InstallMetacello
InstallRefactoringTools
InstallAutoComplete
InstallGitInfrastructure
InstallFFI
+ InstallOSProcess
+ InstallSqueakInboxTalk )
- InstallOSProcess )
select: [:ea | self perform: ('state', ea) asSymbol].
page := controlMorph firstSubmorph.
page submorphs second hide. "question"
page submorphs last delete. "url"
page submorphs last delete. "no button"
page submorphs last delete. "yes button"
page submorphs last delete. "package list"
self refreshWorld.
[
PreferenceWizardProgressMorph install.
page
addMorphBack: PreferenceWizardProgressMorph uniqueInstance;
addMorphBack: self createVerticalSpacer.
steps
do: [:step | self perform: step withFirstCharacterDownshifted asSymbol]
displayingProgress: [:step | String streamContents: [:s |
step findFeatureIndicesDo: [:start :end |
s nextPutAll: (step copyFrom: start to: end); space].
s nextPutAll: '...']].
] ensure: [
PreferenceWizardProgressMorph reset.
self showSqueak].!
Item was added:
+ ----- Method: PreferenceWizardMorph>>installSqueakInboxTalk (in category 'actions - packages') -----
+ installSqueakInboxTalk
+
+ Installer installSqueakInboxTalk.!
Item was added:
+ ----- Method: PreferenceWizardMorph>>stateInstallSqueakInboxTalk (in category 'actions - packages') -----
+ stateInstallSqueakInboxTalk
+
+ ^ self
+ valueOfProperty: #InstallSqueakInboxTalk
+ ifAbsent: [false]!
Item was added:
+ ----- Method: PreferenceWizardMorph>>toggleInstallSqueakInboxTalk (in category 'actions - packages') -----
+ toggleInstallSqueakInboxTalk
+
+ self
+ setProperty: #InstallSqueakInboxTalk
+ toValue: self stateInstallSqueakInboxTalk not.
+ self changed: #stateInstallSqueakInboxTalk.!
Marcel Taeumel uploaded a new version of Installer-Core to project The Trunk:
http://source.squeak.org/trunk/Installer-Core-mt.444.mcz
==================== Summary ====================
Name: Installer-Core-mt.444
Author: mt
Time: 31 January 2022, 1:59:06.923089 pm
UUID: 19ed2eee-09fd-eb45-98b4-86d7cd0b1113
Ancestors: Installer-Core-cmm.443
Adds script to conveniently install "Squeak Inbox Talk", which is besides "Git Browser" the second external tool that can be beneficial for modern software development -- given that Nabble (i.e. forum.world.st) is not connected to squeak-dev and vm-dev anymore.
Fixes label issue in "Tools" menu for "Git Browser".
=============== Diff against Installer-Core-cmm.443 ===============
Item was added:
+ ----- Method: Installer class>>installAndOpenSqueakInboxTalk (in category 'scripts') -----
+ installAndOpenSqueakInboxTalk
+ "For more information on Squeak Inbox Talk, visit https://github.com/hpi-swa-lab/squeak-inbox-talk"
+
+ self installSqueakInboxTalk.
+ (Smalltalk at: #TalkInboxBrowser) open.!
Item was changed:
----- Method: Installer class>>installGitInfrastructure (in category 'scripts') -----
installGitInfrastructure
| priorSetting |
"for INIFileTest>>#testComplexRead"
priorSetting := Scanner allowUnderscoreAsAssignment.
[Scanner allowUnderscoreAsAssignment: true.
(Smalltalk at: #Metacello) new
baseline: 'Squot';
repository: 'github://hpi-swa/Squot:latest-release/src';
"repository: 'github://hpi-swa/Squot:develop/src';"
load.
+ "Remove '(click to install)' note in 'Tools' menu."
+ TheWorldMainDockingBar updateInstances.
+
+ ] ensure: [Scanner allowUnderscoreAsAssignment: priorSetting]!
- ] ensure: [Scanner allowUnderscoreAsAssignment: priorSetting]
- !
Item was added:
+ ----- Method: Installer class>>installSqueakInboxTalk (in category 'scripts') -----
+ installSqueakInboxTalk
+ "For more information on Squeak Inbox Talk, visit https://github.com/hpi-swa-lab/squeak-inbox-talk"
+
+ (Smalltalk at: #Metacello) new
+ baseline: 'SqueakInboxTalk';
+ repository: 'github://hpi-swa-lab/squeak-inbox-talk:main/packages';
+ load.
+
+ "Remove '(click to install)' note in 'Tools' menu."
+ TheWorldMainDockingBar updateInstances.!
Christoph Thiede uploaded a new version of ToolsTests to project The Trunk:
http://source.squeak.org/trunk/ToolsTests-ct.109.mcz
==================== Summary ====================
Name: ToolsTests-ct.109
Author: ct
Time: 30 January 2022, 9:28:24.728804 pm
UUID: c56e0d9a-d3df-4230-97bf-e1823ca8d154
Ancestors: ToolsTests-ct.108
Fixes #testUnwindDebugger on CI contexts where the StandardToolSet is not present by default.
=============== Diff against ToolsTests-ct.108 ===============
Item was changed:
----- Method: DebuggerTests>>tearDown (in category 'running') -----
tearDown
debugger ifNotNil: [debugger close].
process ifNotNil: [process terminateAggressively].
process := nil.
debugger := nil.
window := nil.
+ reset ifNotNil: [
+ reset do: #value].
- reset do: #value.
super tearDown.!
Item was changed:
----- Method: DebuggerUnwindBug>>testUnwindDebugger (in category 'tests') -----
testUnwindDebugger
"test if unwind blocks work properly when a debugger is closed"
| sema process debugger top |
sema := Semaphore forMutualExclusion.
self assert: sema isSignaled.
process := [sema critical:[sema wait]] forkAt: Processor userInterruptPriority.
self deny: sema isSignaled.
"everything set up here - open a debug notifier"
+ debugger := Debugger
+ openOn: process
+ context: process suspendedContext
+ label: 'test'
+ contents: nil
+ fullView: false.
- debugger := process debugWithTitle: 'test' full: false.
"get into the debugger"
debugger debug.
top := debugger topView.
"set top context"
debugger toggleContextStackIndex: 1.
"close debugger"
top delete.
+
-
"and see if unwind protection worked"
self assert: sema isSignaled.!