From 5544a1f4942a1dd0a08877638e2a4e31bce2669f Mon Sep 17 00:00:00 2001 From: CyrilFerlicot Date: Thu, 8 Nov 2018 12:03:17 +0100 Subject: [PATCH 1/9] Restore outline datasource and improve the design/features. Fixes #1084 --- .../FTBasicItem.extension/instance/toggle.st | 5 +++++ .../FTBasicItem.extension/properties.json | 3 +++ .../IceTipOutlineHeaderCellMorph.class/README.md | 6 ++++++ .../class/dataSource.item..st | 6 ++++++ .../instance/dataSource..st | 3 +++ .../instance/defaultColor.st | 3 +++ .../instance/handlesMouseDown..st | 3 +++ .../instance/handlesMouseOver..st | 3 +++ .../instance/item..st | 3 +++ .../instance/mouseEnter..st | 4 ++++ .../instance/mouseLeave..st | 4 ++++ .../instance/mouseUp..st | 5 +++++ .../properties.json | 14 ++++++++++++++ .../instance/newSidebarTreeDataSource.st | 2 +- .../IceTipTreeOutlineDataSource.class/README.md | 6 ++++++ .../instance/cellColumn.row..st | 8 ++++++++ .../instance/cellIndentFor..st | 3 +++ .../instance/newRootCellFor..st | 10 ++++++++++ .../properties.json | 11 +++++++++++ 19 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 Iceberg-TipUI.package/FTBasicItem.extension/instance/toggle.st create mode 100644 Iceberg-TipUI.package/FTBasicItem.extension/properties.json create mode 100644 Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/README.md create mode 100644 Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/class/dataSource.item..st create mode 100644 Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/dataSource..st create mode 100644 Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/defaultColor.st create mode 100644 Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/handlesMouseDown..st create mode 100644 Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/handlesMouseOver..st create mode 100644 Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/item..st create mode 100644 Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/mouseEnter..st create mode 100644 Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/mouseLeave..st create mode 100644 Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/mouseUp..st create mode 100644 Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/properties.json create mode 100644 Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/README.md create mode 100644 Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/instance/cellColumn.row..st create mode 100644 Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/instance/cellIndentFor..st create mode 100644 Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/instance/newRootCellFor..st create mode 100644 Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/properties.json diff --git a/Iceberg-TipUI.package/FTBasicItem.extension/instance/toggle.st b/Iceberg-TipUI.package/FTBasicItem.extension/instance/toggle.st new file mode 100644 index 0000000000..a9ad27b454 --- /dev/null +++ b/Iceberg-TipUI.package/FTBasicItem.extension/instance/toggle.st @@ -0,0 +1,5 @@ +*Iceberg-TipUI +toggle + self isExpanded + ifTrue: [ self collapseAndRefresh ] + ifFalse: [ self expandAndRefresh ] \ No newline at end of file diff --git a/Iceberg-TipUI.package/FTBasicItem.extension/properties.json b/Iceberg-TipUI.package/FTBasicItem.extension/properties.json new file mode 100644 index 0000000000..b7cfd602ca --- /dev/null +++ b/Iceberg-TipUI.package/FTBasicItem.extension/properties.json @@ -0,0 +1,3 @@ +{ + "name" : "FTBasicItem" +} \ No newline at end of file diff --git a/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/README.md b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/README.md new file mode 100644 index 0000000000..950770ac54 --- /dev/null +++ b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/README.md @@ -0,0 +1,6 @@ +Description +-------------------- + +I am a cell used to render the header of an outline datasource. + +Since the header should not be part of the tree, to collapse it we do not have a button but I am clickable. (I show a web cursor to show the feature to the user) \ No newline at end of file diff --git a/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/class/dataSource.item..st b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/class/dataSource.item..st new file mode 100644 index 0000000000..8a282f680a --- /dev/null +++ b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/class/dataSource.item..st @@ -0,0 +1,6 @@ +instance creation +dataSource: aDataSource item: anItem + ^ self new + dataSource: aDataSource; + item: anItem; + yourself \ No newline at end of file diff --git a/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/dataSource..st b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/dataSource..st new file mode 100644 index 0000000000..4865ae52a0 --- /dev/null +++ b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/dataSource..st @@ -0,0 +1,3 @@ +accessing +dataSource: aDataSource + dataSource := aDataSource \ No newline at end of file diff --git a/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/defaultColor.st b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/defaultColor.st new file mode 100644 index 0000000000..d175069791 --- /dev/null +++ b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/defaultColor.st @@ -0,0 +1,3 @@ +initialize +defaultColor + ^ self theme backgroundColor negated alpha: 0.05 \ No newline at end of file diff --git a/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/handlesMouseDown..st b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/handlesMouseDown..st new file mode 100644 index 0000000000..f3822bac7e --- /dev/null +++ b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/handlesMouseDown..st @@ -0,0 +1,3 @@ +event handling +handlesMouseDown: evt + ^ true \ No newline at end of file diff --git a/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/handlesMouseOver..st b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/handlesMouseOver..st new file mode 100644 index 0000000000..3ac75ea833 --- /dev/null +++ b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/handlesMouseOver..st @@ -0,0 +1,3 @@ +event handling +handlesMouseOver: evt + ^ true \ No newline at end of file diff --git a/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/item..st b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/item..st new file mode 100644 index 0000000000..d533335924 --- /dev/null +++ b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/item..st @@ -0,0 +1,3 @@ +accessing +item: anItem + item := anItem \ No newline at end of file diff --git a/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/mouseEnter..st b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/mouseEnter..st new file mode 100644 index 0000000000..a15eb327af --- /dev/null +++ b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/mouseEnter..st @@ -0,0 +1,4 @@ +event handling +mouseEnter: evt + self currentHand showTemporaryCursor: Cursor webLink. + super mouseEnter: evt \ No newline at end of file diff --git a/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/mouseLeave..st b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/mouseLeave..st new file mode 100644 index 0000000000..177eed120f --- /dev/null +++ b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/mouseLeave..st @@ -0,0 +1,4 @@ +event handling +mouseLeave: evt + self currentHand showTemporaryCursor: nil. + super mouseLeave: evt \ No newline at end of file diff --git a/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/mouseUp..st b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/mouseUp..st new file mode 100644 index 0000000000..1c6cb801a5 --- /dev/null +++ b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/instance/mouseUp..st @@ -0,0 +1,5 @@ +event handling +mouseUp: evt + ((dataSource canDisplayChildrenOf: item) and: [ item children isNotEmpty ]) + ifTrue: [ item toggle ]. + super mouseUp: evt \ No newline at end of file diff --git a/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/properties.json b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/properties.json new file mode 100644 index 0000000000..323b987c8e --- /dev/null +++ b/Iceberg-TipUI.package/IceTipOutlineHeaderCellMorph.class/properties.json @@ -0,0 +1,14 @@ +{ + "commentStamp" : "CyrilFerlicot 11/8/2018 12:00", + "super" : "FTCellMorph", + "category" : "Iceberg-TipUI-View-DataSource", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ + "dataSource", + "item" + ], + "name" : "IceTipOutlineHeaderCellMorph", + "type" : "normal" +} \ No newline at end of file diff --git a/Iceberg-TipUI.package/IceTipRepositoryBrowser.class/instance/newSidebarTreeDataSource.st b/Iceberg-TipUI.package/IceTipRepositoryBrowser.class/instance/newSidebarTreeDataSource.st index 54efdaed8d..f98373b593 100644 --- a/Iceberg-TipUI.package/IceTipRepositoryBrowser.class/instance/newSidebarTreeDataSource.st +++ b/Iceberg-TipUI.package/IceTipRepositoryBrowser.class/instance/newSidebarTreeDataSource.st @@ -1,6 +1,6 @@ private factory newSidebarTreeDataSource - ^ IceTipTreeDataSource new + ^ IceTipTreeOutlineDataSource new tool: self; rootForItems: self model repositoryModelsByGroup; childrenBlock: [ :each | each children ]; diff --git a/Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/README.md b/Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/README.md new file mode 100644 index 0000000000..05af634d09 --- /dev/null +++ b/Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/README.md @@ -0,0 +1,6 @@ +Description +-------------------- + +I'm a tree datasource to generate an Outline component. + +My roots are displayed as section and not as part of the tree. \ No newline at end of file diff --git a/Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/instance/cellColumn.row..st b/Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/instance/cellColumn.row..st new file mode 100644 index 0000000000..c534ff689e --- /dev/null +++ b/Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/instance/cellColumn.row..st @@ -0,0 +1,8 @@ +instance creation +cellColumn: column row: rowIndex + | item | + + item := self elementAt: rowIndex. + ^ item depth = 0 + ifTrue: [ self newRootCellFor: item ] + ifFalse: [ self newCellFor: item ] \ No newline at end of file diff --git a/Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/instance/cellIndentFor..st b/Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/instance/cellIndentFor..st new file mode 100644 index 0000000000..89db38972d --- /dev/null +++ b/Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/instance/cellIndentFor..st @@ -0,0 +1,3 @@ +private factory +cellIndentFor: item + ^ ((item depth - 1) * 16) + 3 \ No newline at end of file diff --git a/Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/instance/newRootCellFor..st b/Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/instance/newRootCellFor..st new file mode 100644 index 0000000000..ef94f9da4b --- /dev/null +++ b/Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/instance/newRootCellFor..st @@ -0,0 +1,10 @@ +instance creation +newRootCellFor: item + | cell | + + cell := IceTipOutlineHeaderCellMorph dataSource: self item: item. + (self iconFor: item data) + ifNotNil: [ :icon | cell addMorphBack: icon asMorph ]. + cell addMorphBack: (self toString: item data) asMorph asReadOnlyMorph. + + ^ cell diff --git a/Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/properties.json b/Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/properties.json new file mode 100644 index 0000000000..1099ee5012 --- /dev/null +++ b/Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "CyrilFerlicot 11/8/2018 12:01", + "super" : "IceTipTreeDataSource", + "category" : "Iceberg-TipUI-View-DataSource", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "IceTipTreeOutlineDataSource", + "type" : "normal" +} \ No newline at end of file From dd171b5805c0d990734d4185e6d2c6880bad2cdc Mon Sep 17 00:00:00 2001 From: CyrilFerlicot Date: Fri, 9 Nov 2018 13:44:38 +0100 Subject: [PATCH 2/9] Add number of commits to the right of the outline header cell --- .../instance/newRootCellFor..st | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/instance/newRootCellFor..st b/Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/instance/newRootCellFor..st index ef94f9da4b..35b68e8581 100644 --- a/Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/instance/newRootCellFor..st +++ b/Iceberg-TipUI.package/IceTipTreeOutlineDataSource.class/instance/newRootCellFor..st @@ -1,10 +1,11 @@ instance creation newRootCellFor: item | cell | - cell := IceTipOutlineHeaderCellMorph dataSource: self item: item. - (self iconFor: item data) - ifNotNil: [ :icon | cell addMorphBack: icon asMorph ]. + (self iconFor: item data) ifNotNil: [ :icon | cell addMorphBack: icon asMorph ]. cell addMorphBack: (self toString: item data) asMorph asReadOnlyMorph. - - ^ cell + cell addMorphBack: (AlignmentMorph newSpacer: Color transparent). + cell addMorphBack: item children size asMorph asReadOnlyMorph. + "Since we might have a scroll bar we do not want to have the number of children displayed at the extreme right." + cell addMorphBack: (Morph newBounds: (0 @ 0 corner: 20 @ 0) color: Color transparent) asReadOnlyMorph. + ^ cell \ No newline at end of file From 32bbb2c70167ebef120be1e195fed420587cdba4 Mon Sep 17 00:00:00 2001 From: Guille Polito Date: Thu, 27 Dec 2018 10:28:13 +0100 Subject: [PATCH 3/9] Add tonel loading in preload script --- scripts/preLoading.st | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/scripts/preLoading.st b/scripts/preLoading.st index 1e3d04ce48..5a16b39954 100644 --- a/scripts/preLoading.st +++ b/scripts/preLoading.st @@ -43,3 +43,10 @@ do: [ :each | ifNotNil: [ :package | ('Removing ', each) logCr. package removeFromSystem ] ]. + +"Loading Tonel before trying to load Iceberg. +This is required to load iceberg packages and dependencies in Tonel format" +Metacello new + baseline: 'Tonel'; + repository: 'github://pharo-vcs/tonel:v1.0.11'; + load. \ No newline at end of file From c7627e8a4f79f5c7961379bc199510d6f7431962 Mon Sep 17 00:00:00 2001 From: Guille Polito Date: Thu, 27 Dec 2018 11:23:27 +0100 Subject: [PATCH 4/9] Update metacello too --- scripts/preLoading.st | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/preLoading.st b/scripts/preLoading.st index 5a16b39954..90a8c9199f 100644 --- a/scripts/preLoading.st +++ b/scripts/preLoading.st @@ -49,4 +49,10 @@ This is required to load iceberg packages and dependencies in Tonel format" Metacello new baseline: 'Tonel'; repository: 'github://pharo-vcs/tonel:v1.0.11'; - load. \ No newline at end of file + load. + +Metacello new + baseline: 'Metacello'; + repository: 'github://metacello/metacello:pharo-6.1_dev/repository'; + onConflict: [ :ex | ex allow ]; + load. \ No newline at end of file From 33285d13f7863f47240b2ebb3e393697a5514250 Mon Sep 17 00:00:00 2001 From: CyrilFerlicot Date: Fri, 28 Dec 2018 12:04:46 +0100 Subject: [PATCH 5/9] Do not hardcode color modified Fixes #1130 --- .../IceTipEntityModel.class/instance/colorModified.st | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Iceberg-TipUI.package/IceTipEntityModel.class/instance/colorModified.st b/Iceberg-TipUI.package/IceTipEntityModel.class/instance/colorModified.st index d785ee9dc8..4c410a4e81 100644 --- a/Iceberg-TipUI.package/IceTipEntityModel.class/instance/colorModified.st +++ b/Iceberg-TipUI.package/IceTipEntityModel.class/instance/colorModified.st @@ -1,4 +1,3 @@ TOMOVE colorModified - self flag: #todo. "Make themable" - ^ Color r: 0 g: 0.5 b: 0 \ No newline at end of file + ^ Smalltalk ui theme successTextColor \ No newline at end of file From e5a88f695aebe84bb95e2e309f73e3ab41e59578 Mon Sep 17 00:00:00 2001 From: Denis Kudriashov Date: Fri, 4 Jan 2019 18:45:37 +0000 Subject: [PATCH 6/9] fix Commander version --- .../BaselineOfIceberg.class/instance/commander..st | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BaselineOfIceberg.package/BaselineOfIceberg.class/instance/commander..st b/BaselineOfIceberg.package/BaselineOfIceberg.class/instance/commander..st index d52e0299a3..74b89a2a89 100644 --- a/BaselineOfIceberg.package/BaselineOfIceberg.class/instance/commander..st +++ b/BaselineOfIceberg.package/BaselineOfIceberg.class/instance/commander..st @@ -4,5 +4,5 @@ commander: spec baseline: 'Commander' with: [ spec - repository: 'github://pharo-ide/Commander:v0.7.1/src'; + repository: 'github://pharo-ide/Commander:v0.7.2/src'; loads: #('Core' 'AllActivators' 'Commander-SpecSupport') ] \ No newline at end of file From 9c8983d1f54b476112763dc59c7af0319e243e8e Mon Sep 17 00:00:00 2001 From: Pablo Tesone Date: Tue, 8 Jan 2019 15:46:51 +0100 Subject: [PATCH 7/9] Adding the support to handle different versions of the same project with Metacello. Issue https://pharo.manuscript.com/f/cases/22784 --- .../instance/mcRepository.st | 2 +- .../instance/mcRepository.st | 4 ++-- .../instance/guessRegisteredRepository.st | 6 ++---- .../instance/mcRepository.st | 4 ++-- .../instance/projectName.st | 4 ++++ .../instance/projectVersion.st | 4 ++++ .../README.md | 0 .../class/isAbstract.st | 4 ++++ .../instance/defaultTimeLimit.st | 0 .../instance/repositoriesForTest.st | 0 .../instance/repository.st | 0 .../instance/repositoryForTest.st | 0 .../instance/repositoryName.st | 0 .../instance/tearDown.st | 0 .../properties.json | 14 +++++++++++++ .../properties.json | 7 ++----- .../README.md | 0 .../instance/repositoryName.st | 4 ++++ .../instance/tearDown.st | 15 ++++++++++++++ ...nflictDetectedWithProjectWithDependency.st | 16 +++++++++++++++ .../testIncommingWhenProjectWithDependency.st | 20 +++++++++++++++++++ ...stKeepExistingWhenProjectWithDependency.st | 20 +++++++++++++++++++ ...pdateProjectShouldCheckoutTheNewVersion.st | 18 +++++++++++++++++ .../properties.json | 11 ++++++++++ .../instance/commitish..st | 4 ++++ .../class/for..st | 5 ----- .../class/for.withVersion..st | 13 ++++++++++++ .../instance/canUpgradeTo..st | 3 +-- .../instance/commitIdFor.ifFound..st | 1 + .../instance/description.st | 3 ++- .../instance/getOrCreateIcebergRepository.st | 1 + .../instance/goferReferences.st | 3 +++ .../instance/projectVersion..st | 3 +++ .../instance/projectVersion.st | 2 +- .../properties.json | 3 ++- .../instance/metacelloAdapter..st | 3 +++ .../instance/metacelloAdapter.st | 3 --- .../instance/getOrCreateIcebergRepository.st | 1 + 38 files changed, 174 insertions(+), 27 deletions(-) create mode 100644 Iceberg-Metacello-Integration.package/IceProviderRepositoryType.class/instance/projectName.st create mode 100644 Iceberg-Metacello-Integration.package/IceProviderRepositoryType.class/instance/projectVersion.st create mode 100644 Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/README.md create mode 100644 Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/class/isAbstract.st rename Iceberg-Tests-MetacelloIntegration.package/{IceMetacelloIntegrationTests.class => AbstractIceMetacelloIntegrationTests.class}/instance/defaultTimeLimit.st (100%) rename Iceberg-Tests-MetacelloIntegration.package/{IceMetacelloIntegrationTests.class => AbstractIceMetacelloIntegrationTests.class}/instance/repositoriesForTest.st (100%) rename Iceberg-Tests-MetacelloIntegration.package/{IceMetacelloIntegrationTests.class => AbstractIceMetacelloIntegrationTests.class}/instance/repository.st (100%) rename Iceberg-Tests-MetacelloIntegration.package/{IceMetacelloIntegrationTests.class => AbstractIceMetacelloIntegrationTests.class}/instance/repositoryForTest.st (100%) rename Iceberg-Tests-MetacelloIntegration.package/{IceMetacelloIntegrationTests.class => AbstractIceMetacelloIntegrationTests.class}/instance/repositoryName.st (100%) rename Iceberg-Tests-MetacelloIntegration.package/{IceMetacelloIntegrationTests.class => AbstractIceMetacelloIntegrationTests.class}/instance/tearDown.st (100%) create mode 100644 Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/properties.json create mode 100644 Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/README.md create mode 100644 Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/repositoryName.st create mode 100644 Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/tearDown.st create mode 100644 Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testConflictDetectedWithProjectWithDependency.st create mode 100644 Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testIncommingWhenProjectWithDependency.st create mode 100644 Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testKeepExistingWhenProjectWithDependency.st create mode 100644 Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testUpdateProjectShouldCheckoutTheNewVersion.st create mode 100644 Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/properties.json create mode 100644 Iceberg.package/IceCheckoutStrategy.class/instance/commitish..st delete mode 100644 Iceberg.package/IceMetacelloRepositoryAdapter.class/class/for..st create mode 100644 Iceberg.package/IceMetacelloRepositoryAdapter.class/class/for.withVersion..st create mode 100644 Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/projectVersion..st create mode 100644 Iceberg.package/IceRepository.class/instance/metacelloAdapter..st delete mode 100644 Iceberg.package/IceRepository.class/instance/metacelloAdapter.st diff --git a/Iceberg-Metacello-Integration.package/IceGitLocalRepositoryType.class/instance/mcRepository.st b/Iceberg-Metacello-Integration.package/IceGitLocalRepositoryType.class/instance/mcRepository.st index 77e41dd6fe..127520de1d 100644 --- a/Iceberg-Metacello-Integration.package/IceGitLocalRepositoryType.class/instance/mcRepository.st +++ b/Iceberg-Metacello-Integration.package/IceGitLocalRepositoryType.class/instance/mcRepository.st @@ -16,4 +16,4 @@ mcRepository createRepository) register ]. - ^ repository metacelloAdapter \ No newline at end of file + ^ repository metacelloAdapter: repository head description. \ No newline at end of file diff --git a/Iceberg-Metacello-Integration.package/IceGithubRepositoryType.class/instance/mcRepository.st b/Iceberg-Metacello-Integration.package/IceGithubRepositoryType.class/instance/mcRepository.st index 62806f5287..def1102869 100644 --- a/Iceberg-Metacello-Integration.package/IceGithubRepositoryType.class/instance/mcRepository.st +++ b/Iceberg-Metacello-Integration.package/IceGithubRepositoryType.class/instance/mcRepository.st @@ -3,7 +3,7 @@ mcRepository | baseRepo | self guessRegisteredRepository - ifNotNil: [ :repo | ^ repo metacelloAdapter ]. + ifNotNil: [ :repo | ^ repo metacelloAdapter: self projectVersion ]. baseRepo := self mcRepositoryClass location: self location. ^ (Iceberg icebergRepositoriesURLs includes: baseRepo scpUrl) @@ -12,5 +12,5 @@ mcRepository see https://github.com/pharo-vcs/iceberg/issues/168" baseRepo ] ifFalse: [ - baseRepo getOrCreateIcebergRepository metacelloAdapter ] + baseRepo getOrCreateIcebergRepository metacelloAdapter: self projectVersion ] \ No newline at end of file diff --git a/Iceberg-Metacello-Integration.package/IceProviderRepositoryType.class/instance/guessRegisteredRepository.st b/Iceberg-Metacello-Integration.package/IceProviderRepositoryType.class/instance/guessRegisteredRepository.st index 6a60d70609..c338994b3c 100644 --- a/Iceberg-Metacello-Integration.package/IceProviderRepositoryType.class/instance/guessRegisteredRepository.st +++ b/Iceberg-Metacello-Integration.package/IceProviderRepositoryType.class/instance/guessRegisteredRepository.st @@ -2,9 +2,7 @@ accessing guessRegisteredRepository "I get the project name and try to find it into the already registered projects. If I find it, I will use this instead cloning a new one." - | projectName | - - projectName := (self location substrings: '/') third copyUpTo: $:. + ^ IceRepository registry - detect: [ : each | each name = projectName ] + detect: [ : each | each name = self projectName ] ifNone: [ nil ] \ No newline at end of file diff --git a/Iceberg-Metacello-Integration.package/IceProviderRepositoryType.class/instance/mcRepository.st b/Iceberg-Metacello-Integration.package/IceProviderRepositoryType.class/instance/mcRepository.st index 5c106012e6..9dde7916ad 100644 --- a/Iceberg-Metacello-Integration.package/IceProviderRepositoryType.class/instance/mcRepository.st +++ b/Iceberg-Metacello-Integration.package/IceProviderRepositoryType.class/instance/mcRepository.st @@ -3,7 +3,7 @@ mcRepository | baseRepo | self guessRegisteredRepository - ifNotNil: [ :repo | ^ repo metacelloAdapter ]. + ifNotNil: [ :repo | ^ repo metacelloAdapter: self projectVersion ]. baseRepo := self mcRepositoryClass location: self location. - ^ baseRepo getOrCreateIcebergRepository metacelloAdapter \ No newline at end of file + ^ baseRepo getOrCreateIcebergRepository metacelloAdapter: self projectVersion \ No newline at end of file diff --git a/Iceberg-Metacello-Integration.package/IceProviderRepositoryType.class/instance/projectName.st b/Iceberg-Metacello-Integration.package/IceProviderRepositoryType.class/instance/projectName.st new file mode 100644 index 0000000000..04bc231d7d --- /dev/null +++ b/Iceberg-Metacello-Integration.package/IceProviderRepositoryType.class/instance/projectName.st @@ -0,0 +1,4 @@ +accessing +projectName + + ^ (self location substrings: '/') third copyUpTo: $: \ No newline at end of file diff --git a/Iceberg-Metacello-Integration.package/IceProviderRepositoryType.class/instance/projectVersion.st b/Iceberg-Metacello-Integration.package/IceProviderRepositoryType.class/instance/projectVersion.st new file mode 100644 index 0000000000..8062fbfe96 --- /dev/null +++ b/Iceberg-Metacello-Integration.package/IceProviderRepositoryType.class/instance/projectVersion.st @@ -0,0 +1,4 @@ +accessing +projectVersion + + ^ (location substrings: '/') third copyAfter: $: \ No newline at end of file diff --git a/Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/README.md b/Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/README.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/class/isAbstract.st b/Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/class/isAbstract.st new file mode 100644 index 0000000000..8df011a7b1 --- /dev/null +++ b/Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/class/isAbstract.st @@ -0,0 +1,4 @@ +testing +isAbstract + + ^ self name = #AbstractIceMetacelloIntegrationTests \ No newline at end of file diff --git a/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationTests.class/instance/defaultTimeLimit.st b/Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/instance/defaultTimeLimit.st similarity index 100% rename from Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationTests.class/instance/defaultTimeLimit.st rename to Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/instance/defaultTimeLimit.st diff --git a/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationTests.class/instance/repositoriesForTest.st b/Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/instance/repositoriesForTest.st similarity index 100% rename from Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationTests.class/instance/repositoriesForTest.st rename to Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/instance/repositoriesForTest.st diff --git a/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationTests.class/instance/repository.st b/Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/instance/repository.st similarity index 100% rename from Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationTests.class/instance/repository.st rename to Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/instance/repository.st diff --git a/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationTests.class/instance/repositoryForTest.st b/Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/instance/repositoryForTest.st similarity index 100% rename from Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationTests.class/instance/repositoryForTest.st rename to Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/instance/repositoryForTest.st diff --git a/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationTests.class/instance/repositoryName.st b/Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/instance/repositoryName.st similarity index 100% rename from Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationTests.class/instance/repositoryName.st rename to Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/instance/repositoryName.st diff --git a/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationTests.class/instance/tearDown.st b/Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/instance/tearDown.st similarity index 100% rename from Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationTests.class/instance/tearDown.st rename to Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/instance/tearDown.st diff --git a/Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/properties.json b/Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/properties.json new file mode 100644 index 0000000000..b25e14b816 --- /dev/null +++ b/Iceberg-Tests-MetacelloIntegration.package/AbstractIceMetacelloIntegrationTests.class/properties.json @@ -0,0 +1,14 @@ +{ + "commentStamp" : "", + "super" : "IceParameterizedTestCase", + "category" : "Iceberg-Tests-MetacelloIntegration", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ + "repository", + "conflictingRepository" + ], + "name" : "AbstractIceMetacelloIntegrationTests", + "type" : "normal" +} \ No newline at end of file diff --git a/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationTests.class/properties.json b/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationTests.class/properties.json index 055860f94a..0961a54502 100644 --- a/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationTests.class/properties.json +++ b/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationTests.class/properties.json @@ -1,16 +1,13 @@ { "commentStamp" : "", - "super" : "IceParameterizedTestCase", + "super" : "AbstractIceMetacelloIntegrationTests", "category" : "Iceberg-Tests-MetacelloIntegration", "classinstvars" : [ ], "pools" : [ ], "classvars" : [ "CommitishToUse" ], - "instvars" : [ - "repository", - "conflictingRepository" - ], + "instvars" : [ ], "name" : "IceMetacelloIntegrationTests", "type" : "normal" } \ No newline at end of file diff --git a/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/README.md b/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/README.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/repositoryName.st b/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/repositoryName.st new file mode 100644 index 0000000000..c427526ea4 --- /dev/null +++ b/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/repositoryName.st @@ -0,0 +1,4 @@ +configuring +repositoryName + + ^ 'test-project-source-properties-tonel' \ No newline at end of file diff --git a/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/tearDown.st b/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/tearDown.st new file mode 100644 index 0000000000..a469440ac5 --- /dev/null +++ b/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/tearDown.st @@ -0,0 +1,15 @@ +tests +tearDown + + super tearDown. + + (IceRepository registry select: [ :e | e name = 'test-project-with-dep' ]) do: [ :each | each ifNotNil: [ :repo | + repo unload. + repo forget. + repo location ifNotNil: #ensureDeleteAll ] ]. + + "Cleanup Metacello registry to avoid conflicts" + MetacelloProjectRegistration registry baselineRegistry + detect: [ :registration | registration projectName = 'TestProjectWithDep' ] + ifFound: [ :registration | registration unregisterProject ]. + \ No newline at end of file diff --git a/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testConflictDetectedWithProjectWithDependency.st b/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testConflictDetectedWithProjectWithDependency.st new file mode 100644 index 0000000000..fd2ecf1002 --- /dev/null +++ b/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testConflictDetectedWithProjectWithDependency.st @@ -0,0 +1,16 @@ +tests +testConflictDetectedWithProjectWithDependency + + Metacello new + baseline: 'PharoGitTest'; + repository:'github://pharo-vcs/test-project-source-properties-tonel'; + load. + + self assert: self repositoryForTest head description equals: 'master'. + self assert: (Smalltalk classNamed: #Test) new versionNumber equals: 700. + + self should: [Metacello new + baseline: 'TestProjectWithDep'; + repository:'github://pharo-vcs/test-project-with-dep'; + load] raise: MetacelloConflictingProjectError. + \ No newline at end of file diff --git a/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testIncommingWhenProjectWithDependency.st b/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testIncommingWhenProjectWithDependency.st new file mode 100644 index 0000000000..1186698a57 --- /dev/null +++ b/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testIncommingWhenProjectWithDependency.st @@ -0,0 +1,20 @@ +tests +testIncommingWhenProjectWithDependency + + Metacello new + baseline: 'PharoGitTest'; + repository:'github://pharo-vcs/test-project-source-properties-tonel'; + load. + + self assert: self repositoryForTest head description equals: 'master'. + self assert: (Smalltalk classNamed: #Test) new versionNumber equals: 700. + + Metacello new + baseline: 'TestProjectWithDep'; + repository:'github://pharo-vcs/test-project-with-dep'; + onConflictUseIncoming; + load. + + self assert: self repositoryForTest head description equals: '1.2.3'. + self assert: (Smalltalk classNamed: #Test) new versionNumber equals: 697. + \ No newline at end of file diff --git a/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testKeepExistingWhenProjectWithDependency.st b/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testKeepExistingWhenProjectWithDependency.st new file mode 100644 index 0000000000..867301f1ec --- /dev/null +++ b/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testKeepExistingWhenProjectWithDependency.st @@ -0,0 +1,20 @@ +tests +testKeepExistingWhenProjectWithDependency + + Metacello new + baseline: 'PharoGitTest'; + repository:'github://pharo-vcs/test-project-source-properties-tonel'; + load. + + self assert: self repositoryForTest head description equals: 'master'. + self assert: (Smalltalk classNamed: #Test) new versionNumber equals: 700. + + Metacello new + baseline: 'TestProjectWithDep'; + repository:'github://pharo-vcs/test-project-with-dep'; + onConflictUseLoaded; + load. + + self assert: self repositoryForTest head description equals: 'master'. + self assert: (Smalltalk classNamed: #Test) new versionNumber equals: 700. + \ No newline at end of file diff --git a/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testUpdateProjectShouldCheckoutTheNewVersion.st b/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testUpdateProjectShouldCheckoutTheNewVersion.st new file mode 100644 index 0000000000..333649fb13 --- /dev/null +++ b/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testUpdateProjectShouldCheckoutTheNewVersion.st @@ -0,0 +1,18 @@ +tests +testUpdateProjectShouldCheckoutTheNewVersion + + Metacello new + baseline: 'PharoGitTest'; + repository:'github://pharo-vcs/test-project-source-properties-tonel'; + load. + + self assert: self repositoryForTest head description equals: 'master'. + self assert: (Smalltalk classNamed: #Test) new versionNumber equals: 700. + + Metacello new + baseline: 'PharoGitTest'; + repository:'github://pharo-vcs/test-project-source-properties-tonel:1.2.3'; + load. + + self assert: self repositoryForTest head description equals: '1.2.3'. + self assert: (Smalltalk classNamed: #Test) new versionNumber equals: 697. diff --git a/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/properties.json b/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/properties.json new file mode 100644 index 0000000000..79e89d6bd6 --- /dev/null +++ b/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "AbstractIceMetacelloIntegrationTests", + "category" : "Iceberg-Tests-MetacelloIntegration", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "IceMetacelloIntegrationUpdateALoadedVersionTest", + "type" : "normal" +} \ No newline at end of file diff --git a/Iceberg.package/IceCheckoutStrategy.class/instance/commitish..st b/Iceberg.package/IceCheckoutStrategy.class/instance/commitish..st new file mode 100644 index 0000000000..e470aacbd9 --- /dev/null +++ b/Iceberg.package/IceCheckoutStrategy.class/instance/commitish..st @@ -0,0 +1,4 @@ +accessing +commitish: aCommittish + + committish := aCommittish \ No newline at end of file diff --git a/Iceberg.package/IceMetacelloRepositoryAdapter.class/class/for..st b/Iceberg.package/IceMetacelloRepositoryAdapter.class/class/for..st deleted file mode 100644 index edcbb926ed..0000000000 --- a/Iceberg.package/IceMetacelloRepositoryAdapter.class/class/for..st +++ /dev/null @@ -1,5 +0,0 @@ -instance creation -for: anIceRepository - ^ self new - repository: anIceRepository; - yourself \ No newline at end of file diff --git a/Iceberg.package/IceMetacelloRepositoryAdapter.class/class/for.withVersion..st b/Iceberg.package/IceMetacelloRepositoryAdapter.class/class/for.withVersion..st new file mode 100644 index 0000000000..df476349c7 --- /dev/null +++ b/Iceberg.package/IceMetacelloRepositoryAdapter.class/class/for.withVersion..st @@ -0,0 +1,13 @@ +instance creation +for: anIceRepository withVersion: aString + + | projectVersion | + + projectVersion := aString isEmptyOrNil + ifTrue: [ anIceRepository head description ] + ifFalse: [ aString ]. + + ^ self new + repository: anIceRepository; + projectVersion: projectVersion; + yourself \ No newline at end of file diff --git a/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/canUpgradeTo..st b/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/canUpgradeTo..st index 0ce58045b2..a8939a8df1 100644 --- a/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/canUpgradeTo..st +++ b/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/canUpgradeTo..st @@ -1,7 +1,6 @@ testing canUpgradeTo: anMCGitBasedRepository - "Copied from MCGitBasedNetworkRepository" (anMCGitBasedRepository isKindOf: self class) ifFalse: [ ^ false ]. ^ self projectPath = anMCGitBasedRepository projectPath - and: [ self repoPath = anMCGitBasedRepository repoPath ] \ No newline at end of file + and: [ self repoPath = anMCGitBasedRepository repoPath and: [ self projectVersion = anMCGitBasedRepository projectVersion ]] \ No newline at end of file diff --git a/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/commitIdFor.ifFound..st b/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/commitIdFor.ifFound..st index 1eaee47d54..4e1440b925 100644 --- a/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/commitIdFor.ifFound..st +++ b/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/commitIdFor.ifFound..st @@ -1,3 +1,4 @@ accessing commitIdFor: aWorkingCopy ifFound: aBlock + self flag: #todo. "Do nothing?" \ No newline at end of file diff --git a/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/description.st b/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/description.st index 43ccd68955..74552d048c 100644 --- a/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/description.st +++ b/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/description.st @@ -1,3 +1,4 @@ accessing description - ^ self repository description \ No newline at end of file + + ^ self repository origin url, '[', projectVersion, ']' \ No newline at end of file diff --git a/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/getOrCreateIcebergRepository.st b/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/getOrCreateIcebergRepository.st index 981e13ba25..b981f0c3da 100644 --- a/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/getOrCreateIcebergRepository.st +++ b/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/getOrCreateIcebergRepository.st @@ -1,3 +1,4 @@ accessing getOrCreateIcebergRepository + ^ self repository \ No newline at end of file diff --git a/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/goferReferences.st b/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/goferReferences.st index 2c32774722..bc30309d38 100644 --- a/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/goferReferences.st +++ b/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/goferReferences.st @@ -1,5 +1,8 @@ accessing goferReferences + + self repository head description = projectVersion ifFalse: [ (self repository commitishNamed: projectVersion) checkoutWithStrategy: IceCheckoutDoNotLoadPackages new ]. + ^ self repository workingCopy packages collect: [ :package | GoferResolvedReference diff --git a/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/projectVersion..st b/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/projectVersion..st new file mode 100644 index 0000000000..e8ed91ce6c --- /dev/null +++ b/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/projectVersion..st @@ -0,0 +1,3 @@ +accessing +projectVersion: anObject + projectVersion := anObject \ No newline at end of file diff --git a/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/projectVersion.st b/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/projectVersion.st index 6fe46839cc..1f0fb1d49b 100644 --- a/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/projectVersion.st +++ b/Iceberg.package/IceMetacelloRepositoryAdapter.class/instance/projectVersion.st @@ -1,3 +1,3 @@ accessing projectVersion - ^ self repository head gitRef \ No newline at end of file + ^ projectVersion \ No newline at end of file diff --git a/Iceberg.package/IceMetacelloRepositoryAdapter.class/properties.json b/Iceberg.package/IceMetacelloRepositoryAdapter.class/properties.json index af7b3636ba..70d06d80c6 100644 --- a/Iceberg.package/IceMetacelloRepositoryAdapter.class/properties.json +++ b/Iceberg.package/IceMetacelloRepositoryAdapter.class/properties.json @@ -6,7 +6,8 @@ "pools" : [ ], "classvars" : [ ], "instvars" : [ - "repository" + "repository", + "projectVersion" ], "name" : "IceMetacelloRepositoryAdapter", "type" : "normal" diff --git a/Iceberg.package/IceRepository.class/instance/metacelloAdapter..st b/Iceberg.package/IceRepository.class/instance/metacelloAdapter..st new file mode 100644 index 0000000000..1dd353420a --- /dev/null +++ b/Iceberg.package/IceRepository.class/instance/metacelloAdapter..st @@ -0,0 +1,3 @@ +*Iceberg-Adapters +metacelloAdapter: version + ^ IceMetacelloRepositoryAdapter for: self withVersion: version \ No newline at end of file diff --git a/Iceberg.package/IceRepository.class/instance/metacelloAdapter.st b/Iceberg.package/IceRepository.class/instance/metacelloAdapter.st deleted file mode 100644 index e11aba17a9..0000000000 --- a/Iceberg.package/IceRepository.class/instance/metacelloAdapter.st +++ /dev/null @@ -1,3 +0,0 @@ -*Iceberg-Adapters -metacelloAdapter - ^ IceMetacelloRepositoryAdapter for: self \ No newline at end of file diff --git a/Iceberg.package/MCGitBasedNetworkRepository.extension/instance/getOrCreateIcebergRepository.st b/Iceberg.package/MCGitBasedNetworkRepository.extension/instance/getOrCreateIcebergRepository.st index 7650cce629..eac3d32e3f 100644 --- a/Iceberg.package/MCGitBasedNetworkRepository.extension/instance/getOrCreateIcebergRepository.st +++ b/Iceberg.package/MCGitBasedNetworkRepository.extension/instance/getOrCreateIcebergRepository.st @@ -1,6 +1,7 @@ *Iceberg getOrCreateIcebergRepository | remoteUrl | + remoteUrl := self perform: Iceberg remoteTypeSelector. ^ IceRepository registry detect: [ :repo | repo isCloneOfUrl: remoteUrl ] From a9c74035e32b3dae8ad181efdad7bac58e643c24 Mon Sep 17 00:00:00 2001 From: Pablo Tesone Date: Tue, 8 Jan 2019 16:14:06 +0100 Subject: [PATCH 8/9] Fixing the test --- .../instance/testUpdateProjectShouldCheckoutTheNewVersion.st | 1 + 1 file changed, 1 insertion(+) diff --git a/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testUpdateProjectShouldCheckoutTheNewVersion.st b/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testUpdateProjectShouldCheckoutTheNewVersion.st index 333649fb13..cbe7605c94 100644 --- a/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testUpdateProjectShouldCheckoutTheNewVersion.st +++ b/Iceberg-Tests-MetacelloIntegration.package/IceMetacelloIntegrationUpdateALoadedVersionTest.class/instance/testUpdateProjectShouldCheckoutTheNewVersion.st @@ -12,6 +12,7 @@ testUpdateProjectShouldCheckoutTheNewVersion Metacello new baseline: 'PharoGitTest'; repository:'github://pharo-vcs/test-project-source-properties-tonel:1.2.3'; + onConflictUseIncoming; load. self assert: self repositoryForTest head description equals: '1.2.3'. From 1502d34b7061cc3f8029b251779e816d5f4b95d7 Mon Sep 17 00:00:00 2001 From: Pablo Tesone Date: Tue, 8 Jan 2019 16:26:47 +0100 Subject: [PATCH 9/9] Updating Tonel --- .../BaselineOfIceberg.class/instance/tonel..st | 2 +- scripts/preLoading.st | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/BaselineOfIceberg.package/BaselineOfIceberg.class/instance/tonel..st b/BaselineOfIceberg.package/BaselineOfIceberg.class/instance/tonel..st index 43f7d6d354..1cc57ebd51 100644 --- a/BaselineOfIceberg.package/BaselineOfIceberg.class/instance/tonel..st +++ b/BaselineOfIceberg.package/BaselineOfIceberg.class/instance/tonel..st @@ -2,4 +2,4 @@ baseline tonel: spec spec baseline: 'Tonel' - with: [ spec repository: 'github://pharo-vcs/tonel:v1.0.11' ] \ No newline at end of file + with: [ spec repository: 'github://pharo-vcs/tonel:v1.0.12' ] \ No newline at end of file diff --git a/scripts/preLoading.st b/scripts/preLoading.st index 90a8c9199f..2d4b8630f2 100644 --- a/scripts/preLoading.st +++ b/scripts/preLoading.st @@ -48,7 +48,7 @@ do: [ :each | This is required to load iceberg packages and dependencies in Tonel format" Metacello new baseline: 'Tonel'; - repository: 'github://pharo-vcs/tonel:v1.0.11'; + repository: 'github://pharo-vcs/tonel:v1.0.12'; load. Metacello new