From 5b961d461ba8f722c2ee82dc94b259bc21d7856e Mon Sep 17 00:00:00 2001 From: CyrilFerlicot Date: Fri, 17 Jan 2025 16:15:13 +0100 Subject: [PATCH 1/3] Improve error messages When there is a syntax error in a Tonel file, an error is raised. The problem is that when we load a project from disk, we do not know in which file the error is. This change makes the TonelReader catch those exception to add the file info and pass the exception with more info. This will be helpful for debugging --- .../TonelReader.class/instance/loadDefinitions.st | 7 ++++--- .../TonelReader.class/instance/parseTonelFile..st | 9 +++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 MonticelloTonel-Core.package/TonelReader.class/instance/parseTonelFile..st diff --git a/MonticelloTonel-Core.package/TonelReader.class/instance/loadDefinitions.st b/MonticelloTonel-Core.package/TonelReader.class/instance/loadDefinitions.st index 46bf506..7dacd89 100644 --- a/MonticelloTonel-Core.package/TonelReader.class/instance/loadDefinitions.st +++ b/MonticelloTonel-Core.package/TonelReader.class/instance/loadDefinitions.st @@ -3,9 +3,10 @@ loadDefinitions | definitionOrders newDefinitions tagNames | definitionOrders := self class definitionOrders. - newDefinitions := ((self packageDirectory entries select: [ :each | self canBeLoaded: each ]) collect: [ :each | - each readStreamDo: [ :s | TonelParser parseStream: s ] ]) flattened sort: [ :a :b | - (definitionOrders at: a class) < (definitionOrders at: b class) ]. + + newDefinitions := ((self packageDirectory entries select: [ :file | self canBeLoaded: file ]) collect: [ :file | self parseTonelFile: file ]) flattened sort: [ + :a + :b | (definitionOrders at: a class) < (definitionOrders at: b class) ]. self ensurePackagesAndTagsOfDefinitions: newDefinitions. diff --git a/MonticelloTonel-Core.package/TonelReader.class/instance/parseTonelFile..st b/MonticelloTonel-Core.package/TonelReader.class/instance/parseTonelFile..st new file mode 100644 index 0000000..8433995 --- /dev/null +++ b/MonticelloTonel-Core.package/TonelReader.class/instance/parseTonelFile..st @@ -0,0 +1,9 @@ +loading +parseTonelFile: file + "In case of error we add the info of the file that produced the error for a better debugging experience." + + ^ [ file readStreamDo: [ :aStream | TonelParser parseStream: aStream ] ] + on: TonelParseError + do: [ :error | + error messageText: 'Error while parsing ' , file basename , ': ' , error messageText. + error pass ] \ No newline at end of file From c274a3febbf2741257c6044e652e9d79ba04e5af Mon Sep 17 00:00:00 2001 From: CyrilFerlicot Date: Fri, 17 Jan 2025 16:36:48 +0100 Subject: [PATCH 2/3] Update pre load script --- .github/scripts/preLoading.st | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/scripts/preLoading.st b/.github/scripts/preLoading.st index 61a2d00..248cc64 100644 --- a/.github/scripts/preLoading.st +++ b/.github/scripts/preLoading.st @@ -1,4 +1,2 @@ IceRepository registry remove: (IceRepository repositoryNamed: #tonel). -#( 'BaselineOfTonel' ) do: [ :each | - (RPackageOrganizer default packageNamed: each ifAbsent: [ nil ]) - ifNotNil: [ :aPackage | aPackage removeFromSystem ] ] +#( 'BaselineOfTonel' ) do: [ :each | (each asPackageIfAbsent: [ nil ]) ifNotNil: #removeFromSystem ] From c9153a8a9d99ff7b5aaf1c213f581e0f96ac262a Mon Sep 17 00:00:00 2001 From: CyrilFerlicot Date: Fri, 17 Jan 2025 16:37:43 +0100 Subject: [PATCH 3/3] Ignore MacOs files --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4b76d02 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ + +**/.DS_Store +