Skip to content

refactor: rename ddlog_lille to lille_ddlog and update build configuration#96

Merged
leynos merged 14 commits intomainfrom
build-ddlog-in-generated
Jun 24, 2025
Merged

refactor: rename ddlog_lille to lille_ddlog and update build configuration#96
leynos merged 14 commits intomainfrom
build-ddlog-in-generated

Conversation

@leynos
Copy link
Copy Markdown
Owner

@leynos leynos commented Jun 23, 2025

  • Rename ddlog_lille dependency to lille_ddlog in Cargo.toml
  • Update build support and CI configuration for new naming
  • Remove obsolete generated/ddlog_lille/Cargo.toml
  • Update documentation references to reflect new naming convention
  • Modify Makefile and build scripts to use new ddlog package name

Summary by Sourcery

Refactor the project to replace the ddlog_lille crate with lille_ddlog, updating build scripts, CI, and documentation to use the new package name

Enhancements:

  • Rename ddlog_lille crate to lille_ddlog across dependencies and feature definitions

Build:

  • Update Makefile targets and build_support code to reference the new lille_ddlog path

CI:

  • Add a CI step to invoke the build-support-run target in GitHub Actions

Documentation:

  • Update documentation references to use lille_ddlog naming

Chores:

  • Remove the obsolete generated/ddlog_lille/Cargo.toml file

Summary by CodeRabbit

  • Chores
    • Updated naming conventions from "ddlog_lille" to "lille_ddlog" across configuration files, documentation, and build scripts.
    • Improved CI workflow by refining environment variable handling and adding a build step for the ddlint inferencer.
  • Documentation
    • Updated documentation to reflect the new crate name and adjusted related integration and build instructions.

@sourcery-ai
Copy link
Copy Markdown
Contributor

sourcery-ai Bot commented Jun 23, 2025

Reviewer's Guide

This PR systematically renames the generated DDlog crate from “ddlog_lille” to “lille_ddlog” across the build configuration, scripts, documentation, and CI pipeline, and removes the now-obsolete generated crate metadata.

Class diagram for BuildOptions struct documentation update

classDiagram
    class BuildOptions {
        +bool fail_on_ddlog_error
        +Option<PathBuf> ddlog_dir // now refers to lille_ddlog instead of ddlog_lille
    }
Loading

File-Level Changes

Change Details Files
Rename DDlog dependency and feature to lille_ddlog
  • Update the ddlog_lille dependency path to generated/lille_ddlog
  • Modify the ddlog feature to reference lille_ddlog
Cargo.toml
Update build and Makefile scripts for new crate name
  • Replace generated/ddlog_lille/lib.rs references with generated/lille_ddlog/lib.rs in Makefile targets
  • Modify default generation directory in build_support/src/lib.rs to out_dir without ddlog_lille suffix
  • Update crate_dir comments in build_support/src/ddlog.rs to reflect lille_ddlog
Makefile
build_support/src/lib.rs
build_support/src/ddlog.rs
Remove obsolete generated crate configuration
  • Delete the now-unused generated/ddlog_lille/Cargo.toml file
generated/ddlog_lille/Cargo.toml
Update documentation to reflect new naming
  • Change import paths and comments from ddlog_lille to lille_ddlog in world inference guide
  • Update crate name references in architecture overview
  • Revise migration roadmap to use lille_ddlog
docs/ddlog-world-inference.md
docs/architecture.md
docs/ddlog-migration-roadmap.md
Adjust CI workflow to include build-support step
  • Add a step in .github/workflows/ci.yml to run make build-support-run
.github/workflows/ci.yml

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jun 23, 2025

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

This update renames the generated DDlog crate from ddlog_lille to lille_ddlog across the codebase, including build scripts, documentation, and configuration files. The CI workflow is revised to add a build step for the DDlog inferencer and adjusts how environment variables are handled for coverage uploads.

Changes

Files/Paths Change Summary
.github/workflows/ci.yml Updated environment variable handling, added DDlog inferencer build step, revised coverage upload conditions.
Cargo.toml Renamed dependency and feature from ddlog_lille to lille_ddlog, updated dependency path.
Makefile Changed all DDlog build paths from generated/ddlog_lille to generated/lille_ddlog.
build_support/src/ddlog.rs, build_support/src/lib.rs Updated documentation comments and default paths to use lille_ddlog instead of ddlog_lille.
docs/architecture.md, docs/ddlog-migration-roadmap.md, docs/ddlog-world-inference.md Updated crate name references in documentation from ddlog_lille to lille_ddlog.

Sequence Diagram(s)

sequenceDiagram
    participant CI
    participant Makefile
    participant DDlog Compiler
    participant Rust Project

    CI->>Makefile: Run build-support-run (Build DDlog inferencer)
    Makefile->>DDlog Compiler: Compile .dl file
    DDlog Compiler->>Makefile: Output lille_ddlog crate
    Makefile->>Rust Project: Integrate lille_ddlog crate
    CI->>CI: Set environment variables (CS_ACCESS_TOKEN, CODESCENE_CLI_SHA256)
    CI->>CI: Upload coverage if CS_ACCESS_TOKEN is set
Loading

Possibly related PRs

Suggested labels

codex

Poem

In the warren of code, a crate changed its name,
From ddlog_lille to lille_ddlog, never the same.
The CI now builds with a hop and a cheer,
Environment set, inferencer near.
Docs and scripts in harmony sing—
"A tidy rename is a marvellous thing!"
🐇✨

✨ Finishing Touches
🧪 Generate Unit Tests
  • Create PR with Unit Tests
  • Post Copyable Unit Tests in Comment
  • Commit Unit Tests in branch build-ddlog-in-generated

🪧 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.
    • Explain this complex logic.
    • 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 explain this code block.
    • @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 explain its main purpose.
    • @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.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

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 generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai auto-generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @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.

Copy link
Copy Markdown
Contributor

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

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

Hey @leynos - I've reviewed your changes - here's some feedback:

  • In build_support/src/lib.rs the default ddlog_dir now unwraps to OUT_DIR directly—consider restoring the join("lille_ddlog") so the generated crate lands in OUT_DIR/lille_ddlog as intended.
  • Double-check scripts/build_support_runner.sh and perform a global search for any remaining “ddlog_lille” references to ensure the rename is fully applied across all build scripts and configs.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- In build_support/src/lib.rs the default ddlog_dir now unwraps to OUT_DIR directly—consider restoring the join("lille_ddlog") so the generated crate lands in OUT_DIR/lille_ddlog as intended.
- Double-check scripts/build_support_runner.sh and perform a global search for any remaining “ddlog_lille” references to ensure the rename is fully applied across all build scripts and configs.

## Individual Comments

### Comment 1
<location> `build_support/src/lib.rs:33` </location>
<code_context>
         #[ortho_config(default = false)]
         pub fail_on_ddlog_error: bool,

-        /// Destination directory for the generated `ddlog_lille` crate.
-        /// If not provided, defaults to `OUT_DIR/ddlog_lille`.
+        /// Destination directory for the generated `lille_ddlog` crate.
+        /// If not provided, defaults to `OUT_DIR/lille_ddlog`.
         pub ddlog_dir: Option<std::path::PathBuf>,
</code_context>

<issue_to_address>
The documentation update is correct, but the default value logic below is now inconsistent.

Update the code to set the default to `out_dir.join("lille_ddlog")` to match the documentation and avoid confusion about the output location.
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment thread build_support/src/lib.rs
#[ortho_config(default = false)]
pub fail_on_ddlog_error: bool,

/// Destination directory for the generated `ddlog_lille` crate.
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.

issue: The documentation update is correct, but the default value logic below is now inconsistent.

Update the code to set the default to out_dir.join("lille_ddlog") to match the documentation and avoid confusion about the output location.

…ation

- Rename ddlog_lille dependency to lille_ddlog in Cargo.toml
- Update build support and CI configuration for new naming
- Remove obsolete generated/ddlog_lille/Cargo.toml
- Update documentation references to reflect new naming convention
- Modify Makefile and build scripts to use new ddlog package name
@leynos leynos force-pushed the build-ddlog-in-generated branch from d327676 to 8f94e6e Compare June 23, 2025 20:30
leynos added 2 commits June 23, 2025 21:33
- Update build-inferencer target to reference generated/lille_ddlog
- Fix path references for DDlog build process
- Move secrets and vars to env section for proper access
- Update conditional check to use env.CS_ACCESS_TOKEN
- Fix CodeScene coverage upload configuration
- Add fallback empty string for CS_ACCESS_TOKEN secret to prevent workflow failures
- Resolves IDE warning about invalid context access
- Move fix_static.patch from generated/ddlog_lille/patches/ to patches/
- Update Makefile build-inferencer target to reference new patch location
- Clean up generated directory structure by removing empty patches subdirectory
- Improves project organization by centralizing patches in root-level directory
Copy link
Copy Markdown
Contributor

@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: 1

🔭 Outside diff range comments (1)
Makefile (1)

47-50: Manifest path still points to the old directory – build will break
cargo build --manifest-path generated/ddlog_lille/lille_ddlog/Cargo.toml contradicts the earlier rename to generated/lille_ddlog. CI will fail once the old directory is deleted.

