Skip to content

Commit 8f9db10

Browse files
committed
Merge branch 'main' into 3342-faster---touch-runs
2 parents a39ec20 + cc04085 commit 8f9db10

File tree

160 files changed

+42
-3011
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

160 files changed

+42
-3011
lines changed

.github/workflows/docs.yml

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,42 +17,44 @@ jobs:
1717
runs-on: ubuntu-latest
1818
steps:
1919
- uses: actions/checkout@v4
20-
20+
2121
- uses: actions/setup-python@v4
2222
with:
2323
python-version: '3.x'
2424

2525
- name: Setup doc dependencies
2626
run: |
2727
python -m pip install --upgrade pip
28-
pip install -r docs/requirements.txt
29-
28+
python -m pip install -r docs/requirements.txt
29+
python -m pip install .
30+
3031
- name: Build docs
3132
run: |
3233
cd docs
3334
make html SPHINXOPTS="-W --keep-going -n"
35+
3436
- name: Upload documentation
3537
uses: actions/upload-artifact@v4
3638
with:
3739
name: docs-html
3840
path: docs/_build/html/
39-
41+
4042
apidocs:
4143
if: github.event.pull_request.merged != true || github.ref != 'refs/heads/main'
4244
runs-on: ubuntu-latest
4345
steps:
4446
- uses: actions/checkout@v4
45-
47+
4648
- uses: actions/setup-python@v4
4749
with:
4850
python-version: '3.x'
4951

5052
- name: Setup doc dependencies
5153
run: |
5254
python -m pip install --upgrade pip
53-
pip install -r apidocs/requirements.txt
54-
pip install -e .
55-
55+
python -m pip install -r apidocs/requirements.txt
56+
python -m pip install .
57+
5658
- name: Build docs
5759
run: |
5860
cd apidocs
@@ -62,4 +64,4 @@ jobs:
6264
uses: actions/upload-artifact@v4
6365
with:
6466
name: apidocs-html
65-
path: apidocs/_build/html/
67+
path: apidocs/_build/html/

.gitignore

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,10 @@ tests/test*/*
3030
playground/*
3131
tutorial/*
3232

33-
snakemake/assets/data
33+
src/snakemake/assets/data
34+
src/snakemake/_version.py
3435

3536
# pixi environments
3637
.pixi
3738
*.egg-info
38-
pixi.lock
39+
pixi.lock

MANIFEST.in

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
1-
include versioneer.py
2-
include snakemake/_version.py
1+
global-exclude *
2+
3+
include setup.py
4+
include pyproject.toml
5+
include README.md
36
include LICENSE.md
7+
include .gitignore
8+
graft src
49

510
# Include tests in sdist, otherwise only tests/test*.py are included by default
611
graft tests
12+
13+
global-exclude *~ *.py[cod] *.so

pyproject.toml

Lines changed: 16 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1+
[build-system]
2+
requires = ["setuptools>=64", "setuptools-scm>=8"]
3+
build-backend = "setuptools.build_meta"
4+
15
[project]
26
name = "snakemake"
3-
version = "8.30.0"
7+
dynamic = ["version"]
48
description = "Workflow management system to create reproducible and scalable data analyses"
59
readme = { content-type = "text/markdown", text = """
610
Snakemake is a workflow management system that aims to reduce the
@@ -70,31 +74,10 @@ all = ["slack_sdk", "eido", "peppy", "pygments"]
7074
[project.scripts]
7175
snakemake = "snakemake.cli:main"
7276

73-
[build-system]
74-
requires = ["setuptools>=42,<76", 'tomli']
75-
build-backend = "setuptools.build_meta"
76-
77-
[tool.setuptools.packages.find]
78-
include = ["snakemake", "snakemake.*"]
79-
80-
[tool.setuptools.package-data]
81-
"*" = [
82-
"*.css",
83-
"*.sh",
84-
"*.html",
85-
"*.jinja2",
86-
"*.js",
87-
"*.svg",
88-
"Snakefile.*",
89-
"*.rst",
90-
]
91-
92-
[tool.versioneer]
93-
VCS = "git"
94-
style = "pep440"
95-
tag_prefix = "v"
96-
versionfile_build = "snakemake/_version.py"
97-
versionfile_source = "snakemake/_version.py"
77+
[tool.setuptools_scm]
78+
version_file = "src/snakemake/_version.py"
79+
# Ignore Git hash
80+
local_scheme = "no-local-version"
9881

9982
[tool.codespell]
10083
# Ref: https://github.com/codespell-project/codespell#using-a-config-file
@@ -123,13 +106,14 @@ docs = { features = ["docs"] }
123106
quality = { features = ["style"] }
124107
publish = { features = ["publish"] }
125108

126-
#----------------------- Python Envs -------------------------
109+
# Python Envs
127110
[tool.pixi.feature.py311.dependencies]
128111
python = ">=3.11.0,<3.12"
129112

130113
[tool.pixi.feature.py312.dependencies]
131114
python = ">=3.12.0,<3.13"
132-
#------------------------ Test -------------------------------
115+
116+
# Test
133117
[tool.pytest.ini_options]
134118
addopts = "--verbose --show-capture=stderr" # --exitfirst
135119
markers = [
@@ -231,7 +215,7 @@ wget = "*"
231215
dash = "*"
232216
openmpi = "*"
233217

234-
#------------------------ Docs -------------------------------
218+
# Docs
235219
[tool.pixi.feature.docs.dependencies]
236220
sphinx = ">=7.2.6,<8"
237221
sphinx-argparse = ">=0.4.0,<0.6"
@@ -252,16 +236,15 @@ description = "Serve the documentation on http://localhost:8000"
252236
cmd = "python -m http.server 8000 --directory docs/_build/html"
253237
depends-on = ["build-docs"]
254238

255-
#------------------------ Style -------------------------------
239+
# Style
256240
[tool.pixi.feature.style.dependencies]
257241
black = "*"
258242

259243
[tool.pixi.feature.style.tasks]
260-
format = { cmd = "black snakemake tests/*.py", description = "Format the code" }
244+
format = { cmd = "black src/ tests/*.py", description = "Format the code" }
261245

262-
#------------------------ publish -------------------------------
246+
# Publish
263247
[tool.pixi.feature.publish.dependencies]
264-
setuptools = ">=75.8.2,<76"
265248
twine = ">=6.1.0,<7"
266249
python-build = ">=1.2.2,<2"
267250

setup.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import os
21
from pathlib import Path
32
import sys
43

@@ -10,20 +9,18 @@
109

1110
source_dir = Path(__file__).parent
1211
sys.path.append(str(source_dir))
13-
import versioneer # noqa: E402
1412

1513
# import Assets, while avoiding that the rest of snakemake is imported here before
1614
# setup has been called.
17-
sys.path.append(str(source_dir / "snakemake"))
15+
sys.path.append(str(source_dir / "src" / "snakemake"))
1816
from assets import Assets
1917

2018
# download online assets
2119
Assets.deploy()
2220

2321
setup(
2422
name="snakemake",
25-
version=versioneer.get_version(),
26-
cmdclass=versioneer.get_cmdclass(),
23+
use_scm_version=True,
2724
package_data={
2825
"snakemake": [
2926
"assets/data/**/*",

0 commit comments

Comments
 (0)