Skip to content

Commit

Permalink
Merge pull request #311 from dalehenrich/issue_273
Browse files Browse the repository at this point in the history
Issue 273 - add Pharo-4.0 support to Metacello
  • Loading branch information
dalehenrich committed Nov 11, 2014
2 parents ac5fa10 + a7f763f commit e54f0a8
Show file tree
Hide file tree
Showing 34 changed files with 247 additions and 132 deletions.
7 changes: 5 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ env:
- ST=Pharo-3.0 LoadList="'default'" TRAVIS_SCRIPT=userGuide.st
- ST=GemStone-3.2.2 LoadList="'default'" TRAVIS_SCRIPT=userGuide.st

- ST=Pharo-2.0 LoadList="'TravisCI_1' 'TravisCI_2'" TRAVIS_SCRIPT=travisCI.st
- ST=Pharo-2.0 LoadList="'TravisCI_3'" TRAVIS_SCRIPT=travisCI.st
# - ST=Pharo-4.0 LoadList="'TravisCI_1' 'TravisCI_2'" TRAVIS_SCRIPT=travisCI.st
# - ST=Pharo-4.0 LoadList="'TravisCI_3'" TRAVIS_SCRIPT=travisCI.st
- ST=GemStone-3.2.2 LoadList="'TravisCI_1' 'TravisCI_2'" TRAVIS_SCRIPT=travisCI.st
- ST=GemStone-3.2.2 LoadList="'TravisCI_3'" TRAVIS_SCRIPT=travisCI.st
- ST=Squeak-4.5 LoadList="'TravisCI_1' 'TravisCI_2'" TRAVIS_SCRIPT=travisCI.st
Expand All @@ -37,6 +37,8 @@ env:
# - ST=PharoCore-1.3 LoadList="'TravisCI_3'" TRAVIS_SCRIPT=travisCI.st
- ST=Pharo-1.4 LoadList="'TravisCI_1' 'TravisCI_2'" TRAVIS_SCRIPT=travisCI.st
- ST=Pharo-1.4 LoadList="'TravisCI_3'" TRAVIS_SCRIPT=travisCI.st
- ST=Pharo-2.0 LoadList="'TravisCI_1' 'TravisCI_2'" TRAVIS_SCRIPT=travisCI.st
- ST=Pharo-2.0 LoadList="'TravisCI_3'" TRAVIS_SCRIPT=travisCI.st
- ST=Pharo-3.0 LoadList="'TravisCI_1' 'TravisCI_2'" TRAVIS_SCRIPT=travisCI.st
- ST=Pharo-3.0 LoadList="'TravisCI_3'" TRAVIS_SCRIPT=travisCI.st
# - ST=Squeak-4.3 LoadList="'TravisCI_1' 'TravisCI_2'" TRAVIS_SCRIPT=travisCI.st
Expand Down Expand Up @@ -71,3 +73,4 @@ install:
- ./build_image.sh

