Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gs64 support #50

Merged
merged 25 commits into from
Nov 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
0e79c24
Kepler class renamed
ytsejam78 Nov 13, 2023
6968989
SystemInterfaces pool variable converted to global variable
ytsejam78 Nov 15, 2023
5aaff15
PackageManifest classes removed
ytsejam78 Nov 15, 2023
b513f8f
System Interfaces declaring changes
ytsejam78 Nov 15, 2023
e76371a
Interface declaring refactorings
ytsejam78 Nov 15, 2023
117c1e8
Initial Rowan specs
ytsejam78 Nov 15, 2023
9c888ed
Updated dependencies in Pharo baseline
ytsejam78 Nov 15, 2023
81df593
Depencies update
ytsejam78 Nov 15, 2023
e0fc9b3
Pharo baseline dependencies update
ytsejam78 Nov 15, 2023
b0dddfe
Dependency with Chalten Pharo baseline update
ytsejam78 Nov 16, 2023
6c7ee78
Latest Chalten version related fixes
ytsejam78 Nov 16, 2023
05a92c4
Subscription evaluating changes
ytsejam78 Nov 16, 2023
ad13b35
Subscription notifying improvements
ytsejam78 Nov 16, 2023
3d30737
Rowan post load script fix
ytsejam78 Nov 16, 2023
454b249
GS64 loading / test run github actions
ytsejam78 Nov 16, 2023
e787645
Tools group fixes in Pharo baseline
ytsejam78 Nov 17, 2023
4b7ad67
Dev Tools package not working on Pharo 11. Reverted change.
ytsejam78 Nov 17, 2023
96ae219
Apply suggestions from code review
ytsejam78 Nov 24, 2023
5165b2a
Post load script fix (code review)
ytsejam78 Nov 24, 2023
f71e424
Syntax error fix
ytsejam78 Nov 24, 2023
73ebeb4
Apply suggestions from code review
ytsejam78 Nov 24, 2023
d2b6456
Rowan scripts fixed
ytsejam78 Nov 24, 2023
7ebc51f
Split Rowan scripts into 2 variants: deployment and development
ytsejam78 Nov 24, 2023
1a8be31
Safely register interface removed and register method now does a rebind
ytsejam78 Nov 27, 2023
948dcdc
Changes to postLoad scripts so that deplyment / development can coexist
ytsejam78 Nov 27, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .github/workflows/loading-gs64-components.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: 'GS64 Components Loading'
on:
- push
- pull_request
- workflow_dispatch

jobs:
component-loading:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
load-spec:
- Deployment
name: GS64 + ${{ matrix.load-spec }}
steps:
- uses: actions/checkout@v3
- name: Load component in image
uses: ba-st-actions/gs64-ci@v2
with:
project_name: 'Kepler'
load_spec: 'Kepler-${{ matrix.load-spec }}'
17 changes: 17 additions & 0 deletions .github/workflows/unit-tests-gs64.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: 'GS64 Unit Tests'
on:
- push
- pull_request
- workflow_dispatch

jobs:
unit-tests:
runs-on: ubuntu-latest
name: GS64 Unit Tests
steps:
- uses: actions/checkout@v3
- name: Load Image and Run Tests
uses: ba-st-actions/gs64-ci@v2
with:
project_name: 'Kepler'
run_tests: 'true'
23 changes: 23 additions & 0 deletions rowan/components/Deployment.ston
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
RwSimpleProjectLoadComponentV2 {
#name : 'Deployment',
#preloadDoitName : 'scripts/deploymentPreLoad',
#postloadDoitName : 'scripts/deploymentPostLoad',
#projectNames : [ 'Chalten' ],
#componentNames : [ ],
#packageNames : [
'Kepler-Notifications',
'Kepler-System',
'Kepler-Time'
],
#conditionalPackageMapSpecs : {
'gemstone' : {
'allusers' : {
#packageNameToPlatformPropertiesMap : {
'Kepler-Notifications' : { 'symbolDictName' : 'Kepler' },
'Kepler-System' : { 'symbolDictName' : 'Kepler' },
'Kepler-Time' : { 'symbolDictName' : 'Kepler' }
}
}
}
}
}
27 changes: 27 additions & 0 deletions rowan/components/Tests.ston
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
RwSimpleProjectLoadComponentV2 {
#name : 'Tests',
#preloadDoitName : 'scripts/developmentPreLoad',
#postloadDoitName : 'scripts/developmentPostLoad',
#condition : 'tests',
#componentNames : [
'Deployment'
],
#packageNames : [
'Kepler-Notifications-Tests',
'Kepler-SUnit-Model',
'Kepler-System-Tests',
'Kepler-Time-Tests'
],
#conditionalPackageMapSpecs : {
'gemstone' : {
'allusers' : {
#packageNameToPlatformPropertiesMap : {
'Kepler-Notifications-Tests' : { 'symbolDictName' : 'Kepler' },
'Kepler-SUnit-Model' : { 'symbolDictName' : 'Kepler' },
'Kepler-System-Tests' : { 'symbolDictName' : 'Kepler' },
'Kepler-Time-Tests' : { 'symbolDictName' : 'Kepler' }
}
}
}
}
}
19 changes: 19 additions & 0 deletions rowan/components/scripts/deploymentPostLoad.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
| symbolDictionary |

