Skip to content

chore: Refine the project structure and readme #1133

New issue

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

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

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Apr 8, 2025

Conversation

goldmedal
Copy link
Contributor

@goldmedal goldmedal commented Apr 7, 2025

Describe

  • Move all legacy java module to wren-core-legacy
  • Update the README for each module
  • Update the workflows

Summary by CodeRabbit

  • Chores

    • Improved dependency update configurations and streamlined workflow settings to enhance build, test, and release processes.
    • Refined project setup rules for managing development resources.
  • Documentation

    • Introduced a new Developer Guide highlighting key project modules.
    • Updated introductory materials for the API server component and added comprehensive instructions for the legacy core module.

Copy link

coderabbitai bot commented Apr 7, 2025

Walkthrough

The changes update several configuration and documentation files. The Dependabot configuration now targets specific directories for Maven and Cargo packages. Multiple GitHub workflow files are adjusted to work within the wren-core-legacy directory, including path filters and updated Docker contexts. Additionally, the .gitignore rule for .idea directories is broadened, and the project documentation has been enhanced with new sections and rewrites for the developer guides and module READMEs.

Changes

File(s) Change Summary
.github/dependabot.yml Modified Maven entry to use /wren-core-legacy and added a new Cargo entry with directory /wren-core-base, weekly schedule, commit prefix deps(core), group patterns, and labels (dependencies, core, rust).
.github/workflows/build-image.yml, .github/workflows/stable-release.yml, .github/workflows/maven-tests.yml Updated working directory to wren-core-legacy in Build/Prepare steps; changed Docker build context from ./docker to ./wren-core-legacy/docker; added a paths filter (wren-core-legacy/**) and defaults for run steps in maven-tests.yml.
.gitignore Changed the .idea rule from -.idea to +**/.idea to ignore .idea directories at any level.
README.md Added new section Developer GuideS detailing the four main project modules.
ibis-server/README.md Rewrote the introductory section with an updated module title and a simplified description of the Ibis Server Module.
wren-core-legacy/README.md Introduced new documentation for the legacy Wren Core (Java), including instructions for Docker usage, Maven build processes, and IDE configuration.

Suggested labels

v1-engine-changed, dependencies

Suggested reviewers

  • douenergy

Poem

I'm just a rabbit, hopping through code all day,
Finding new paths where workflows now play.
Maven and Cargo dance in directories neat,
With Docker building images—oh, what a treat!
In README tales, our stories shine through,
A bunny cheers for changes, fresh and true!


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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai plan to trigger planning for file edits and PR creation.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions github-actions bot added documentation Improvements or additions to documentation core bigquery ibis rust Pull requests that update Rust code python Pull requests that update Python code ci labels Apr 7, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (7)
README.md (1)

84-90: Verify Module Link for Semantic Core
The newly added "Developer GuideS" section is a valuable addition. However, the link for the semantic core is given as [wren-core](./wren-cores). Please verify that the directory name is correct—if the module is named wren-core (or perhaps should reference wren-core-legacy), the link may need updating to avoid confusion.

wren-core-legacy/README.md (4)

8-10: Typographical Corrections Needed
There are a couple of typos in the text: "recommand" (line 9) should be corrected to "recommend" and "easist" should be "easiest".

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

10-10: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


10-12: Fenced Code Block Language Specification
The Docker command code block (lines 10–12) currently lacks a language specifier. It is recommended to add a language (e.g., bash) for proper syntax highlighting and to adhere to markdown lint guidelines.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

10-10: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


15-18: Maven Build Code Block Enhancement
For the Maven build command code block at lines 16–18, please add a language specifier (e.g., bash) to improve readability and meet markdown standards.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

16-16: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


20-22: Java Command Code Block Language
Similarly, add a language specifier (such as bash) for the fenced code block containing the Java command (lines 20–22) to ensure consistency with markdown best practices.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

20-20: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)

ibis-server/README.md (2)

74-76: Grammatical Correction for Tracing Section
In the "Enable Tracing" section (line 75), the phrase "We uses OpenTelemetry" should be corrected to "We use OpenTelemetry" to resolve the grammatical error.

🧰 Tools
🪛 LanguageTool

