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! |
Free forum by Nabble | Edit this page |