symbolDictionary := Rowan image
symbolDictNamed: 'Kepler'
ifAbsent: [Error signal: 'Kepler symbol dictionary missing' ].

"Global variables definition"
symbolDictionary
at: #SystemInterfaces
ifPresent: [:namespace | namespace ifNil: [symbolDictionary at: #SystemInterfaces put: Namespace new]]
ifAbsentPut: [Namespace new "anyway, should never happen because preload script defines it"].

"Register Kepler's built-in system interfaces"
(OrderedCollection new
add: #InstalledModuleRegistrationSystem;
add: #EventNotificationSystem;
add: #TimeSystem;
yourself)
do: [:each | (symbolDictionary at: each) registerInterfaces].
11 changes: 11 additions & 0 deletions rowan/components/scripts/deploymentPreLoad.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
| symbolDictionary |
symbolDictionary := Rowan image
symbolDictNamed: 'Kepler'
ifAbsent: [
Rowan image symbolList createDictionaryNamed: 'Kepler' at: Rowan image symbolList size + 1.
Rowan image symbolDictNamed: 'Kepler'
].

"Preliminar definition of global variables for source code to compile.
These will be properly replaced later in the post load script."
symbolDictionary at: #SystemInterfaces put: nil.
23 changes: 23 additions & 0 deletions rowan/components/scripts/developmentPostLoad.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
| symbolDictionary |

symbolDictionary := Rowan image
symbolDictNamed: 'Kepler'
ifAbsent: [Error signal: 'Kepler symbol dictionary missing' ].

"Global variables definition"
symbolDictionary
at: #SystemInterfaces
ifPresent: [:namespace | namespace ifNil: [symbolDictionary at: #SystemInterfaces put: Namespace new]]
ifAbsentPut: [Namespace new "anyway, should never happen because preload script defines it"].

"Register Kepler's built-in system interfaces"
(OrderedCollection new
add: #InstalledModuleRegistrationSystem;
add: #EventNotificationSystem;
add: #TimeSystem;
add: #FixedCustomerManagementSystem;
add: #FixedCustomerSystem;
add: #SampleCustomerSystem;
add: #SampleProjectSystem;
yourself)
do: [:each | (symbolDictionary at: each) registerInterfaces].
11 changes: 11 additions & 0 deletions rowan/components/scripts/developmentPreLoad.st
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
| symbolDictionary |
symbolDictionary := Rowan image
symbolDictNamed: 'Kepler'
ifAbsent: [
Rowan image symbolList createDictionaryNamed: 'Kepler' at: Rowan image symbolList size + 1.
Rowan image symbolDictNamed: 'Kepler'
].

"Preliminar definition of global variables for source code to compile.
These will be properly replaced later in the post load script."
symbolDictionary at: #SystemInterfaces put: nil.
11 changes: 11 additions & 0 deletions rowan/project.ston
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
RwProjectSpecificationV2 {
#specName : 'project',
#projectSpecPath : 'rowan',
#componentsPath : 'rowan/components',
#packagesPath : 'source',
#projectsPath : 'rowan/projects',
#specsPath : 'rowan/specs',
#packageFormat : 'tonel',
#packageConvention : 'Rowan',
#comment : 'Kepler project specification'
}
10 changes: 10 additions & 0 deletions rowan/projects/Chalten.ston
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
RwLoadSpecificationV2 {
#specName: 'Chalten',
#projectName : 'Chalten',
#gitUrl : 'https://github.com/ba-st/Chalten.git',
#revision : 'v9',
#projectSpecFile : 'rowan/project.ston',
#componentNames : [
'Deployment'
]
}
Empty file added rowan/projects/README.md
Empty file.
14 changes: 14 additions & 0 deletions rowan/specs/Kepler-CI.ston
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
RwLoadSpecificationV2 {
#specName: 'Kepler-CI',
#projectName : 'Kepler',
#diskUrl : 'Kepler',
#projectSpecFile : 'rowan/project.ston',
#componentNames : [
'Tests'
],
#customConditionalAttributes : [
'sunit',
'tests'
],
#comment : 'Kepler continuous integration setup'
}
9 changes: 9 additions & 0 deletions rowan/specs/Kepler-Deployment.ston
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
RwLoadSpecificationV2 {
#specName: 'Kepler-Deployment',
#projectName : 'Kepler',
#diskUrl : 'Kepler',
#projectSpecFile : 'rowan/project.ston',
#componentNames : [
'Deployment'
]
}
3 changes: 2 additions & 1 deletion source/.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
#convention : 'Rowan',
#format : #tonel
}
}
55 changes: 31 additions & 24 deletions source/BaselineOfKepler/BaselineOfKepler.class.st
Original file line number Diff line number Diff line change
@@ -1,54 +1,61 @@
Class {
#name : #BaselineOfKepler,
#superclass : #BaselineOf,
#category : #BaselineOfKepler
#name : 'BaselineOfKepler',
#superclass : 'BaselineOf',
#category : 'BaselineOfKepler',
#package : 'BaselineOfKepler'
}

