Skip to content

chore(main): release 8.0.0#2535

Merged
johanneskoester merged 2 commits intomainfrom
release-please--branches--main
Dec 20, 2023
Merged

chore(main): release 8.0.0#2535
johanneskoester merged 2 commits intomainfrom
release-please--branches--main

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions bot commented Dec 6, 2023

🤖 I have created a release beep boop

8.0.0 (2023-12-20)

⚠ BREAKING CHANGES

Snakemake 8 marks the beginning of decomposing Snakemake into a framework of plugins. This enables the democratization of method development within the Snakemake ecosystem.
We start with plugins for storage and execution backends. In the future, there will be plugins for the scheduling, metadata, software deployment, reporting, and many more.
This way, it will be possible to easily launch and explore new developments in workflow management and reproducible data analysis without the need to get your work merged into the main codebase of Snakemake and also without the need to develop a new workflow management system as a proof of concept.

In detail, Snakemake 8 introduces the following changes. Unfortunately it was unavoidable to break some usages (we apologize).
Nevertheless, we tried to ensure that every removed or modified feature has been replaced with an equivalent reimplementation, as outlined in our migration docs.
While Snakemake 8 has an even more thorough testing framework than any release before, and while it has been quite heavily tested in practice by us, you might initially experience bugs and glitches for which we want to apologize beforehand.
We think that the massive codebase improvements are worth it in the long run, and hope that everything goes well.
As always, any pull requests with test cases and pointers to bugs are more than welcome.

Detailed breaking changes

  • removed the long time ago deprecated support for dynamic, version, and subworkflow (see the migration docs)
  • migrated old remote providers into storage plugins (see the migration docs)
  • migrated execution backends into plugins, including a change in the respective command line interfaces (see the migration docs)
  • deprecates --use-conda and --use-singularity in favor of --software-deployment-method conda or --software-deployment-method apptainer and --software-deployment-method conda apptainer (see the migration docs)
  • profile support is now versioned, such that different profiles can be written for different minimum Snakemake versions (see the migration docs)
  • redesigned Snakemake API. It now uses a modern, dataclass based approach (see the migration docs)

Features

  • add ability to inject conda environments into running Snakefile (#2479) (6140e29)
  • add functionality for deploying sources if no shared FS is assumed (#2486) (76eac3c)
  • add option to control software deployment mode (shared or non shared FS) (#2525) (04ec2c0)
  • allow detailed configuration of shared FS usage (#2528) (0d34be9)
  • allow environment variables in string values of profile (e.g. paths may now contain elements like $USER). (58dc70c)
  • allow python expressions in --set-resources (#2521) (022a31e)
  • allow to set latency_wait in executor test suite (c0bca0b)
  • automatically upload workflow sources to default storage provider if no shared FS is used (a450c49)
  • Faster ci test setup (#2489) (4798e8a)
  • implement precommand (#2482) (ff0f979)
  • redesigned Snakemake API. It now uses a modern, dataclass based approach (#2403) (2be3bfa)
  • support for external executor plugins (#2305) (c9eaa4e)
  • version specific profile config files (profile/config.v8+.yaml with profile/config.yaml as fallback that matches any version) (#2498) (47e5811)

Bug Fixes

  • adapt to changes in snakemake-interface-executor-plugins (635c68a)
  • add storage provider args to deploy sources command (67178e3)
  • add testcase for script directive to work with Python 3.7 and corresponding fix. (0b4ae2e)
  • allow pepfile and pepschema to take pathlib (#2546) (ca91661)
  • also inherit rule proxies if there is no rulename modifier specified in a use rule statement (#2440) (1570289)
  • assume at most 8GB memory for default resources. This way, we avoid exploding memory requirements for large input files that are very unlikely to be put entirely into memory by any tool. (11c2ecc)
  • comparison to float in scheduler (ef44d84)
  • detect job paths that leave and then enter a group. Such paths are invalid because then the group depends on itself. (#2527) (5383a4d)
  • ensure that auto deployment of default storage provider works in containers with read-only root home. (1a347ff)
  • ensure that log and benchmark files are uploaded to storage as well (#2545) (6aabb5d)
  • ensure that targetjob is always forced. This fixes a bug causing run-directive rules to not being executed even when enforced via e.g. -R. (#2448) (b2a60d5)
  • fix cache handling and unlock handling (2f4d5e1)
  • fix nargs definition for --deploy-sources (fc252c8)
  • fix path handling when detective profiles (fe63881)
  • fix storage handling on windows by converting all paths to posix paths (#2519) (7864a76)
  • handle different f-string tokens in py3.12 (#2485) (f2c7613)
  • handle storage for local jobs; add test case (6d978ef)
  • handling of group jobs when obtaining temp input files (71be1de)
  • import (#2402) (2c831f1)
  • improved error handling for storage upload; fixed bugs caused by outdated calls to IOFile.exists(). (720bb84)
  • improved error messages in case of invalid storage queries (9671fd0)
  • in addition to localrules statement, infer that job is local if it has any input or output file that is marked as local (#2541) (e8b682b)
  • only deactivate conda inject envs upon workflow tear down (#2503) (e6dfdd4)
  • Panoptes --wms-monitor-arg (#2444) (98d2bdf)
  • proper reuse of rule proxies when importing several times from the same module (#2404) (e867dda)
  • Restore backward compatibility for Google Life Sciences executor (#2461) (5e3a464)
  • shadow "full" mode ignore symlinks (#2516) (1d58120)
  • show failed logs in executor testcases (92f7bf4)
  • Slack log service (#2537) (26eb4ba)
  • sort report (sub-)categories in lexicographical order (#2449) (d0705ad)
  • update minimum snakemake-interface-storage-plugins version (0ef7226)
  • use temporary directory (faster, more likely local, always writable) for persistence and source cache in case of remote execution without shared fs (#2502) (c8fa7ba)
  • wait for logs before showing them on error (a4ff328)

Documentation

  • document name directive with example (#2534) (cce5551)
  • fix syntax in cluster example (#2460) (64e9645)
  • notes on arm based machines in tutorial docs (0586f04)
  • rust: Fix typo on rust-script version (#2488) (a79dd94)

This PR was generated with Release Please. See documentation.

@github-actions github-actions bot force-pushed the release-please--branches--main branch 5 times, most recently from 95658ac to 535efb2 Compare December 13, 2023 10:24
@github-actions github-actions bot force-pushed the release-please--branches--main branch 5 times, most recently from a34eba6 to 2012109 Compare December 20, 2023 18:02
@github-actions github-actions bot force-pushed the release-please--branches--main branch from 05f8cf4 to b071bd3 Compare December 20, 2023 18:35
@johanneskoester johanneskoester merged commit f155ed2 into main Dec 20, 2023
@johanneskoester johanneskoester deleted the release-please--branches--main branch December 20, 2023 18:40
@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Passed Quality Gate passed

Kudos, no new issues were introduced!

0 New issues
0 Security Hotspots
No data about Coverage
No data about Duplication

See analysis details on SonarCloud

@github-actions
Copy link
Copy Markdown
Contributor Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant