message: readme spelling

diff:
@@ -21,8 +21,8 @@ You can contribute to this project. All classes and most methods are commented.
![Build Status](https://ci.inria.fr/pharo-ci-jenkins2/job/PharoLauncher/buildStatus/icon?job=PharoLauncher)
## Motivations
-In the past I had several folders with images everywhere on my HD. Sometimes with the VM, sometimes without. Lots of image searching as you can imagine.
-Now, my HD is now much cleaner - all images are in a central place and I need only one icon/starter on the desktop to open. PharoLauncher is also a very handy tool to download specific image update versions if you want to reproduce or fix Pharo bugs. I also associated one of the unused laptop keys with PharoLauncher - so the world of Smalltalk is just one click away...
+In the past, I had several folders with images everywhere on my HD. Sometimes with the VM, sometimes without. Lots of image searching as you can imagine.
+Now, my HD is now much cleaner - all images are in a central place and I need only one icon/starter on the desktop to open. PharoLauncher is also a convenient tool to download specific image update versions if you want to reproduce or fix Pharo bugs. I also associated one of the unused laptop keys with PharoLauncher - so the world of Smalltalk is just one click away...
## How to install?
Download latest stable Pharo Launcher from [http://files.pharo.org/pharo-launcher](http://files.pharo.org/pharo-launcher).
@@ -35,40 +35,40 @@ For Linux and Mac, there are both 32-bits (x86) and 64-bits (x64) bundles.
Just launch the Pharo launcher app.
Usually for "end user experience" the launcher opens in full world mode - so you do not see Pharo background/world menu - only the launcher.
-Initially on a new computer the right side with local images is empty. On the left side are the template images that are available on the web. Note that there are refresh buttons at the top of the list.
+Initially, on a new computer, the right side with local images is empty. On the left side are the template images that are available on the web. Note that there are refresh buttons at the top of the list.
-Click "Refresh" in the left list to fetch all available template lists from the web.
+Click "Refresh" on the left list to fetch all available template lists from the web.
-Select the template image you like and download it. For instance you can download "Pharo6.0" -> "60528" which is the latest image as of today. Note that also the images from contribution CI are available.
+Select the template image you like and download it. For instance, you can download "Pharo6.0" -> "60528" which is the latest image as of today. Note that also the images from contribution CI are available.
So you can easily download "Artefact", "Moose", ... images if you like.
The launcher will download the image into a specific directory somewhere in your users home directory (you can configure whereby clicking the Settings button at the bottom of the window).
Each image gets its own folder. Use the "Show in folder" menu item if you want to open this location.
-After download you can "Launch" the image from the context menu in the right list. This will open the new image and close the launcher image. So you are ready to start working.
+After download, you can "Launch" the image from the context menu in the right list. This will open the new image and close the launcher image. So you are ready to start working.
## Where are my images?
Launcher files are considered as user documents and so, they are stored in the user document folder, i.e.:
- *$HOME/Documents/Pharo* on OS X,
- *$HOME/My Documents/Pharo* on windows,
-- *$HOME/Pharo* on Linux (some linux distributions provide a document folder but some others not, so we put it in the HOME directory in all cases).
+- *$HOME/Pharo* on Linux (some Linux distributions provide a document folder but some others not, so we put it in the HOME directory in all cases).
In this folder, you will find your images and virtual machines needed to run images.
### What does the Pharo launcher to launch an image?
To run an image, Pharo launcher needs to determine the appropriate virtual machine to run it and fetch it from the web if it is not available.
The process is as following:
1. determine the image format version
-2. find (and optionnaly fetch) a compatible VM (a VM able to run this image format) and run the image to get its Pharo version number
-3. find (and optionnaly fetch) the appropriate VM for this specific Pharo image version. Sources files are also downloaded with the VM when applicable.
+2. find (and optionally fetch) a compatible VM (a VM able to run this image format) and run the image to get its Pharo version number
+3. find (and optionally fetch) the appropriate VM for this specific Pharo image version. Sources files are also downloaded with the VM when applicable.
4. run the image with the appropriate VM
## How would I make my own templates available via Pharo Launcher?
There are different ways:
-- The easiest way would be to add a CI job on https://ci.inria.fr/pharo-contribution/. This job should archive a zip file with your image and the changes file. Then you will be able to browse your image as a template from *Pharo contribution Jenkins* / *<your job name>* / *Latest sucessful build*.
-- Another way is to create a fresh image from the *Templates* panel, launche the image, add what you want in the image, save it and then convert the image to a template : right-click on the image on the right panel (*Existing images*) and select *Create Template*. The newly created template will appear in the *Templates* panel under the *Downloaded templates* category.
+- The easiest way would be to add a CI job on https://ci.inria.fr/pharo-contribution/. This job should archive a zip file with your image and the changes file. Then you will be able to browse your image as a template from *Pharo contribution Jenkins* / *<your job name>* / *Latest successful build*.
+- Another way is to create a fresh image from the *Templates* panel, launch the image, add what you want in the image, save it and then convert the image to a template: right-click on the image on the right panel (*Existing images*) and select *Create Template*. The newly created template will appear in the *Templates* panel under the *Downloaded templates* category.
## Things to know:
-At the bottom there is a button to open a settings browser with specific settings for PharoLauncher. There is an option that enables the IDE again - so you can inspect the code or fix a bug.
+At the bottom, there is a button to open a settings browser with specific settings for PharoLauncher. There is an option that enables the IDE again - so you can inspect the code or fix a bug.
If it does not launch on your box then set a breakpoint in PhLImage>>launch to debug.

original_message: readme spelling


message: try changing properties order

change_type: MODIFY

old_path: Jenkinsfile

new_path: Jenkinsfile

diff:
//Set configurable properties
properties([
+ //Avoid concurrent builds
+ disableConcurrentBuilds(),
parameters([
string(name: 'VERSION', defaultValue: 'bleedingEdge', description: 'Which Pharo Launcher version to build?'),
string(name: 'PHARO', defaultValue: '61', description: 'Which Pharo image version to use?'),
- string(name: 'VM', defaultValue: 'vm', description: 'Which Pharo vm to use?')]),
- //Avoid concurrent builds
- disableConcurrentBuilds()
+ string(name: 'VM', defaultValue: 'vm', description: 'Which Pharo vm to use?')])
])
try {
@@ -37,7 +37,6 @@ def buildArchitecture(architecture) {
withEnv(["ARCHITECTURE=${architecture}"]) {
node('linux') {
stage("Build ${architecture}-bits") {
- step([$class: 'WsCleanup'])
dir("${architecture}") {
checkout scm
dir('pharo-build-scripts') {

license: MIT License

repo: pharo-project/pharo-launcher

original_message: try changing properties order


message: Try to fix string interpolation

diff:
@@ -39,7 +39,7 @@ def buildArchitecture(architecture) {
dir('pharo-build-scripts') {
git('https://github.com/pharo-project/pharo-build-scripts.git')
}
- sh "./build.sh prepare ${params.VERSION}"
+ sh "./build.sh prepare $params.VERSION"
}
}

original_message: Try to fix string interpolation


message: restore clean workspace

diff:
@@ -33,6 +33,7 @@ try {
def buildArchitecture(architecture) {
withEnv(["ARCHITECTURE=${architecture}"]) {
node('linux') {
+ step([$class: 'WsCleanup'])
stage("Build ${architecture}-bits") {
dir("${architecture}") {
checkout scm

original_message: restore clean workspace


message: Use baseline

diff:
@@ -28,9 +28,7 @@ function prepare_image() {
./pharo Pharo.image save PharoLauncher --delete-old
./pharo PharoLauncher.image --version > version.txt
-
- local REPO=http://smalltalkhub.com/mc/Pharo/PharoLauncher/main
- ./pharo PharoLauncher.image config $REPO ConfigurationOfPharoLauncher --install=$VERSION
+ ./pharo PharoLauncher.image eval --save "Metacello baseline: 'PharoLauncher'; repository: 'gitlocal://..'; load"
}
function run_tests() {

original_message: Use baseline


message: Fix metacello expression

diff:
@@ -28,7 +28,7 @@ function prepare_image() {
./pharo Pharo.image save PharoLauncher --delete-old
./pharo PharoLauncher.image --version > version.txt
- ./pharo PharoLauncher.image eval --save "Metacello baseline: 'PharoLauncher'; repository: 'gitlocal://..'; load"
+ ./pharo PharoLauncher.image eval --save "Metacello new baseline: 'PharoLauncher'; repository: 'gitlocal://..'; load"
}
function run_tests() {

original_message: Fix metacello expression


message: fix repository directory

diff:
@@ -28,7 +28,7 @@ function prepare_image() {
./pharo Pharo.image save PharoLauncher --delete-old
./pharo PharoLauncher.image --version > version.txt
- ./pharo PharoLauncher.image eval --save "Metacello new baseline: 'PharoLauncher'; repository: 'gitlocal://..'; load"
+ ./pharo PharoLauncher.image eval --save "Metacello new baseline: 'PharoLauncher'; repository: 'gitlocal://src'; load"
}
function run_tests() {

original_message: fix repository directory


message: Add ConfigurationOf into baseline

diff:
@@ -33,6 +33,7 @@ baseline: spec
loads: #('Core' );
repository: 'http://smalltalkhub.com/mc/PharoExtras/XMLParser/main/' ].
spec
+ package: #'ConfigurationOfPharoLauncher';
package: #'PharoLauncher-Core' with: [
spec requires: #('XMLParser' 'Ston' 'JSON' ). ];
package: #'PharoLauncher-Download' with: [

original_message: Add ConfigurationOf into baseline


message: use commit version for description of Pharo Launcher version

diff:
@@ -7,10 +7,5 @@ aboutText
<< 'If you find a bug, please open an issue at https://github.com/pharo-project/pharo-launcher/issues.';
cr; cr;
<< 'Pharo Launcher version: ';
- << self launcherVersion;
- cr;
- << 'Packages :';
- cr;
- << '- ';
- << ((String cr , '- ') join: self launcherPackageList) ]
+ << self launcherVersion ]
\ No newline at end of file

change_type: DELETE

diff:
-querying
-areLoadedPackagesIdenticalToPackagesDescribedInMetacelloCurrentVersion
- ^ self launcherMTProject packages allSatisfy:
- [ :package |
- package workingCopy needsSaving
- ifTrue: [ false ]
- ifFalse: [ package version = (MTVersion fromVersionName: package workingCopy ancestors first name) ] ]
\ No newline at end of file

diff:
-querying
-launcherPackageList
- ^ (self launcherMTProject packages collect: [ :package | package workingCopy ancestors first name ])
- "join: "
\ No newline at end of file

diff:
querying
launcherVersion
- ^ self areLoadedPackagesIdenticalToPackagesDescribedInMetacelloCurrentVersion
- ifTrue: [ self launcherCurrentMetacalloVersion versionString ]
- ifFalse: [ 'N/A' ]
\ No newline at end of file
+
+ ^ [ self class package mcWorkingCopy ancestry ancestors first commit id asString ]
+ on: Error do: [ 'N/A' ]
\ No newline at end of file

diff:
accessing
icon
- ^ #smallNewIcon asIcon
\ No newline at end of file
+ ^ self iconNamed: #smallNewIcon
\ No newline at end of file

diff:
accessing
icon
- ^ #smallDeleteIcon asIcon
\ No newline at end of file
+ ^ self iconNamed: #smallDeleteIcon
\ No newline at end of file

diff:
accessing
icon
- ^ #smallDoItIcon asIcon
\ No newline at end of file
+ ^ self iconNamed: #smallDoItIcon
\ No newline at end of file

diff:
accessing
icon
- ^ #configurationIcon asIcon
\ No newline at end of file
+ ^ self iconNamed: #configurationIcon
\ No newline at end of file

diff:
accessing
icon
- ^ #smallQuitIcon asIcon
\ No newline at end of file
+ ^ self iconNamed: #smallQuitIcon
\ No newline at end of file

diff:
accessing
icon
- ^ #smallUpdateIcon asIcon
\ No newline at end of file
+ ^ self iconNamed: #smallUpdateIcon
\ No newline at end of file

diff:
@@ -2,3 +2,5 @@ SystemOrganization addCategory: #'PharoLauncher-Core'!
SystemOrganization addCategory: 'PharoLauncher-Core-Commands'!
SystemOrganization addCategory: 'PharoLauncher-Core-Model'!
SystemOrganization addCategory: 'PharoLauncher-Core-Settings'!
+el'!
+SystemOrganization addCategory: #'PharoLauncher-Core-Settings'!

diff:
-tests
-testCanListIntalledPackages
- | list |
- list := PhLAboutCommand new launcherPackageList.
- self
- assert: list size
- equals: 5.
- self
- assertCollection: (PhLAboutCommand new launcherPackageList collect: [ :s | s copyUpToLast: $- ])
- hasSameElements: #( 'PharoLauncher-Core'
- 'PharoLauncher-Download'
- 'PharoLauncher-Spec'
- 'PharoLauncher-Tests-Core'
- 'PharoLauncher-Tests-Download' )
\ No newline at end of file

diff:
-{
- "commentStamp" : "",
- "super" : "TestCase",
- "category" : "PharoLauncher-Tests-Core",
- "classinstvars" : [ ],
- "pools" : [ ],
- "classvars" : [ ],
- "instvars" : [ ],
- "name" : "PhLAboutCommandTest",
- "type" : "normal"
-}
\ No newline at end of file


message: fix filetree

diff:
@@ -2,5 +2,3 @@ SystemOrganization addCategory: #'PharoLauncher-Core'!
SystemOrganization addCategory: 'PharoLauncher-Core-Commands'!
SystemOrganization addCategory: 'PharoLauncher-Core-Model'!
SystemOrganization addCategory: 'PharoLauncher-Core-Settings'!
\ No newline at end of file
-el'!
-SystemOrganization addCategory: #'PharoLauncher-Core-Settings'!

original_message: fix filetree


message: Closes Do not register to session manager

diff:
class initialization
initialize
- super initialize.
- SessionManager default registerToolClassNamed: self name
\ No newline at end of file
+
+ "SessionManager default registerToolClassNamed: self name"
\ No newline at end of file

original_message: Closes #177: Do not register to session manager


message: Closes do not register to startup

diff:
@@ -2,7 +2,7 @@ initialization
initialize
"Must be run before any write acess to the file system.
UI should already be usable!"
- SessionManager default
+ "SessionManager default
register: (ClassSessionHandler forClassNamed: self name)
inCategory: SessionManager default toolsCategory
- atPriority: 1
\ No newline at end of file
+ atPriority: 1"
\ No newline at end of file

diff:
SystemOrganization addCategory: #'PharoLauncher-Core'!
SystemOrganization addCategory: 'PharoLauncher-Core-Commands'!
SystemOrganization addCategory: 'PharoLauncher-Core-Model'!
-SystemOrganization addCategory: 'PharoLauncher-Core-Settings'!
-el'!
SystemOrganization addCategory: #'PharoLauncher-Core-Settings'!
+SystemOrganization addCategory: 'PharoLauncher-Core-Settings'!
+gs'!

original_message: Closes #177: do not register to startup


message: Do not call super intialize in class side

diff:
class initialization
initialize
- super initialize.
+
PhLStartupManager addToLauncherStartUpList: self
\ No newline at end of file


message: Set pharo version

diff:
#!/usr/bin/env groovy
-//Set configurable properties
-properties([
- disableConcurrentBuilds(),
- parameters([
- string(name: 'VERSION', defaultValue: 'bleedingEdge', description: 'Which Pharo Launcher version to build?'),
- string(name: 'PHARO', defaultValue: '61', description: 'Which Pharo image version to use?'),
- string(name: 'VM', defaultValue: 'vm', description: 'Which Pharo vm to use?')])
-])
+properties([disableConcurrentBuilds()])
try {
def builders = [:]
- builders['32'] = { buildArchitecture('32') }
- builders['64'] = { buildArchitecture('64') }
+ builders['pharo7-32'] = { buildArchitecture('32', '70') }
+ builders['pharo7-64'] = { buildArchitecture('64', '70') }
+ builders['pharo6-32'] = { buildArchitecture('32', '61') }
+ builders['pharo6-64'] = { buildArchitecture('64', '61') }
node('linux') {
stage('Prepare upload') {
cleanUploadFolderIfNeeded(params.VERSION)
@@ -32,28 +27,33 @@ try {
notifyBuild()
}
-def buildArchitecture(architecture) {
- withEnv(["ARCHITECTURE=${architecture}"]) {
+def buildArchitecture(architecture, pharoVersion) {
+ withEnv(["ARCHITECTURE=${architecture}", "PHARO=${pharoVersion}"]) {
node('linux') {
step([$class: 'WsCleanup'])
- stage("Build ${architecture}-bits") {
+ stage("Build Pharo${pharoVersion}-${architecture}-bits") {
dir("${architecture}") {
checkout scm
dir('pharo-build-scripts') {
git('https://github.com/pharo-project/pharo-build-scripts.git')
}
- sh "./build.sh prepare $params.VERSION"
+ sh "./build.sh prepare"
}
}
- stage("Test ${architecture}-bits") {
+ stage("Test Pharo${pharoVersion}-${architecture}-bits") {
dir("${architecture}") {
- sh './build.sh test'
+ sh "./build.sh test"
junit '*.xml'
}
}
- stage("Packaging-developer ${architecture}-bits") {
+ if (pharoVersion == '70'){
+ //Do only build and run tests on pharo 70 for now
+ return;
+ }
+
+ stage("Packaging-developer Pharo${pharoVersion}-${architecture}-bits") {
dir("${architecture}") {
sh './build.sh developer'
archiveArtifacts artifacts: 'PharoLauncher-developer*.zip, version.txt', fingerprint: true
@@ -62,7 +62,7 @@ def buildArchitecture(architecture) {
}
}
- stage("Packaging-user ${architecture}-bits") {
+ stage("Packaging-user Pharo${pharoVersion}-${architecture}-bits") {
dir("${architecture}") {
sh './build.sh user'
stash includes: 'build.sh, mac-installer-background.png, pharo-build-scripts/**, mac/**, windows/**, linux/**, signing/*.p12.enc, icons/**, launcher-version.txt, One/**', name: "pharo-launcher-one-${architecture}"
@@ -72,7 +72,7 @@ def buildArchitecture(architecture) {
}
}
- stage("Packaging-Linux ${architecture}-bits") {
+ stage("Packaging-Linux Pharo${pharoVersion}-${architecture}-bits") {
dir("${architecture}") {
sh './build.sh linux-package'
packageFile = 'PharoLauncher-linux-*-' + fileNameArchSuffix(architecture) + '.zip'
@@ -83,7 +83,7 @@ def buildArchitecture(architecture) {
}
node('windows') {
if (architecture == '32') {
- stage("Packaging-Windows ${architecture}-bits") {
+ stage("Packaging-Windows Pharo${pharoVersion}-${architecture}-bits") {
step([$class: 'WsCleanup'])
unstash "pharo-launcher-one-${architecture}"
withCredentials([usernamePassword(credentialsId: 'inriasoft-windows-developper', passwordVariable: 'PHARO_CERT_PASSWORD', usernameVariable: 'PHARO_SIGN_IDENTITY')]) {
@@ -95,7 +95,7 @@ def buildArchitecture(architecture) {
}
}
node('osx') {
- stage("Packaging-Mac ${architecture}-bits") {
+ stage("Packaging-Mac Pharo${pharoVersion}-${architecture}-bits") {
step([$class: 'WsCleanup'])
dir("${architecture}") {
unstash "pharo-launcher-one-${architecture}"
@@ -108,7 +108,7 @@ def buildArchitecture(architecture) {
}
}
node('linux') {
- stage("Deploy ${architecture}-bits") {
+ stage("Deploy Pharo${pharoVersion}-${architecture}-bits") {
step([$class: 'WsCleanup'])
dir("${architecture}") {
if (currentBuild.result == null || currentBuild.result == 'SUCCESS') {

original_message: Set pharo version


message: Pefix directories with pharo version

diff:
@@ -32,7 +32,7 @@ def buildArchitecture(architecture, pharoVersion) {
node('linux') {
step([$class: 'WsCleanup'])
stage("Build Pharo${pharoVersion}-${architecture}-bits") {
- dir("${architecture}") {
+ dir("Pharo${pharoVersion}-${architecture}") {
checkout scm
dir('pharo-build-scripts') {
git('https://github.com/pharo-project/pharo-build-scripts.git')
@@ -42,7 +42,7 @@ def buildArchitecture(architecture, pharoVersion) {
}
stage("Test Pharo${pharoVersion}-${architecture}-bits") {
- dir("${architecture}") {
+ dir("Pharo${pharoVersion}-${architecture}") {
sh "./build.sh test"
junit '*.xml'
}
@@ -54,7 +54,7 @@ def buildArchitecture(architecture, pharoVersion) {
}
stage("Packaging-developer Pharo${pharoVersion}-${architecture}-bits") {
- dir("${architecture}") {
+ dir("Pharo${pharoVersion}-${architecture}") {
sh './build.sh developer'
archiveArtifacts artifacts: 'PharoLauncher-developer*.zip, version.txt', fingerprint: true
if ( isBleedingEdgeVersion() )
@@ -63,7 +63,7 @@ def buildArchitecture(architecture, pharoVersion) {
}
stage("Packaging-user Pharo${pharoVersion}-${architecture}-bits") {
- dir("${architecture}") {
+ dir("Pharo${pharoVersion}-${architecture}") {
sh './build.sh user'
stash includes: 'build.sh, mac-installer-background.png, pharo-build-scripts/**, mac/**, windows/**, linux/**, signing/*.p12.enc, icons/**, launcher-version.txt, One/**', name: "pharo-launcher-one-${architecture}"
archiveArtifacts artifacts: 'PharoLauncher-user-*.zip', fingerprint: true
@@ -73,7 +73,7 @@ def buildArchitecture(architecture, pharoVersion) {
}
stage("Packaging-Linux Pharo${pharoVersion}-${architecture}-bits") {
- dir("${architecture}") {
+ dir("Pharo${pharoVersion}-${architecture}") {
sh './build.sh linux-package'
packageFile = 'PharoLauncher-linux-*-' + fileNameArchSuffix(architecture) + '.zip'
archiveArtifacts artifacts: packageFile, fingerprint: true
@@ -97,7 +97,7 @@ def buildArchitecture(architecture, pharoVersion) {
node('osx') {
stage("Packaging-Mac Pharo${pharoVersion}-${architecture}-bits") {
step([$class: 'WsCleanup'])
- dir("${architecture}") {
+ dir("Pharo${pharoVersion}-${architecture}") {
unstash "pharo-launcher-one-${architecture}"
withCredentials([usernamePassword(credentialsId: 'inriasoft-osx-developer', passwordVariable: 'PHARO_CERT_PASSWORD', usernameVariable: 'PHARO_SIGN_IDENTITY')]) {
sh './build.sh mac-package'
@@ -110,7 +110,7 @@ def buildArchitecture(architecture, pharoVersion) {
node('linux') {
stage("Deploy Pharo${pharoVersion}-${architecture}-bits") {
step([$class: 'WsCleanup'])
- dir("${architecture}") {
+ dir("Pharo${pharoVersion}-${architecture}") {
if (currentBuild.result == null || currentBuild.result == 'SUCCESS') {
if (architecture == '32') {
unstash "pharo-launcher-win-${architecture}-package"

original_message: Pefix directories with pharo version


message: Use better workspace cleanup command

diff:
@@ -30,7 +30,7 @@ try {
def buildArchitecture(architecture, pharoVersion) {
withEnv(["ARCHITECTURE=${architecture}", "PHARO=${pharoVersion}"]) {
node('linux') {
- step([$class: 'WsCleanup'])
+ cleanWs()
stage("Build Pharo${pharoVersion}-${architecture}-bits") {
dir("Pharo${pharoVersion}-${architecture}") {
checkout scm
@@ -84,7 +84,7 @@ def buildArchitecture(architecture, pharoVersion) {
node('windows') {
if (architecture == '32') {
stage("Packaging-Windows Pharo${pharoVersion}-${architecture}-bits") {
- step([$class: 'WsCleanup'])
+ cleanWs()
unstash "pharo-launcher-one-${architecture}"
withCredentials([usernamePassword(credentialsId: 'inriasoft-windows-developper', passwordVariable: 'PHARO_CERT_PASSWORD', usernameVariable: 'PHARO_SIGN_IDENTITY')]) {
bat 'bash -c "./build.sh win-package"'
@@ -96,7 +96,7 @@ def buildArchitecture(architecture, pharoVersion) {
}
node('osx') {
stage("Packaging-Mac Pharo${pharoVersion}-${architecture}-bits") {
- step([$class: 'WsCleanup'])
+ cleanWs()
dir("Pharo${pharoVersion}-${architecture}") {
unstash "pharo-launcher-one-${architecture}"
withCredentials([usernamePassword(credentialsId: 'inriasoft-osx-developer', passwordVariable: 'PHARO_CERT_PASSWORD', usernameVariable: 'PHARO_SIGN_IDENTITY')]) {
@@ -109,7 +109,6 @@ def buildArchitecture(architecture, pharoVersion) {
}
node('linux') {
stage("Deploy Pharo${pharoVersion}-${architecture}-bits") {
- step([$class: 'WsCleanup'])
dir("Pharo${pharoVersion}-${architecture}") {
if (currentBuild.result == null || currentBuild.result == 'SUCCESS') {
if (architecture == '32') {

original_message: Use better workspace cleanup command


message: Use git version

diff:
@@ -30,7 +30,7 @@ try {
def buildArchitecture(architecture, pharoVersion) {
withEnv(["ARCHITECTURE=${architecture}", "PHARO=${pharoVersion}"]) {
node('linux') {
- cleanWs()
+ deleteDir()
stage("Build Pharo${pharoVersion}-${architecture}-bits") {
dir("Pharo${pharoVersion}-${architecture}") {
checkout scm
@@ -84,7 +84,7 @@ def buildArchitecture(architecture, pharoVersion) {
node('windows') {
if (architecture == '32') {
stage("Packaging-Windows Pharo${pharoVersion}-${architecture}-bits") {
- cleanWs()
+ deleteDir()
unstash "pharo-launcher-one-${architecture}"
withCredentials([usernamePassword(credentialsId: 'inriasoft-windows-developper', passwordVariable: 'PHARO_CERT_PASSWORD', usernameVariable: 'PHARO_SIGN_IDENTITY')]) {
bat 'bash -c "./build.sh win-package"'
@@ -96,7 +96,7 @@ def buildArchitecture(architecture, pharoVersion) {
}
node('osx') {
stage("Packaging-Mac Pharo${pharoVersion}-${architecture}-bits") {
- cleanWs()
+ deleteDir()
dir("Pharo${pharoVersion}-${architecture}") {
unstash "pharo-launcher-one-${architecture}"
withCredentials([usernamePassword(credentialsId: 'inriasoft-osx-developer', passwordVariable: 'PHARO_CERT_PASSWORD', usernameVariable: 'PHARO_SIGN_IDENTITY')]) {
@@ -110,6 +110,7 @@ def buildArchitecture(architecture, pharoVersion) {
node('linux') {
stage("Deploy Pharo${pharoVersion}-${architecture}-bits") {
dir("Pharo${pharoVersion}-${architecture}") {
+ deleteDir()
if (currentBuild.result == null || currentBuild.result == 'SUCCESS') {
if (architecture == '32') {
unstash "pharo-launcher-win-${architecture}-package"

original_message: Use git version


message: Make it bleedingEdge for every build temporarily

diff:
@@ -99,7 +99,7 @@ function package_windows_version() {
"$signtool" sign //f pharo-windows-certificate.p12 //p ${PHARO_CERT_PASSWORD} Pharo/Pharo.exe
"$signtool" sign //f pharo-windows-certificate.p12 //p ${PHARO_CERT_PASSWORD} Pharo/PharoConsole.exe
- cmd /c windows\\build-launcher-installer.bat
+ INSTALLER_VERSION=bleedingEdge cmd /c windows\\build-launcher-installer.bat
"$signtool" sign //f pharo-windows-certificate.p12 //p ${PHARO_CERT_PASSWORD} pharo-launcher-${VERSION}.msi
rm pharo-windows-certificate.p12
}

diff:
SETLOCAL
REM VERSION cannot be a string in Advanced Installer. Let's use 0.0.0 for bleeding edge versions
-SET LAUNCHER_VERSION=%VERSION:bleedingEdge=0.0.0%
+SET LAUNCHER_VERSION=%INSTALLER_VERSION:bleedingEdge=0.0.0%
SET ADVINST=C:\Program Files (x86)\Caphyon\Advanced Installer 14.7\bin\x86\
SET PATH=%PATH%;%ADVINST%;


message: Be bleeding edge if pull request

diff:
@@ -47,12 +47,6 @@ def buildArchitecture(architecture, pharoVersion) {
junit '*.xml'
}
}
-
- if (pharoVersion == '70'){
- //Do only build and run tests on pharo 70 for now
- return;
- }
-
stage("Packaging-developer Pharo${pharoVersion}-${architecture}-bits") {
dir("Pharo${pharoVersion}-${architecture}") {
sh './build.sh developer'
@@ -182,7 +176,7 @@ def upload(file, launcherVersion) {
}
def isBleedingEdgeVersion() {
- return params.VERSION == 'bleedingEdge'
+ return isPullRequest()
}
def fileNameArchSuffix(architecture) {

original_message: Be bleeding edge if pull request


message: Remove git version from script for windows

diff:
@@ -156,7 +156,6 @@ function get_pharo_sources_version() {
PHARO=${PHARO:=61} # If PHARO not set, set it to 61.
VM=${VM:=vm} # If VM not set, set it to vm.
ARCHITECTURE=${ARCHITECTURE:-'32'} # If ARCH not set, set it to 32 bits
-VERSION=`git describe --always` #Extract VERSION from the current git repository. If the commit points to a tag, use the tag. Otherwise use the short commitish.
SCRIPT_TARGET=${1:-all}
echo "Running target $SCRIPT_TARGET"


message: Recovering SHA

diff:
@@ -28,20 +28,19 @@ try {
}
def buildArchitecture(architecture, pharoVersion) {
- withEnv(["ARCHITECTURE=${architecture}", "PHARO=${pharoVersion}", "VERSION=$env.sha1"]) {
- node('linux') {
+ withEnv(["ARCHITECTURE=${architecture}", "PHARO=${pharoVersion}"]) { node('linux') {
deleteDir()
+ def logSHA = sh(returnStdout: true, script: 'git log -1 --format="%p"').trim()
stage("Build Pharo${pharoVersion}-${architecture}-bits") {
dir("Pharo${pharoVersion}-${architecture}") {
- checkout scm
- sh "printenv"
dir('pharo-build-scripts') {
git('https://github.com/pharo-project/pharo-build-scripts.git')
}
sh "./build.sh prepare"
}
}
-
+ } }
+ withEnv(["VERSION=$logSHA"]) { node('linux') {
stage("Test Pharo${pharoVersion}-${architecture}-bits") {
dir("Pharo${pharoVersion}-${architecture}") {
sh "./build.sh test"

original_message: Recovering SHA


message: refactor to obtain the commit hash

diff:
properties([disableConcurrentBuilds()])
try {
+
+ // The commit hash will be recovered in the first stage
+ def commitHash = null
def builders = [:]
- builders['pharo7-32'] = { buildArchitecture('32', '70') }
- builders['pharo7-64'] = { buildArchitecture('64', '70') }
- builders['pharo6-32'] = { buildArchitecture('32', '61') }
- builders['pharo6-64'] = { buildArchitecture('64', '61') }
+ builders['pharo7-32'] = { buildArchitecture('32', '70', commitHash) }
+ builders['pharo7-64'] = { buildArchitecture('64', '70', commitHash) }
+ builders['pharo6-32'] = { buildArchitecture('32', '61', commitHash) }
+ builders['pharo6-64'] = { buildArchitecture('64', '61', commitHash) }
+
+ stage('Checkout from SCM') {
+ checkout scm
+ commitHash = sh(returnStdout: true, script: 'git log -1 --format="%p"').trim()
+ }
node('linux') {
stage('Prepare upload') {
cleanUploadFolderIfNeeded(params.VERSION)
@@ -27,10 +35,10 @@ try {
notifyBuild()
}
-def buildArchitecture(architecture, pharoVersion) {
- withEnv(["ARCHITECTURE=${architecture}", "PHARO=${pharoVersion}"]) { node('linux') {
+def buildArchitecture(architecture, pharoVersion, commitHash) {
+ withEnv(["ARCHITECTURE=${architecture}", "PHARO=${pharoVersion}", "VERSION=$commitHash"]) {
+ node('linux') {
deleteDir()
- def logSHA = sh(returnStdout: true, script: 'git log -1 --format="%p"').trim()
stage("Build Pharo${pharoVersion}-${architecture}-bits") {
dir("Pharo${pharoVersion}-${architecture}") {
dir('pharo-build-scripts') {
@@ -39,8 +47,6 @@ def buildArchitecture(architecture, pharoVersion) {
sh "./build.sh prepare"
}
}
- } }
- withEnv(["VERSION=$logSHA"]) { node('linux') {
stage("Test Pharo${pharoVersion}-${architecture}-bits") {
dir("Pharo${pharoVersion}-${architecture}") {
sh "./build.sh test"

original_message: refactor to obtain the commit hash


message: Do not build developer image

diff:
@@ -43,13 +43,6 @@ def buildArchitecture(architecture, pharoVersion) {
sh "VERSION=$commitHash ./build.sh test"
junit '*.xml'
}
- stage("Packaging-developer Pharo${pharoVersion}-${architecture}-bits") {
- sh "VERSION=$commitHash ./build.sh developer"
- archiveArtifacts artifacts: 'PharoLauncher-developer*.zip, version.txt', fingerprint: true
- if ( isBleedingEdgeVersion() ) {
- upload('PharoLauncher-developer*.zip', params.VERSION)
- }
- }
stage("Packaging-user Pharo${pharoVersion}-${architecture}-bits") {
sh "VERSION=$commitHash ./build.sh user"
stash includes: 'build.sh, mac-installer-background.png, pharo-build-scripts/**, mac/**, windows/**, linux/**, signing/*.p12.enc, icons/**, launcher-version.txt, One/**', name: "pharo-launcher-one-${architecture}"

original_message: Do not build developer image


message: fix typo in windows stage

diff:
@@ -27,7 +27,7 @@ def buildArchitecture(architecture, pharoVersion) {
withEnv(["ARCHITECTURE=${architecture}", "PHARO=${pharoVersion}"]) {
node('linux') {
dir("Pharo${pharoVersion}-${architecture}") {
-
+ deleteDir()
stage('Checkout from SCM') {
checkout scm
commitHash = sh(returnStdout: true, script: 'git log -1 --format="%p"').trim()

original_message: fix typo in windows stage


message: build scripts do not work on a subdirectory...

diff:
@@ -62,7 +62,6 @@ def buildArchitecture(architecture, pharoVersion) {
node('windows') {
if (architecture == '32') {
stage("Packaging-Windows Pharo${pharoVersion}-${architecture}-bits") {
- dir("Pharo${pharoVersion}-${architecture}") {
deleteDir()
unstash "pharo-launcher-one-${architecture}"
withCredentials([usernamePassword(credentialsId: 'inriasoft-windows-developper', passwordVariable: 'PHARO_CERT_PASSWORD', usernameVariable: 'PHARO_SIGN_IDENTITY')]) {
@@ -73,7 +72,6 @@ def buildArchitecture(architecture, pharoVersion) {
}
}
}
- }
node('osx') {
stage("Packaging-Mac Pharo${pharoVersion}-${architecture}-bits") {
dir("Pharo${pharoVersion}-${architecture}") {


message: avoid creating useless stages

diff:
properties([disableConcurrentBuilds()])
try {
- stage('Prepare upload') {
- node('linux') {
cleanUploadFolderIfNeeded(params.VERSION)
- }
- }
-
buildArchitecture('32', '61')
-
- node('linux') {
- stage('Upload finalization') {
finalizeUpload(params.VERSION)
- }
- }
} catch(exception) {
currentBuild.result = 'FAILURE'
throw exception
@@ -121,11 +111,15 @@ def cleanUploadFolderIfNeeded(launcherVersion) {
return;
}
+ stage('Prepare upload') {
+ node('linux') {
sshagent (credentials: ['b5248b59-a193-4457-8459-e28e9eb29ed7']) {
sh "ssh -o StrictHostKeyChecking=no \
pharoorgde@ssh.cluster023.hosting.ovh.net rm -rf files/pharo-launcher/tmp-${launcherVersion}"
}
}
+ }
+}
def finalizeUpload(launcherVersion) {
if (isPullRequest()) {
@@ -134,6 +128,8 @@ def finalizeUpload(launcherVersion) {
return;
}
+ node('linux') {
+ stage('Upload finalization') {
sshagent (credentials: ['b5248b59-a193-4457-8459-e28e9eb29ed7']) {
sh "ssh -o StrictHostKeyChecking=no \
pharoorgde@ssh.cluster023.hosting.ovh.net rm -rf files/pharo-launcher/${launcherVersion}"
@@ -141,6 +137,8 @@ def finalizeUpload(launcherVersion) {
pharoorgde@ssh.cluster023.hosting.ovh.net mv files/pharo-launcher/tmp-${launcherVersion} files/pharo-launcher/${launcherVersion}"
}
}
+ }
+}
def upload(file, launcherVersion) {
if (isPullRequest()) {

original_message: avoid creating useless stages


message: remove special upload case

diff:
@@ -37,9 +37,6 @@ def buildArchitecture(architecture, pharoVersion) {
sh "VERSION=$commitHash ./build.sh user"
stash includes: 'build.sh, mac-installer-background.png, pharo-build-scripts/**, mac/**, windows/**, linux/**, signing/*.p12.enc, icons/**, launcher-version.txt, One/**', name: "pharo-launcher-one-${architecture}"
archiveArtifacts artifacts: 'PharoLauncher-user-*.zip', fingerprint: true
- if ( isBleedingEdgeVersion() ) {
- upload('PharoLauncher-user-*.zip', params.VERSION)
- }
}
stage("Packaging-Linux Pharo${pharoVersion}-${architecture}-bits") {
sh "VERSION=$commitHash ./build.sh linux-package"
@@ -157,10 +154,6 @@ def upload(file, launcherVersion) {
}
}
-def isBleedingEdgeVersion() {
- return isPullRequest()
-}
-
def fileNameArchSuffix(architecture) {
return (architecture == '32') ? 'x86' : 'x64'
}

original_message: remove special upload case


message: Do not notify if in PR

diff:
@@ -92,6 +92,12 @@ def buildArchitecture(architecture, pharoVersion) {
}
def notifyBuild() {
+ if (isPullRequest()) {
+ //Only notify if not in a PR (i.e., CHANGE_ID not empty)
+ echo "[DO NO NOTIFY] In PR " + (env.CHANGE_ID?.trim())
+ return;
+ }
+
if (currentBuild.result != 'SUCCESS') { // Possible values: SUCCESS, UNSTABLE, FAILURE
// Send an email only if the build status has changed from green to unstable or red
emailext subject: '$DEFAULT_SUBJECT',

original_message: Do not notify if in PR


message: build all platforms

diff:
@@ -5,6 +5,9 @@ properties([disableConcurrentBuilds()])
try {
cleanUploadFolderIfNeeded(params.VERSION)
buildArchitecture('32', '61')
+ buildArchitecture('64', '61')
+ buildArchitecture('32', '70')
+ buildArchitecture('64', '70')
finalizeUpload(params.VERSION)
} catch(exception) {
currentBuild.result = 'FAILURE'

original_message: build all platforms


message: Do not deploy if in PR

diff:
@@ -75,6 +75,11 @@ def buildArchitecture(architecture, pharoVersion) {
}
}
}
+
+ //Do not deploy if in PR
+ if (isPullRequest()){
+ return;
+ }
node('linux') {
stage("Deploy Pharo${pharoVersion}-${architecture}-bits") {
dir("Pharo${pharoVersion}-${architecture}") {

original_message: Do not deploy if in PR


message: Add pharo version into file name

diff:
@@ -116,12 +116,7 @@ function set_env() {
exit 1
;;
esac
- if [ "$VERSION" == "bleedingEdge" ]
- then
- VERSION_NUMBER="$VERSION-$DATE-$ARCH_SUFFIX"
- else
- VERSION_NUMBER="$VERSION-$ARCH_SUFFIX"
- fi
+ VERSION_NUMBER="$VERSION-$ARCH_SUFFIX-Pharo$PHARO"
set_pharo_sources_version
}

original_message: Add pharo version into file name


message: Try single scm checkout

diff:
@@ -4,6 +4,13 @@ properties([disableConcurrentBuilds()])
try {
cleanUploadFolderIfNeeded(params.VERSION)
+ node('linux') {
+ stage('Checkout from SCM') {
+ checkout scm
+ commitHash = sh(returnStdout: true, script: 'git log -1 --format="%p"').trim()
+ }
+ }
+
buildArchitecture('32', '61')
buildArchitecture('64', '61')
buildArchitecture('32', '70')
@@ -19,13 +26,7 @@ try {
def buildArchitecture(architecture, pharoVersion) {
withEnv(["ARCHITECTURE=${architecture}", "PHARO=${pharoVersion}"]) {
node('linux') {
- dir("Pharo${pharoVersion}-${architecture}") {
deleteDir()
- stage('Checkout from SCM') {
- checkout scm
- commitHash = sh(returnStdout: true, script: 'git log -1 --format="%p"').trim()
- }
-
stage("Build Pharo${pharoVersion}-${architecture}-bits") {
dir('pharo-build-scripts') {
git('https://github.com/pharo-project/pharo-build-scripts.git')
@@ -48,7 +49,6 @@ def buildArchitecture(architecture, pharoVersion) {
upload(packageFile, params.VERSION)
}
}
- }
node('windows') {
if (architecture == '32') {
stage("Packaging-Windows Pharo${pharoVersion}-${architecture}-bits") {
@@ -64,7 +64,6 @@ def buildArchitecture(architecture, pharoVersion) {
}
node('osx') {
stage("Packaging-Mac Pharo${pharoVersion}-${architecture}-bits") {
- dir("Pharo${pharoVersion}-${architecture}") {
deleteDir()
unstash "pharo-launcher-one-${architecture}"
withCredentials([usernamePassword(credentialsId: 'inriasoft-osx-developer', passwordVariable: 'PHARO_CERT_PASSWORD', usernameVariable: 'PHARO_SIGN_IDENTITY')]) {
@@ -74,7 +73,6 @@ def buildArchitecture(architecture, pharoVersion) {
stash includes: 'PharoLauncher*.dmg', name: "pharo-launcher-osx-${architecture}-package"
}
}
- }
//Do not deploy if in PR
if (isPullRequest()){
@@ -82,8 +80,6 @@ def buildArchitecture(architecture, pharoVersion) {
}
node('linux') {
stage("Deploy Pharo${pharoVersion}-${architecture}-bits") {
- dir("Pharo${pharoVersion}-${architecture}") {
- deleteDir()
if (currentBuild.result == null || currentBuild.result == 'SUCCESS') {
if (architecture == '32') {
unstash "pharo-launcher-win-${architecture}-package"
@@ -97,7 +93,6 @@ def buildArchitecture(architecture, pharoVersion) {
}
}
}
-}
def notifyBuild() {
if (isPullRequest()) {

original_message: Try single scm checkout


message: remove extra stage

diff:
@@ -4,13 +4,6 @@ properties([disableConcurrentBuilds()])
try {
cleanUploadFolderIfNeeded(params.VERSION)
- node('linux') {
- stage('Checkout from SCM') {
- checkout scm
- commitHash = sh(returnStdout: true, script: 'git log -1 --format="%p"').trim()
- }
- }
-
buildArchitecture('32', '61')
buildArchitecture('64', '61')
buildArchitecture('32', '70')
@@ -27,6 +20,8 @@ def buildArchitecture(architecture, pharoVersion) {
withEnv(["ARCHITECTURE=${architecture}", "PHARO=${pharoVersion}"]) {
node('linux') {
deleteDir()
+ checkout scm
+
stage("Build Pharo${pharoVersion}-${architecture}-bits") {
dir('pharo-build-scripts') {
git('https://github.com/pharo-project/pharo-build-scripts.git')

original_message: remove extra stage


message: remove extra scm stage

diff:
@@ -19,8 +19,10 @@ try {
def buildArchitecture(architecture, pharoVersion) {
withEnv(["ARCHITECTURE=${architecture}", "PHARO=${pharoVersion}"]) {
node('linux') {
+ //To ensure a clean build we delete the directory, checkout from scm and get the commit hash all from scratch
deleteDir()
checkout scm
+ commitHash = sh(returnStdout: true, script: 'git log -1 --format="%p"').trim()
stage("Build Pharo${pharoVersion}-${architecture}-bits") {
dir('pharo-build-scripts') {

original_message: remove extra scm stage


message: Use small hash

diff:
@@ -22,7 +22,7 @@ def buildArchitecture(architecture, pharoVersion) {
//To ensure a clean build we delete the directory, checkout from scm and get the commit hash all from scratch
deleteDir()
checkout scm
- commitHash = sh(returnStdout: true, script: 'git log -1 --format="%p"').trim()
+ commitHash = sh(returnStdout: true, script: 'git log -1 --format="%h"').trim()
stage("Build Pharo${pharoVersion}-${architecture}-bits") {
dir('pharo-build-scripts') {

original_message: Use small hash


message: Use version in upload too

diff:
properties([disableConcurrentBuilds()])
try {
- cleanUploadFolderIfNeeded(params.VERSION)
+ def version = getCommitHash()
+ cleanUploadFolderIfNeeded(version)
buildArchitecture('32', '61')
buildArchitecture('64', '61')
buildArchitecture('32', '70')
buildArchitecture('64', '70')
- finalizeUpload(params.VERSION)
+ finalizeUpload(version)
} catch(exception) {
currentBuild.result = 'FAILURE'
throw exception
@@ -16,6 +17,15 @@ try {
notifyBuild()
}
+def getCommitHash(){
+ node('linux') {
+ //To ensure a clean build we delete the directory, checkout from scm and get the commit hash all from scratch
+ deleteDir()
+ checkout scm
+ return sh(returnStdout: true, script: 'git log -1 --format="%h"').trim()
+ }
+}
+
def buildArchitecture(architecture, pharoVersion) {
withEnv(["ARCHITECTURE=${architecture}", "PHARO=${pharoVersion}"]) {
node('linux') {
@@ -43,7 +53,7 @@ def buildArchitecture(architecture, pharoVersion) {
sh "VERSION=$commitHash ./build.sh linux-package"
packageFile = 'PharoLauncher-linux-*-' + fileNameArchSuffix(architecture) + '.zip'
archiveArtifacts artifacts: packageFile, fingerprint: true
- upload(packageFile, params.VERSION)
+ upload(packageFile, commitHash)
}
}
node('windows') {
@@ -80,11 +90,11 @@ def buildArchitecture(architecture, pharoVersion) {
if (currentBuild.result == null || currentBuild.result == 'SUCCESS') {
if (architecture == '32') {
unstash "pharo-launcher-win-${architecture}-package"
- upload('pharo-launcher-*.msi', params.VERSION)
+ upload('pharo-launcher-*.msi', commitHash)
}
unstash "pharo-launcher-osx-${architecture}-package"
fileToUpload = 'PharoLauncher*-' + fileNameArchSuffix(architecture) + '.dmg'
- upload(fileToUpload, params.VERSION)
+ upload(fileToUpload, commitHash)
}
}
}

original_message: Use version in upload too


diff:
-development support
-DevelopmentSupport
-
-"See the methods in the 'development support' category on the class-side of MetacelloBaseConfiguration. Decide what development support methods you would like to use and copy them the the class-side of your configuration."
- <apiDocumentation>

diff:
-private
-baseConfigurationClassIfAbsent: aBlock
-
- ^Smalltalk
- at: #MetacelloBaseConfiguration
- ifAbsent: [
- self ensureMetacelloBaseConfiguration.
- Smalltalk at: #MetacelloBaseConfiguration ifAbsent: aBlock ].

diff:
-private
-ensureMetacello
-
- (self baseConfigurationClassIfAbsent: []) ensureMetacello
\ No newline at end of file

diff:
-private
-ensureMetacelloBaseConfiguration
-
- Smalltalk
- at: #MetacelloBaseConfiguration
- ifAbsent: [
- | repository version |
- repository := MCHttpRepository location: 'http://seaside.gemstone.com/ss/metacello' user: '' password: ''.
- repository
- versionReaderForFileNamed: 'Metacello-Base-DaleHenrichs.2.mcz'
- do: [ :reader |
- version := reader version.
- version load.
- version workingCopy repositoryGroup addRepository: repository ] ]
\ No newline at end of file

diff:
-metacello tool support
-isMetacelloConfig
- "Answer true and the Metacello tools will operate on you"
-
- ^true
\ No newline at end of file

diff:
-loading
-load
- "Load the #stable version defined for this platform. The #stable version is the version that is recommended to be used on this platform."
-
- "self load"
-
- <apiDocumentation>
- ^(self project version: #stable) load
\ No newline at end of file

diff:
-loading
-loadBleedingEdge
- "Load the latest versions of the mcz files defined for this project. It is not likely that the #bleedingEdge has been tested."
-
- "self loadBleedingEdge"
-
- <apiDocumentation>
- ^(self project version: #bleedingEdge) load
\ No newline at end of file

diff:
-loading
-loadDevelopment
- "Load the #development version defined for this platform. The #development version will change over time and is not expected to be stable."
-
- "self loadDevelopment"
-
- <apiDocumentation>
- ^(self project version: #development) load
\ No newline at end of file

diff:
-accessing
-project
-
- ^self new project
\ No newline at end of file

diff:
-development support
-validate
- "Check the configuration for Errors, Critical Warnings, and Warnings (see class comment for MetacelloMCVersionValidator for more information).
- Errors identify specification issues that will result in unexpected behaviour when you load the configuration.
- Critical Warnings identify specification issues that may result in unexpected behavior when you load the configuration.
- Warnings identify specification issues that are technically correct, but are worth take a look at."
-
- "self validate"
-
- <apiDocumentation>
- self ensureMetacello.
- ^ ((Smalltalk at: #MetacelloToolBox) validateConfiguration: self debug: #() recurse: false) explore
\ No newline at end of file

original_message:
Remove unecessary methods from the baseline.

Fixes https://github.com/pharo-project/pharo-launcher/issues/161


message: Do not load the pharolauncher startup file if the image is not deployed

diff:
system startup
launcherStartUp
- self preferencesFile
- ifNotNil: [ self new treeHolder updateSettingNodes ]
\ No newline at end of file
+ PhLDeploymentScript isDeployed
+ ifFalse: [ ^ self ].
+ self preferencesFile ifNotNil: [ self new treeHolder updateSettingNodes ]
\ No newline at end of file

diff:
@@ -3,4 +3,3 @@ SystemOrganization addCategory: 'PharoLauncher-Core-Commands'!
SystemOrganization addCategory: 'PharoLauncher-Core-Model'!
SystemOrganization addCategory: #'PharoLauncher-Core-Settings'!
SystemOrganization addCategory: 'PharoLauncher-Core-Settings'!
\ No newline at end of file
-gs'!


message: Add timeout on build + begin to fix install on windows

diff:
@@ -5,10 +5,12 @@ properties([disableConcurrentBuilds()])
try {
def version = getCommitHash()
cleanUploadFolderIfNeeded(version)
+ timeout(time: 30, unit: 'MINUTES') {
buildArchitecture('32', '61')
buildArchitecture('64', '61')
buildArchitecture('32', '70')
buildArchitecture('64', '70')
+ }
finalizeUpload(version)
} catch(exception) {
currentBuild.result = 'FAILURE'

diff:
SETLOCAL
REM VERSION cannot be a string in Advanced Installer. Let's use 0.0.0 for bleeding edge versions
-SET LAUNCHER_VERSION=%INSTALLER_VERSION:bleedingEdge=0.0.0%
+SET LAUNCHER_VERSION=%INSTALLER_VERSION:0.0.0%
SET ADVINST=C:\Program Files (x86)\Caphyon\Advanced Installer 14.7\bin\x86\
SET PATH=%PATH%;%ADVINST%;
@@ -20,5 +20,5 @@ MOVE Pharo windows\Pharo-win\Pharo
cd windows
REM advinst.exe /newproject $ADVINST_PROJECT -lang en -overwrite
-advinst.exe /execute "%ADVINST_PROJECT%" "%ADVINST_COMMAND_FILE%"
+"%ADVINST%AdvancedInstaller.com" /execute "%ADVINST_PROJECT%" "%ADVINST_COMMAND_FILE%"
MOVE pharo-launcher.msi ..\pharo-launcher-%VERSION%.msi


message: Fix + avoid calls to Smalltalk (use FileLocator instead)

diff:
private
pathFor: treeNodeModel on: collection
-
- treeNodeModel parentNode ifNotNil:
- [ :node |
- self pathFor: node on: collection ].
-
- collection add: treeNodeModel content name
\ No newline at end of file
+ | content |
+ treeNodeModel parentNode ifNotNil: [ :node | self pathFor: node on: collection ].
+ content := treeNodeModel content.
+ collection
+ add:
+ (content isString
+ ifTrue: [ content printString ]
+ ifFalse: [ content name ])
\ No newline at end of file

diff:
private
pathNameFor: treeNodeModel on: writeStream
-
- treeNodeModel parentNode ifNotNil: [ :node |
+ | content |
+ treeNodeModel parentNode
+ ifNotNil: [ :node |
self pathNameFor: node on: writeStream.
writeStream nextPut: $- ].
-
- writeStream nextPutAll: treeNodeModel content name
\ No newline at end of file
+ content := treeNodeModel content.
+ writeStream
+ nextPutAll:
+ (content isString
+ ifTrue: [ content printString ]
+ ifFalse: [ content name ])
\ No newline at end of file

diff:
@@ -3,3 +3,4 @@ SystemOrganization addCategory: 'PharoLauncher-Core-Commands'!
SystemOrganization addCategory: 'PharoLauncher-Core-Model'!
SystemOrganization addCategory: #'PharoLauncher-Core-Settings'!
SystemOrganization addCategory: 'PharoLauncher-Core-Settings'!
+gs'!

diff:
@@ -2,7 +2,7 @@ tests
testCanDetectExecutablePath
"WARNING: this test is Linux specific!"
| vm vmFolder |
- vmFolder := Smalltalk imageDirectory asFileReference / 'pharo-vm'.
+ vmFolder := FileLocator imageDirectory asFileReference / 'pharo-vm'.
vm := PhLVirtualMachine directory: vmFolder.
self
assert: vm executablePath

diff:
tests
testCanDetectVMDirectory
"WARNING: this test is Linux specific!"
+
| vm |
- vm := PhLVirtualMachine directory: Smalltalk imageDirectory asFileReference / 'pharo-vm'.
+ vm := PhLVirtualMachine directory: FileLocator imageDirectory asFileReference / 'pharo-vm'.
self
assert: vm vmFolderPath
- equals: Smalltalk vmDirectory fullName
\ No newline at end of file
+ equals: FileLocator vmDirectory
\ No newline at end of file

original_message: Fix #171 + avoid calls to Smalltalk (use FileLocator instead)


message: Get the git version properly

diff:
@@ -37,7 +37,7 @@ function package_user_version() {
./pharo PharoLauncher.image eval --save "PhLDeploymentScript doAll"
# Set the launcher version on Pharo
- LAUNCHER_VERSION=git describe --tags
+ LAUNCHER_VERSION=$(eval 'git describe --tags')
./pharo PharoLauncher.image eval --save "PhLAboutCommand version: '$LAUNCHER_VERSION'"
# Faster the startup of the launcher image

original_message: Get the git version properly


message:
Update build-launcher-installer.bat
change in the REM

diff:
@@ -19,6 +19,6 @@ MKDIR windows\Pharo-win
MOVE Pharo windows\Pharo-win\Pharo
cd windows
-REM advinst.exe /newproject $ADVINST_PROJECT -lang en -overwrite
+REM "%ADVINST%AdvancedInstaller.com" /newproject $ADVINST_PROJECT -lang en -overwrite
"%ADVINST%AdvancedInstaller.com" /execute "%ADVINST_PROJECT%" "%ADVINST_COMMAND_FILE%"
MOVE pharo-launcher.msi ..\pharo-launcher-%VERSION%.msi


message:
add Spec70Compatibility for Pharo6
change deprecated icons

diff:
@@ -49,3 +49,9 @@ baseline: spec
spec
group: 'Default' with: #(#'PharoLauncher-Tests-Core' #'PharoLauncher-Tests-Download' #'PharoLauncher-Core' #'PharoLauncher-Download' #'PharoLauncher-Spec' 'PharoLauncher-Tests-SpecUI' );
group: 'Download' with: #(#'PharoLauncher-Download' #'PharoLauncher-Tests-Download' ). ].
+
+ spec for: #'pharo6.x' do: [
+ self spec70: spec.
+ spec
+ package: 'PharoLauncher-Spec' with: [
+ spec requires: #('Spec70Compatibility') ] ]
\ No newline at end of file

change_type: ADD

diff:
+baselines
+spec70: spec
+ "for pharo6 compatibility"
+ spec
+ baseline: 'Spec70Compatibility'
+ with: [ spec repository: 'github://pharo-contributions/Spec70Compatibility:v1.0.0/src' ]
\ No newline at end of file

diff:
accessing
icon
- ^ #blankIcon asIcon
\ No newline at end of file
+ ^ self iconNamed: #blankIcon
\ No newline at end of file

diff:
accessing
icon
- ^ #smallCopyIcon asIcon
\ No newline at end of file
+ ^ self iconNamed: #smallCopyIcon
\ No newline at end of file

diff:
accessing
icon
- ^ #smallInfoIcon asIcon
\ No newline at end of file
+ ^ self iconNamed: #smallInfoIcon
\ No newline at end of file

diff:
accessing
icon
- ^ #smallNewIcon asIcon
\ No newline at end of file
+ ^ self iconNamed: #smallNewIcon
\ No newline at end of file

diff:
accessing
icon
- ^ #refreshIcon asIcon
\ No newline at end of file
+ ^ self iconNamed: #refreshIcon
\ No newline at end of file

diff:
accessing
icon
- ^ #workspaceIcon asIcon
\ No newline at end of file
+ ^ self iconNamed: #workspaceIcon
\ No newline at end of file

diff:
accessing
icon
- ^ #openIcon asIcon
\ No newline at end of file
+ ^ self iconNamed: #openIcon
\ No newline at end of file

diff:
SystemOrganization addCategory: #'PharoLauncher-Core'!
SystemOrganization addCategory: 'PharoLauncher-Core-Commands'!
SystemOrganization addCategory: 'PharoLauncher-Core-Model'!
-SystemOrganization addCategory: #'PharoLauncher-Core-Settings'!
SystemOrganization addCategory: 'PharoLauncher-Core-Settings'!
+SystemOrganization addCategory: #'PharoLauncher-Core-Settings'!
+gs'!

original_message:
- add Spec70Compatibility for Pharo6
- change deprecated icons


message: remove dependency on Json (issue196)

diff:
@@ -4,11 +4,6 @@ baseline: spec
spec for: #'common' do: [
spec
- project: 'JSON' with: [
- spec
- className: #ConfigurationOfJSON;
- versionString: #'stable';
- repository: 'http://smalltalkhub.com/mc/PharoExtras/JSON/main/' ];
project: 'OSProcess' with: [
spec
className: #ConfigurationOfOSProcess;
@@ -35,7 +30,7 @@ baseline: spec
spec
package: #'ConfigurationOfPharoLauncher';
package: #'PharoLauncher-Core' with: [
- spec requires: #('XMLParser' 'Ston' 'JSON' ). ];
+ spec requires: #('XMLParser' 'Ston'). ];
package: #'PharoLauncher-Download' with: [
spec requires: #(#'PharoLauncher-Core' 'OSProcess' 'ProcessWrapper'). ];
package: #'PharoLauncher-Spec' with: [

diff:
-I stores metadata on true and false positive critics. These meta data are used by the SmalllintManifestChecker and the critics Browser
\ No newline at end of file
+I store metadata for this package. These meta data are used by other tools such as the SmalllintManifestChecker and the critics Browser
\ No newline at end of file

diff:
{
- "commentStamp" : "ChristopheDemarey 1/3/2018 11:17",
- "super" : "Object",
- "category" : "PharoLauncher-Core-Model",
+ "commentStamp" : "<historical>",
+ "super" : "PackageManifest",
+ "category" : "PharoLauncher-Core",
"classinstvars" : [ ],
"pools" : [ ],
"classvars" : [ ],

diff:
@@ -4,4 +4,4 @@ dictionary
readStreamDo: [ :aStream |
aStream atEnd
ifTrue: [ Dictionary new ]
- ifFalse: [ Json readFrom: aStream ] ]
\ No newline at end of file
+ ifFalse: [ STONJSON readFrom: aStream ] ]
\ No newline at end of file

diff:
private
saveToFile: aDictionary
- self cacheFile writeStreamDo: [ :aStream | aDictionary jsonWriteOn: aStream ]
\ No newline at end of file
+ self cacheFile writeStreamDo: [ :aStream | STONJSON put: aDictionary onStream: aStream ]
\ No newline at end of file

diff:
@@ -2,5 +2,5 @@ protected
jsonQuery: query
| queryUrl |
queryUrl := self url / 'api' / 'json' ? ('tree' -> query).
- ^ Json
- readFrom: (PhLDownloadManager default downloadToPositionableStream: queryUrl mimeType: ZnMimeType applicationJson)
\ No newline at end of file
+ ^ STONJSON
+ fromStream: (PhLDownloadManager default downloadToPositionableStream: queryUrl mimeType: ZnMimeType applicationJson)
\ No newline at end of file

diff:
+{
+ "commentStamp" : "<historical>",
+ "super" : "PackageManifest",
+ "category" : "PharoLauncher-Tests-Download",
+ "classinstvars" : [ ],
+ "pools" : [ ],
+ "classvars" : [ ],
+ "instvars" : [ ],
+ "name" : "ManifestPharoLauncherTestsDownload",
+ "type" : "normal"
+}
\ No newline at end of file

original_message: remove dependency on Json (issue196)


message: remove dependency on Json

diff:
@@ -4,4 +4,4 @@ dictionary
readStreamDo: [ :aStream |
aStream atEnd
ifTrue: [ Dictionary new ]
- ifFalse: [ Json readFrom: aStream ] ]
\ No newline at end of file
+ ifFalse: [ STONJSON fromStream: aStream ] ]
\ No newline at end of file

original_message: remove dependency on Json


message: fix filetream

diff:
@@ -2,4 +2,3 @@ SystemOrganization addCategory: #'PharoLauncher-Core'!
SystemOrganization addCategory: 'PharoLauncher-Core-Commands'!
SystemOrganization addCategory: 'PharoLauncher-Core-Model'!
SystemOrganization addCategory: #'PharoLauncher-Core-Settings'!
-SystemOrganization addCategory: 'PharoLauncher-Core-Settings'!

original_message: fix filetream


message: functional packages

diff:
-A PhLVirtualMachineManagerTest is a test class for testing the behavior of PhLVirtualMachineManager
\ No newline at end of file

diff:
{
- "commentStamp" : "<historical>",
+ "commentStamp" : "",
"super" : "TestCase",
"category" : "PharoLauncher-Tests-Download",
"classinstvars" : [ ],

change_type: RENAME

diff:
-*PharoLauncher-Tests-Functional
+as yet unclassified
testCanRunUnzipOnLinux
| process |
Smalltalk os isWindows ifTrue: [ ^ self ].

diff:
{
"commentStamp" : "",
"super" : "TestCase",
- "category" : "PharoLauncher-Tests-Download",
+ "category" : "PharoLauncher-Tests-Functional",
"classinstvars" : [ ],
"pools" : [ ],
"classvars" : [ ],

diff:
-{
- "name" : "PhLPhLProcessWrapperTest"
-}
\ No newline at end of file

diff:
+A PhLVirtualMachineManagerTest is a test class for testing the behavior of PhLVirtualMachineManager
\ No newline at end of file

diff:
+as yet unclassified
+availaibleVirtualMachines
+ Smalltalk vm imageVersionNumber
\ No newline at end of file

diff:
+tests
+testCanDetectPreSpurImage
+ | version |
+ self timeLimit: 60 seconds.
+ version := PhLVirtualMachineManager imageFormatNumberFromStream: self preSpurHeader.
+ self assert: (PhLVirtualMachineManager isPreSpur: version)
\ No newline at end of file

diff:
+tests
+testCanDetectSystemUnzip
+ self assert: PhLVirtualMachineManager canUseSytemZip equals: true
\ No newline at end of file

diff:
+tests
+testCanGetImageVersion
+ | version |
+ version := (PhLVirtualMachineManager
+ forImage: Smalltalk image lastImagePath) imageVersion.
+ self assert: version equals: self currentImageVersion
\ No newline at end of file

diff:
+tests
+testCanGetImageVersionFromFileWhenRunningExtraVM
+ | vmManager |
+ vmManager := PhLVirtualMachineManager forImage: Smalltalk image lastImagePath.
+ vmManager imageVersionFile ensureDelete.
+
+ self
+ assert: vmManager imageVersion
+ equals: self currentImageVersion
\ No newline at end of file

diff:
+tests
+testCanGetImageVersionFromFileWithRightCommand
+ | vmManager command |
+ vmManager := PhLVirtualMachineManager forImage: Smalltalk image lastImagePath.
+ vmManager imageVersionFile ensureDelete.
+ command := 'echo 60 > ' , vmManager imageVersionFile fullName surroundedByDoubleQuotes.
+
+ self
+ assert: (vmManager imageVersionFromFileWith: command)
+ equals: '60'
\ No newline at end of file

diff:
+tests
+testGetExceptionWhenRunningImageVersionFromFileWithBadCommand
+ | vmManager |
+ vmManager := PhLVirtualMachineManager forImage: Smalltalk image lastImagePath.
+ vmManager imageVersionFile ensureDelete.
+
+ self
+ should: [ vmManager imageVersionFromFileWith: 'foo' ]
+ raise: PhLImageVersionDeterminationError
\ No newline at end of file

diff:
+{
+ "commentStamp" : "<historical>",
+ "super" : "PhLVirtualMachineManagerTest",
+ "category" : "PharoLauncher-Tests-Functional",
+ "classinstvars" : [ ],
+ "pools" : [ ],
+ "classvars" : [ ],
+ "instvars" : [ ],
+ "name" : "PhLVirtualMachineManagerFunctionalTest",
+ "type" : "normal"
+}
\ No newline at end of file

original_message: functional packages


message: fix loading order

diff:
@@ -37,12 +37,12 @@ baseline: spec
spec requires: #(#'PharoLauncher-Core' ). ];
package: #'PharoLauncher-Tests-Core' with: [
spec requires: #(#'PharoLauncher-Core' ). ];
- package: #'PharoLauncher-Tests-Functional' with: [
- spec requires: #(#'PharoLauncher-Core' ). ];
package: #'PharoLauncher-Tests-SpecUI' with: [
spec requires: #(#'PharoLauncher-Core' 'PharoLauncher-Spec'). ];
package: #'PharoLauncher-Tests-Download' with: [
- spec requires: #(#'PharoLauncher-Download' ). ].
+ spec requires: #(#'PharoLauncher-Download' ). ];
+ package: #'PharoLauncher-Tests-Functional' with: [
+ spec requires: #(#'PharoLauncher-Core' ). ].
spec
group: 'Default' with: #(#'PharoLauncher-Tests-Core' #'PharoLauncher-Tests-Download' #'PharoLauncher-Core' #'PharoLauncher-Download' #'PharoLauncher-Spec' 'PharoLauncher-Tests-SpecUI' 'PharoLauncher-Tests-Functional');
group: 'Download' with: #(#'PharoLauncher-Download' #'PharoLauncher-Tests-Download' ). ].

original_message: fix loading order


message: remove tests duplicities, missing method

diff:
+support
+preSpurHeader
+ ^ self getImageHeader: 'http://files.pharo.org/image/50-preSpur/latest.zip'
\ No newline at end of file

diff:
-*PharoLauncher-Tests-Functional
-testCanDetectPreSpurImage
- | version |
- self timeLimit: 60 seconds.
- version := PhLVirtualMachineManager imageFormatNumberFromStream: self preSpurHeader.
- self assert: (PhLVirtualMachineManager isPreSpur: version)
\ No newline at end of file

diff:
-*PharoLauncher-Tests-Functional
-testCanDetectSystemUnzip
- self assert: PhLVirtualMachineManager canUseSytemZip equals: true
\ No newline at end of file

diff:
-*PharoLauncher-Tests-Functional
-testCanGetImageVersion
- | version |
- version := (PhLVirtualMachineManager
- forImage: Smalltalk image lastImagePath) imageVersion.
- self assert: version equals: self currentImageVersion
\ No newline at end of file

diff:
-*PharoLauncher-Tests-Functional
-testCanGetImageVersionFromFileWhenRunningExtraVM
- | vmManager |
- vmManager := PhLVirtualMachineManager forImage: Smalltalk image lastImagePath.
- vmManager imageVersionFile ensureDelete.
-
- self
- assert: vmManager imageVersion
- equals: self currentImageVersion
\ No newline at end of file

diff:
-*PharoLauncher-Tests-Functional
-testCanGetImageVersionFromFileWithRightCommand
- | vmManager command |
- vmManager := PhLVirtualMachineManager forImage: Smalltalk image lastImagePath.
- vmManager imageVersionFile ensureDelete.
- command := 'echo 60 > ' , vmManager imageVersionFile fullName surroundedByDoubleQuotes.
-
- self
- assert: (vmManager imageVersionFromFileWith: command)
- equals: '60'
\ No newline at end of file

diff:
-*PharoLauncher-Tests-Functional
-testGetExceptionWhenRunningImageVersionFromFileWithBadCommand
- | vmManager |
- vmManager := PhLVirtualMachineManager forImage: Smalltalk image lastImagePath.
- vmManager imageVersionFile ensureDelete.
-
- self
- should: [ vmManager imageVersionFromFileWith: 'foo' ]
- raise: PhLImageVersionDeterminationError
\ No newline at end of file

diff:
-{
- "name" : "PhLVirtualMachineManagerTest"
-}
\ No newline at end of file


message: disable the current image version test

diff:
expected results
currentImageVersion
+
+ "This test must be rewritten to a controlable version not depending on current image version"
+ self skip.
+
^ (SystemVersion current major = 6
and: [ SystemVersion current highestUpdate >= 60509 ])
ifTrue: [ '61' ]

original_message: disable the current image version test


message: Use FileLocator instead of Smalltalk for vmDirectory access

diff:
private
cleanLDLibraryPath
^ (self currentLDLibraryPathes
- reject: [ :path | path asByteArray utf8Decoded = Smalltalk vmDirectory pathString ])
+ reject: [ :path | path asByteArray utf8Decoded = FileLocator vmDirectory pathString ])

diff:
@@ -2,3 +2,5 @@ SystemOrganization addCategory: #'PharoLauncher-Core'!
SystemOrganization addCategory: 'PharoLauncher-Core-Commands'!
SystemOrganization addCategory: 'PharoLauncher-Core-Model'!
SystemOrganization addCategory: #'PharoLauncher-Core-Settings'!
+l'!
+SystemOrganization addCategory: #'PharoLauncher-Core-Settings'!


message: clean Undeclared

diff:
-querying
-launcherCurrentMetacalloVersion
- ^ self launcherMetacalloConfiguration currentVersion
\ No newline at end of file

diff:
-querying
-launcherMTProject
- ^ project ifNil: [ project := MCModel2MTModelVisitor new
- visitConfiguration: self launcherMetacalloConfiguration
- withVersion: self launcherCurrentMetacalloVersion ]
\ No newline at end of file

diff:
-querying
-launcherMetacalloConfiguration
- ^ MBConfigurationRoot current configurationInfoFor: ConfigurationOfPharoLauncher
\ No newline at end of file

original_message: clean Undeclared


message:
move Appearance settings to the Spec UI
remove dependency on morphic (copying of the alert text was not working anyway)

diff:
@@ -3,4 +3,3 @@ uiAlert
UIManager default
alert: self longDescription
title: self name
\ No newline at end of file
- configure: [ :morph | (morph findDeeplyA: TextMorph) unlock ]
\ No newline at end of file

diff:
@@ -2,5 +2,5 @@ SystemOrganization addCategory: #'PharoLauncher-Core'!
SystemOrganization addCategory: 'PharoLauncher-Core-Commands'!
SystemOrganization addCategory: 'PharoLauncher-Core-Model'!
SystemOrganization addCategory: #'PharoLauncher-Core-Settings'!
-l'!
SystemOrganization addCategory: #'PharoLauncher-Core-Settings'!
+s'!

diff:
{
"commentStamp" : "ChristopheDemarey 4/5/2018 09:59",
"super" : "Object",
- "category" : "PharoLauncher-Core-Settings",
+ "category" : "PharoLauncher-Spec-Settings",
"classinstvars" : [ ],
"pools" : [ ],
"classvars" : [ ],

diff:
{
"commentStamp" : "ChristopheDemarey 6/21/2018 11:50",
"super" : "QuestionWithoutCancelDialogWindow",
- "category" : "PharoLauncher-Core-Settings",
+ "category" : "PharoLauncher-Spec",
"classinstvars" : [ ],
"pools" : [ ],
"classvars" : [ ],

diff:
SystemOrganization addCategory: #'PharoLauncher-Spec'!
+SystemOrganization addCategory: #'PharoLauncher-Spec-Settings'!

original_message:
- move Appearance settings to the Spec UI
- remove dependency on morphic (copying of the alert text was not working anyway)


diff:
@@ -10,5 +10,4 @@ import: imagePath
importImageNamed: imagePath
to: destFolderName ].
infoMessage := 'Image ' , imagePath , ' imported!'.
- MessageDialogWindow new
- message: (infoMessage withNoLineLongerThan: 60)
\ No newline at end of file
+ self inform: (infoMessage withNoLineLongerThan: 60)
\ No newline at end of file

original_message: remove dependency on MessageDialogWindow, see https://pharo.fogbugz.com/f/cases/22267/option-for-inform-in-window


message: move about command to spec ui

diff:
{
"commentStamp" : "ChristopheDemarey 1/10/2018 08:29",
"super" : "PhLGeneralCommand",
- "category" : "PharoLauncher-Core-Commands",
+ "category" : "PharoLauncher-Spec-Commands",
"classinstvars" : [ ],
"pools" : [ ],
"classvars" : [ ],

diff:
SystemOrganization addCategory: #'PharoLauncher-Spec'!
SystemOrganization addCategory: #'PharoLauncher-Spec-Settings'!
+SystemOrganization addCategory: #'PharoLauncher-Spec-Settings'!

original_message: move about command to spec ui


message:
introduce PharoLauncherModel
setting for deployment

diff:
+settings
+deactivateDeployed
+ IsDeployed := false
\ No newline at end of file

diff:
+settings
+isDeployed
+ ^ IsDeployed ifNil: [ IsDeployed := false ]
\ No newline at end of file

diff:
+settings
+makeDeployed
+ IsDeployed := true
\ No newline at end of file

diff:
+{
+ "commentStamp" : "",
+ "super" : "Object",
+ "category" : "PharoLauncher-Core-Model",
+ "classinstvars" : [ ],
+ "pools" : [ ],
+ "classvars" : [
+ "IsDeployed"
+ ],
+ "instvars" : [ ],
+ "name" : "PharoLauncherModel",
+ "type" : "normal"
+}
\ No newline at end of file

diff:
settings
deactivateDeployed
- IsDeployed := false
\ No newline at end of file
+ PharoLauncherModel deactivateDeployed
\ No newline at end of file

diff:
settings
isDeployed
- ^ IsDeployed ifNil: [ IsDeployed := false ]
\ No newline at end of file
+ ^ PharoLauncherModel isDeployed
\ No newline at end of file

diff:
settings
makeDeployed
- IsDeployed := true
\ No newline at end of file
+ PharoLauncherModel makeDeployed
\ No newline at end of file

diff:
"classinstvars" : [ ],
"pools" : [ ],
"classvars" : [
- "IsDeployed",
"Save"
],
"instvars" : [ ],

original_message:
- introduce PharoLauncherModel
- setting for deployment


message:
deprecated Spec extensions
use PharoLauncherModel instead of PhLDeploymentScript

diff:
system startup
launcherStartUp
- PhLDeploymentScript isDeployed
+ PharoLauncherModel isDeployed
ifFalse: [ ^ self ].
self preferencesFile ifNotNil: [ self new treeHolder updateSettingNodes ]
\ No newline at end of file

diff:
runPreferences
"When Pharo Launcher is deployed, ignore Pharo preferences. Pharo preferences will only be loaded when Pharo Launcher is in developer mode."
"PhLSettingBrowser startup action is in charge of loading launcher preferences."
- PhLDeploymentScript isDeployed ifTrue: [ ^ self ].
+ PharoLauncherModel isDeployed ifTrue: [ ^ self ].
Smalltalk at: #SystemSettingsPersistence ifPresent: [:persistence |
persistence resumeSystemSettings ].

diff:
-{
- "name" : "ComposableModel"
-}
\ No newline at end of file

diff:
+{
+ "name" : "ComposablePresenter"
+}
\ No newline at end of file

diff:
-{
- "name" : "TreeNodeModel"
-}
\ No newline at end of file

diff:
+{
+ "name" : "TreeNodePresenter"
+}
\ No newline at end of file

original_message:
- deprecated Spec extensions
- use PharoLauncherModel instead of PhLDeploymentScript


message:
fix cleanLDLibraryPath
move Open settings command to UI

diff:
private
cleanLDLibraryPath
^ (self currentLDLibraryPathes
- reject: [ :path | path asByteArray utf8Decoded = Smalltalk vmDirectory pathString ])
+ reject: [ :path | path asByteArray utf8Decoded = Smalltalk vmDirectory asFileReference pathString ])

diff:
{
"commentStamp" : "<historical>",
"super" : "PhLGeneralCommand",
- "category" : "PharoLauncher-Core-Commands",
+ "category" : "PharoLauncher-Spec-Commands",
"classinstvars" : [ ],
"pools" : [ ],
"classvars" : [ ],

original_message:
- fix cleanLDLibraryPath
- move Open settings command to UI


message: move setting of progress bar into the deployment script

diff:
@@ -2,7 +2,6 @@ private
displayProgressDuring: workBlock
"Inform user about download progression"
- self setProgressBarSizeAndPosition.
UIManager default
informUserDuring: [ :bar |
workBlock

diff:
@@ -8,4 +8,5 @@ doAll
deactivateDeprecationWarnings;
makeDeployed;
addToStartupList;
- dontAskForConfirmationWhenQuitting
\ No newline at end of file
+ dontAskForConfirmationWhenQuitting;
+ setProgressBarSizeAndPosition
\ No newline at end of file

diff:
-action
+actions
setProgressBarSizeAndPosition
"increase size and reposition progress bar to the middle of screen to make it more visible"
SystemProgressMorph uniqueInstance

diff:
actions
setTheme
- Pharo3Theme beCurrent.
\ No newline at end of file
+ PharoLightTheme beCurrent.
\ No newline at end of file


diff:
@@ -4,6 +4,7 @@ menuCommandOn: aBuilder
(aBuilder item: #'Pharo Launcher')
icon: self pharoIcon16x16;
- action: [ self open ].
- aBuilder withSeparatorAfter.
-
\ No newline at end of file
+ parent: #Tools;
+ order: 110;
+ action: [ self open ];
+ withSeparatorAfter
\ No newline at end of file

original_message:
Move PharoLauncher to Tools in the WorldMenu

Fixes https://github.com/pharo-project/pharo-launcher/issues/205


diff:
initialization
-initializeToolbar.
-
+initializeToolbar
self toolbar
addItem:
(ITButton new
+ label: 'New';
icon: (self iconNamed: #smallNewIcon);
help: 'Create new image';
action: [ self spawnNewImageDialog ];
@@ -11,6 +11,7 @@ initializeToolbar.
position: ITItemPosition left;
addItem:
(ITButton new
+ label: 'Launch';
icon: (self iconNamed: #smallDoItIcon);
help: 'Launch image with settings';
action: [ self launchSelectedImageWithSettings ];
@@ -18,6 +19,7 @@ initializeToolbar.
position: ITItemPosition left;
addItem:
(ITButton new
+ label: 'Basic launch';
icon: (self iconNamed: #smallDoItIcon) asGrayScaleWithAlpha;
help: 'Launch image without settings';
action: [ self launchSelectedImageWithoutSettings ];
@@ -25,6 +27,7 @@ initializeToolbar.
position: ITItemPosition left;
addItem:
(ITButton new
+ label: 'Import';
icon: (self iconNamed: #smallLoadProject);
help: 'Import image';
action: [ self spawnImportImageDialog ];
@@ -32,6 +35,7 @@ initializeToolbar.
position: ITItemPosition left;
addItem:
(ITButton new
+ label: 'Delete';
icon: (self iconNamed: #smallDelete);
help: 'Delete selected image';
action: [ self deleteSelectedImage ];
@@ -39,8 +43,9 @@ initializeToolbar.
position: ITItemPosition left;
addItem:
(ITButton new
+ label: 'Refresh';
icon: (self iconNamed: #smallUpdateIcon);
help: 'Refresh image table';
action: [ self refresh ];
yourself)
- position: ITItemPosition left.
\ No newline at end of file
+ position: ITItemPosition left
\ No newline at end of file

original_message:
Add labels to the buttons of the new UI.

Fixes https://github.com/pharo-project/pharo-launcher/issues/221


message: PhLDirectoryBasedImageRepository>>#ensureNoImageWithName: is now used in  #hasImageNamed:

diff:
action
ensureNoImageWithName: anImageName
- (self imageNames includes: anImageName)
+ (self hasImageNamed: anImageName)
ifTrue: [ PhLError signal: 'An image with the same name already exists' ]
\ No newline at end of file

diff:
SystemOrganization addCategory: #'PharoLauncher-Core'!
-SystemOrganization addCategory: 'PharoLauncher-Core-Commands'!
-SystemOrganization addCategory: 'PharoLauncher-Core-Model'!
+SystemOrganization addCategory: #'PharoLauncher-Core-Exceptions'!
+SystemOrganization addCategory: #'PharoLauncher-Core-Model'!
SystemOrganization addCategory: #'PharoLauncher-Core-Settings'!
-SystemOrganization addCategory: 'PharoLauncher-Core-Settings'!
+emOrganization addCategory: 'PharoLauncher-Core-Settings'!


message: just change the color to darker green

diff:
@@ -11,5 +11,5 @@ printDateOfLastModificationOf: anItem
delta days < 8
ifTrue: [ text makeAllColor: Color green muchDarker ].
delta days < 3
- ifTrue: [ text makeAllColor: Color green ] ].
+ ifTrue: [ text makeAllColor: Color green darker] ].
^ text asMorph lock
\ No newline at end of file

diff:
SystemOrganization addCategory: #'PharoLauncher-Spec'!
SystemOrganization addCategory: #'PharoLauncher-Spec-Settings'!
+SystemOrganization addCategory: #'PharoLauncher-Spec-Settings'!

original_message: just change the color to darker green


message: Increase max time for build

diff:
@@ -5,7 +5,7 @@ properties([disableConcurrentBuilds()])
try {
def version = getCommitHash()
cleanUploadFolderIfNeeded(version)
- timeout(time: 30, unit: 'MINUTES') {
+ timeout(time: 60, unit: 'MINUTES') {
buildArchitecture('32', '61')
buildArchitecture('64', '61')
buildArchitecture('32', '70')

original_message: Increase max time for build


message: just upload the version of packages after the Launcher loading. There is a mess around PhLAboutCommand movement - probalby result of some previous merge

diff:
-Command to display a box with information related to the Pharo Launcher
\ No newline at end of file

diff:
-accessing
-icon
- ^ self iconNamed: #help
\ No newline at end of file

diff:
-accessing
-title
- ^ 'About'
\ No newline at end of file

diff:
-accessing
-aboutText
- ^ String streamContents: [:stream |
- stream
- << 'Pharo Launcher is a tool that ease the management of Pharo images and their associated Virtual Machines. It can download official Pharo images from the Pharo repository, fetch the right virtual machine to run your image and many other things.';
- cr;
- << 'If you find a bug, please open an issue at https://github.com/pharo-project/pharo-launcher/issues.';
- cr; cr;
- << 'Pharo Launcher version: ';
- << self launcherVersion ]
-
\ No newline at end of file

diff:
-action
-execute
- AboutDialogWindow new
- text: self aboutText;
- open
\ No newline at end of file

diff:
-querying
-launcherVersion
-
- ^ LauncherVersion ifNil: [ 'N/A' ]
\ No newline at end of file

diff:
-{
- "commentStamp" : "ChristopheDemarey 1/10/2018 08:29",
- "super" : "PhLGeneralCommand",
- "category" : "PharoLauncher-Core-Commands",
- "classinstvars" : [ ],
- "pools" : [ ],
- "classvars" : [
- "LauncherVersion"
- ],
- "instvars" : [
- "project"
- ],
- "name" : "PhLAboutCommand",
- "type" : "normal"
-}
\ No newline at end of file

diff:
@@ -2,3 +2,5 @@ SystemOrganization addCategory: #'PharoLauncher-Core'!
SystemOrganization addCategory: 'PharoLauncher-Core-Commands'!
SystemOrganization addCategory: 'PharoLauncher-Core-Model'!
SystemOrganization addCategory: #'PharoLauncher-Core-Settings'!
+l'!
+SystemOrganization addCategory: #'PharoLauncher-Core-Settings'!


message: Add patch for Pharo7 while waiting for integration

diff:
+*PharoLauncher-Env
+function: functionSignature module: moduleNameOrLibrary
+ | sender ffiMethod ffiMethodSelector |
+ sender := context ifNil: [ thisContext sender sender ].
+ ffiMethodSelector := thisContext sender method selector.
+
+ "Build new method"
+ ffiMethod := self newBuilder
+ build: [ :builder |
+ builder
+ signature: functionSignature;
+ sender: sender;
+ module: moduleNameOrLibrary ].
+ ffiMethod
+ selector: sender selector;
+ methodClass: sender methodClass.
+ "Replace with generated ffi method, but save old one for future use"
+ ffiMethod propertyValueAt: #ffiNonCompiledMethod put: (sender methodClass methodDict at: sender selector).
+ "For senders search, one need to keep the selector in the properties"
+ ffiMethod propertyValueAt: #ffiMethodSelector put: ffiMethodSelector.
+ sender methodClass methodDict at: sender selector put: ffiMethod.
+ "Register current method as compiled for ffi"
+ FFIMethodRegistry uniqueInstance registerMethod: ffiMethod.
+ "Resend"
+ sender return: (sender receiver withArgs: sender arguments executeMethod: ffiMethod)
\ No newline at end of file

diff:
+{
+ "name" : "FFICalloutAPI"
+}
\ No newline at end of file


message: Moved test to the Functional package

diff:
-tests
-testCanGetImageVersionFromFileWhenRunningExtraVM
- | vmManager |
- vmManager := PhLVirtualMachineManager forImage: Smalltalk image lastImagePath.
- vmManager imageVersionFile ensureDelete.
- self flag: 'Remove the following instruction once we based Pharo Launcher on Pharo 7: sources file comes with the image. It is actually needed so that the launched image can get environment variables from the system at startup.'.
- vmManager fetchSourcesFilesFor: '61' in: Smalltalk vmBinary parent asFileReference.
-
- self
- assert: vmManager imageVersion
- equals: self currentImageVersion
\ No newline at end of file

diff:
@@ -3,6 +3,8 @@ testCanGetImageVersionFromFileWhenRunningExtraVM
| vmManager |
vmManager := PhLVirtualMachineManager forImage: Smalltalk image lastImagePath.
vmManager imageVersionFile ensureDelete.
+ self flag: 'Remove the following instruction once we based Pharo Launcher on Pharo 7: sources file comes with the image. It is actually needed so that the launched image can get environment variables from the system at startup.'.
+ vmManager fetchSourcesFilesFor: '61' in: Smalltalk vmBinary parent asFileReference.
self
assert: vmManager imageVersion

original_message: Moved test to the Functional package


message: Fix test for Pharo6.1

diff:
@@ -3,8 +3,11 @@ testCanGetImageVersionFromFileWhenRunningExtraVM
| vmManager |
vmManager := PhLVirtualMachineManager forImage: Smalltalk image lastImagePath.
vmManager imageVersionFile ensureDelete.
+
self flag: 'Remove the following instruction once we based Pharo Launcher on Pharo 7: sources file comes with the image. It is actually needed so that the launched image can get environment variables from the system at startup.'.
- vmManager fetchSourcesFilesFor: '61' in: Smalltalk vmBinary parent asFileReference.
+ { vmManager compatibleVm vmFolder . Smalltalk vmBinary parent asFileReference }
+ do: [ :each | vmManager fetchSourcesFilesFor: '61' in: each ].
+
self
assert: vmManager imageVersion

original_message: Fix test for Pharo6.1


message: Make tests work in 64 bits too

diff:
tests
testCanGetImageVersion
- | version |
+ | version manager |
+
+ manager := PhLVirtualMachineManager forImage: Smalltalk image lastImagePath.
+ manager fetchSourcesFilesFor: '61' in: manager compatibleVm vmFolder.
+
+
version := (PhLVirtualMachineManager
forImage: Smalltalk image lastImagePath) imageVersion.
self assert: version equals: self currentImageVersion
\ No newline at end of file

original_message: Make tests work in 64 bits too


message: Do not encode twice

diff:
@@ -10,7 +10,7 @@ imageVersionCommandWithPreferences: shouldUsePreferences
(Smalltalk os isUnix
ifTrue: [ ' --nodisplay ' ]
ifFalse: [ ' --headless ' ]) << $"
- << imageFile fullName utf8Encoded asString
+ << imageFile fullName
<< '" '.
shouldUsePreferences ifTrue: [ stream << '--no-default-preferences ' ].
stream << self imageVersionDeterminationScriptPath ]
\ No newline at end of file

diff:
SystemOrganization addCategory: #'PharoLauncher-Download'!
-SystemOrganization addCategory: #'PharoLauncher-Download-Core'!
-SystemOrganization addCategory: #'PharoLauncher-Download-Exceptions'!
-SystemOrganization addCategory: #'PharoLauncher-Download-Manifest'!
+SystemOrganization addCategory: 'PharoLauncher-Download-Core'!
+SystemOrganization addCategory: 'PharoLauncher-Download-Exceptions'!
+SystemOrganization addCategory: 'PharoLauncher-Download-Manifest'!

original_message: Do not encode twice


message: Augment test timeout

diff:
tests
testCanGetImageVersion
| version manager |
+ self timeLimit: 30 seconds.
manager := PhLVirtualMachineManager forImage: Smalltalk image lastImagePath.
manager fetchSourcesFilesFor: '61' in: manager compatibleVm vmFolder.

diff:
tests
testCanGetImageVersionFromFileWhenRunningExtraVM
| vmManager |
+ self timeLimit: 30 seconds.
+
vmManager := PhLVirtualMachineManager forImage: Smalltalk image lastImagePath.
vmManager imageVersionFile ensureDelete.

diff:
tests
testCanGetImageVersionFromFileWithRightCommand
| vmManager command |
+ self timeLimit: 30 seconds.
+
vmManager := PhLVirtualMachineManager forImage: Smalltalk image lastImagePath.
vmManager imageVersionFile ensureDelete.
command := 'echo 60 > ' , vmManager imageVersionFile fullName surroundedByDoubleQuotes.

original_message: Augment test timeout


message: Make shortcut use image as argument

diff:
@@ -5,9 +5,9 @@ AddFile APPDIR "..\icons\pharo-launcher.ico"
AddFolder APPDIR %PHARO_WIN_DIR% -install_in_parent_folder
; Target dir MUST refers to the path included in the installer and not to the final destination
-NewShortcut -name PharoLauncher -dir DesktopFolder -wkdir APPDIR -target APPDIR\Pharo\Pharo.exe -icon pharo-launcher.ico
-NewShortcut -name PharoLauncher -dir ProgramMenuFolder -wkdir APPDIR -target APPDIR\Pharo\Pharo.exe -icon pharo-launcher.ico
-NewShortcut -name PharoLauncher -dir APPDIR -wkdir APPDIR -target APPDIR\Pharo\Pharo.exe -icon pharo-launcher.ico
+NewShortcut -name PharoLauncher -dir DesktopFolder -wkdir APPDIR -target APPDIR\Pharo\Pharo.exe -arg APPDIR\Pharo\Pharo.image -icon pharo-launcher.ico
+NewShortcut -name PharoLauncher -dir ProgramMenuFolder -wkdir APPDIR -target APPDIR\Pharo\Pharo.exe -arg APPDIR\Pharo\Pharo.image -icon pharo-launcher.ico
+NewShortcut -name PharoLauncher -dir APPDIR -wkdir APPDIR -target APPDIR\Pharo\Pharo.exe -arg APPDIR\Pharo\Pharo.image -icon pharo-launcher.ico
SetAppdir -buildname DefaultBuild -path [LocalAppDataFolder]\[ProductName]
; Save

original_message: Make shortcut use image as argument


message: only need image name as argument

diff:
@@ -5,9 +5,9 @@ AddFile APPDIR "..\icons\pharo-launcher.ico"
AddFolder APPDIR %PHARO_WIN_DIR% -install_in_parent_folder
; Target dir MUST refers to the path included in the installer and not to the final destination
-NewShortcut -name PharoLauncher -dir DesktopFolder -wkdir APPDIR -target APPDIR\Pharo\Pharo.exe -arg APPDIR\Pharo\Pharo.image -icon pharo-launcher.ico
-NewShortcut -name PharoLauncher -dir ProgramMenuFolder -wkdir APPDIR -target APPDIR\Pharo\Pharo.exe -arg APPDIR\Pharo\Pharo.image -icon pharo-launcher.ico
-NewShortcut -name PharoLauncher -dir APPDIR -wkdir APPDIR -target APPDIR\Pharo\Pharo.exe -arg APPDIR\Pharo\Pharo.image -icon pharo-launcher.ico
+NewShortcut -name PharoLauncher -dir DesktopFolder -wkdir APPDIR -target APPDIR\Pharo\Pharo.exe -arg Pharo.image -icon pharo-launcher.ico
+NewShortcut -name PharoLauncher -dir ProgramMenuFolder -wkdir APPDIR -target APPDIR\Pharo\Pharo.exe -arg Pharo.image -icon pharo-launcher.ico
+NewShortcut -name PharoLauncher -dir APPDIR -wkdir APPDIR -target APPDIR\Pharo\Pharo.exe -arg Pharo.image -icon pharo-launcher.ico
SetAppdir -buildname DefaultBuild -path [LocalAppDataFolder]\[ProductName]
; Save

original_message: only need image name as argument


diff:
@@ -345,10 +345,10 @@ PhLVirtualMachineManager >> imageVersion [
[ [ self imageVersionFromFile ]
on: PhLImageVersionDeterminationError
do: [ "no version file, generate it"
- [ self imageVersionFromFileWith: self imageVersionCommand ]
+ [ self imageVersionFromFileWith: ( self imageVersionCommandWithPreferences: false) ]
on: PhLImageVersionDeterminationError
do: [ "Command probably failed, try to run without --no-default-preferences option (not available in Pharo 2)"
- self imageVersionFromFileWith: (self imageVersionCommandWithPreferences: false) ] ] ]
+ self imageVersionFromFileWith: (self imageVersionCommandWithPreferences: true) ] ] ]
]
{ #category : #accessing }
@@ -356,11 +356,6 @@ PhLVirtualMachineManager >> imageVersion: aString [
imageVersion := aString
]
-{ #category : #accessing }
-PhLVirtualMachineManager >> imageVersionCommand [
- ^ self imageVersionCommandWithPreferences: false
-]
-
{ #category : #accessing }
PhLVirtualMachineManager >> imageVersionCommandWithPreferences: shouldUsePreferences [
^ String
@@ -375,7 +370,7 @@ PhLVirtualMachineManager >> imageVersionCommandWithPreferences: shouldUsePrefere
ifFalse: [ ' --headless ' ]) << $"
<< imageFile fullName
<< '" '.
- shouldUsePreferences ifTrue: [ stream << '--no-default-preferences ' ].
+ shouldUsePreferences ifFalse: [ stream << '--no-default-preferences ' ].
stream << self imageVersionDeterminationScriptPath ]
]

original_message:
Fix image determination with/without preferences

Fixes #284


message: Fix problem opening of vm manager

diff:
@@ -108,7 +108,7 @@ PhLVMPresenter >> initializeWidgets [
beMultipleSelection.
self refresh.
- vmTable widget selectFirstVMVisibleRow.
+ vmTable widget selectFirstVisibleRow.
]
{ #category : #initialization }

original_message: Fix problem opening of vm manager


message:
Convert sources.list to UNIX linefeeds
GH Web UI does not play nice with ^M

diff:
-OrderedCollection [ PhLTemplateSource { #type : #Cache, #name : 'Templates' }, PhLTemplateSource { #type : #URLGroup, #name : 'Pharo Mooc', #templates : [ PhLTemplateSource { #type : #URL, #name : 'Pharo Mooc', #url : 'http://mooc.pharo.org/image/PharoWeb.zip' } ] }, PhLTemplateSource { #type : #URLGroup, #name : 'Official distributions', #templates : [ PhLTemplateSource { #type : #URL, #name : 'Pharo 8.0 - 32bit (development version, latest)', #url : 'http://files.pharo.org/image/80/latest.zip' }, PhLTemplateSource { #type : #URL, #name : 'Pharo 8.0 - 64bit (development version, latest)', #url : 'http://files.pharo.org/image/80/latest-64.zip' }, PhLTemplateSource { #type : #URL, #name : 'Pharo 7.0 - 32bit (stable)', #url : 'http://files.pharo.org/image/70/latest.zip' }, PhLTemplateSource { #type : #URL, #name : 'Pharo 7.0 - 64bit (stable)', #url : 'http://files.pharo.org/image/70/latest-64.zip' }, PhLTemplateSource { #type : #URL, #name : 'Pharo 6.1 - 32bit (old stable)', #url : 'http://files.pharo.org/image/60/latest.zip' }, PhLTemplateSource { #type : #URL, #name : 'Pharo 6.1 - 64bit (old tech preview)', #url : 'http://files.pharo.org/image/60/latest-64.zip' }, PhLTemplateSource { #type : #URL, #name : 'Moose Suite 8.0 (development version)', #url : 'https://ci.inria.fr/moose/job/Moose-8/ARCHITECTURE=64,PHARO=80,VERSION=development,VM=vm/lastSuccessfulBuild/artifact/Moose.zip' }, PhLTemplateSource { #type : #URL, #name : 'Moose Suite 7.0 (stable)', #url : 'https://ci.inria.fr/moose/job/moose-7.0-64bit/lastSuccessfulBuild/artifact/moose-7.0-64bit.zip' } ], #expanded : true }, PhLTemplateSource { #type : #URLGroup, #name : 'Deprecated distributions', #templates : [ PhLTemplateSource { #type : #URL, #name : 'Pharo 5.0', #url : 'http://files.pharo.org/image/50/latest.zip' }, PhLTemplateSource { #type : #URL, #name : 'Pharo 4.0', #url : 'http://files.pharo.org/image/40/latest.zip' }, PhLTemplateSource { #type : #URL, #name : 'Pharo 3.0', #url : 'http://files.pharo.org/image/30/latest.zip' }, PhLTemplateSource { #type : #URL, #name : 'Pharo 2.0', #url : 'http://files.pharo.org/image/20/latest.zip' }, PhLTemplateSource { #type : #URL, #name : 'Moose Suite 6.1 (stable)', #url : 'https://ci.inria.fr/moose/job/moose-6.1/lastSuccessfulBuild/artifact/moose-6.1.zip' }, PhLTemplateSource { #type : #URL, #name : 'Moose Suite 6.0 (old stable)', #url : 'https://ci.inria.fr/moose/job/moose-6.0/lastSuccessfulBuild/artifact/moose-6.0.zip' }, PhLTemplateSource { #type : #URL, #name : 'Moose Suite 5.1', #url : 'https://ci.inria.fr/moose/job/moose-5.1/lastSuccessfulBuild/artifact/moose-5.1.zip' }, PhLTemplateSource { #type : #URL, #name : 'Moose Suite 5.0', #url : 'http://moosetechnology.org/res/download/moose_image_5_0.zip' } ] }, PhLTemplateSource { #type : #JenkinsServer, #name : 'Pharo Contribution Jenkins', #url : 'https://ci.inria.fr/pharo-contribution' }, PhLTemplateSource { #type : #JenkinsServer, #name : 'Moose Jenkins', #url : 'https://ci.inria.fr/moose' }, PhLTemplateSource { #type : #HttpListing, #name : 'Pharo 6.0 (stable)', #url : 'http://files.pharo.org/image/60/' }, PhLTemplateSource { #type : #HttpListing, #name : 'Pharo 7.0 (development version)', #url : 'http://files.pharo.org/image/70/', #filterPattern : 'href="(Pharo-?7.0.0-(alpha|rc\\d+).build.[^"]*.zip)"' }, PhLTemplateSource { #type : #HttpListing, #name : 'Pharo 8.0 (development version)', #url : 'http://files.pharo.org/image/80/', #filterPattern : 'href="(Pharo-?8.0-SNAPSHOT.build.[^"]*.zip)"' } ]
\ No newline at end of file
+OrderedCollection [
+ PhLTemplateSource {
+ #type : #Cache,
+ #name : 'Templates'
+ },
+ PhLTemplateSource {
+ #type : #URLGroup,
+ #name : 'Pharo Mooc',
+ #templates : [
+ PhLTemplateSource {
+ #type : #URL,
+ #name : 'Pharo Mooc',
+ #url : 'http://mooc.pharo.org/image/PharoWeb.zip'
+ }
+ ]
+ },
+ PhLTemplateSource {
+ #type : #URLGroup,
+ #name : 'Official distributions',
+ #templates : [
+ PhLTemplateSource {
+ #type : #URL,
+ #name : 'Pharo 8.0 - 32bit (development version, latest)',
+ #url : 'http://files.pharo.org/image/80/latest.zip'
+ },
+ PhLTemplateSource {
+ #type : #URL,
+ #name : 'Pharo 8.0 - 64bit (development version, latest)',
+ #url : 'http://files.pharo.org/image/80/latest-64.zip'
+ },
+ PhLTemplateSource {
+ #type : #URL,
+ #name : 'Pharo 7.0 - 32bit (stable)',
+ #url : 'http://files.pharo.org/image/70/latest.zip'
+ },
+ PhLTemplateSource {
+ #type : #URL,
+ #name : 'Pharo 7.0 - 64bit (stable)',
+ #url : 'http://files.pharo.org/image/70/latest-64.zip'
+ },
+ PhLTemplateSource {
+ #type : #URL,
+ #name : 'Pharo 6.1 - 32bit (old stable)',
+ #url : 'http://files.pharo.org/image/60/latest.zip'
+ },
+ PhLTemplateSource {
+ #type : #URL,
+ #name : 'Pharo 6.1 - 64bit (old tech preview)',
+ #url : 'http://files.pharo.org/image/60/latest-64.zip'
+ },
+ PhLTemplateSource {
+ #type : #URL,
+ #name : 'Moose Suite 8.0 (development version)',
+ #url : 'https://ci.inria.fr/moose/job/Moose-8/ARCHITECTURE=64,PHARO=80,VERSION=development,VM=vm/lastSuccessfulBuild/artifact/Moose.zip'
+ },
+ PhLTemplateSource {
+ #type : #URL,
+ #name : 'Moose Suite 7.0 (stable)',
+ #url : 'https://ci.inria.fr/moose/job/moose-7.0-64bit/lastSuccessfulBuild/artifact/moose-7.0-64bit.zip'
+ }
+ ],
+ #expanded : true
+ },
+ PhLTemplateSource {
+ #type : #URLGroup,
+ #name : 'Deprecated distributions',
+ #templates : [
+ PhLTemplateSource {
+ #type : #URL,
+ #name : 'Pharo 5.0',
+ #url : 'http://files.pharo.org/image/50/latest.zip'
+ },
+ PhLTemplateSource {
+ #type : #URL,
+ #name : 'Pharo 4.0',
+ #url : 'http://files.pharo.org/image/40/latest.zip'
+ },
+ PhLTemplateSource {
+ #type : #URL,
+ #name : 'Pharo 3.0',
+ #url : 'http://files.pharo.org/image/30/latest.zip'
+ },
+ PhLTemplateSource {
+ #type : #URL,
+ #name : 'Pharo 2.0',
+ #url : 'http://files.pharo.org/image/20/latest.zip'
+ },
+ PhLTemplateSource {
+ #type : #URL,
+ #name : 'Moose Suite 6.1 (stable)',
+ #url : 'https://ci.inria.fr/moose/job/moose-6.1/lastSuccessfulBuild/artifact/moose-6.1.zip'
+ },
+ PhLTemplateSource {
+ #type : #URL,
+ #name : 'Moose Suite 6.0 (old stable)',
+ #url : 'https://ci.inria.fr/moose/job/moose-6.0/lastSuccessfulBuild/artifact/moose-6.0.zip'
+ },
+ PhLTemplateSource {
+ #type : #URL,
+ #name : 'Moose Suite 5.1',
+ #url : 'https://ci.inria.fr/moose/job/moose-5.1/lastSuccessfulBuild/artifact/moose-5.1.zip'
+ },
+ PhLTemplateSource {
+ #type : #URL,
+ #name : 'Moose Suite 5.0',
+ #url : 'http://moosetechnology.org/res/download/moose_image_5_0.zip'
+ }
+ ]
+ },
+ PhLTemplateSource {
+ #type : #JenkinsServer,
+ #name : 'Pharo Contribution Jenkins',
+ #url : 'https://ci.inria.fr/pharo-contribution'
+ },
+ PhLTemplateSource {
+ #type : #JenkinsServer,
+ #name : 'Moose Jenkins',
+ #url : 'https://ci.inria.fr/moose'
+ },
+ PhLTemplateSource {
+ #type : #HttpListing,
+ #name : 'Pharo 6.0 (stable)',
+ #url : 'http://files.pharo.org/image/60/'
+ },
+ PhLTemplateSource {
+ #type : #HttpListing,
+ #name : 'Pharo 7.0 (development version)',
+ #url : 'http://files.pharo.org/image/70/',
+ #filterPattern : 'href="(Pharo-?7.0.0-(alpha|rc\\d+).build.[^"]*.zip)"'
+ },
+ PhLTemplateSource {
+ #type : #HttpListing,
+ #name : 'Pharo 8.0 (development version)',
+ #url : 'http://files.pharo.org/image/80/',
+ #filterPattern : 'href="(Pharo-?8.0-SNAPSHOT.build.[^"]*.zip)"'
+ }
+]


message: Use SSL for template downloads

diff:
@@ -10,7 +10,7 @@ OrderedCollection [
PhLTemplateSource {
#type : #URL,
#name : 'Pharo Mooc',
- #url : 'http://mooc.pharo.org/image/PharoWeb.zip'
+ #url : 'https://mooc.pharo.org/image/PharoWeb.zip'
}
]
},
@@ -21,32 +21,32 @@ OrderedCollection [
PhLTemplateSource {
#type : #URL,
#name : 'Pharo 8.0 - 32bit (development version, latest)',
- #url : 'http://files.pharo.org/image/80/latest.zip'
+ #url : 'https://files.pharo.org/image/80/latest.zip'
},
PhLTemplateSource {
#type : #URL,
#name : 'Pharo 8.0 - 64bit (development version, latest)',
- #url : 'http://files.pharo.org/image/80/latest-64.zip'
+ #url : 'https://files.pharo.org/image/80/latest-64.zip'
},
PhLTemplateSource {
#type : #URL,
#name : 'Pharo 7.0 - 32bit (stable)',
- #url : 'http://files.pharo.org/image/70/latest.zip'
+ #url : 'https://files.pharo.org/image/70/latest.zip'
},
PhLTemplateSource {
#type : #URL,
#name : 'Pharo 7.0 - 64bit (stable)',
- #url : 'http://files.pharo.org/image/70/latest-64.zip'
+ #url : 'https://files.pharo.org/image/70/latest-64.zip'
},
PhLTemplateSource {
#type : #URL,
#name : 'Pharo 6.1 - 32bit (old stable)',
- #url : 'http://files.pharo.org/image/60/latest.zip'
+ #url : 'https://files.pharo.org/image/60/latest.zip'
},
PhLTemplateSource {
#type : #URL,
#name : 'Pharo 6.1 - 64bit (old tech preview)',
- #url : 'http://files.pharo.org/image/60/latest-64.zip'
+ #url : 'https://files.pharo.org/image/60/latest-64.zip'
},
PhLTemplateSource {
#type : #URL,
@@ -68,22 +68,22 @@ OrderedCollection [
PhLTemplateSource {
#type : #URL,
#name : 'Pharo 5.0',
- #url : 'http://files.pharo.org/image/50/latest.zip'
+ #url : 'https://files.pharo.org/image/50/latest.zip'
},
PhLTemplateSource {
#type : #URL,
#name : 'Pharo 4.0',
- #url : 'http://files.pharo.org/image/40/latest.zip'
+ #url : 'https://files.pharo.org/image/40/latest.zip'
},
PhLTemplateSource {
#type : #URL,
#name : 'Pharo 3.0',
- #url : 'http://files.pharo.org/image/30/latest.zip'
+ #url : 'https://files.pharo.org/image/30/latest.zip'
},
PhLTemplateSource {
#type : #URL,
#name : 'Pharo 2.0',
- #url : 'http://files.pharo.org/image/20/latest.zip'
+ #url : 'https://files.pharo.org/image/20/latest.zip'
},
PhLTemplateSource {
#type : #URL,
@@ -103,7 +103,7 @@ OrderedCollection [
PhLTemplateSource {
#type : #URL,
#name : 'Moose Suite 5.0',
- #url : 'http://moosetechnology.org/res/download/moose_image_5_0.zip'
+ #url : 'https://moosetechnology.org/res/download/moose_image_5_0.zip'
}
]
},
@@ -120,18 +120,18 @@ OrderedCollection [
PhLTemplateSource {
#type : #HttpListing,
#name : 'Pharo 6.0 (stable)',
- #url : 'http://files.pharo.org/image/60/'
+ #url : 'https://files.pharo.org/image/60/'
},
PhLTemplateSource {
#type : #HttpListing,
#name : 'Pharo 7.0 (development version)',
- #url : 'http://files.pharo.org/image/70/',
+ #url : 'https://files.pharo.org/image/70/',
#filterPattern : 'href="(Pharo-?7.0.0-(alpha|rc\\d+).build.[^"]*.zip)"'
},
PhLTemplateSource {
#type : #HttpListing,
#name : 'Pharo 8.0 (development version)',
- #url : 'http://files.pharo.org/image/80/',
+ #url : 'https://files.pharo.org/image/80/',
#filterPattern : 'href="(Pharo-?8.0-SNAPSHOT.build.[^"]*.zip)"'
}
]

original_message: Use SSL for template downloads