{ #category : #baselines }
{ #category : 'baselines' }
BaselineOfKepler >> baseline: spec [

<baseline>
spec
for: #pharo
do: [ self
setUpDependencies: spec;
setUpPackages: spec.
spec
group: 'Deployment' with: #('Core' 'Extended');
group: 'CI' with: 'Tests';
group: 'Tools' with: 'Buoy-Tools';
group: 'Development' with: #('Tests' 'Tools')
].
spec for: #'pharo10.x' do: [ self setUpPharo10Packages: spec ]
spec for: #pharo do: [
self
setUpDependencies: spec;
setUpPackages: spec.
spec
group: 'Deployment' with: #( 'Core' 'Extended' );
group: 'CI' with: 'Tests';
group: 'Tools' with: #( 'Buoy-Tools' 'Deployment' );
group: 'Development' with: #( 'Tests' 'Tools' ).
spec postLoadDoIt: #postLoadInitialization ].
spec for: 'pharo10.x' do: [ self setUpPharo10Packages: spec ]
]

{ #category : 'post load' }
BaselineOfKepler >> postLoadInitialization [

Smalltalk at: #SystemInterfaces put: Namespace new.
SubsystemImplementation allSubclassesDo: [ :each | each registerInterfaces ]
]

{ #category : #accessing }
{ #category : 'accessing' }
BaselineOfKepler >> projectClass [

^ MetacelloCypressBaselineProject
]

{ #category : #baselines }
{ #category : 'baselines' }
BaselineOfKepler >> setUpDependencies: spec [

spec
baseline: 'Buoy' with: [ spec repository: 'github://ba-st/Buoy:v6' ];
baseline: 'Buoy' with: [ spec repository: 'github://ba-st/Buoy:v7' ];
project: 'Buoy-Deployment' copyFrom: 'Buoy' with: [ spec loads: 'Deployment' ];
project: 'Buoy-SUnit' copyFrom: 'Buoy' with: [ spec loads: 'Dependent-SUnit-Extensions' ];
project: 'Buoy-Tools' copyFrom: 'Buoy' with: [ spec loads: 'Tools' ].

spec
baseline: 'Chalten' with: [ spec repository: 'github://ba-st/Chalten:v8' ];
project: 'Chalten-Gregorian' copyFrom: 'Chalten' with: [ spec loads: 'Chalten-Gregorian-Calendar' ]
baseline: 'Chalten' with: [ spec repository: 'github://ba-st/Chalten:v9' ];
project: 'Chalten-Deployment-Gregorian' copyFrom: 'Chalten' with: [ spec loads: 'Deployment-Gregorian' ].
]

{ #category : #baselines }
{ #category : 'baselines' }
BaselineOfKepler >> setUpPackages: spec [

spec
package: 'Kepler-System' with: [ spec requires: 'Buoy-Deployment' ];
group: 'Core' with: 'Kepler-System';
package: 'Kepler-Time' with: [ spec requires: #('Core' 'Chalten-Gregorian') ];
package: 'Kepler-Time' with: [ spec requires: #('Core' 'Chalten-Deployment-Gregorian') ];
group: 'Extended' with: 'Kepler-Time';
package: 'Kepler-Notifications' with: [ spec requires: 'Core' ];
group: 'Extended' with: 'Kepler-Notifications';
Expand All @@ -65,7 +72,7 @@ BaselineOfKepler >> setUpPackages: spec [
group: 'Tests' with: 'Kepler-Notifications-Tests'
]

{ #category : #initialization }
{ #category : 'initialization' }
BaselineOfKepler >> setUpPharo10Packages: spec [

spec
Expand Down
2 changes: 1 addition & 1 deletion source/BaselineOfKepler/package.st
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Package { #name : #BaselineOfKepler }
Package { #name : 'BaselineOfKepler' }
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,22 @@
An EventNotificationModuleTest is a test class for testing the behavior of EventNotificationModule
"
Class {
#name : #EventNotificationModuleTest,
#superclass : #TestCase,
#name : 'EventNotificationModuleTest',
#superclass : 'TestCase',
#instVars : [
'userStory'
],
#category : #'Kepler-Notifications-Tests'
#category : 'Kepler-Notifications-Tests',
#package : 'Kepler-Notifications-Tests'
}

{ #category : #'private - accessing' }
{ #category : 'private - accessing' }
EventNotificationModuleTest >> installedModuleRegistrationSystem [

^ userStory rootSystem >> #InstalledModuleRegistrationSystem
]

{ #category : #running }
{ #category : 'running' }
EventNotificationModuleTest >> setUp [

super setUp.
Expand All @@ -25,7 +26,7 @@ EventNotificationModuleTest >> setUp [
userStory setUp
]

{ #category : #tests }
{ #category : 'tests' }
EventNotificationModuleTest >> testAccessing [

| eventNotificationModule |
Expand Down
Loading
Loading