script: $PROJECT_HOME/tests/testTravisCI.sh -verbose

Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ baseline: spec
group: 'TravisCI_1' with: #('Metacello-TestsPlatform');
yourself ].
spec
for: #'pharo'
for: #(#'pharo1.x' #'pharo2.x')
do: [
spec
project: 'ProfStef'
Expand Down Expand Up @@ -205,12 +205,16 @@ baseline: spec
baseline: 'FileTree'
with: [ spec repository: 'github://dalehenrich/filetree:pharo2.0/repository' ] ].
spec
for: #'pharo3.x'
for: #(#'pharo3.x' #'pharo4.x')
do: [
spec removeProject: 'OSProcess'.
spec
package: 'Metacello-PharoCommonPlatform'
with: [ spec requires: #('Metacello-MC') ];
package: 'Metacello-Platform'
with: [ spec file: 'Metacello-Platform.pharo30' ];
with: [
spec
file: 'Metacello-Platform.pharo30';
requires: #('Metacello-PharoCommonPlatform') ];
package: 'Metacello-TestsCommonMC'
with: [ spec file: 'Metacello-TestsCommonMC.pharo20' ];
yourself.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"class" : {
},
"instance" : {
"baseline:" : "dkh 10/20/2014 18:33",
"baseline:" : "dkh 11/10/2014 15:25",
"gemstone10beta311PostLoadDoIt" : "dkh 07/24/2012 18:09",
"reprimeRegistryIssue197" : "dkh 09/30/2014 17:40",
"testResourcePostLoadDoIt" : "dkh 6/1/2012 09:18:17" } }

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
repository creation
registerPackageNamed: packageName
^ (Smalltalk at: #'PackageInfo') registerPackageName: packageName
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
"processPID" : "dkh 09/19/2014 14:56",
"readStreamOn:do:" : "ChristopheDemarey 5/14/2013 18:04",
"recursiveDelete:" : "ChristopheDemarey 5/27/2013 17:42",
"registerPackageNamed:" : "dkh 11/10/2014 16:34",
"stackCacheFor:at:doing:" : "dkh 6/5/2012 19:01:24",
"stackCacheFor:cacheClass:at:doing:" : "dkh 6/5/2012 19:01:24",
"string:includesSubstring:" : "ChristopheDemarey 5/31/2013 13:02",
Expand Down
2 changes: 1 addition & 1 deletion repository/Metacello-Core.package/monticello.meta/version

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
accessing
cacheDirectoryPath: aString
self
cacheDirectory:
(aString
ifEmpty: [ ]
ifNotEmpty: [ MetacelloPlatform current fileHandleOn: aString ])
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
accessing
cacheDirectoryPath
<preference: 'GitHub Cache' category: 'Metacello' description: '' type:
#'String'>
^ MCFileTreeFileUtils current directoryPathString: self cacheDirectory
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
"cacheDirectory" : "dkh 10/14/2014 09:42",
"cacheDirectory:" : "dkh 10/14/2014 09:42",
"cacheDirectoryFor:" : "dkh 10/14/2014 09:42",
"cacheDirectoryPath" : "dkh 11/10/2014 15:40",
"cacheDirectoryPath:" : "dkh 11/10/2014 14:26",
"defaultCacheDirectory" : "dkh 10/14/2014 09:42",
"description" : "dkh 10/14/2014 09:42",
"downloadCache" : "dkh 10/14/2014 09:42",
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
(name 'Metacello-GitBasedRepository-dkh.11' message 'Issue #277: add convenience method for setting site credentials' id 'd2bc885a-a469-414d-8835-376675920e1d' date '10/16/2014' time '14:09:29' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-dkh.10' message 'Issue #277: siteUsername:sitePassword class inst vars will handle the first line of defense for supply credentials ... ultimately a platform specific mechanism will be called for, but it''s premature to create a mechanism at this point in time...' id 'b3139a97-24a2-449c-ae34-c65bd7efc52f' date '10/16/2014' time '13:59:20' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-dkh.9' message 'Issue #277: -add error logging for the test that could be exposed to reate limiting - add protocol for passing in username:password for json api calls ... still need to figure out how username:password for git will be stored' id 'a6383968-2b06-4a0a-831c-3e1b03839b9d' date '10/15/2014' time '17:42:32' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-dkh.8' message 'Issue #277: implemented more tests ... because of github api rate limits, need to figure out how to specify a github username:password (rate limit goes way up) ...' id 'f4d732fb-5aaa-4c2f-b900-0f167e3395f7' date '10/15/2014' time '17:00:21' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-dkh.7' message 'Issue #277: checkpoint- rename platform downloadFile:to: to downloadZipArchive:to:- add MetacelloGemStonePlatform>>downloadJSON: (still need to implement for other platforms)- implement tag pattern matching plus some basic tests - still need more tests/validation' id '9e785ccd-38da-48b8-86b4-4c224ca1b523' date '10/14/2014' time '17:25:25' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-dkh.6' message 'rename MCGitBasedRepository to MCGitBasedNetworkRepository ... better name' id 'b2627477-29b2-4aef-83b7-f4fd5bad29de' date '10/14/2014' time '09:45:25' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-dkh.5' message 'Issue #277: Semantic versioning is too stringent ... Seaside versions tend to have 4 version fields instead of three ... besides for pattern matching we are not going to compare versions so we just need a comparer that recognizes *, #, and ? characters' id 'fb4ea7f7-ec7b-4205-b7f9-6e31d3546a31' date '10/13/2014' time '16:08:23' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-dkh.4' message 'Issue #277: checkpoint ... working through version pattern matching using MetacelloVersionNumber>>match: and MetacelloSemanticVersionNumber>>match:' id '9865dfae-d79f-412f-bec7-daa9b50dcd22' date '10/13/2014' time '16:05:49' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-dkh.3' message 'Issue #277: split out project version parsing and add tests' id 'd97bf042-0a00-4ebd-8b9d-85d99178831f' date '10/13/2014' time '14:27:19' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-JohanBrichau.2' message 'corrected #isEnabled message to have "MCRepository allConcreteSubclasses" return only the usable subclasses (fixes a DNU when using GemTools to add a new repository)' id '79a4dd16-2fba-4809-ac0a-6e676c246ddd' date '10/11/2014' time '02:08:56' author 'JohanBrichau' ancestors ((name 'Metacello-GitBasedRepository-dkh.1' message 'Issue #233: initial round of changes in support of adding gitorious and bitbucket' id 'd0c010da-b16a-4fec-a473-49a8dfc358be' date '09/29/2014' time '13:03:19' author 'dkh' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())
(name 'Metacello-GitBasedRepository-dkh.13' message 'Issue #309: fix a Pharo-3.0 bug' id 'e128fab8-e3c8-4f57-9cb0-40f8e8b632ba' date '11/10/2014' time '15:41:34' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-dkh.12' message 'Issue #309: bugfix and test case' id 'cb21e32a-5888-4fb8-af49-1675232816ed' date '11/10/2014' time '14:54:01' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-dkh.11' message 'Issue #277: add convenience method for setting site credentials' id 'd2bc885a-a469-414d-8835-376675920e1d' date '10/16/2014' time '14:09:29' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-dkh.10' message 'Issue #277: siteUsername:sitePassword class inst vars will handle the first line of defense for supply credentials ... ultimately a platform specific mechanism will be called for, but it''s premature to create a mechanism at this point in time...' id 'b3139a97-24a2-449c-ae34-c65bd7efc52f' date '10/16/2014' time '13:59:20' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-dkh.9' message 'Issue #277: -add error logging for the test that could be exposed to reate limiting - add protocol for passing in username:password for json api calls ... still need to figure out how username:password for git will be stored' id 'a6383968-2b06-4a0a-831c-3e1b03839b9d' date '10/15/2014' time '17:42:32' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-dkh.8' message 'Issue #277: implemented more tests ... because of github api rate limits, need to figure out how to specify a github username:password (rate limit goes way up) ...' id 'f4d732fb-5aaa-4c2f-b900-0f167e3395f7' date '10/15/2014' time '17:00:21' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-dkh.7' message 'Issue #277: checkpoint- rename platform downloadFile:to: to downloadZipArchive:to:- add MetacelloGemStonePlatform>>downloadJSON: (still need to implement for other platforms)- implement tag pattern matching plus some basic tests - still need more tests/validation' id '9e785ccd-38da-48b8-86b4-4c224ca1b523' date '10/14/2014' time '17:25:25' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-dkh.6' message 'rename MCGitBasedRepository to MCGitBasedNetworkRepository ... better name' id 'b2627477-29b2-4aef-83b7-f4fd5bad29de' date '10/14/2014' time '09:45:25' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-dkh.5' message 'Issue #277: Semantic versioning is too stringent ... Seaside versions tend to have 4 version fields instead of three ... besides for pattern matching we are not going to compare versions so we just need a comparer that recognizes *, #, and ? characters' id 'fb4ea7f7-ec7b-4205-b7f9-6e31d3546a31' date '10/13/2014' time '16:08:23' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-dkh.4' message 'Issue #277: checkpoint ... working through version pattern matching using MetacelloVersionNumber>>match: and MetacelloSemanticVersionNumber>>match:' id '9865dfae-d79f-412f-bec7-daa9b50dcd22' date '10/13/2014' time '16:05:49' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-dkh.3' message 'Issue #277: split out project version parsing and add tests' id 'd97bf042-0a00-4ebd-8b9d-85d99178831f' date '10/13/2014' time '14:27:19' author 'dkh' ancestors ((name 'Metacello-GitBasedRepository-JohanBrichau.2' message 'corrected #isEnabled message to have "MCRepository allConcreteSubclasses" return only the usable subclasses (fixes a DNU when using GemTools to add a new repository)' id '79a4dd16-2fba-4809-ac0a-6e676c246ddd' date '10/11/2014' time '02:08:56' author 'JohanBrichau' ancestors ((name 'Metacello-GitBasedRepository-dkh.1' message 'Issue #233: initial round of changes in support of adding gitorious and bitbucket' id 'd0c010da-b16a-4fec-a473-49a8dfc358be' date '09/29/2014' time '13:03:19' author 'dkh' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
attributes
defaultPlatformAttributes

| stoneVersionAtts |
(stoneVersionAtts := self stoneVersionAttributes) ifNil: [^ #( #gemstone )].
^ stoneVersionAtts
| stoneVersionAtts |
(stoneVersionAtts := self stoneVersionAttributes) ifNil: [ ^ #(#'gemstone') ].
^ stoneVersionAtts , self devKitPlatformAttributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
attributes
devKitPlatformAttributes
| baselineClassName |
baselineClassName := 'BaselineOfDevKit'.
Smalltalk
at: baselineClassName
ifPresent: [ :ignored |
Smalltalk
at: #'MetacelloProjectRegistration'
ifPresent: [ :cls |
(cls registrationForClassNamed: baselineClassName ifAbsent: [ ])
ifNotNil: [ :registration |
registration loadedInImage
ifTrue: [ #(#'gsdevkit') ] ] ] ].
^ #(#'glass')
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@
"confirm:" : "dkh 01/06/2010 10:18",
"copyClass:as:inCategory:" : "dkh 11/10/2011 09:52",
"createRepository:" : "dkh 03/23/2013 08:50",
"defaultPlatformAttributes" : "dkh 11/13/2009 16:37",
"defaultPlatformAttributes" : "dkh 11/10/2014 15:49",
"defaultRepositoryDescription" : "dkh 09/28/2014 09:52",
"devKitPlatformAttributes" : "dkh 11/10/2014 15:48",
"downloadBasicFile:to:" : "dkh 10/15/2014 17:04",
"downloadBasicFile:to:username:pass:" : "dkh 10/15/2014 17:08",
"downloadJSON:username:pass:" : "dkh 10/16/2014 13:52",
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
pharo 2.0 compat
registerPackageNamed: packageName
"PackageInfo deprecated in Pharo3.0"

^RPackageSet named: packageName
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
"defaultDirectory" : "ChristopheDemarey 4/29/2013 14:17",
"defaultRepositoryDescription" : "ChristopheDemarey 09/12/2014 03:01:45",
"directoryFromPath:relativeTo:" : "ChristopheDemarey 4/29/2013 15:14",
"downloadJSON:username:pass:" : "dkh 10/14/2014 17:20:04",
"downloadZipArchive:to:" : "ChristopheDemarey 09/12/2014 03:01:45",
"ensureDirectoryExists:" : "ChristopheDemarey 7/22/2013 11:20",
"extractRepositoryFrom:to:" : "ChristopheDemarey 9/19/2013 10:35",
Expand All @@ -17,6 +18,7 @@
"parentDirectoryOf:" : "ChristopheDemarey 5/29/2013 18:16",
"readStreamOn:do:" : "ChristopheDemarey 5/14/2013 17:55",
"recursiveDelete:" : "ChristopheDemarey 5/27/2013 17:43",
"registerPackageNamed:" : "dkh 10/14/2014 17:20:04",
"string:includesSubstring:" : "ChristopheDemarey 5/31/2013 13:02",
"suspendSystemUpdateEventsDuring:" : "ChristopheDemarey 5/27/2013 16:18",
"tempFileFor:suffix:" : "ChristopheDemarey 7/15/2014 15:48" } }
Original file line number Diff line number Diff line change
@@ -1 +1 @@
(name 'Metacello-Platform.pharo30-ChristopheDemarey.8' message 'Issue #277: rename platform downloadFile:to: to downloadZipArchive:to:' id '308909c3-5784-4e90-8917-873ed46e87bc' date '10/14/2014' time '17:20:04' author 'dkh' ancestors ((name 'Metacello-Platform.pharo30-ChristopheDemarey.7' message 'merged by GitFileTree-MergeDriver' id 'efcc6350-964f-438f-8e1a-af6adac70922' date '09/12/2014' time '03:01:45' author 'ChristopheDemarey' ancestors ((name 'Metacello-Platform.pharo30-ChristopheDemarey.5' message 'fix https://pharo.fogbugz.com/f/cases/13557/Github-zip-download-doesn-t-check-for-the-existence-of-file-with-the-same-name' id 'b103f740-20be-45a8-b5d9-b1d2fa9f1da4' date '07/15/2014' time '04:26:36' author 'ChristopheDemarey' ancestors () stepChildren ())(name 'Metacello-Platform.pharo30-ChristopheDemarey.6' message 'merge changes from Pharo3 image back to Metacello repository.' id 'c09024f3-bd5c-4dec-8757-3eeb4b31e22a' date '09/01/2014' time '05:56:32' author 'ChristopheDemarey' ancestors ((name 'Metacello-Platform.pharo30-ChristopheDemarey.5' message 'merge changes from Pharo3 image back to Metacello repository.' id 'be635b56-3a61-4890-a7eb-326cfe96bbf1' date '09/01/2014' time '05:31:28' author 'ChristopheDemarey' ancestors ((name 'Metacello-Platform.pharo30-EstebanLorenzano.4' message '10821 Integrate Metacello 2 https://pharo.fogbugz.com/f/cases/10821' id '41e86d9b-6ebe-4b6b-90e0-a4ec4ec6884e' date '10/14/2013' time '01:37:34' author 'EstebanLorenzano' ancestors () stepChildren ())(name 'Metacello-Platform.pharo30-ChristopheDemarey.3' message 'Replace OS process calls by Zinc and ZipArchive calls.' id '60789ab5-e3f3-4720-bca0-cd5d37c002fb' date '09/19/2013' time '11:06:01' author 'ChristopheDemarey' ancestors ((name 'Metacello-Platform.pharo30-ChristopheDemarey.2' message 'Use ensureCreateDirectory.' id 'f1bcaa45-f254-4708-8b82-0fffc63e7ea5' date '07/22/2013' time '11:27:58' author 'ChristopheDemarey' ancestors ((name 'Metacello-Platform.pharo30-ChristopheDemarey.1' message 'Add abstractions for Pharo 3.0' id '6f0cb4ab-d01b-4f47-90de-bef4fc094cb0' date '07/04/2013' time '04:20:43' author 'ChristopheDemarey' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())
(name 'Metacello-Platform.pharo30-ChristopheDemarey.9' message 'Issue #273: implement MetacelloPharo30Platform>>registerPackageNamed:' id 'ec956074-352f-415a-a5a7-4498872e6b05' date '11/10/2014' time '16:49:29' author 'dkh' ancestors ((name 'Metacello-Platform.pharo30-ChristopheDemarey.8' message 'Issue #277: rename platform downloadFile:to: to downloadZipArchive:to:' id '308909c3-5784-4e90-8917-873ed46e87bc' date '10/14/2014' time '17:20:04' author 'dkh' ancestors ((name 'Metacello-Platform.pharo30-ChristopheDemarey.7' message 'merged by GitFileTree-MergeDriver' id 'efcc6350-964f-438f-8e1a-af6adac70922' date '09/12/2014' time '03:01:45' author 'ChristopheDemarey' ancestors ((name 'Metacello-Platform.pharo30-ChristopheDemarey.5' message 'fix https://pharo.fogbugz.com/f/cases/13557/Github-zip-download-doesn-t-check-for-the-existence-of-file-with-the-same-name' id 'b103f740-20be-45a8-b5d9-b1d2fa9f1da4' date '07/15/2014' time '04:26:36' author 'ChristopheDemarey' ancestors () stepChildren ())(name 'Metacello-Platform.pharo30-ChristopheDemarey.6' message 'merge changes from Pharo3 image back to Metacello repository.' id 'c09024f3-bd5c-4dec-8757-3eeb4b31e22a' date '09/01/2014' time '05:56:32' author 'ChristopheDemarey' ancestors ((name 'Metacello-Platform.pharo30-ChristopheDemarey.5' message 'merge changes from Pharo3 image back to Metacello repository.' id 'be635b56-3a61-4890-a7eb-326cfe96bbf1' date '09/01/2014' time '05:31:28' author 'ChristopheDemarey' ancestors ((name 'Metacello-Platform.pharo30-EstebanLorenzano.4' message '10821 Integrate Metacello 2 https://pharo.fogbugz.com/f/cases/10821' id '41e86d9b-6ebe-4b6b-90e0-a4ec4ec6884e' date '10/14/2013' time '01:37:34' author 'EstebanLorenzano' ancestors () stepChildren ())(name 'Metacello-Platform.pharo30-ChristopheDemarey.3' message 'Replace OS process calls by Zinc and ZipArchive calls.' id '60789ab5-e3f3-4720-bca0-cd5d37c002fb' date '09/19/2013' time '11:06:01' author 'ChristopheDemarey' ancestors ((name 'Metacello-Platform.pharo30-ChristopheDemarey.2' message 'Use ensureCreateDirectory.' id 'f1bcaa45-f254-4708-8b82-0fffc63e7ea5' date '07/22/2013' time '11:27:58' author 'ChristopheDemarey' ancestors ((name 'Metacello-Platform.pharo30-ChristopheDemarey.1' message 'Add abstractions for Pharo 3.0' id '6f0cb4ab-d01b-4f47-90de-bef4fc094cb0' date '07/04/2013' time '04:20:43' author 'ChristopheDemarey' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())
Expand Down
Loading

0 comments on commit e54f0a8

Please sign in to comment.