Skip to content

feat: add profile info#20

Merged
dlaehnemann merged 12 commits intomainfrom
feat/add_profile_info
Jan 20, 2026
Merged

feat: add profile info#20
dlaehnemann merged 12 commits intomainfrom
feat/add_profile_info

Conversation

@cmeesters
Copy link
Contributor

@cmeesters cmeesters commented Oct 26, 2025

Snakemake workflows to be executed on cluster or cloud environments deployed with snakedeploy meanwhile copy a profiles directory, if present.

This PR attempts to add an empty profiles directory. It includes a brief description in the README.md and adds a similar file in the profiles directory.

Summary by CodeRabbit

  • Documentation
    • Added a "Workflow profiles" guide describing how to organize cluster- and cloud-specific profiles and how the default profile is applied when none is selected.
    • Documented recommended layout, content guidelines, and examples for additional profiles.
    • Provided best practices for documenting profile entries and guidance for contributors to submit third‑party profiles.

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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 26, 2025

Warning

Rate limit exceeded

@dlaehnemann has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 14 minutes and 41 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between c5b50b5 and fef8a70.

📒 Files selected for processing (2)
  • README.md
  • profiles/README.md
📝 Walkthrough

Walkthrough

Adds documentation: a new "Workflow profiles" / "The 'profiles' Directory" section and table-of-contents entry in README.md, plus a new profiles/README.txt that documents profiles/<name>/config.yaml usage, default profile behavior, guidance for profile structure, documentation and contribution guidance.

Changes

Cohort / File(s) Summary
Root README update
README.md
Added "Workflow profiles" / "The 'profiles' Directory" section and TOC entry describing profiles/<cluster-or-cloud>/config.yaml, default profile behavior, and linking to profiles/README.txt.
Profiles documentation added
profiles/README.txt
New file detailing profile directory structure, profiles/default/config.yaml behavior, recommendations for rule-level defaults vs. profile overrides, guidance for naming additional profiles (e.g., profiles/slurm/...), documenting profile entries, and contributing third‑party profiles via PRs.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🐰 I hop through README trails with cheer,
Profiles lined up, each config near.
YAML leaves rustle, clear notes in sight,
Contributors nibble, making setups right.
Pipelines bound onward into the light.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title 'feat: add profile info' directly describes the main change: adding documentation about the profiles directory for Snakemake workflows.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


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.

Copy link
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: 2

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c7bb8f6 and a1b6b49.

📒 Files selected for processing (2)
  • README.md (1 hunks)
  • profiles/README.txt (1 hunks)
🧰 Additional context used
🪛 LanguageTool
profiles/README.txt

[style] ~8-~8: Consider using a less common alternative to make your writing sound more unique and professional.
Context: ... pitfalls or other things to consider. Feel free to open pull requests for 3rd party workfl...

(FEEL_FREE_TO_STYLE_ME)


[grammar] ~9-~9: Use a hyphen to join words.
Context: ... Feel free to open pull requests for 3rd party workflows you are working with to ...

(QB_NEW_EN_HYPHEN)


[grammar] ~9-~9: Ensure spelling is correct
Context: ...n during development, e.g. plotting and dowload rules.

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

README.md

[grammar] ~59-~59: Ensure spelling is correct
Context: ...cular execution environment (cluster or cload). You may include a readme file next to...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

cmeesters and others added 2 commits October 26, 2025 12:09
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Copy link
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: 0

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

10-15: Add the new section to the table of contents.

The "The 'profiles' Directory" section should be added to the table of contents for consistency and to help users navigate the documentation.

