[squeak-dev] The Trunk: Monticello-nice.716.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Mar 5 20:15:06 UTC 2020
Nicolas Cellier uploaded a new version of Monticello to project The Trunk:
http://source.squeak.org/trunk/Monticello-nice.716.mcz
==================== Summary ====================
Name: Monticello-nice.716
Author: nice
Time: 5 March 2020, 9:15:03.962018 pm
UUID: a1f8545a-b4f8-4bae-b349-e8bbba23816e
Ancestors: Monticello-mt.709, Monticello-eem.709, Monticello-ct.710, Monticello-ct.715, Monticello-ct.712
Merge a few inbox contributions
Monticello-eem.709, Monticello-ct.710, Monticello-ct.715, Monticello-ct.712
Monticello-eem.709:
Provide 'filter out unchanged methods...' to ignore any timestamp-only changes.
Monticello-ct.710:
Improve support for traits by moving some class extensions up to ClassDefinition. This is possible because PackageInfo >> #includesClass: also works with metaclasses or traits.
Just by the way, this fixes some bugs introduced by SqueakIssueIntegration's UI extensions (see https://github.com/hpi-swa-teaching/SqueakIssueIntegration/blob/master/packages/IssueIntegration-UI.package/ClassDescription.extension/instance/toolIconSelector..st).
Monticello-ct.715:
Fixes wrong load and unload order of MCScriptDefinitions
See http://forum.world.st/Monticello-Bug-Preamble-of-removal-is-executed-too-late-tp5108401.html. Regression tests are in Tests-ct.426.
Please review!
Monticello-ct.712:
Reuse ToolBuilder utility in MCTool >> #showModally
=============== Diff against Monticello-mt.709 ===============
Item was removed:
- ----- Method: Class>>packageInfo (in category '*monticello') -----
- packageInfo
- ^ (PackageInfo allPackages select: [ : each | each includesClass: self ])
- ifEmpty: [ nil ]
- ifNotEmpty:
- [ : myPackages | "Select the most-qualified match."
- myPackages detectMax: [ : each | each packageName size ] ]!
Item was removed:
- ----- Method: Class>>workingCopy (in category '*monticello') -----
- workingCopy
- "Answer the MCWorkingCopy in which I am defined."
- ^ self packageInfo ifNotNil: [ : pi | pi workingCopy ]!
Item was added:
+ ----- Method: ClassDescription>>packageInfo (in category '*monticello') -----
+ packageInfo
+ ^ (PackageInfo allPackages select: [ : each | each includesClass: self ])
+ ifEmpty: [ nil ]
+ ifNotEmpty:
+ [ : myPackages | "Select the most-qualified match."
+ myPackages detectMax: [ : each | each packageName size ] ]!
Item was added:
+ ----- Method: ClassDescription>>workingCopy (in category '*monticello') -----
+ workingCopy
+ "Answer the MCWorkingCopy in which I am defined."
+ ^ self packageInfo ifNotNil: [ : pi | pi workingCopy ]!
Item was added:
+ ----- Method: MCDefinition>>wantsToBeOutermost (in category 'testing') -----
+ wantsToBeOutermost
+
+ ^ false!
Item was changed:
Object subclass: #MCDependencySorter
+ instanceVariableNames: 'required provided deferred orderedItems'
- instanceVariableNames: 'required provided orderedItems'
classVariableNames: ''
poolDictionaries: ''
category: 'Monticello-Loading'!
Item was changed:
----- Method: MCDependencySorter>>add: (in category 'building') -----
add: anItem
| requirements |
+ (anItem wantsToBeOutermost)
+ ifTrue: [^self addDeferred: anItem].
requirements := self unresolvedRequirementsFor: anItem.
requirements isEmpty
ifTrue: [self addToOrder: anItem]
ifFalse: [self addRequirements: requirements for: anItem].
^anItem!
Item was added:
+ ----- Method: MCDependencySorter>>addDeferred (in category 'building') -----
+ addDeferred
+ deferred do: [:ea |
+ self addToOrder: ea].!
Item was added:
+ ----- Method: MCDependencySorter>>addDeferred: (in category 'private') -----
+ addDeferred: anItem
+ ^ deferred add: anItem!
Item was changed:
----- Method: MCDependencySorter>>initialize (in category 'initialize-release') -----
initialize
provided := Set new.
required := Dictionary new.
+ orderedItems := OrderedCollection new.
+ deferred := OrderedCollection new.!
- orderedItems := OrderedCollection new.!
Item was changed:
----- Method: MCHttpRepository class>>useSharedWebClientInstance (in category 'preferences') -----
useSharedWebClientInstance
<preference: 'Use shared WebClient instance'
category: 'Monticello'
description: 'When true, use a shared WebClient instance to speed up downloads from MCHttpRepositories. Requires WebClient to be present.'
type: #Boolean>
^UseSharedWebClientInstance ifNil: [
+ "There is some issue on Windows and Macos, so don't use it there by default. See http://lists.squeakfoundation.org/pipermail/squeak-dev/2019-September/thread.html#203921 for details."
+ Smalltalk os platformName ~= 'Win32' and: [Smalltalk os platformName ~= 'Mac OS']]!
- "The is some issue on Windows, so don't use it there by default. See http://lists.squeakfoundation.org/pipermail/squeak-dev/2019-September/thread.html#203921 for details."
- Smalltalk os platformName ~= 'Win32' ]!
Item was added:
+ ----- Method: MCOperationsBrowser>>filterOutUnchangedMethods (in category 'actions') -----
+ filterOutUnchangedMethods
+ "Remove from the list methods that only have changed timestamps"
+ | unchangedMethods |
+ unchangedMethods := self unchangedMethods.
+ (self confirm: ('Ignore {1} methods that only differ in timestamp?' translated
+ format: {unchangedMethods size}))
+ ifTrue:
+ [items := items reject: [:op| op isUnchangedMethod].
+ self changed: #list]
+ !
Item was changed:
----- Method: MCOperationsBrowser>>methodListMenu: (in category 'menus') -----
methodListMenu: aMenu
selection ifNotNil:
[aMenu addList: #(
('install' installSelection)
('revert (x)' revertSelection)
('browse origin' browseSelectionOrigin)
-)].
self unchangedMethods ifNotEmpty:
[aMenu addList: #(
('revert unchanged methods...' revertUnchangedMethods)
+ ('filter out unchanged methods...' filterOutUnchangedMethods)
-)].
super methodListMenu: aMenu.
^ aMenu!
Item was changed:
----- Method: MCOperationsBrowser>>revertUnchangedMethods (in category 'actions') -----
revertUnchangedMethods
"revert methods that only have changed timestamps"
| loader unchangedMethods |
+ unchangedMethods := self unchangedMethods.
+ (self confirm: ('Revert {1} methods that only differ in timestamp?' translated
+ format: {unchangedMethods size}))
+ ifTrue:
+ [loader := MCPackageLoader new.
- unchangedMethods := items select: [:op | op isUnchangedMethod].
- (self confirm: ('Revert {1} methods that only differ in timestamp?' translated format: {unchangedMethods size}))
- ifTrue: [
- loader := MCPackageLoader new.
unchangedMethods do: [:op | op inverse applyTo: loader].
loader loadWithName: self changeSetNameForInstall].
!
Item was changed:
----- Method: MCPackageLoader>>sorterForItems: (in category 'private') -----
sorterForItems: aCollection
| sorter |
sorter := MCDependencySorter items: aCollection.
sorter addExternalProvisions: self provisions.
+ sorter addDeferred.
^ sorter!
Item was added:
+ ----- Method: MCPostscriptDefinition>>wantsToBeOutermost (in category 'nil') -----
+ wantsToBeOutermost
+
+ ^ true!
Item was added:
+ ----- Method: MCRemovalPreambleDefinition>>wantsToBeOutermost (in category 'testing') -----
+ wantsToBeOutermost
+
+ ^ true!
Item was changed:
----- Method: MCTool>>showModally (in category 'morphic ui') -----
showModally
modalProcess := Processor activeProcess.
self window openInWorldExtent: self defaultExtent.
+ ToolBuilder default runModal: self window.
- [self window world notNil] whileTrue: [
- self window outermostWorldMorph doOneCycle.
- ].
morph := nil.
^ modalValue!
More information about the Squeak-dev
mailing list
|