[grammar] ~75-~75: The pronoun ‘We’ must be used with a non-third-person form of a verb.
Context: ...ash just run ``` ### Enable Tracing We uses OpenTelemetry as its tracing framework....

(NON3PRS_VERB)


11-39: Code Block Language & Formatting Consistency
The provided code blocks within the "Quick Start" and "Running on Docker" sections are generally well formatted with proper language tags (e.g., yaml, bash). Double-check that all fenced code blocks consistently include a language specifier for enhanced readability and proper syntax highlighting.

🧰 Tools
🪛 LanguageTool

[style] ~26-~26: In American English, abbreviations like “etc.” require a period.
Context: ... - ./etc:/usr/src/app/etc ``` Create etc directory and create `config.propertie...

(ETC_PERIOD)


[grammar] ~26-~26: You used an adverb (‘etc’) instead of an adjective, or a noun (‘directory’) instead of another adjective.
Context: ...d create config.properties inside the etc directory ```bash mkdir etc cd etc vim config.pro...

(A_RB_NN)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f0f8c00 and 02e9bb8.

⛔ Files ignored due to path filters (1)
  • wren-core-legacy/.mvn/wrapper/maven-wrapper.jar is excluded by !**/*.jar
📒 Files selected for processing (8)
  • .github/dependabot.yml (2 hunks)
  • .github/workflows/build-image.yml (3 hunks)
  • .github/workflows/maven-tests.yml (1 hunks)
  • .github/workflows/stable-release.yml (3 hunks)
  • .gitignore (1 hunks)
  • README.md (1 hunks)
  • ibis-server/README.md (1 hunks)
  • wren-core-legacy/README.md (1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
wren-core-legacy/README.md

10-10: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


16-16: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


20-20: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)

🔇 Additional comments (17)
.gitignore (1)

6-6: Enhanced .idea Ignore Pattern
Using **/.idea now broadens the ignore rule so that any .idea folder at any depth is excluded, which aligns well with the reorganized project structure.

.github/workflows/maven-tests.yml (2)

12-14: Restrict Workflow Trigger with Paths Filter
The addition of the paths filter ('wren-core-legacy/**') ensures that this workflow is only triggered by changes within the legacy module, optimizing CI runs.


15-17: Set a Consistent Default Working Directory
Defining a default working-directory of wren-core-legacy for run steps centralizes configuration and prevents repetitive path specifications in individual steps.

.github/workflows/stable-release.yml (3)

96-97: Correct Build Step Directory Context
Adding working-directory: wren-core-legacy in the Build step ensures that Maven commands run in the expected directory after the project reorganization.


118-120: Ensure Consistency in the Prepare Step
Setting the working-directory to wren-core-legacy for the Prepare step aligns it with the new structure, ensuring that file paths (e.g. for version evaluation and artifact movement) are correctly resolved.


127-128: Update Docker Build Context
Changing the Docker build context to ./wren-core-legacy/docker directs the build process to the appropriate directory that contains legacy Docker configurations.

.github/workflows/build-image.yml (3)

52-54: Set Working Directory for Build Step
Specifying working-directory: wren-core-legacy in the Build step ensures that Maven commands execute in the proper directory, reflecting the new project layout.


73-75: Consistent Working Directory for Prepare Step
By setting the working-directory to wren-core-legacy in the Prepare step, the build process now uniformly targets the correct directory, reducing potential path issues.


81-83: Refined Docker Build Context
Updating the Docker build context to ./wren-core-legacy/docker ensures that the correct set of Docker resources is utilized during the build and push operation.

wren-core-legacy/README.md (2)

1-3: Document Title & Introduction Clarity
The title and introductory lines clearly establish the purpose of this legacy module. Verify that the description accurately reflects its usage (e.g. its role for SQL planning and Docker image building).


24-32: IDE Setup & Documentation Clarity
The steps for running the Wren Core in an IDE are generally well-detailed. Confirm that all instructions (e.g., SDK configuration and project import steps) remain up-to-date with the project requirements.

.github/dependabot.yml (2)

4-4: Maven Directory Update Confirmation
The Maven dependency configuration now points to /wren-core-legacy. Please ensure that all related scripts and references within the repository are updated accordingly.


54-66: New Cargo Dependency Entry Verification
A new Cargo dependency entry has been added for the /wren-core-base directory. This configuration is well-formed. Please verify that this directory correctly represents the intended Rust module location and that all dependency updates run as expected.

ibis-server/README.md (4)

1-2: Updated Module Title & Description
Changing the title to "Ibis Server Module" and streamlining the introductory paragraph improves clarity regarding the module's role. Confirm that all references (links, descriptions) correctly reflect the current project structure.


8-9: Noting the Migration with Clarity
The notice on line 8 effectively informs users of the migration to wren-core while recommending the Java engine from wren-core-legacy for fallback. Ensure that this guidance aligns with the current operational strategy and that users are aware of the migration implications.


41-72: Local Setup Instructions Verification
The "Running on Local" instructions are comprehensive. Please verify that all tool references (e.g., Python 3.11, casey/just, poetry, Rust, and Cargo) are current and that the steps reflect the latest environment setup practices for the ibis-server module.