Apply this diff to update the table of contents:

 - [Snakemake workflow: `<name>`](#snakemake-workflow-name)
   - [Usage](#usage)
   - [Deployment options](#deployment-options)
+  - [The 'profiles' Directory](#the-profiles-directory)
   - [Authors](#authors)
   - [References](#references)
   - [TODO](#todo)
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a1b6b49 and 04f13c0.

📒 Files selected for processing (2)
  • README.md (1 hunks)
  • profiles/README.txt (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • profiles/README.txt
🔇 Additional comments (1)
README.md (1)

53-59: Good typo fix and clear documentation.

The spelling error flagged in the previous review ("cload" → "cloud") has been corrected, and the new section provides clear guidance on the profiles directory structure and purpose.

@m-jahn m-jahn self-requested a review October 26, 2025 17:12
Copy link
Member

@m-jahn m-jahn left a comment

Choose a reason for hiding this comment

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

Hi Christian, great idea to include profiles!
I have some general comments that could be addressed to make this even more user-friendly:

  • maybe change the README.txt to a README.md in line with all other markdown docs we use for documentation? This would also include the file in automatic md linting by Github actions
  • would you like to include an actual dummy profile? Or would that conflict with other parts of a workflow template? From my point of view that would be OK since profile will stay silent until it is invoked with snakemake --profile right? If we like to encourage the use of profiles, a real working profile including a statement how to invoke it would be a really cool addition.

@cmeesters
Copy link
Contributor Author

@m-jahn will switch to lower case and add a template for this particular workflow. Will only able to do this by the end of the week.

@m-jahn
Copy link
Member

m-jahn commented Oct 27, 2025

thanks for doing this!

Copy link
Member

@dlaehnemann dlaehnemann left a comment

Choose a reason for hiding this comment

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

I also think this is a great idea, and just double-checked that the profiles/ directory also gets copied by snakedeploy.

The code does it, but I had to add a PR that adds the profiles/ directory copy info to the snakedeploy docs.

And here, I just edited the text heavily and removed redundancy by making the text in the main README.md really short and pointing to the profiles/README.md for details.

Also I:

  • added in a bunch of linkouts to the relevant documentation pages
  • differentiate between the default/ and other profiles
  • differentiate between generic and cluster-specific profiles
  • mention that resource specification should go directly into rules, wherever a generic (dynamic) resource specification is feasible

In general, I kept all the info that was there. The only thing I removed was this sentence:

It may also be necessary to occasionally label certain rules of a particular workflow with the localrules: <rule 1>, <rule 2>, ... directive when workflow developers focused on server execution during development, e.g., plotting and download rules.

It feels like something that should rather go into the snakemake profiles documentation somewhere, as this is a useful strategy for using profiles during development in general, right? @cmeesters, would you like to prepare a respective docs PR on snakemake?

@cmeesters
Copy link
Contributor Author

It feels like something that should rather go into the snakemake profiles documentation somewhere, as this is a useful strategy for using profiles during development in general, right? @cmeesters, would you like to prepare a respective docs PR on snakemake?

Thanks for all your work, @dlaehnemann ! (I'm afraid, I cannot continue full throttle.) Do you mean some kind of outlink from the Snakemake docs or some entirely new paragraph there? Perhaps, it is time to start gathering to-do items for the hackathon, too ...

@m-jahn
Copy link
Member

m-jahn commented Jan 20, 2026

Hi David, can you commit those suggested changes if Christian doesn't have time (I understood it that way...@cmeesters)?
I can re-review. Thanks!

@dlaehnemann
Copy link
Member

OK, I committed all of those suggestions and created an issue on the new (currently still private) project board for this year's hackathon.

Copy link
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: 2

🤖 Fix all issues with AI agents
In `@profiles/README.txt`:
- Line 1: Update the documentation phrase "workflow specific profile" to use a
hyphenated adjective: change it to "workflow-specific profile" in the README
text so the sentence reads "...a `config.yaml` file with a workflow-specific
profile". Locate the exact string "workflow specific profile" in the profiles/
README line and replace it with the hyphenated form to fix the grammar.

In `@README.md`:
- Around line 56-57: Update the README text to hyphenate "workflow-specific" and
fix the broken link by pointing to the new file name (profiles/README.txt)
instead of profiles/README.md; edit the sentence that mentions
"profiles/README.md" so it reads "The [profiles README](profiles/README.txt)
provides more details" (or similar) and ensure "workflow-specific profiles" is
hyphenated where it appears.

@m-jahn m-jahn self-requested a review January 20, 2026 13:51
@m-jahn m-jahn requested a review from dlaehnemann January 20, 2026 13:55
@dlaehnemann dlaehnemann merged commit a42db58 into main Jan 20, 2026
5 checks passed
@dlaehnemann dlaehnemann deleted the feat/add_profile_info branch January 20, 2026 19:57
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.

3 participants