Skip to content

feat(#4702): move fibonacci integration test to eo-integraton-tests module#4715

Merged
yegor256 merged 1 commit into
objectionary:masterfrom
volodya-lombrozo:4702-fix-eo-maven-errors
Dec 5, 2025
Merged

feat(#4702): move fibonacci integration test to eo-integraton-tests module#4715
yegor256 merged 1 commit into
objectionary:masterfrom
volodya-lombrozo:4702-fix-eo-maven-errors

Conversation

@volodya-lombrozo

@volodya-lombrozo volodya-lombrozo commented Dec 4, 2025

Copy link
Copy Markdown
Member

In this PR I:

  • moved fibonacci integration test to eo-integration-tests module (it's necessary because the fibonacci integration test depends on eo-runtime)
  • added eo-runtime dependency to this test, because without it we got ClassNotFound exception
  • identified new issues that causes the fibonacci test fail (see new puzzles)

Closes #4702, #4701

Summary by CodeRabbit

  • Chores

    • Reorganized integration-test invocation and added invoker configuration; moved invoker config out of the plugin host module.
    • Added test dependencies and set Java compiler level to 11.
  • Tests

    • Adjusted integration invocation goals (removed debug flag) and configured test runs to be skipped where appropriate.
  • Documentation

    • Added SPDX license headers and formal package declaration to test source.

✏️ Tip: You can customize this high-level summary in your review settings.

Copilot AI review requested due to automatic review settings December 4, 2025 12:26
@github-actions github-actions Bot added the core label Dec 4, 2025
@coderabbitai

coderabbitai Bot commented Dec 4, 2025

Copy link
Copy Markdown
Contributor

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

Modifies Maven build and integration-test setup: adds maven-invoker-plugin to eo-integration-tests and removes it from eo-maven-plugin, updates fibonacci integration test pom and invoker properties, and adds SPDX header and package declaration to the fibonacci EO source.

Changes

Cohort / File(s) Summary
Invoker plugin added (integration-tests)
eo-integration-tests/pom.xml
Adds maven-invoker-plugin with configurable skipInstallation/skipInvocation via ${skipITs}, and pomExcludes to exclude fibonacci/pom.xml (TODO comment about classpath-related issue).
Invoker plugin removed (maven-plugin)
eo-maven-plugin/pom.xml
Removes the maven-invoker-plugin block entirely.
Fibonacci integration pom
eo-integration-tests/src/it/fibonacci/pom.xml
Adds org.eolang:eo-runtime and org.junit.jupiter:junit-jupiter-api dependencies, sets maven.compiler.source/target to 11, and configures maven-surefire-plugin with <skip>true</skip> (commented rationale).
Fibonacci invoker properties
eo-integration-tests/src/it/fibonacci/invoker.properties
Removes debug flag -X from invoker.goals (changed clean test -Xclean test).
Fibonacci EO source
eo-integration-tests/src/it/fibonacci/src/main/eo/org/eolang/examples/fibonacci.eo
Adds SPDX copyright/license header lines and a package org.eolang.examples declaration; adjusts file header ordering.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Inspect maven-invoker-plugin configuration and ${skipITs} binding in parent/module contexts.
  • Verify the exclusion of fibonacci/pom.xml is intentional and the TODO note aligns with tracked issues.
  • Confirm eo-runtime version placeholder (@project.version@) resolves correctly in IT module.
  • Check surefire <skip>true</skip> rationale and that EO runtime tests remain invokable as intended.
  • Quick review of added SPDX header and package declaration for formatting/consistency.

Possibly related PRs

Suggested reviewers

  • yegor256

Poem

"🐰 I hopped through poms and invoker springs,
I nudged a -X from testing things.
SPDX tucked the source in line,
Package declared, all neat and fine.
Now Fibonacci waits — succinct, refined."

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The PR partially addresses issue #4702 by moving the fibonacci test to eo-integration-tests and adding eo-runtime dependency, but does not fix the root XMIR attribute generation issue or TjForeign handling problems that are core requirements. Complete implementation of XMIR '/object/o/@name' attribute generation fixes and TjForeign error handling to fully resolve the underlying transpile-phase issues described in #4702.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: moving the fibonacci integration test to the eo-integration-tests module, which is reflected in the code changes across multiple files.
Out of Scope Changes check ✅ Passed All changes are directly related to moving the fibonacci integration test: modifications to pom.xml files, test configuration, source files, and exclusion setup are all within scope of the stated objective.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

github-actions Bot commented Dec 4, 2025

Copy link
Copy Markdown
Contributor

🚀 Performance Analysis

All benchmarks are within the acceptable range. No critical degradation detected (threshold is 100%). Please refer to the detailed report for more information.

Click to see the detailed report
Test Base Score PR Score Change % Change Unit Mode
benchmarks.XmirBench.xmirToEO 193.117 156.169 -36.947 -19.13% ms/op Average Time

✅ Performance gain: benchmarks.XmirBench.xmirToEO is faster by 36.947 ms/op (19.13%)

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR migrates the Fibonacci integration test from the eo-maven-plugin module to the new eo-integration-tests module, consolidating integration tests in a dedicated location. The test is currently disabled due to runtime issues with class/package resolution.

Key changes:

  • Removed maven-invoker-plugin configuration from eo-maven-plugin that excluded the fibonacci test
  • Added maven-invoker-plugin configuration to eo-integration-tests with fibonacci test temporarily excluded
  • Added eo-runtime dependency to the fibonacci test to resolve ClassNotFoundException issues

Reviewed changes

Copilot reviewed 5 out of 10 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
eo-maven-plugin/pom.xml Removed maven-invoker-plugin configuration that was excluding fibonacci test
eo-integration-tests/pom.xml Added maven-invoker-plugin configuration with fibonacci test temporarily excluded pending resolution of class resolution issues
eo-integration-tests/src/it/settings.xml Added Maven settings configuration for integration tests with local repository setup
eo-integration-tests/src/it/fibonacci/pom.xml Added eo-runtime dependency and configured Surefire to skip tests, includes documentation of known issues
eo-integration-tests/src/it/fibonacci/verify.groovy Added Groovy verification script to validate test execution and generated artifacts
eo-integration-tests/src/it/fibonacci/invoker.properties Removed debug flag (-X) from Maven goals
eo-integration-tests/src/it/fibonacci/src/main/eo/org/eolang/examples/fibonacci.eo Reordered architect metadata line to follow package declaration
eo-integration-tests/src/it/fibonacci/src/main/eo/org/eolang/examples/app.eo Added EO application source file for fibonacci calculator
eo-integration-tests/src/it/fibonacci/README.md Added documentation explaining how to use the fibonacci example as a template
eo-integration-tests/src/it/README.md Added overview documentation for integration tests directory
Comments suppressed due to low confidence (2)

eo-integration-tests/src/it/fibonacci/pom.xml:48

  • Capitalization inconsistency: "surefire plugin" should be "Surefire plugin" to match Maven's official plugin naming convention.
    eo-integration-tests/src/it/fibonacci/pom.xml:50
  • Grammar error: "don't" should be "not" in this context. Should read "We should either not include EO tests in the eo-runtime jar".

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@todo #4702:90min Enable the fibonacci integration test.
Currently, the fibonacci integration test is disabled because it
fails with the following error:
Couldn't find object 'Φ.org.eolang.examples' because there's

Copilot AI Dec 4, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grammar error: "there's" should be "there is" for consistency with formal documentation style.

Suggested change
Couldn't find object 'Φ.org.eolang.examples' because there's
Couldn't find object 'Φ.org.eolang.examples' because there is

Copilot uses AI. Check for mistakes.
@volodya-lombrozo
volodya-lombrozo force-pushed the 4702-fix-eo-maven-errors branch from cf560aa to c38affd Compare December 4, 2025 12:31

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cf560aa and c38affd.

📒 Files selected for processing (5)
  • eo-integration-tests/pom.xml (1 hunks)
  • eo-integration-tests/src/it/fibonacci/invoker.properties (1 hunks)
  • eo-integration-tests/src/it/fibonacci/pom.xml (2 hunks)
  • eo-integration-tests/src/it/fibonacci/src/main/eo/org/eolang/examples/fibonacci.eo (1 hunks)
  • eo-maven-plugin/pom.xml (0 hunks)
💤 Files with no reviewable changes (1)
  • eo-maven-plugin/pom.xml
🚧 Files skipped from review as they are similar to previous changes (2)
  • eo-integration-tests/pom.xml
  • eo-integration-tests/src/it/fibonacci/invoker.properties
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (10)
  • GitHub Check: qulice
  • GitHub Check: ort
  • GitHub Check: benchmark
  • GitHub Check: mvn (windows-2022, 23)
  • GitHub Check: integration
  • GitHub Check: mvn (ubuntu-24.04, 17)
  • GitHub Check: trufflehog
  • GitHub Check: mvn (macos-15, 23)
  • GitHub Check: mvn (ubuntu-24.04, 23)
  • GitHub Check: pr-size
🔇 Additional comments (3)
eo-integration-tests/src/it/fibonacci/src/main/eo/org/eolang/examples/fibonacci.eo (1)

1-4: LGTM! Metadata additions are correct.

The SPDX headers, package declaration, and architect information are properly formatted and consistent with the file path structure.

eo-integration-tests/src/it/fibonacci/pom.xml (2)

18-30: LGTM! Dependencies correctly address the ClassNotFound issue.

The eo-runtime dependency resolves the ClassNotFound exception mentioned in the PR objectives, and junit-jupiter-api is appropriately scoped for testing.


31-34: LGTM! Compiler properties are appropriate.

Java 11 is a reasonable baseline for this project, and the source/target settings are consistent.

Comment on lines +46 to 56
<!--
@todo #4702:90min EO tests are distributed with the eo-runtime library.
Currently, when we add 'eo-runtime' as a dependency, the surefire plugin
tries to run its tests as well, which takes significant time.
And it's rathter unexpected behavior when we just need to run an EO app.
We should either don't include EO tests in the eo-runtime jar,
or state it clearly in the documentation that when you add eo-runtime
as a dependency, you also get its tests.
-->
<skip>true</skip>
</configuration>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix typo in TODO comment.

Line 50 contains a typo: "rathter" should be "rather".

Apply this diff to fix the typo:

-            And it's rathter unexpected behavior when we just need to run an EO app.
+            And it's rather unexpected behavior when we just need to run an EO app.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<!--
@todo #4702:90min EO tests are distributed with the eo-runtime library.
Currently, when we add 'eo-runtime' as a dependency, the surefire plugin
tries to run its tests as well, which takes significant time.
And it's rathter unexpected behavior when we just need to run an EO app.
We should either don't include EO tests in the eo-runtime jar,
or state it clearly in the documentation that when you add eo-runtime
as a dependency, you also get its tests.
-->
<skip>true</skip>
</configuration>
<!--
@todo #4702:90min EO tests are distributed with the eo-runtime library.
Currently, when we add 'eo-runtime' as a dependency, the surefire plugin
tries to run its tests as well, which takes significant time.
And it's rather unexpected behavior when we just need to run an EO app.
We should either don't include EO tests in the eo-runtime jar,
or state it clearly in the documentation that when you add eo-runtime
as a dependency, you also get its tests.
-->
<skip>true</skip>
</configuration>
🤖 Prompt for AI Agents
In eo-integration-tests/src/it/fibonacci/pom.xml around lines 46 to 56, the TODO
comment contains a typo: change "rathter" to "rather" in the comment text;
update the comment line so it reads "rather unexpected behavior" and commit the
corrected pom.xml.

@volodya-lombrozo

Copy link
Copy Markdown
Member Author

@yegor256 Could you review this one, please?

Maybe, I'm fundamentally wrong - I suppose that any EO program should depend on eo-runtime.
However, when I try to run the fibonacci integration test, I'm getting ClassNotFoundException's. As I understand I need to add the eo-runtime to the pom.xml (by doing this the problem is gone), however If eo-maven-plugin provides eo-runtime in some other way, it's a wrong idea to specify the eo-runtime in dependencies.

@yegor256
yegor256 merged commit 1b6c513 into objectionary:master Dec 5, 2025
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

eo-maven-plugin failed to process basic classes

3 participants