74-86: Tracing & Migration Reporting Clarity
The sections on enabling tracing and reporting migration issues are informative. Consider reviewing the wording to ensure clarity—especially how users are instructed to report migration issues and provide log details.

🧰 Tools
🪛 LanguageTool

[grammar] ~75-~75: The pronoun ‘We’ must be used with a non-third-person form of a verb.
Context: ...ash just run ``` ### Enable Tracing We uses OpenTelemetry as its tracing framework....

(NON3PRS_VERB)


[typographical] ~84-~84: Consider adding a comma here.
Context: ...ight now](./Metrics.md) ## Contributing Please see [CONTRIBUTING.md](docs/CONTRIBUTING...

(PLEASE_COMMA)

🪛 markdownlint-cli2 (0.17.2)

77-77: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (6)
ibis-server/README.md (2)

8-9: Migration Note Enhancement

The added note informs users about the migration to [wren-core] while still recommending the use of the legacy Java engine (now in the wren-core-legacy directory) for query fallback. The guidance is useful; however, you may consider rephrasing for an even smoother read. For example:

“Wren Engine is migrating to wren-core. For now, we recommend starting the Java engine to enable the query fallback mechanism.”


75-75: Tracing Framework Description Clarification

The sentence “We use OpenTelemetry as its tracing framework.” could be clearer. Changing it to “We use OpenTelemetry as our tracing framework.” would improve subject consistency.

wren-core-legacy/README.md (4)

1-3: Legacy Module Documentation and Article Usage

Lines 1–3 introduce the legacy Wren Core effectively. As a nitpicky suggestion, consider adding the article “the” for clarity in line 3, e.g., “Currently, the Wren engine has been migrated to a new Rust implementation 🚀.”

🧰 Tools
🪛 LanguageTool

[uncategorized] ~3-~3: You might be missing the article “the” here.
Context: ... wren-engine Docker image. Currently, Wren engine has been migrated to [a new Rust...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


8-12: Docker Run Command Block: Specify Language for Clarity

The command block for running the Wren Core server (lines 10–12) currently lacks a language specifier. Adding one (e.g., using “```bash”) would enhance syntax highlighting and clarity.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

10-10: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


14-18: Maven Build Command Block: Add Language Specifier

For the Maven build instructions provided in the code block at lines 16–18, please consider specifying the language (such as “```bash”) to improve the readability and consistency of the documentation.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

16-16: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


19-22: Server Startup Command Block: Include Language Specifier

Similarly, the code block containing the command to start the Wren Core server (lines 20–22) should include a language specifier (e.g., “```bash”) to maintain consistency with the rest of the document.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

20-20: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 665827e and 728e89f.

📒 Files selected for processing (2)
  • ibis-server/README.md (2 hunks)
  • wren-core-legacy/README.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
wren-core-legacy/README.md

[uncategorized] ~3-~3: You might be missing the article “the” here.
Context: ... wren-engine Docker image. Currently, Wren engine has been migrated to [a new Rust...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)

🪛 markdownlint-cli2 (0.17.2)
wren-core-legacy/README.md

10-10: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


16-16: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)


20-20: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: ci
🔇 Additional comments (4)
ibis-server/README.md (2)

1-1: Title Update: Clear and Consistent Module Naming

The updated title “# Ibis Server Module” clearly reflects the module's purpose and improves consistency.


2-2: Improved Introduction Clarity

The revised introductory paragraph succinctly explains the module’s role—detailing its FastAPI foundation and the flow from SQL planning to execution via wren-core, sqlglot, and ibis. This provides clear context to readers.

wren-core-legacy/README.md (2)

5-7: Requirements Section Looks Good

The requirements section clearly specifies the minimum JDK version. No changes suggested.


24-37: IDE Setup Instructions: Clear and Informative

The guidelines for running Wren Core in an IDE are concise and well organized—from project import instructions in IntelliJ IDEA to SDK configuration and run profile setup. No changes are necessary.

@goldmedal goldmedal requested a review from douenergy April 7, 2025 09:47
@goldmedal
Copy link
Contributor Author

The CI failure is the BigQuery secret issue. Let's ignore it.

Copy link
Contributor

@douenergy douenergy left a comment

Choose a reason for hiding this comment

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

LGTM ! Thanks

@douenergy douenergy merged commit 1b1c8af into Canner:main Apr 8, 2025
4 of 5 checks passed
@goldmedal goldmedal deleted the chore/refine-project branch April 9, 2025 05:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bigquery ci core documentation Improvements or additions to documentation ibis python Pull requests that update Python code rust Pull requests that update Rust code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants