Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: snakemake/snakemake
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v9.9.0
Choose a base ref
...
head repository: snakemake/snakemake
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v9.10.0
Choose a head ref
  • 5 commits
  • 19 files changed
  • 5 contributors

Commits on Aug 18, 2025

  1. fix: don't rate limit jobs when touching (#3699)

    Came across this while `--touch`ing many files, but it seems having
    something like `max-jobs-per-timespan: "100/1m"` in a profile will also
    limit the rate for files getting touched (which is a very different
    operation to actually submitting jobs).
    
    Previously you would get many messages for
    > Job rate limit reached, waiting for free slots.
    
    Whereas now you should only encounter that message if you are not in
    dryrun or touch mode.
    
    ### 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
    
    * **Bug Fixes**
    * Touch mode now bypasses job submission rate limiting, enabling faster
    execution when only updating timestamps.
    * Users with a configured submission cap will no longer experience
    artificial delays in touch runs; normal runs continue to honor rate
    limits, and dry-run behavior is unchanged.
    * Scheduling order and resource checks remain the same; only the rate
    limiting is skipped in touch mode, improving responsiveness without
    altering other execution semantics.
    
    <!-- end of auto-generated comment: release notes by coderabbit.ai -->
    ASLeonard authored Aug 18, 2025
    Configuration menu
    Copy the full SHA
    9c499e5 View commit details
    Browse the repository at this point in the history
  2. fix: silence messages on module load (#3688)

    <!--Add a description of your PR here-->
    
    On some HPC, `module load` prints to `stdout` when loading the
    requirements of the environmental modules:
    ```
    $ module load bowtie2/2.5.4 
    Loading bowtie2/2.5.4
      Loading requirement: binutils/2.40 gcc/13.2.0
    ```
    
    Not sure why, but this triggers an error when `snakemake` tries to parse
    it:
    ```
    Unable to determine Python version from output 'Loading bowtie2/2.5.4
      Loading requirement: binutils/2.40 gcc/13.2.0
    [3, 13]
    ': Expecting value: line 1 column 1 (char 0)
    ```
    
    Changes have been tested on both `lmod` and `envmod`.
    
    ### 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
    
    * **Refactor**
    * Updated environment module loading to suppress output during module
    load operations for a cleaner user experience.
    <!-- end of auto-generated comment: release notes by coderabbit.ai -->
    fgvieira authored Aug 18, 2025
    Configuration menu
    Copy the full SHA
    b13e9c8 View commit details
    Browse the repository at this point in the history
  3. fix: raise an error when different rules produce identical (temp) out…

    …put (#3667)
    
    I noticed an edge case where unused temporary output of different rules
    would go to the same file. This can introduce nasty side effects, and
    also made it so that my rules needed to be re-run all the times (because
    two rules that produce the same output is always detected as a code
    change by one of the two rules). This is now nicely raises an exception
    giving an early warning to the user that sth is misconfigured.
    
    I'm not sure how this affects performance or other stuff, let me know if
    sth needs changes or if this is actually wanted behaviour 😄
    Maarten-vd-Sande authored Aug 18, 2025
    Configuration menu
    Copy the full SHA
    f627176 View commit details
    Browse the repository at this point in the history
  4. feat: migrate to scheduler plugin interface and scheduler plugins (#3676

    )
    
    <!--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**
    * Plugin-based scheduler system with selectable scheduler plugins; new
    greedy and MILP schedulers and settings exposed.
      * Exposed total temporary-file size reporting for inputs.
    
    * **Improvements**
    * CLI now picks schedulers from available plugins; legacy solver options
    removed/deprecated and plugin settings integrated.
    * Asynchronous input-size prefetching and stricter per-job validation
    for scheduling; scheduler settings passed through execution API.
    
    * **Bug Fixes**
      * Fixed Python version error message formatting.
    
    * **Refactor**
    * Scheduling flow reworked to use external scheduler plugins with a
    greedy fallback.
    
    * **Chores**
      * Updated help text and deprecation notices.
    <!-- end of auto-generated comment: release notes by coderabbit.ai -->
    johanneskoester authored Aug 18, 2025
    Configuration menu
    Copy the full SHA
    26fcd38 View commit details
    Browse the repository at this point in the history

Commits on Aug 29, 2025

  1. chore(main): release 9.10.0 (#3702)

    🤖 I have created a release *beep* *boop*
    ---
    
    
    ##
    [9.10.0](v9.9.0...v9.10.0)
    (2025-08-19)
    
    
    ### Features
    
    * migrate to scheduler plugin interface and scheduler plugins
    ([#3676](#3676))
    ([26fcd38](26fcd38))
    
    
    ### Bug Fixes
    
    * don't rate limit jobs when touching
    ([#3699](#3699))
    ([9c499e5](9c499e5))
    * raise an error when different rules produce identical (temp) output
    ([#3667](#3667))
    ([f627176](f627176))
    * silence messages on module load
    ([#3688](#3688))
    ([b13e9c8](b13e9c8))
    
    ---
    This PR was generated with [Release
    Please](https://github.com/googleapis/release-please). See
    [documentation](https://github.com/googleapis/release-please#release-please).
    snakemake-bot authored Aug 29, 2025
    Configuration menu
    Copy the full SHA
    2601b1a View commit details
    Browse the repository at this point in the history
Loading