test: extend validation test to modules#3343
Conversation
📝 WalkthroughWalkthroughThe pull request restructures the workflow configuration and modularizes the rules. In the main Snakefile, configuration validation has been repositioned to occur immediately after loading the config file, and the samples DataFrame is validated against an existing schema. A new module named "test" is introduced—with its own Snakefile and JSON schema—that defines a new rule. The main Snakefile now delegates rule execution to the module by using a prefix directive. Additionally, the JSON schema files have been updated to remove the trailing hash in the Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant Main as Main Snakefile
participant Module as Module-Test Snakefile
User->>Main: Execute workflow
Main->>Main: Load configfile and validate config
Main->>Main: Validate samples DataFrame using samples.schema.yaml
Main->>Module: Import rules (via "use rule * from test as test_*")
Module->>Module: Validate config using module-test/config.schema.yaml
Module->>Module: Execute rule a (create test file)
Module-->>Main: Return execution status
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (5)
⏰ Context from checks skipped due to timeout of 90000ms (40)
🔇 Additional comments (8)
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
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)
Other keywords and placeholders
CodeRabbit Configuration File (
|
|
<!--Add a description of your PR here--> ### QC <!-- Make sure that you can tick the boxes below. --> * [x] The PR contains a test case for the changes or the changes are already covered by an existing test case. * [x] The documentation (`docs/`) is updated to reflect the changes or this is not necessary (e.g. if the change does neither modify the language nor the behavior or functionalities of Snakemake). <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a modular test workflow that streamlines execution, with new rules for generating test outputs. - Added a dedicated configuration validation schema enforcing stricter checks on required inputs. - **Refactor** - Reordered configuration validation to ensure consistency immediately after loading. - **Chores** - Updated schema URLs in configuration files to align with current standards. <!-- end of auto-generated comment: release notes by coderabbit.ai -->



QC
docs/) is updated to reflect the changes or this is not necessary (e.g. if the change does neither modify the language nor the behavior or functionalities of Snakemake).Summary by CodeRabbit