From 6bf206241f95a1e246d91395a1de3c65bf44f696 Mon Sep 17 00:00:00 2001 From: maxonfjvipon Date: Wed, 22 May 2024 14:12:32 +0300 Subject: [PATCH 01/28] fix(#3195): PhiMojo skips failed --- .../main/java/org/eolang/maven/PhiMojo.java | 97 ++++++++++++++----- .../test/java/org/eolang/maven/FakeMaven.java | 2 + .../java/org/eolang/maven/PhiMojoTest.java | 56 +++++++++++ 3 files changed, 129 insertions(+), 26 deletions(-) diff --git a/eo-maven-plugin/src/main/java/org/eolang/maven/PhiMojo.java b/eo-maven-plugin/src/main/java/org/eolang/maven/PhiMojo.java index 13e34989c0..aafb9a6b55 100644 --- a/eo-maven-plugin/src/main/java/org/eolang/maven/PhiMojo.java +++ b/eo-maven-plugin/src/main/java/org/eolang/maven/PhiMojo.java @@ -36,6 +36,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; +import net.sf.saxon.expr.instruct.TerminationException; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; @@ -87,6 +88,21 @@ public final class PhiMojo extends SafeMojo { ) private File phiOutputDir; + /** + * Whether {@link PhiMojo} should fail on critical errors or not. + * @checkstyle MemberNameCheck (10 lines) + */ + @Parameter(property = "eo.phiFailOnCritical", required = true, defaultValue = "true") + @SuppressWarnings({"PMD.ImmutableField", "PMD.LongVariable"}) + private boolean phiFailOnCritical = true; + + /** + * Whether {@link PhiMojo} should skip XMIRs that failed on critical errors. + * @checkstyle MemberNameCheck (10 lines) + */ + @Parameter(property = "eo.phiSkipFailed", required = true, defaultValue = "false") + private boolean phiSkipFailed; + /** * Pass XMIR to Optimizations train or not. * This flag is used for test in order not to optimize XMIR twice: @@ -100,12 +116,7 @@ public final class PhiMojo extends SafeMojo { @Override public void exec() { final Home home = new HmBase(this.phiOutputDir); - final Train train; - if (this.phiOptimize) { - train = new ParsingTrain(); - } else { - train = new TrDefault<>(); - } + final Train train = this.train(); final int count = new SumOf( new Threads<>( Runtime.getRuntime().availableProcessors(), @@ -127,8 +138,18 @@ public void exec() { String.format(".%s", PhiMojo.EXT) ) ); + int amount; try { home.save(PhiMojo.translated(train, xml), relative); + Logger.info( + this, + "Translated to phi: %[file]s (%[size]s) -> %[file]s (%[size]s)", + processed, + xmir.toFile().length(), + relative, + this.phiOutputDir.toPath().resolve(relative).toFile().length() + ); + amount = 1; } catch (final ImpossibleToPhiTranslationException exception) { Logger.debug( this, @@ -139,16 +160,20 @@ public void exec() { String.format("Couldn't translate %s to phi", processed), exception ); + } catch (final IllegalArgumentException exception) { + if (exception.getCause() instanceof TerminationException + && this.phiSkipFailed) { + Logger.info( + this, + "%[file]s failed on critical error, but skipped because phiSkipFailed=true", + processed + ); + amount = 0; + } else { + throw exception; + } } - Logger.info( - this, - "Translated to phi: %[file]s (%[size]s) -> %[file]s (%[size]s)", - processed, - xmir.toFile().length(), - relative, - this.phiOutputDir.toPath().resolve(relative).toFile().length() - ); - return 1; + return amount; }, new Walk(this.phiInputDir.toPath()) ) @@ -167,6 +192,36 @@ count, new Rel(this.phiInputDir), new Rel(this.phiOutputDir) } } + /** + * Build transformations train depends on flags. + * @return Transformations train + */ + private Train train() { + final Train train; + if (this.phiOptimize) { + train = new ParsingTrain(); + } else { + train = new TrDefault<>(); + } + final Train.Temporary dependent; + if (this.phiFailOnCritical) { + dependent = new TrClasspath<>( + "/org/eolang/parser/fail-on-critical.xsl", + "/org/eolang/maven/phi/to-phi.xsl" + ); + } else { + dependent = new TrClasspath<>("/org/eolang/maven/phi/to-phi.xsl"); + } + return new TrJoined<>( + train, + new TrClasspath<>( + "/org/eolang/parser/critical-errors/duplicate-names.xsl", + "/org/eolang/maven/phi/incorrect-inners.xsl" + ).back(), + dependent.back() + ); + } + /** * Translate given xmir to phi calculus expression. * @param train Train that optimize and translates given xmir @@ -176,17 +231,7 @@ count, new Rel(this.phiInputDir), new Rel(this.phiOutputDir) */ private static String translated(final Train train, final XML xmir) throws ImpossibleToPhiTranslationException { - final XML translated = new Xsline( - new TrJoined<>( - train, - new TrClasspath<>( - "/org/eolang/parser/critical-errors/duplicate-names.xsl", - "/org/eolang/maven/phi/incorrect-inners.xsl", - "/org/eolang/parser/fail-on-critical.xsl", - "/org/eolang/maven/phi/to-phi.xsl" - ).back() - ) - ).pass(xmir); + final XML translated = new Xsline(train).pass(xmir); Logger.debug(PhiMojo.class, "XML after translation to phi:\n%s", translated); final List phi = translated.xpath("phi/text()"); if (phi.isEmpty()) { diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/FakeMaven.java b/eo-maven-plugin/src/test/java/org/eolang/maven/FakeMaven.java index aae29eb992..9a9a4406c0 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/FakeMaven.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/FakeMaven.java @@ -239,6 +239,8 @@ public FakeMaven execute(final Class mojo) throws IO this.params.putIfAbsent("rewriteBinaries", true); this.params.putIfAbsent("offline", false); this.params.putIfAbsent("phiOptimize", false); + this.params.putIfAbsent("phiFailOnCritical", true); + this.params.putIfAbsent("phiSkipFailed", false); this.params.putIfAbsent( "eoPortalDir", new File("../eo-runtime/src/main/rust/eo") diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/PhiMojoTest.java b/eo-maven-plugin/src/test/java/org/eolang/maven/PhiMojoTest.java index 6a54cc04b7..78ee57ef2b 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/PhiMojoTest.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/PhiMojoTest.java @@ -80,6 +80,62 @@ void convertsXmirsToPhiWithoutErrorsWithoutOptimizations( ); } + @Test + void doesNotFailOnCritical(@TempDir final Path temp) { + Assertions.assertDoesNotThrow( + () -> new FakeMaven(temp) + .with("phiFailOnCritical", false) + .withProgram( + "# This is the default 64+ symbols comment in front of named abstract object.", + "[] > with-duplicates", + " true > x", + " false > x" + ) + .execute(new FakeMaven.Phi()), + "PhiMojo should not fail on critical errors with 'phiFailsOnCritical' = false" + ); + } + + @Test + void skipsFailedOnCriticalError(@TempDir final Path temp) { + Assertions.assertDoesNotThrow( + () -> new FakeMaven(temp) + .with("phiFailOnCritical", true) + .with("phiSkipFailed", true) + .withProgram( + "# This is the default 64+ symbols comment in front of named abstract object.", + "[] > with-duplicates", + " true > x", + " false > x" + ) + .execute(new FakeMaven.Phi()), + "PhiMojo should not fail on critical errors with 'phiSkipFailed' = true" + ); + } + + @Test + void doesNotSaveSkippedFile(@TempDir final Path temp) throws IOException { + MatcherAssert.assertThat( + "Skipped file should not be saved after PhiMojo is done", + new FakeMaven(temp) + .with("phiFailOnCritical", true) + .with("phiSkipFailed", true) + .withProgram( + "# This is the default 64+ symbols comment in front of named abstract object.", + "[] > with-duplicates", + " true > x", + " false > x" + ) + .execute(new FakeMaven.Phi()) + .result(), + Matchers.not( + Matchers.hasKey( + String.format("target/phi/foo/x/main.%s", PhiMojo.EXT) + ) + ) + ); + } + @ParameterizedTest @ClasspathSource(value = "org/eolang/maven/phi/xmir", glob = "**.xmir") void convertsXmirsToPhiWithoutErrorsWithOptimizations( From 3b628537a7c04fdcf8b5113f592a2c17d7e95485 Mon Sep 17 00:00:00 2001 From: Roman Korostinskiy <70313618+c71n93@users.noreply.github.com> Date: Wed, 22 May 2024 15:46:59 +0300 Subject: [PATCH 02/28] #2251 change java version for sonar workflow --- .github/workflows/sonar.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml index f884b522e4..bfc62426c1 100644 --- a/.github/workflows/sonar.yml +++ b/.github/workflows/sonar.yml @@ -41,7 +41,7 @@ jobs: packages: scheme-basic geometry xcolor naive-ebnf microtype etoolbox - uses: actions/setup-java@v4 with: - java-version: 20 + java-version: 17 distribution: 'zulu' - uses: actions/cache@v4 with: From 1ae99140851cf53c6ec468542a93ddff59705231 Mon Sep 17 00:00:00 2001 From: rultor <8086956+rultor@users.noreply.github.com> Date: Wed, 22 May 2024 14:01:00 +0000 Subject: [PATCH 03/28] new version in README --- eo-maven-plugin/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eo-maven-plugin/README.md b/eo-maven-plugin/README.md index 964ea85f37..037ef46c12 100644 --- a/eo-maven-plugin/README.md +++ b/eo-maven-plugin/README.md @@ -35,7 +35,7 @@ create a file `pom.xml` with this content (it's just a sample): org.eolang eo-maven-plugin - 0.38.1 + 0.38.2 @@ -156,7 +156,7 @@ execution within `eo-maven-plugin/pom.xml`: ... maven-invoker-plugin - 0.38.1 + 0.38.2 true true From dcb4c1f6d27b00185944557793c782eb1462577e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 25 May 2024 13:19:22 +0000 Subject: [PATCH 04/28] chore(deps): update dependency org.apache.maven:maven-compat to v3.9.7 --- eo-maven-plugin/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eo-maven-plugin/pom.xml b/eo-maven-plugin/pom.xml index a592915741..501bf017a7 100644 --- a/eo-maven-plugin/pom.xml +++ b/eo-maven-plugin/pom.xml @@ -126,7 +126,7 @@ SOFTWARE. org.apache.maven maven-compat - 3.9.6 + 3.9.7 test From 552af9bb55bd4bc72f8bf2a912edebcecb0e2d70 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 25 May 2024 13:19:26 +0000 Subject: [PATCH 05/28] fix(deps): update dependency org.apache.maven:maven-core to v3.9.7 --- eo-maven-plugin/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eo-maven-plugin/pom.xml b/eo-maven-plugin/pom.xml index a592915741..8406935e35 100644 --- a/eo-maven-plugin/pom.xml +++ b/eo-maven-plugin/pom.xml @@ -108,7 +108,7 @@ SOFTWARE. org.apache.maven maven-core - 3.9.6 + 3.9.7 provided From 2c4c23da9c796bfe411112238a310b5ac088127a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 25 May 2024 14:55:28 +0000 Subject: [PATCH 06/28] fix(deps): update dependency org.apache.maven:maven-model to v3.9.7 --- eo-maven-plugin/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eo-maven-plugin/pom.xml b/eo-maven-plugin/pom.xml index 8406935e35..6ad6a22fdd 100644 --- a/eo-maven-plugin/pom.xml +++ b/eo-maven-plugin/pom.xml @@ -102,7 +102,7 @@ SOFTWARE. org.apache.maven maven-model - 3.9.6 + 3.9.7 provided From c0dfbf9aff0f683287d660891e3297ef5d2c7a57 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 25 May 2024 14:55:31 +0000 Subject: [PATCH 07/28] fix(deps): update dependency org.apache.maven:maven-plugin-api to v3.9.7 --- eo-maven-plugin/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eo-maven-plugin/pom.xml b/eo-maven-plugin/pom.xml index 8406935e35..8b2d2b03bc 100644 --- a/eo-maven-plugin/pom.xml +++ b/eo-maven-plugin/pom.xml @@ -96,7 +96,7 @@ SOFTWARE. org.apache.maven maven-plugin-api - 3.9.6 + 3.9.7 provided From c2f930fa5fe0e8585921f39415865894df9e48a4 Mon Sep 17 00:00:00 2001 From: Vyacheslav Rybalchenko Date: Tue, 28 May 2024 15:05:43 +0300 Subject: [PATCH 08/28] feat(objectionary#3038): add trufflehog-oss workflow --- .github/workflows/trufflehog-oss.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/trufflehog-oss.yml diff --git a/.github/workflows/trufflehog-oss.yml b/.github/workflows/trufflehog-oss.yml new file mode 100644 index 0000000000..9a2c512363 --- /dev/null +++ b/.github/workflows/trufflehog-oss.yml @@ -0,0 +1,22 @@ +--- + +name: trufflehog-oss +'on': + push: + branches: + - master + pull_request: + branches: + - master +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Secret Scanning + uses: trufflesecurity/trufflehog@main + with: + extra_args: --only-verified From 93ccc9f20d89926dbaf7d0ab16df8be92f7c5d1c Mon Sep 17 00:00:00 2001 From: Vyacheslav Rybalchenko Date: Tue, 28 May 2024 15:08:59 +0300 Subject: [PATCH 09/28] fix: add license in trufflehog-oss.yml --- .github/workflows/trufflehog-oss.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/.github/workflows/trufflehog-oss.yml b/.github/workflows/trufflehog-oss.yml index 9a2c512363..6ad952c293 100644 --- a/.github/workflows/trufflehog-oss.yml +++ b/.github/workflows/trufflehog-oss.yml @@ -1,3 +1,24 @@ +# The MIT License (MIT) +# +# Copyright (c) 2016-2024 Objectionary.com +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. --- name: trufflehog-oss From e69d3eaabb823146646a61a3adc8b5b9787e34ad Mon Sep 17 00:00:00 2001 From: Vyacheslav Rybalchenko Date: Wed, 29 May 2024 00:16:39 +0300 Subject: [PATCH 10/28] chore: change job name and ubuntu version --- .github/workflows/trufflehog-oss.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/trufflehog-oss.yml b/.github/workflows/trufflehog-oss.yml index 6ad952c293..c653c56010 100644 --- a/.github/workflows/trufflehog-oss.yml +++ b/.github/workflows/trufflehog-oss.yml @@ -30,8 +30,8 @@ name: trufflehog-oss branches: - master jobs: - test: - runs-on: ubuntu-latest + trufflehog: + runs-on: ubuntu-22.04 steps: - name: Checkout code uses: actions/checkout@v4 From b81a3ac3bb2224fb4ebd310036fee875415c1790 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 May 2024 11:29:36 +0000 Subject: [PATCH 11/28] chore(deps): update dependency org.apache.maven.plugins:maven-enforcer-plugin to v3.5.0 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 54986e51ca..2ae30aeecc 100644 --- a/pom.xml +++ b/pom.xml @@ -300,7 +300,7 @@ SOFTWARE. org.apache.maven.plugins maven-enforcer-plugin - 3.4.1 + 3.5.0 enforce-java From c4fe24fc2359957261b1e56b8cac9113d0b77db2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 31 May 2024 22:22:24 +0000 Subject: [PATCH 12/28] fix(deps): update dependency org.apache.maven.plugin-tools:maven-plugin-annotations to v3.13.1 --- eo-maven-plugin/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eo-maven-plugin/pom.xml b/eo-maven-plugin/pom.xml index 1176b4f57a..1a9b681b21 100644 --- a/eo-maven-plugin/pom.xml +++ b/eo-maven-plugin/pom.xml @@ -114,7 +114,7 @@ SOFTWARE. org.apache.maven.plugin-tools maven-plugin-annotations - 3.13.0 + 3.13.1 provided From b7817ec1cb804dd2cc971406a8546e2bbb06aa97 Mon Sep 17 00:00:00 2001 From: maxonfjvipon Date: Wed, 5 Jun 2024 19:43:23 +0300 Subject: [PATCH 13/28] fix(#3213): delta in formation to application on phi --- .../main/java/org/eolang/maven/UnphiMojo.java | 29 +++++++++--- .../org/eolang/maven/unphi/wrap-bytes.xsl | 46 +++++++++++++++++++ .../maven/unphi/delta-in-formation.yaml | 38 +++++++++++++++ .../org/eolang/maven/unphi/termination.yaml | 36 +++++++++++++++ .../java/org/eolang/parser/XePhiListener.java | 12 ++++- 5 files changed, 153 insertions(+), 8 deletions(-) create mode 100644 eo-maven-plugin/src/main/resources/org/eolang/maven/unphi/wrap-bytes.xsl create mode 100644 eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/delta-in-formation.yaml create mode 100644 eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/termination.yaml diff --git a/eo-maven-plugin/src/main/java/org/eolang/maven/UnphiMojo.java b/eo-maven-plugin/src/main/java/org/eolang/maven/UnphiMojo.java index a21cf38159..33010fc473 100644 --- a/eo-maven-plugin/src/main/java/org/eolang/maven/UnphiMojo.java +++ b/eo-maven-plugin/src/main/java/org/eolang/maven/UnphiMojo.java @@ -25,6 +25,8 @@ import com.jcabi.log.Logger; import com.jcabi.xml.XML; +import com.jcabi.xml.XSL; +import com.jcabi.xml.XSLDocument; import java.io.File; import java.nio.file.Path; import java.nio.file.Paths; @@ -35,6 +37,8 @@ import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.cactoos.experimental.Threads; +import org.cactoos.io.ResourceOf; +import org.cactoos.io.UncheckedInput; import org.cactoos.iterable.IterableEnvelope; import org.cactoos.iterable.Joined; import org.cactoos.iterable.Mapped; @@ -59,6 +63,15 @@ threadSafe = true ) public final class UnphiMojo extends SafeMojo { + /** + * Byte wrapping transformation. + */ + private static final XSL WRAP_BYTES = new XSLDocument( + new UncheckedInput( + new ResourceOf("org/eolang/maven/unphi/wrap-bytes.xsl") + ).stream() + ); + /** * The directory where to take phi files for parsing from. * @checkstyle MemberNameCheck (10 lines) @@ -106,18 +119,20 @@ public void exec() { String.format(".%s", TranspileMojo.EXT) ) ); - final XML parsed = new PhiSyntax( - phi.getFileName().toString().replace(".phi", ""), - new TextOf(phi), - metas - ).parsed(); - home.save(parsed.toString(), xmir); + final XML result = UnphiMojo.WRAP_BYTES.transform( + new PhiSyntax( + phi.getFileName().toString().replace(".phi", ""), + new TextOf(phi), + metas + ).parsed() + ); + home.save(result.toString(), xmir); Logger.info( this, "Parsed to xmir: %s -> %s", phi, this.unphiOutputDir.toPath().resolve(xmir) ); - if (parsed.nodes("//errors[count(error)=0]").isEmpty()) { + if (result.nodes("//errors[count(error)=0]").isEmpty()) { errors.add(relative); } return 1; diff --git a/eo-maven-plugin/src/main/resources/org/eolang/maven/unphi/wrap-bytes.xsl b/eo-maven-plugin/src/main/resources/org/eolang/maven/unphi/wrap-bytes.xsl new file mode 100644 index 0000000000..be2be95ed7 --- /dev/null +++ b/eo-maven-plugin/src/main/resources/org/eolang/maven/unphi/wrap-bytes.xsl @@ -0,0 +1,46 @@ + + + + + + + + org.eolang.bytes + + + + + + + + + + + diff --git a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/delta-in-formation.yaml b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/delta-in-formation.yaml new file mode 100644 index 0000000000..626206a40e --- /dev/null +++ b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/delta-in-formation.yaml @@ -0,0 +1,38 @@ +# The MIT License (MIT) +# +# Copyright (c) 2016-2024 Objectionary.com +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +--- +tests: + - //o[not(@abstract) and @name='x' and @base='org.eolang.bytes' and @data and text()='01'] +phi: | + { + ⟦ + org ↦ ⟦ + eolang ↦ ⟦ + x ↦ ⟦ + Δ ⤍ 01- + ⟧, + λ ⤍ Package + ⟧, + λ ⤍ Package + ⟧ + ⟧ + } \ No newline at end of file diff --git a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/termination.yaml b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/termination.yaml new file mode 100644 index 0000000000..8c6b42aca8 --- /dev/null +++ b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/termination.yaml @@ -0,0 +1,36 @@ +# The MIT License (MIT) +# +# Copyright (c) 2016-2024 Objectionary.com +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +--- +tests: + - //o[@base='org.eolang.error' and @name='x']/o[@base='org.eolang.string']/o[@base='org.eolang.bytes' and @data and text()!=''] +phi: | + { + ⟦ + org ↦ ⟦ + eolang ↦ ⟦ + x ↦ ⊥, + λ ⤍ Package + ⟧, + λ ⤍ Package + ⟧ + ⟧ + } \ No newline at end of file diff --git a/eo-parser/src/main/java/org/eolang/parser/XePhiListener.java b/eo-parser/src/main/java/org/eolang/parser/XePhiListener.java index ea3c19adb6..b9ea76a408 100644 --- a/eo-parser/src/main/java/org/eolang/parser/XePhiListener.java +++ b/eo-parser/src/main/java/org/eolang/parser/XePhiListener.java @@ -363,7 +363,17 @@ public void exitApplicationsOrDispatches(final PhiParser.ApplicationsOrDispatche @Override public void enterTermination(final PhiParser.TerminationContext ctx) { - // Nothing here + this.objects() + .prop("base", "org.eolang.error") + .start() + .prop("base", "org.eolang.string") + .start() + .prop("base", "org.eolang.bytes") + .prop("data", "bytes") + .data("55 6E 6B 6E 6F 77 6E 20 65 72 72 6F 72") + .leave() + .leave() + .leave(); } @Override From 01f554a2196d9673eee0069c79d4d46fd15095cc Mon Sep 17 00:00:00 2001 From: maxonfjvipon Date: Wed, 5 Jun 2024 19:49:01 +0300 Subject: [PATCH 14/28] fix(#3213): new lines in yamls --- .../resources/org/eolang/maven/unphi/delta-in-formation.yaml | 2 +- .../src/test/resources/org/eolang/maven/unphi/termination.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/delta-in-formation.yaml b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/delta-in-formation.yaml index 626206a40e..b756073b38 100644 --- a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/delta-in-formation.yaml +++ b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/delta-in-formation.yaml @@ -35,4 +35,4 @@ phi: | λ ⤍ Package ⟧ ⟧ - } \ No newline at end of file + } diff --git a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/termination.yaml b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/termination.yaml index 8c6b42aca8..bf696c8bff 100644 --- a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/termination.yaml +++ b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/termination.yaml @@ -33,4 +33,4 @@ phi: | λ ⤍ Package ⟧ ⟧ - } \ No newline at end of file + } From 96afc112f149210a08afa6c5058d3926052a4e1b Mon Sep 17 00:00:00 2001 From: maxonfjvipon Date: Thu, 6 Jun 2024 11:29:24 +0300 Subject: [PATCH 15/28] fix(#3213): atom ? --- .../src/test/resources/org/eolang/maven/unphi/atoms.yaml | 4 ++-- eo-parser/src/main/java/org/eolang/parser/XePhiListener.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/atoms.yaml b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/atoms.yaml index 6d35d69377..78bfea40e7 100644 --- a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/atoms.yaml +++ b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/atoms.yaml @@ -21,8 +21,8 @@ # SOFTWARE. --- tests: - - /program/objects/o[@name='main' and @atom and @abstract] + - /program/objects/o[@name='main' and @atom='?' and @abstract] - /program/objects/o[@name='outer' and @abstract] - - /program/objects/o[@name='outer' and @abstract]/o[@name='inner' and @atom and @abstract] + - /program/objects/o[@name='outer' and @abstract]/o[@name='inner' and @atom='?' and @abstract] phi: "{⟦main ↦ ⟦λ ⤍ Lambda⟧, outer ↦ ⟦inner ↦ ⟦λ ⤍ Lambda⟧⟧⟧}" diff --git a/eo-parser/src/main/java/org/eolang/parser/XePhiListener.java b/eo-parser/src/main/java/org/eolang/parser/XePhiListener.java index b9ea76a408..8705a95ecd 100644 --- a/eo-parser/src/main/java/org/eolang/parser/XePhiListener.java +++ b/eo-parser/src/main/java/org/eolang/parser/XePhiListener.java @@ -316,7 +316,7 @@ public void exitDeltaBinding(final PhiParser.DeltaBindingContext ctx) { @Override public void enterLambdaBinding(final PhiParser.LambdaBindingContext ctx) { if (!XePhiListener.LAMBDA_PACKAGE.equals(ctx.FUNCTION().getText())) { - this.objects().prop("atom"); + this.objects().prop("atom", "?"); } } From c623bc3c5ca9150e10e634d5978293a9732238f1 Mon Sep 17 00:00:00 2001 From: Yegor Bugayenko Date: Fri, 7 Jun 2024 13:02:14 +0300 Subject: [PATCH 16/28] copyrights --- .../workflows/{license.yml => copyrights.yml} | 51 +++++++------------ 1 file changed, 19 insertions(+), 32 deletions(-) rename .github/workflows/{license.yml => copyrights.yml} (56%) diff --git a/.github/workflows/license.yml b/.github/workflows/copyrights.yml similarity index 56% rename from .github/workflows/license.yml rename to .github/workflows/copyrights.yml index d08df99132..4a0660a752 100644 --- a/.github/workflows/license.yml +++ b/.github/workflows/copyrights.yml @@ -20,42 +20,29 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. --- -name: license -on: +name: copyrights +'on': push: pull_request: jobs: - license: + copyrights: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 + - uses: yegor256/copyrights-action@0.0.4 with: - fetch-depth: 0 - - run: | - set -e - find . -type f \( \ - -name "LICENSE.*" \ - -o -name "*.sh" \ - -o -name "*.yml" \ - -o -name "*.yaml" \ - -o -name "*.eo" \ - -o -name "*.xmir" \ - -o -name "*.xml" \ - -o -name "*.xsl" \ - -o -name "*.xsd" \ - -o -name "*.ini" \ - -o -name "*.java" \ - -o -name "*.g4" \ - -o -name "*.properties" \ - -o -name "*.groovy" \) > files.txt - header="Copyright (c) 2016-$(date +%Y) Objectionary.com" - failed="false" - while IFS= read -r file; do - if ! grep -q "$header" "$file"; then - failed="true" - echo "No license in: $file" - fi - done < files.txt - if [ "${failed}" == "true" ]; then - exit 1 - fi + globs: >- + **/LICENSE.txt + **/*.sh + **/*.yml + **/*.yaml + **/*.eo + **/*.xmir + **/*.xml + **/*.xsl + **/*.xsd + **/*.ini + **/*.java + **/*.g4 + **/*.properties + **/*.groovy From 075e1ebec6353cc6e9bba71b0f2ca777f08312c8 Mon Sep 17 00:00:00 2001 From: yegor256 <526301+yegor256@users.noreply.github.com> Date: Fri, 7 Jun 2024 10:02:37 +0000 Subject: [PATCH 17/28] new version in README --- eo-maven-plugin/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eo-maven-plugin/README.md b/eo-maven-plugin/README.md index 037ef46c12..37d3911389 100644 --- a/eo-maven-plugin/README.md +++ b/eo-maven-plugin/README.md @@ -35,7 +35,7 @@ create a file `pom.xml` with this content (it's just a sample): org.eolang eo-maven-plugin - 0.38.2 + 0.38.3 @@ -156,7 +156,7 @@ execution within `eo-maven-plugin/pom.xml`: ... maven-invoker-plugin - 0.38.2 + 0.38.3 true true From 114c382a9eeebd567f05f5f2b99736b466cae10d Mon Sep 17 00:00:00 2001 From: Chamber6821 Date: Sun, 9 Jun 2024 21:36:21 +0300 Subject: [PATCH 18/28] feat(objectionary#3078): implement seq via dataized --- eo-runtime/src/main/eo/org/eolang/seq.eo | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/eo-runtime/src/main/eo/org/eolang/seq.eo b/eo-runtime/src/main/eo/org/eolang/seq.eo index b1f66aea66..18be2275fe 100644 --- a/eo-runtime/src/main/eo/org/eolang/seq.eo +++ b/eo-runtime/src/main/eo/org/eolang/seq.eo @@ -28,4 +28,20 @@ # The object, when being dataized, dataizes all provided # "steps" (except the last one) and returns the last one. -[steps] > seq /? +[steps] > seq + if. > @ + steps.length.eq 0 + true + loop 0 + + [index] > loop + if. > @ + and. + index.lt (steps.length.minus 1) + or. + (dataized (steps.at index)).as-bool + true + ^.loop + index.plus 1 + steps.at index + From 6ccc1f38318327a28cacffa3a41800a9f0e0043f Mon Sep 17 00:00:00 2001 From: Chamber6821 Date: Sun, 9 Jun 2024 21:48:56 +0300 Subject: [PATCH 19/28] fix: remove test for Java implementation of seq --- .../src/main/java/EOorg/EOeolang/EOseq.java | 91 ------------------- .../test/java/EOorg/EOeolang/EOseqTest.java | 87 ------------------ 2 files changed, 178 deletions(-) delete mode 100644 eo-runtime/src/main/java/EOorg/EOeolang/EOseq.java delete mode 100644 eo-runtime/src/test/java/EOorg/EOeolang/EOseqTest.java diff --git a/eo-runtime/src/main/java/EOorg/EOeolang/EOseq.java b/eo-runtime/src/main/java/EOorg/EOeolang/EOseq.java deleted file mode 100644 index 5f9f763007..0000000000 --- a/eo-runtime/src/main/java/EOorg/EOeolang/EOseq.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2016-2024 Objectionary.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* - * @checkstyle PackageNameCheck (4 lines) - */ -package EOorg.EOeolang; - -import org.eolang.AtVoid; -import org.eolang.Atom; -import org.eolang.Data; -import org.eolang.Dataized; -import org.eolang.PhDefault; -import org.eolang.PhMethod; -import org.eolang.Phi; -import org.eolang.Versionized; -import org.eolang.XmirObject; - -/** - * SEQ. - * @since 1.0 - * @checkstyle TypeNameCheck (5 lines) - */ -@Versionized -@XmirObject(oname = "seq") -public final class EOseq extends PhDefault implements Atom { - - /** - * Ctor. - */ - public EOseq() { - this.add("steps", new AtVoid("steps")); - } - - @Override - public Phi lambda() { - final Phi steps = this.take("steps"); - final Phi[] items = EOseq.eoTupleAsArray(steps); - for (int ind = 0; ind < items.length - 1; ++ind) { - new Dataized(items[ind]).take(); - } - final Phi ret; - if (items.length > 0) { - ret = new PhMethod(steps, "tail"); - } else { - ret = new Data.ToPhi(false); - } - return ret; - } - - /** - * Converts eo tuple to java array. - * @param args Eo tuple. - * @return Java array. - */ - private static Phi[] eoTupleAsArray(final Phi args) { - final int length = Math.toIntExact( - new Dataized( - args.take("length") - ).take(Long.class) - ); - final Phi[] res = new Phi[length]; - Phi external = args; - for (int ind = length - 1; ind >= 0; --ind) { - res[ind] = new PhMethod(external, "tail"); - external = external.take("head"); - } - return res; - } -} diff --git a/eo-runtime/src/test/java/EOorg/EOeolang/EOseqTest.java b/eo-runtime/src/test/java/EOorg/EOeolang/EOseqTest.java deleted file mode 100644 index ed0958aafd..0000000000 --- a/eo-runtime/src/test/java/EOorg/EOeolang/EOseqTest.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2016-2024 Objectionary.com - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -/* - * @checkstyle PackageNameCheck (10 lines) - */ -package EOorg.EOeolang; - -import org.eolang.AtCompositeTest; -import org.eolang.Data; -import org.eolang.Dataized; -import org.eolang.PhWith; -import org.eolang.Phi; -import org.hamcrest.MatcherAssert; -import org.hamcrest.Matchers; -import org.junit.jupiter.api.Test; - -/** - * Test case for {@link EOseq}. - * - * @since 0.16 - */ -public final class EOseqTest { - - @Test - public void calculatesAndReturns() { - MatcherAssert.assertThat( - AtCompositeTest.TO_ADD_MESSAGE, - new Dataized( - new PhWith( - new EOseq(), - 0, - new PhWith( - new PhWith( - new EOtuple$EOempty().take("with").copy(), - 0, new Data.ToPhi(0L) - ).take("with").copy(), - 0, new Data.ToPhi(1L) - ) - ) - ).take(Long.class), - Matchers.equalTo(1L) - ); - } - - @Test - public void calculatesAndReturnsObject() { - MatcherAssert.assertThat( - AtCompositeTest.TO_ADD_MESSAGE, - new Dataized( - new PhWith( - new EOseq(), - 0, - new PhWith( - new PhWith( - new EOtuple$EOempty().take("with").copy(), - 0, new Data.ToPhi(0L) - ).take("with").copy(), - 0, new Data.ToPhi("Hello!") - ) - ) - ).take(String.class), - Matchers.startsWith("Hello") - ); - } -} From 7a992cf54d1fb3a2a081cb2cfb8084fdfe242f04 Mon Sep 17 00:00:00 2001 From: Chamber6821 Date: Sun, 9 Jun 2024 23:33:28 +0300 Subject: [PATCH 20/28] fix: rewrite tests from Java to EO for seq --- eo-runtime/src/test/eo/org/eolang/seq-tests.eo | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/eo-runtime/src/test/eo/org/eolang/seq-tests.eo b/eo-runtime/src/test/eo/org/eolang/seq-tests.eo index 9b154587d5..5bf65700e7 100644 --- a/eo-runtime/src/test/eo/org/eolang/seq-tests.eo +++ b/eo-runtime/src/test/eo/org/eolang/seq-tests.eo @@ -174,3 +174,21 @@ m.put (m.as-int.plus 1) m 1 + +# Test. +[] > seq-calculates-and-returns + eq. > @ + 1 + seq + * + 0 + 1 + +# Test. +[] > seq-calculates-and-returns-object + eq. > @ + "Hello!" + seq + * + 0 + "Hello!" From 2d30164ab0172d36797eca4ccd536e602ae97e06 Mon Sep 17 00:00:00 2001 From: maxonfjvipon Date: Mon, 10 Jun 2024 17:00:17 +0300 Subject: [PATCH 21/28] fix(#3213): convert normalized atoms with Lambda to applications --- .../main/java/org/eolang/maven/UnphiMojo.java | 20 +++--- .../maven/unphi/atoms-with-bound-attrs.xsl | 72 +++++++++++++++++++ .../org/eolang/maven/unphi/atoms.yaml | 19 +++-- .../org/eolang/maven/unphi/bindings.yaml | 30 ++------ .../org/eolang/maven/unphi/empty-bytes.yaml | 7 +- .../eolang/maven/unphi/normalized-atom.yaml | 47 ++++++++++++ .../org/eolang/maven/unphi/one-byte.yaml | 6 +- .../org/eolang/maven/unphi/package.yaml | 6 +- .../org/eolang/maven/unphi/specials.yaml | 8 +-- .../maven/unphi/with-anonym-abstract.yaml | 5 +- .../org/eolang/maven/unphi/with-data.yaml | 10 +-- .../java/org/eolang/parser/XePhiListener.java | 2 +- 12 files changed, 164 insertions(+), 68 deletions(-) create mode 100644 eo-maven-plugin/src/main/resources/org/eolang/maven/unphi/atoms-with-bound-attrs.xsl create mode 100644 eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/normalized-atom.yaml diff --git a/eo-maven-plugin/src/main/java/org/eolang/maven/UnphiMojo.java b/eo-maven-plugin/src/main/java/org/eolang/maven/UnphiMojo.java index 33010fc473..494a5a3221 100644 --- a/eo-maven-plugin/src/main/java/org/eolang/maven/UnphiMojo.java +++ b/eo-maven-plugin/src/main/java/org/eolang/maven/UnphiMojo.java @@ -25,8 +25,8 @@ import com.jcabi.log.Logger; import com.jcabi.xml.XML; -import com.jcabi.xml.XSL; -import com.jcabi.xml.XSLDocument; +import com.yegor256.xsline.TrClasspath; +import com.yegor256.xsline.Xsline; import java.io.File; import java.nio.file.Path; import java.nio.file.Paths; @@ -37,8 +37,6 @@ import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.cactoos.experimental.Threads; -import org.cactoos.io.ResourceOf; -import org.cactoos.io.UncheckedInput; import org.cactoos.iterable.IterableEnvelope; import org.cactoos.iterable.Joined; import org.cactoos.iterable.Mapped; @@ -64,12 +62,14 @@ ) public final class UnphiMojo extends SafeMojo { /** - * Byte wrapping transformation. + * Unphi transformations. */ - private static final XSL WRAP_BYTES = new XSLDocument( - new UncheckedInput( - new ResourceOf("org/eolang/maven/unphi/wrap-bytes.xsl") - ).stream() + private static final Xsline TRANSFORMATIONS = new Xsline( + new TrClasspath<>( + "/org/eolang/maven/unphi/wrap-bytes.xsl", + "/org/eolang/parser/wrap-method-calls.xsl", + "/org/eolang/maven/unphi/atoms-with-bound-attrs.xsl" + ).back() ); /** @@ -119,7 +119,7 @@ public void exec() { String.format(".%s", TranspileMojo.EXT) ) ); - final XML result = UnphiMojo.WRAP_BYTES.transform( + final XML result = TRANSFORMATIONS.pass( new PhiSyntax( phi.getFileName().toString().replace(".phi", ""), new TextOf(phi), diff --git a/eo-maven-plugin/src/main/resources/org/eolang/maven/unphi/atoms-with-bound-attrs.xsl b/eo-maven-plugin/src/main/resources/org/eolang/maven/unphi/atoms-with-bound-attrs.xsl new file mode 100644 index 0000000000..2138c6986f --- /dev/null +++ b/eo-maven-plugin/src/main/resources/org/eolang/maven/unphi/atoms-with-bound-attrs.xsl @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + . + + + + + + + + + + + + + + + + + + + + + + diff --git a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/atoms.yaml b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/atoms.yaml index 78bfea40e7..d5651eb4ba 100644 --- a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/atoms.yaml +++ b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/atoms.yaml @@ -21,8 +21,19 @@ # SOFTWARE. --- tests: - - /program/objects/o[@name='main' and @atom='?' and @abstract] + - /program/objects/o[@name='main' and @atom='Lambda' and @abstract] - /program/objects/o[@name='outer' and @abstract] - - /program/objects/o[@name='outer' and @abstract]/o[@name='inner' and @atom='?' and @abstract] -phi: - "{⟦main ↦ ⟦λ ⤍ Lambda⟧, outer ↦ ⟦inner ↦ ⟦λ ⤍ Lambda⟧⟧⟧}" + - /program/objects/o[@name='outer' and @abstract]/o[@name='inner' and @atom='Lambda' and @abstract] +phi: | + { + ⟦ + main ↦ ⟦ + λ ⤍ Lambda + ⟧, + outer ↦ ⟦ + inner ↦ ⟦ + λ ⤍ Lambda + ⟧ + ⟧ + ⟧ + } diff --git a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/bindings.yaml b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/bindings.yaml index 430eb6b554..837d3b75a2 100644 --- a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/bindings.yaml +++ b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/bindings.yaml @@ -21,29 +21,13 @@ # SOFTWARE. --- tests: - - /program/objects/o[@base='Q'] - - /program/objects/o[@method and @base='.org'] - - /program/objects/o[@method and @base='.eolang'] - - /program/objects/o[@method and @base='.x'] - - - /program/objects/o[@method and @base='.x' and @name='xyz']/o[@base='Q'] - - /program/objects/o[@method and @base='.x' and @name='xyz']/o[@base='.org' and @method] - - /program/objects/o[@method and @base='.x' and @name='xyz']/o[@base='.eolang' and @method] - - /program/objects/o[@method and @base='.x' and @name='xyz']/o[@base='.y' and @method and @as='attr'] - - - /program/objects/o[@method and @base='.x' and @name='xyz']/o[@abstract and @as='abs'] - - /program/objects/o[@method and @base='.x' and @name='xyz']/o[@abstract and @as='abs']/o[@name='z' and not(@base)] - - /program/objects/o[@method and @base='.x' and @name='xyz']/o[@abstract and @as='abs']/o[@base='Q'] - - /program/objects/o[@method and @base='.x' and @name='xyz']/o[@abstract and @as='abs']/o[@base='.org' and @method] - - /program/objects/o[@method and @base='.x' and @name='xyz']/o[@abstract and @as='abs']/o[@base='.eolang' and @method] - - /program/objects/o[@method and @base='.x' and @name='xyz']/o[@abstract and @as='abs']/o[@base='.w' and @method and @name='@'] - - - /program/objects/o[@method and @base='.x' and @name='xyz']/o[@base='.int' and @method and @as='five'] - - /program/objects/o[@method and @base='.x' and @name='xyz']/o[@base='.int' and @method and @as='five']/o[@base='Q'] - - /program/objects/o[@method and @base='.x' and @name='xyz']/o[@base='.int' and @method and @as='five']/o[@base='.org' and @method] - - /program/objects/o[@method and @base='.x' and @name='xyz']/o[@base='.int' and @method and @as='five']/o[@base='.eolang' and @method] - - /program/objects/o[@method and @base='.x' and @name='xyz']/o[@base='.int' and @method and @as='five']/o[@base='.bytes' and @method and @as='0'] - - /program/objects/o[@method and @base='.x' and @name='xyz']/o[@base='.int' and @method and @as='five']/o[@base='.bytes' and @method and @as='0']/text() + - //o[@base='.x' and @name='xyz']/o[@base='.eolang']/o[@base='.org']/o[@base='Q'] + - //o[@base='.x' and @name='xyz']/o[@base='.y' and @as='attr']/o[@base='.eolang']/o[@base='.org']/o[@base='Q'] + - //o[@base='.x' and @name='xyz']/o[@abstract and @as='abs']/o[@name='z' and not(@base)] + - //o[@base='.x' and @name='xyz']/o[@abstract and @as='abs']/o[@base='.w' and @name='@']/o[@base='.eolang']/o[@base='.org']/o[@base='Q'] + - //o[@base='.x' and @name='xyz']/o[@base='.int' and @as='five']/o[@base='.eolang']/o[@base='.org']/o[@base='Q'] + - //o[@base='.x' and @name='xyz']/o[@base='.int' and @as='five']/o[@as='0' and @base='.bytes']/o[@base='.eolang']/o[@base='.org']/o[@base='Q'] + - //o[@base='.x' and @name='xyz']/o[@base='.int' and @as='five']/o[@as='0' and @base='.bytes']/o[@base='org.eolang.bytes' and @data and text()!=''] phi: |- { ⟦ diff --git a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/empty-bytes.yaml b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/empty-bytes.yaml index 380236da45..53e10322fa 100644 --- a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/empty-bytes.yaml +++ b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/empty-bytes.yaml @@ -21,9 +21,6 @@ # SOFTWARE. --- tests: - - /program/objects/o[@base='Q'] - - /program/objects/o[@base='.org' and @method] - - /program/objects/o[@base='.eolang' and @method] - - /program/objects/o[@base='.bytes' and @method and @name='empty'] - - /program/objects/o[@base='.bytes' and @method and @name='empty' and o[@base='org.eolang.bytes' and not(text())]] + - /program/objects/o[@base='.bytes' and @name='empty']/o[@base='.eolang']/o[@base='.org']/o[@base='Q'] + - /program/objects/o[@base='.bytes' and @name='empty']/o[@base='org.eolang.bytes' and @data] phi: "{⟦empty ↦ Φ.org.eolang.bytes(Δ ⤍ --)⟧}" diff --git a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/normalized-atom.yaml b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/normalized-atom.yaml new file mode 100644 index 0000000000..b4e39aebb2 --- /dev/null +++ b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/normalized-atom.yaml @@ -0,0 +1,47 @@ +# The MIT License (MIT) +# +# Copyright (c) 2016-2024 Objectionary.com +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. +--- +tests: + - //o[@base='org.eolang.io.stdout' and not(@abstract) and @name='x'] + - //o[@base='org.eolang.io.stdout' and not(@abstract) and @name='x']/o[@as='text' and @base='.bytes'] + - //o[@base='org.eolang.io.stdout' and not(@abstract) and @name='x']/o[@as='size' and @base='.int'] +phi: | + { + ⟦ + org ↦ ⟦ + eolang ↦ ⟦ + io ↦ ⟦ + x ↦ ⟦ + text ↦ Φ.org.eolang.bytes (Δ ⤍ 48-65-6C-6C-6F-20-77-6F-72-6C-64-0A), + size ↦ Φ.org.eolang.int( + as-bytes ↦ Φ.org.eolang.bytes (Δ ⤍ 48-65-6C-6C-6F-20-77-6F-72-6C-64-0A) + ), + λ ⤍ Lorg_eolang_io_stdout + ⟧, + λ ⤍ Package + ⟧, + λ ⤍ Package + ⟧, + λ ⤍ Package + ⟧ + ⟧ + } diff --git a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/one-byte.yaml b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/one-byte.yaml index 557ac931d0..20c683e0ea 100644 --- a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/one-byte.yaml +++ b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/one-byte.yaml @@ -21,8 +21,6 @@ # SOFTWARE. --- tests: - - /program/objects/o[@base='Q'] - - /program/objects/o[@base='.org' and @method] - - /program/objects/o[@base='.eolang' and @method] - - /program/objects/o[@base='.bytes' and @method and @name='bts' and o[@base='org.eolang.bytes' and text()='A2']] + - /program/objects/o[@base='.bytes' and @name='bts']/o[@base='.eolang']/o[@base='.org']/o[@base='Q'] + - /program/objects/o[@base='.bytes' and @name='bts']/o[@base='org.eolang.bytes' and text()='A2'] phi: "{⟦bts ↦ Φ.org.eolang.bytes(Δ ⤍ A2-)⟧}" diff --git a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/package.yaml b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/package.yaml index 0bd40c40c1..60fb58ae58 100644 --- a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/package.yaml +++ b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/package.yaml @@ -22,9 +22,5 @@ --- tests: - /program/metas/meta[head[text()='package'] and tail[text()='foo.bar.baz'] and part[text()='foo.bar.baz']] - - /program/objects/o[@abstract and @name='main'] - - /program/objects/o[@abstract and @name='main']/o[@base='Q'] - - /program/objects/o[@abstract and @name='main']/o[@base='.org' and @method] - - /program/objects/o[@abstract and @name='main']/o[@base='.eolang' and @method] - - /program/objects/o[@abstract and @name='main']/o[@base='.stdout' and @method and @name='@'] + - //o[@abstract and @name='main']/o[@base='.stdout']/o[@base='.eolang']/o[@base='.org']/o[@base='Q'] phi: "{⟦foo ↦ ⟦bar ↦ ⟦baz ↦ ⟦main ↦ ⟦φ ↦ Φ.org.eolang.stdout⟧, λ ⤍ Package⟧, λ ⤍ Package⟧, λ ⤍ Package⟧⟧}" diff --git a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/specials.yaml b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/specials.yaml index bca687734c..f523aafd62 100644 --- a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/specials.yaml +++ b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/specials.yaml @@ -22,11 +22,9 @@ --- tests: - /program/objects/o[@name='main'] - - /program/objects/o[@name='main']/o[@base='$']/following-sibling::o[@base='.^' and @method]/following-sibling::o[@base='.x' and @method and @name='x'] - - - /program/objects/o[@name='main']/o[@base='$']/following-sibling::o[@base='.a' and @method and @name='a'] - - - /program/objects/o[@name='main']/o[@base='$']/following-sibling::o[@base='.@' and @method]/following-sibling::o[@base='.@' and @method and @name='phi'] + - /program/objects/o[@abstract and @name='main']/o[@base='.x' and @name='x']/o[@base='.^']/o[@base='$'] + - /program/objects/o[@abstract and @name='main']/o[@base='.a' and @name='a']/o[@base='.^']/o[@base='$'] + - /program/objects/o[@abstract and @name='main']/o[@base='.@' and @name='phi']/o[@base='.@']/o[@base='$'] eo: | [] > main ^.x > x diff --git a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/with-anonym-abstract.yaml b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/with-anonym-abstract.yaml index fb3cd07032..5604c5ba75 100644 --- a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/with-anonym-abstract.yaml +++ b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/with-anonym-abstract.yaml @@ -21,9 +21,8 @@ # SOFTWARE. --- tests: - - //o[@name='test' and count(o)=2] - - //o[@name='test']/o[position()=1 and @abstract and not(@name)] - - //o[@name='test']/o[last() and @base='.plus' and @method] + - //o[@name='test' and @abstract]/o[@base='.plus' and @name='s']/o[position()=1 and @abstract and not(@name)] + - //o[@name='test' and @abstract]/o[@base='.plus' and @name='s']/o[position()>1 and @as='0' and @base='.int']/o[@base='.eolang']/o[@base='.org']/o[@base='Q'] phi: |- { ⟦ diff --git a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/with-data.yaml b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/with-data.yaml index ec97071b81..9c9a8cd304 100644 --- a/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/with-data.yaml +++ b/eo-maven-plugin/src/test/resources/org/eolang/maven/unphi/with-data.yaml @@ -21,12 +21,6 @@ # SOFTWARE. --- tests: - - /program/objects/o[@base='Q'] - - /program/objects/o[@base='.org' and @method] - - /program/objects/o[@base='.eolang' and @method] - - /program/objects/o[@base='.int' and @method and @name='five'] - - /program/objects/o[@base='.int' and @method and @name='five']/o[@base='Q'] - - /program/objects/o[@base='.int' and @method and @name='five']/o[@base='.org' and @method] - - /program/objects/o[@base='.int' and @method and @name='five']/o[@base='.eolang' and @method] - - /program/objects/o[@base='.int' and @method and @name='five']/o[@base='.bytes' and @method and @as='0' and o[@base='org.eolang.bytes' and text()='00 00 00 00 00 00 00 05']] + - //o[@name='five' and @base='.int']/o[@base='.eolang'] + - //o[@name='five' and @base='.int']/o[@base='.bytes' and @as='0'] phi: "{⟦five ↦ Φ.org.eolang.int(α0 ↦ Φ.org.eolang.bytes(Δ ⤍ 00-00-00-00-00-00-00-05))⟧}" diff --git a/eo-parser/src/main/java/org/eolang/parser/XePhiListener.java b/eo-parser/src/main/java/org/eolang/parser/XePhiListener.java index 8705a95ecd..a3d0f456a0 100644 --- a/eo-parser/src/main/java/org/eolang/parser/XePhiListener.java +++ b/eo-parser/src/main/java/org/eolang/parser/XePhiListener.java @@ -316,7 +316,7 @@ public void exitDeltaBinding(final PhiParser.DeltaBindingContext ctx) { @Override public void enterLambdaBinding(final PhiParser.LambdaBindingContext ctx) { if (!XePhiListener.LAMBDA_PACKAGE.equals(ctx.FUNCTION().getText())) { - this.objects().prop("atom", "?"); + this.objects().prop("atom", ctx.FUNCTION().getText()); } } From 10b6088e8e5ff5d65b2c811310fc6fb62159d088 Mon Sep 17 00:00:00 2001 From: maxonfjvipon Date: Mon, 10 Jun 2024 19:44:32 +0300 Subject: [PATCH 22/28] fix(#3222): extened logs on pull --- .../main/java/org/eolang/maven/PullMojo.java | 14 ++++++-- .../org/eolang/maven/tojos/ForeignTojo.java | 10 +++++- .../java/org/eolang/maven/PullMojoTest.java | 36 +++++++++++++++++++ 3 files changed, 57 insertions(+), 3 deletions(-) diff --git a/eo-maven-plugin/src/main/java/org/eolang/maven/PullMojo.java b/eo-maven-plugin/src/main/java/org/eolang/maven/PullMojo.java index 2e1fa8bcc8..ec15a83f78 100644 --- a/eo-maven-plugin/src/main/java/org/eolang/maven/PullMojo.java +++ b/eo-maven-plugin/src/main/java/org/eolang/maven/PullMojo.java @@ -125,8 +125,18 @@ public void exec() throws IOException { ) ); names.add(name); - tojo.withSource(this.pull(name).toAbsolutePath()) - .withHash(new ChNarrow(name.hash())); + try { + tojo.withSource(this.pull(name).toAbsolutePath()) + .withHash(new ChNarrow(name.hash())); + } catch (final IOException exception) { + throw new IOException( + String.format( + "Failed to pull object discovered at %s", + tojo.discoveredAt() + ), + exception + ); + } } Logger.info( this, diff --git a/eo-maven-plugin/src/main/java/org/eolang/maven/tojos/ForeignTojo.java b/eo-maven-plugin/src/main/java/org/eolang/maven/tojos/ForeignTojo.java index c70e8d2143..4848079a8d 100644 --- a/eo-maven-plugin/src/main/java/org/eolang/maven/tojos/ForeignTojo.java +++ b/eo-maven-plugin/src/main/java/org/eolang/maven/tojos/ForeignTojo.java @@ -37,7 +37,7 @@ * * @since 0.30 */ -@SuppressWarnings("PMD.TooManyMethods") +@SuppressWarnings({"PMD.TooManyMethods", "PMD.GodClass"}) public final class ForeignTojo { /** @@ -137,6 +137,14 @@ public String probed() { return this.attribute(ForeignTojos.Attribute.PROBED); } + /** + * The discovered at location. + * @return The discovered at. + */ + public String discoveredAt() { + return this.attribute(ForeignTojos.Attribute.DISCOVERED_AT); + } + /** * Checks if tojo was not already optimized. * diff --git a/eo-maven-plugin/src/test/java/org/eolang/maven/PullMojoTest.java b/eo-maven-plugin/src/test/java/org/eolang/maven/PullMojoTest.java index 56ae806619..22d542d7b4 100644 --- a/eo-maven-plugin/src/test/java/org/eolang/maven/PullMojoTest.java +++ b/eo-maven-plugin/src/test/java/org/eolang/maven/PullMojoTest.java @@ -38,6 +38,8 @@ import org.eolang.maven.hash.ChText; import org.eolang.maven.hash.CommitHash; import org.eolang.maven.hash.CommitHashesMap; +import org.eolang.maven.log.CaptureLogs; +import org.eolang.maven.log.Logs; import org.eolang.maven.name.ObjectName; import org.eolang.maven.name.OnVersioned; import org.eolang.maven.objectionary.Objectionaries; @@ -46,6 +48,7 @@ import org.eolang.maven.util.HmBase; import org.hamcrest.MatcherAssert; import org.hamcrest.Matchers; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.io.TempDir; @@ -294,6 +297,39 @@ void doesNotPullInOfflineMode(@TempDir final Path tmp) throws IOException { ); } + @Test + @CaptureLogs + void showsWhereNotFoundWasDiscoveredAt(@TempDir final Path tmp, final Logs out) { + Assertions.assertThrows( + Exception.class, + () -> { + new FakeMaven(tmp) + .withProgram( + "+package com.example\n", + "# This is the default 64+ symbols comment in front of named abstract object.", + "[] > main", + " org.eolang.org > @" + ) + .with( + "objectionaries", + new Objectionaries.Fake( + new OyRemote( + new ChRemote("master") + ) + ) + ) + .execute(new FakeMaven.Pull()); + }, + "Pull mojo should fail, but it does not" + ); + Assertions.assertTrue( + out.captured().stream().anyMatch( + line -> line.contains("Failed to pull object discovered at") + ), + "Log should contain info where failed to pull object was discovered at, but it does not" + ); + } + /** * Check if the given source file exists in the target directory. * @param temp Test temporary directory. From f35216e76f5fa936ade3c82373ceeffaf1516516 Mon Sep 17 00:00:00 2001 From: Chamber6821 Date: Wed, 12 Jun 2024 02:45:07 +0300 Subject: [PATCH 23/28] feat: save tuple length between steps --- eo-runtime/src/main/eo/org/eolang/seq.eo | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eo-runtime/src/main/eo/org/eolang/seq.eo b/eo-runtime/src/main/eo/org/eolang/seq.eo index 18be2275fe..ef6a2d2220 100644 --- a/eo-runtime/src/main/eo/org/eolang/seq.eo +++ b/eo-runtime/src/main/eo/org/eolang/seq.eo @@ -33,11 +33,12 @@ steps.length.eq 0 true loop 0 + steps.length.minus 1 > max-len! [index] > loop if. > @ and. - index.lt (steps.length.minus 1) + index.lt ^.max-len or. (dataized (steps.at index)).as-bool true From 5bfeaaf9d476b56dff3f534689cd3d684c70cb05 Mon Sep 17 00:00:00 2001 From: rultor <8086956+rultor@users.noreply.github.com> Date: Thu, 13 Jun 2024 16:23:13 +0000 Subject: [PATCH 24/28] new version in README --- eo-maven-plugin/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eo-maven-plugin/README.md b/eo-maven-plugin/README.md index 37d3911389..907bc0c782 100644 --- a/eo-maven-plugin/README.md +++ b/eo-maven-plugin/README.md @@ -35,7 +35,7 @@ create a file `pom.xml` with this content (it's just a sample): org.eolang eo-maven-plugin - 0.38.3 + 0.38.4 @@ -156,7 +156,7 @@ execution within `eo-maven-plugin/pom.xml`: ... maven-invoker-plugin - 0.38.3 + 0.38.4 true true From f8a4b2d4a570aa87c4404fa6ba80b4155bda296c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 16 Jun 2024 04:19:11 +0000 Subject: [PATCH 25/28] chore(deps): update teatimeguest/setup-texlive-action action to v3.3.0 --- .github/workflows/codecov.yml | 2 +- .github/workflows/daily.yml | 2 +- .github/workflows/ebnf.yml | 2 +- .github/workflows/sonar.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml index 815571397c..c5d3856f82 100644 --- a/.github/workflows/codecov.yml +++ b/.github/workflows/codecov.yml @@ -38,7 +38,7 @@ jobs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - - uses: teatimeguest/setup-texlive-action@v3.2.1 + - uses: teatimeguest/setup-texlive-action@v3.3.0 with: update-all-packages: true packages: scheme-basic geometry xcolor naive-ebnf microtype etoolbox diff --git a/.github/workflows/daily.yml b/.github/workflows/daily.yml index 0052f7a830..3c729809dc 100644 --- a/.github/workflows/daily.yml +++ b/.github/workflows/daily.yml @@ -30,7 +30,7 @@ jobs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - - uses: teatimeguest/setup-texlive-action@v3.2.1 + - uses: teatimeguest/setup-texlive-action@v3.3.0 with: update-all-packages: true packages: scheme-basic geometry xcolor naive-ebnf microtype etoolbox diff --git a/.github/workflows/ebnf.yml b/.github/workflows/ebnf.yml index 34a923a3d7..66936c89a0 100644 --- a/.github/workflows/ebnf.yml +++ b/.github/workflows/ebnf.yml @@ -38,7 +38,7 @@ jobs: - run: | sudo apt-get update sudo apt-get -y install ghostscript imagemagick texlive-extra-utils pdf2svg inkscape - - uses: teatimeguest/setup-texlive-action@v3.2.1 + - uses: teatimeguest/setup-texlive-action@v3.3.0 with: update-all-packages: true packages: scheme-basic geometry xcolor naive-ebnf microtype etoolbox diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml index bfc62426c1..7a04f28de6 100644 --- a/.github/workflows/sonar.yml +++ b/.github/workflows/sonar.yml @@ -35,7 +35,7 @@ jobs: - uses: actions/checkout@v4 with: fetch-depth: 0 - - uses: teatimeguest/setup-texlive-action@v3.2.1 + - uses: teatimeguest/setup-texlive-action@v3.3.0 with: update-all-packages: true packages: scheme-basic geometry xcolor naive-ebnf microtype etoolbox From bbb81c1048b35c359e5905dbbf87e80f4832c39f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 12:06:08 +0000 Subject: [PATCH 26/28] chore(deps): update dependency org.apache.maven:maven-compat to v3.9.8 --- eo-maven-plugin/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eo-maven-plugin/pom.xml b/eo-maven-plugin/pom.xml index 1a9b681b21..82171310e1 100644 --- a/eo-maven-plugin/pom.xml +++ b/eo-maven-plugin/pom.xml @@ -126,7 +126,7 @@ SOFTWARE. org.apache.maven maven-compat - 3.9.7 + 3.9.8 test From 12c2b9c9b82179513858c24749de36c03e65a251 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 12:06:12 +0000 Subject: [PATCH 27/28] fix(deps): update dependency org.apache.maven:maven-core to v3.9.8 --- eo-maven-plugin/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eo-maven-plugin/pom.xml b/eo-maven-plugin/pom.xml index 1a9b681b21..40ec8d7952 100644 --- a/eo-maven-plugin/pom.xml +++ b/eo-maven-plugin/pom.xml @@ -108,7 +108,7 @@ SOFTWARE. org.apache.maven maven-core - 3.9.7 + 3.9.8 provided From 49db7ed3a3b897275a63f4f57e805df2ae4eb5eb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 15:18:44 +0000 Subject: [PATCH 28/28] fix(deps): update dependency org.apache.maven:maven-model to v3.9.8 --- eo-maven-plugin/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eo-maven-plugin/pom.xml b/eo-maven-plugin/pom.xml index 1a9b681b21..5763dc9038 100644 --- a/eo-maven-plugin/pom.xml +++ b/eo-maven-plugin/pom.xml @@ -102,7 +102,7 @@ SOFTWARE. org.apache.maven maven-model - 3.9.7 + 3.9.8 provided