-	RUSTFLAGS="-D warnings" cargo build --manifest-path generated/ddlog_lille/lille_ddlog/Cargo.toml --target-dir targets/ddlog
+	RUSTFLAGS="-D warnings" cargo build --manifest-path generated/lille_ddlog/lille_ddlog/Cargo.toml --target-dir targets/ddlog
♻️ Duplicate comments (1)
build_support/src/lib.rs (1)

33-34: Fix documentation inconsistency with default value.

The documentation states the default is OUT_DIR/lille_ddlog, but the code on line 84 uses just OUT_DIR without the subdirectory. This creates confusion about the actual output location.

Apply this diff to align the code with the documentation:

-        .unwrap_or_else(|| out_dir.clone());
+        .unwrap_or_else(|| out_dir.join("lille_ddlog"));
📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 7990db0 and 382474e.

⛔ Files ignored due to path filters (1)
  • generated/ddlog_lille/Cargo.toml is excluded by !**/generated/**
📒 Files selected for processing (8)
  • .github/workflows/ci.yml (2 hunks)
  • Cargo.toml (1 hunks)
  • Makefile (2 hunks)
  • build_support/src/ddlog.rs (1 hunks)
  • build_support/src/lib.rs (2 hunks)
  • docs/architecture.md (1 hunks)
  • docs/ddlog-migration-roadmap.md (1 hunks)
  • docs/ddlog-world-inference.md (1 hunks)
🔇 Additional comments (8)
Cargo.toml (1)

18-19: LGTM! Consistent crate renaming.

The dependency name, path, and feature reference have been correctly updated to maintain consistency with the new lille_ddlog naming convention.

Also applies to: 23-23

docs/architecture.md (1)

77-77: Documentation correctly updated to reflect crate renaming.

The reference to the DDlog runtime library has been properly updated to match the new lille_ddlog crate name.

docs/ddlog-world-inference.md (1)

266-267: Code example correctly updated for crate renaming.

The import statement and accompanying comment have been properly updated to use the new lille_ddlog crate name, ensuring the documentation example remains functional.

build_support/src/ddlog.rs (1)

20-20: Documentation parameter description correctly updated.

The function documentation now accurately reflects the new lille_ddlog crate name that will be generated.

docs/ddlog-migration-roadmap.md (1)

17-20: Reference rename looks correct
The crate name is updated to lille_ddlog, matching the refactor elsewhere.

.github/workflows/ci.yml (2)

15-17: GitHub Actions fallback expression – please double-check
secrets.CS_ACCESS_TOKEN || '' and vars.CODESCENE_CLI_SHA256 || '' should work, but the || operator only became valid in early-2024. If the runner is on an older Actions runtime the job will fail to parse.


36-42: Coverage upload gating looks sane
Step now runs only when CS_ACCESS_TOKEN is non-empty and uses env vars rather than direct secret references – good defence-in-depth.

Makefile (1)

29-36: New path dependency – verify file really exists
generated/lille_ddlog/lib.rs is now the trigger for the DDlog targets. Make sure build_support_runner.sh actually produces this file (or that the repo already contains it); otherwise the dependent targets will be silently skipped by make.

Comment thread .github/workflows/ci.yml Outdated
leynos added 8 commits June 24, 2025 02:46
- Add fmt-check target for CI use that only checks Rust formatting without changes
- Update fmt target to exclude generated/ directory by specifying explicit packages
- Add fmt-check to .PHONY targets
- Ensures generated code is not formatted while maintaining formatting checks for source code
- Integrate remote changes with local modifications
- Keep fmt-check target usage in CI
- Fix syntax issue in CODESCENE_CLI_SHA256 environment variable
- Manual updates to Makefile configuration
Remove dependency on generated/lille_ddlog/lib.rs from fmt-check target
to resolve circular dependency that prevented CI from running.

The fmt-check target should only verify formatting of source code
in workspace packages (lille, build_support, test_utils) and not
require generated DDlog code to exist.
Create generated/lille_ddlog/lib.rs.stub target that generates
minimal Cargo.toml and lib.rs files to satisfy Cargo's dependency
resolution during formatting operations.

This allows fmt-check to run without requiring the full DDlog
generation pipeline, resolving the CI failure where cargo fmt
couldn't find the lille-ddlog dependency.
@leynos leynos merged commit 1ff53d4 into main Jun 24, 2025
3 of 4 checks passed
@leynos leynos deleted the build-ddlog-in-generated branch June 24, 2025 12:29
@leynos leynos restored the build-ddlog-in-generated branch June 24, 2025 19:06
@leynos leynos deleted the build-ddlog-in-generated branch June 26, 2025 19:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant