## START: Set by rpmautospec
## (rpmautospec version 0.7.3)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
    release_number = 1;
    base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
    print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec

# Work around a series of circular test dependencies:
#
#    python-snakemake-interface-report-plugins
#    ↓↑   ⬐───╮
# snakemake → python-snakemake-interface-executor-plugins⬎
#   ↑↑↑ │ ⬑────────────────────python-snakemake-executor-plugin-cluster-generic
#   │││ ↳python-snakemake-interface-storage-plugins─────────────────╮
#   │││                                           ↓────────────────╮│
#   ││╰────────────────────────python-snakemake-storage-plugin-http││
#   │╰─────────────────────────python-snakemake-storage-plugin-s3🠔─╯│
#   ╰──────────────────────────python-snakemake-storage-plugin-fs🠔──╯
#
# A good build order is:
#
#   1. BOOTSTRAP: python-snakemake-interface-executor-plugins,
#      python-snakemake-interface-storage-plugins,
#      python-snakemake-interface-report-plugins
#   2. BOOTSTRAP: snakemake
#   3. python-snakemake-executor-plugin-cluster-generic,
#      python-snakemake-storage-plugin-http,
#      python-snakemake-storage-plugin-s3,
#      python-snakemake-storage-plugin-fs
#   4. snakemake, python-snakemake-interface-executor-plugins,
#      python-snakemake-interface-storage-plugins,
#      python-snakemake-interface-report-plugins
%bcond bootstrap 0
%bcond tests %{without bootstrap}
# Run tests that require network access? This only makes sense for local mock
# builds in combination with --enable-network.
%bcond network_tests 0
# Almost all of the conda tests require network access, but there are also
# other failures that are not straightforward to understand.
%bcond conda_tests 0

%global _description %{expand:
The Snakemake workflow management system is a tool to create reproducible and
scalable data analyses. Workflows are described via a human readable, Python
based language. They can be seamlessly scaled to server, cluster, grid and
cloud environments, without the need to modify the workflow definition.
Finally, Snakemake workflows can entail a description of required software,
which will be automatically deployed to any execution environment.}

Name:           snakemake
Version:        8.30.0
Release:        %autorelease
Summary:        Workflow management system to create reproducible and scalable data analyses

# The primary license for Snakemake is MIT; versioneer contributes Unlicense,
# and web assets contribute a variety of other licenses.
#
# Apache-2.0 AND BSD-2-Clause AND BSD-3-CLause AND ISC AND MIT AND MIT-0:
# - snakemake/assets/data/vega/vega.js
#
# BSD-3-Clause AND MIT:
# - snakemake/assets/data/vega-lite/vega-lite.js
#
# BSD-3-Clause AND ISC AND MIT:
# - snakemake/assets/data/vega-embed/vega-embed.js
#
# MIT:
# - All Snakemake code unless otherwise noted
# - heroicons: It is unclear if anything derived from heroicons is actually
#   present in the package, but upstream carries a copy of its license file, so
#   we mention the possibility.
# - snakemake/assets/data/prop-types/prop-types.min.js
# - snakemake/assets/data/tailwindcss/tailwind.css
#
# Unlicense:
# - versioneer.py
# - snakemake/_version.py (which says “This file is released into the public
#   domain,” but the comments in versioneer.py make it clear that Unlicense is
#   intended for the generated files as well)
#
# == License breakdown for snakemake/assets/data/vega/vega.js ==
#
# The primary license for npm(vega) is BSD-3-Clause. The bundle contains:
#
# Apache-2.0:
# - apache-commons-math, from which an implementation of erfinv is derived
# BSD-2-Clause:
# - npm(esprima), bundled as a copied, derived, or adapted snippet
# BSD-3-Clause:
# - npm(vega) and various npm(vega-*) libraries
# - npm(d3-contour), bundled as a copied, derived, or adapted snippet
# - npm(d3-regression), bundled as a copied, derived, or adapted snippet
# - npm(science), bundled as a copied, derived, or adapted snippet
# - npm(shapefile), bundled as a copied, derived, or adapted snippet
# ISC:
# - various npm(d3-*) libraries
# - npm(delaunator)
# - npm(quickselect)
# - npm(topojson-client)
# ISC AND MIT:
# - npm(d3-geo) (MIT is due to some code being derived from GeographicLib)
# - npm(d3-geo-projection) (MIT is due to some code being derived from
#   https://github.com/scijs/integrate-adaptive-simpson)
# MIT:
# - npm(@types/estree)
# - npm(hashlru), bundled as a copied, derived, or adapted snippet
# - npm(regression), bundled as a copied, derived, or adapted snippet
# MIT-0:
# - npm(fabric), bundled as a copied, derived, or adapted snippet
#
# == License breakdown for snakemake/assets/data/vega-lite/vega-lite.js ==
#
# The primary license for npm(vega-lite) is BSD-3-Clause. The bundle contains:
#
# BSD-3-Clause:
# - npm(vega-lite) and various npm(vega-*) libraries
# MIT:
# - npm(@types/clone)
# - npm(@types/estree)
# - npm(clone)
# - npm(fast-deep-equal)
# - npm(fast-json-stable-stringify)
# - npm(hashlru), bundled as a copied, derived, or adapted snippet
# - npm(json-stringify-pretty-compact)
#
# == License breakdown for snakemake/assets/data/vega-embed/vega-embed.js ==
#
# The primary license for npm(vega-embed) is BSD-3-Clause. The bundle contains:
#
# BSD-3-Clause:
# - npm(vega-embed) and various npm(vega-*) libraries
# ISC:
# - npm(semver)
# MIT:
# - npm(fast-json-patch)
# - npm(json-stringify-pretty-compact)
License:        %{shrink:
                Apache-2.0 AND
                BSD-2-Clause AND
                BSD-3-Clause AND
                ISC AND
                MIT AND
                MIT-0 AND
                Unlicense
                }
URL:            https://snakemake.readthedocs.io/en/stable/index.html
%global forgeurl https://github.com/snakemake/snakemake
# We could use the PyPI sdist, which already contains the HTML report assets,
# but we would lose at least the vim extensions and changelog, and we would
# have to nontrivially modify the sdist to remove a CC0-1.0-licensed polyfill
# before uploading it to the lookaside cache, so doing so would not be
# meaningfully easier than using the GitHub archive with an additional source
# for the assets.
Source0:        %{forgeurl}/archive/v%{version}/snakemake-%{version}.tar.gz
# The assets for HTML reports are normally downloaded in setup.py when creating
# the sdist. We use a script, Source2, executed with no arguments (implicitly
# relying on the spec file in the same directory) to download the assets,
# modify them as necessary, and pack them into an additional source archive.
Source1:        snakemake-%{version}-assets.tar.zst
Source2:        get_assets

# Upstream upper-bounded the version of setuptools to work around a hash
# mismatch in setuptools 76 on PyPI observed on March 9, 2025. The system
# setuptools is fine. The upper-bound was removed in a later release. Here we
# revert it as a downstream-only patch.
Patch:          0001-Revert-chore-work-around-setuptools-76-hash-mismatch.patch

# chore: Add license texts for things bundled in the assets
# https://github.com/snakemake/snakemake/pull/3099
# Rebased on v8.30.0
Patch:          0001-chore-Add-license-texts-for-things-bundled-in-the-as.patch

# Downstream-only: adjust the asset metadata in the sources, including
# checksums, for any adjustments that happened in the get_assets script.
#
# When the get_assets script unpacks and patches Source0 in order to use it to
# download assets, it skips this patch, because we need to first fetch the
# original assets in order to then modify them. The signal for this behavior is
# the substring "modified-assets" in the patch name.
Patch:          snakemake-8.30.0-modified-assets.patch

BuildArch:      noarch

BuildRequires:  python3-devel

BuildRequires:  help2man

# Snakemake uses (unversioned) "python" as the default remote execution
# command. Because remote hosts could be Windows machines, and those are likely
# to lack "python3.exe" (see https://github.com/python/cpython/issues/99185),
# we didn’t try to convince upstream to change this. Instead, we (reluctantly)
# just make sure that our own Snakemake installations are compatible by
# depending on python-unversioned-command.
BuildRequires:  python-unversioned-command
Requires:       python-unversioned-command

BuildRequires:  vim-filesystem
Requires:       vim-filesystem

# Required for snakemake.script.RScript, snakemake.notebook.RJupyterNotebook
# (Some of the tests in tests/tests_using_conda.py require this.)
BuildRequires:  R-core
Recommends:     R-core

Provides:       vim-snakemake = %{version}-%{release}

# Regarding pre-compiled/pre-minified JavaScript, see:
# - https://pagure.io/fesco/issue/3177
# - https://pagure.io/packaging-committee/pull-request/1370
# Regarding CSS, see:
# - https://pagure.io/fesco/issue/3269
# - https://pagure.io/packaging-committee/pull-request/1402

# Styles from Pygments are bundled in generated HTML reports (thus the presence
# of a Pygments license file), but the styles come from the system
# python3-pygments package and are not actually bundled in this package.

# tailwind.css 3.4.16 is snakemake/assets/data/tailwindcss/tailwind.css, but we
# do not normally treat CSS frameworks as bundled dependencies, and it is not
# clear how we should name a virtusl Provides if we added one.

# snakemake/assets/data/react/react.production.min.js
Provides:       bundled(npm(react)) = 18.2.0
# snakemake/assets/data/react/react-dom.production.min.js
Provides:       bundled(npm(react-dom)) = 18.2.0

# snakemake/assets/data/vega/vega.js
Provides:       bundled(npm(vega)) = 5.21.0
# Bundled in snakemake/assets/data/vega/vega.js as dependencies:
# For versions of vega-* packages, see:
# https://github.com/vega/vega/blob/v5.21.0/packages
Provides:       bundled(npm(vega-crossfilter)) = 4.0.5
Provides:       bundled(npm(vega-dataflow)) = 5.7.4
Provides:       bundled(npm(vega-encode)) = 4.8.3
Provides:       bundled(npm(vega-event-selector)) = 3.0.0
Provides:       bundled(npm(vega-expression)) = 5.0.0
Provides:       bundled(npm(vega-force)) = 4.0.7
Provides:       bundled(npm(vega-format)) = 1.0.4
Provides:       bundled(npm(vega-functions)) = 5.12.1
Provides:       bundled(npm(vega-geo)) = 4.3.8
Provides:       bundled(npm(vega-hierarchy)) = 4.0.9
Provides:       bundled(npm(vega-label)) = 1.1.0
Provides:       bundled(npm(vega-loader)) = 4.4.1
Provides:       bundled(npm(vega-parser)) = 6.1.4
Provides:       bundled(npm(vega-projection)) = 1.4.5
Provides:       bundled(npm(vega-regression)) = 1.0.9
Provides:       bundled(npm(vega-runtime)) = 6.1.3
Provides:       bundled(npm(vega-scale)) = 7.1.1
Provides:       bundled(npm(vega-scenegraph)) = 4.9.4
Provides:       bundled(npm(vega-statistics)) = 5.3.1
Provides:       bundled(npm(vega-time)) = 2.0.4
Provides:       bundled(npm(vega-transforms)) = 4.9.5
Provides:       bundled(npm(vega-typings)) = 0.22.0
Provides:       bundled(npm(vega-util)) = 1.17.0
Provides:       bundled(npm(vega-view)) = 5.10.1
Provides:       bundled(npm(vega-view-transforms)) = 4.5.8
Provides:       bundled(npm(vega-voronoi)) = 4.1.5
Provides:       bundled(npm(vega-wordcloud)) = 4.1.3
# For these, see notes in snakemake/assets/__init__.py.
Provides:       bundled(npm(@types/estree)) = 0.0.50
Provides:       bundled(npm(d3-array)) = 2.12.1
Provides:       bundled(npm(d3-color)) = 2.0.0
Provides:       bundled(npm(d3-delaunay)) = 5.2.0
Provides:       bundled(npm(d3-dispatch)) = 2.0.0
Provides:       bundled(npm(d3-dsv)) = 2.0.0
Provides:       bundled(npm(d3-force)) = 2.1.1
Provides:       bundled(npm(d3-format)) = 2.0.0
Provides:       bundled(npm(d3-geo)) = 2.0.2
Provides:       bundled(npm(d3-geo-projection)) = 3.0.0
Provides:       bundled(npm(d3-hierarchy)) = 2.0.0
Provides:       bundled(npm(d3-interpolate)) = 2.0.1
Provides:       bundled(npm(d3-path)) = 2.0.0
Provides:       bundled(npm(d3-quadtree)) = 2.0.0
Provides:       bundled(npm(d3-scale)) = 3.3.0
Provides:       bundled(npm(d3-shape)) = 2.1.0
Provides:       bundled(npm(d3-time)) = 2.1.1
Provides:       bundled(npm(d3-time-format)) = 3.0.0
Provides:       bundled(npm(d3-timer)) = 2.0.0
Provides:       bundled(npm(delaunator)) = 4.0.1
Provides:       bundled(npm(topojson-client)) = 3.1.0
# Present in snakemake/assets/data/vega/vega.js in the form of copied, derived,
# or adapted snippets. See notes in snakemake/assets/__init__.py.
# Implementation of erfinv is based on:
Provides:       bundled(apache-commons-math) = 3.6.1
# Expression parser is based on:
Provides:       bundled(esprima) = 2.2.0
Provides:       bundled(fabric) = 2.4.5
Provides:       bundled(npm(d3-contour)) = 1.3.2
Provides:       bundled(npm(d3-regression)) = 1.2.1
Provides:       bundled(npm(hashlru)) = 1.0.4
Provides:       bundled(npm(quickselect)) = 2.0.0
Provides:       bundled(npm(regression)) = 2.0.1
Provides:       bundled(npm(science)) = 1.9.3
Provides:       bundled(npm(shapefile)) = 0.6.2

# snakemake/assets/data/vega-lite/vega-lite.js
Provides:       bundled(npm(vega-lite)) = 5.2.0
# NOTE: Some of the following virtual Provides are commented out. These are
# correct, and need to be considered when determining the license of
# vega-lite.js, but they do not need to be repeated in the spec file because
# they duplicate virtual Provides from vega.js.
#
# Bundled in snakemake/assets/data/vega-lite/vega-lite.js as dependencies:
# See notes in snakemake/assets/__init__.py.
Provides:       bundled(npm(@types/clone)) = 2.1.1
Provides:       bundled(npm(clone)) = 2.1.2
Provides:       bundled(npm(fast-deep-equal)) = 3.1.3
Provides:       bundled(npm(fast-json-stable-stringify)) = 2.1.0
Provides:       bundled(npm(json-stringify-pretty-compact)) = 3.0.0
# See notes in snakemake/assets/__init__.py, as well as dependencies in
# https://github.com/vega/vega-lite/blob/v5.2.0/package.json, and for versions,
# see https://github.com/vega/vega-lite/blob/v5.2.0/yarn.lock; these correspond
# to those associated with vega 5.2.1.
#Provides:       bundled(npm(@types/estree)) = 0.0.50
#Provides:       bundled(npm(vega-event-selector)) = 3.0.0
#Provides:       bundled(npm(vega-expression)) = 5.0.0
#Provides:       bundled(npm(vega-util)) = 1.17.0
# Present in snakemake/assets/data/vega-lite/vega-lite.js in the form of
# copied, derived, or adapted snippets. See notes in
# snakemake/assets/__init__.py.
#Provides:       bundled(npm(hashlru)) = 1.0.4

# snakemake/assets/data/vega-embed/vega-embed.js
Provides:       bundled(npm(vega-embed)) = 6.20.8
# NOTE: Some of the following virtual Provides are commented out. These are
# correct, and need to be considered when determining the license of
# vega-embed.js, but they do not need to be repeated in the spec file because
# they duplicate virtual Provides from vega.js and/or vega-lite.js.
#
# Bundled in snakemake/assets/data/vega-embed/vega-embed.js as dependencies:
# See notes in snakemake/assets/__init__.py.
Provides:       bundled(npm(fast-json-patch)) = 3.1.0
#Provides:       bundled(npm(json-stringify-pretty-compact)) = 3.0.0
Provides:       bundled(npm(semver)) = 7.3.5
# See notes in snakemake/assets/__init__.py, as well as dependencies in
# https://github.com/vega/vega-embed/blob/v6.20.8/package.json, and for
# versions, see https://github.com/vega/vega-embed/blob/v6.20.8/yarn.lock;
# these correspond to those associated with vega 5.2.1.
Provides:       bundled(npm(vega-interpreter)) = 1.0.4
Provides:       bundled(npm(vega-schema-url-parser)) = 2.2.0
Provides:       bundled(npm(vega-themes)) = 2.10.0
Provides:       bundled(npm(vega-tooltip)) = 0.28.0
#Provides:       bundled(npm(vega-util)) = 1.17.0
# Present in snakemake/assets/data/vega-embed/vega-embed.js in the form of
# copied, derived, or adapted snippets. See notes in
# snakemake/assets/__init__.py.
#Provides:       bundled(npm(hashlru)) = 1.0.4
# _areEquals() is based on:
#Provides:       bundled(npm(fast-deep-equal)) = 3.1.3

# It is unclear if anything derived from heroicons is actually present in the
# package, but upstream carries a copy of its license file, so we dutifully add
# the virtual Provides, just in case we have missed something.
Provides:       bundled(npm(heroicons)) = 1.0.3

# snakemake/assets/data/prop-types/prop-types.min.js
Provides:       bundled(npm(prop-types)) = 15.7.2

# These extras were removed upstream in Snakemake 8.0.0. Retain the Obsoletes
# until F40 reaches EOL so we have a clean upgrade path.
Obsoletes:      snakemake+azure < 8.1.0-1
Obsoletes:      snakemake+google-cloud < 8.1.0-1
# We no longer build Sphinx-generated PDF documentation. Beginning with 8.2.3,
# this would require patching out sphinxawesome-theme from docs/conf.py. It’s
# possible but tedious.
Obsoletes:      snakemake-doc < 8.2.1-2

%if %{with tests}
# For several tests (either apptainer or singularity-ce should work):
BuildRequires:  (apptainer or singularity-ce)
%if %{with conda_tests}
# For tests/tests_using_conda.py
BuildRequires:  conda
# For test_conda_pin_file, test_conda_named, test_conda_function
BuildRequires:  ripgrep
# For test_script_xsh
BuildRequires:  xonsh
%endif
# For test_env_modules:
BuildRequires:  environment-modules
# For test_filegraph and test_env_modules, which use dot:
BuildRequires:  graphviz
# For test_github_issue1158:
BuildRequires:  strace
# For test_benchmark and test_benchmark_jsonl:
BuildRequires:  stress-ng

# See test-environment.yml for a listing of test dependencies, along with a lot
# of other cruft.
BuildRequires:  %{py3_dist boto3}
BuildRequires:  %{py3_dist pandas}
BuildRequires:  %{py3_dist pytest}
BuildRequires:  %{py3_dist pytest-mock}
BuildRequires:  %{py3_dist snakemake-executor-plugin-cluster-generic}
BuildRequires:  %{py3_dist snakemake-storage-plugin-http}
BuildRequires:  %{py3_dist snakemake-storage-plugin-fs}
BuildRequires:  %{py3_dist snakemake-storage-plugin-s3}
%endif
# For import-testing snakemake.gui
BuildRequires:  %{py3_dist flask}
# For import-testing snakemake.executors.google_lifesciences_helper:
BuildRequires:  %{py3_dist google-cloud-storage}

%description %_description


# No metapackage for “pep” extra because the following are not packaged:
#   - python3-eido
#   - python3-peppy
%pyproject_extras_subpkg -n snakemake reports messaging


%prep
%autosetup -n snakemake-%{version} -p1
%setup -q -T -D -a 1 -c -n snakemake-%{version}

%py3_shebang_fix .
# Remove shebangs from non-executable scripts. The Python script is executable
# in the source tree but will be installed without executable permissions.
sed -r -i '1{/^#!/d}' \
    snakemake/executors/jobscript.sh \
    snakemake/executors/google_lifesciences_helper.py

# Copy and rename nano and vim extensions readmes for use in the main
# documentation directory.
for editor in nano vim
do
  cp -vp "misc/${editor}/README.md" "README-${editor}.md"
done

# The CDN URL for tailwind.css does not deliver a file with a stable checksum,
# so upstream has not recorded a checksum in snakemake/assets/__init__.py. A
# consequence of this is that setup.py will *always* re-download tailwind.css,
# even if it is already present, when building an sdist or bdist/wheel. Of
# course, this is not acceptable in an offline build, so we record the actual
# checksum of the tailwind.css file we are packaging.
cat >> snakemake/assets/__init__.py <<EOF

# Fedora patch: Upstream does not record a checksum for tailwind.css because
# they report that the CDN URL may serve trivially different copies. Since we
# package a copy of the file, we record the checksum of the actual packaged
# file.
Assets.spec["tailwindcss/tailwind.css"].sha256 = "$(
  sha256sum -b snakemake/assets/data/tailwindcss/tailwind.css |
    awk '{print $1}'
)"
EOF


%generate_buildrequires
# Generate BR’s for all supported extras to ensure they do not FTI
%pyproject_buildrequires -x reports,messaging


%build
%pyproject_wheel


%install
%pyproject_install
%pyproject_save_files -l snakemake

# Mark license files in the asset bundle.
sed -r -i 's@^.*/(LICEN[CS]E|NOTICE)[^/]*$@%%license &@' %{pyproject_files}

# We wait until %%install to generate the man page so that we can use the
# proper script entry point. The generated man page is not perfect, but it is
# good enough to be useful.
install -d %{buildroot}%{_mandir}/man1
PATH="${PATH-}:%{buildroot}%{_bindir}" \
    PYTHONPATH='%{buildroot}%{python3_sitelib}' \
    help2man --no-info --name='%{summary}' snakemake \
    > %{buildroot}%{_mandir}/man1/snakemake.1

# Install nano syntax highlighting
install -t '%{buildroot}%{_datadir}/nano' -D -m 0644 -p \
    misc/nano/syntax/snakemake.nanorc

# Install vim syntax highlighting
install -d '%{buildroot}%{_datadir}/vim/vimfiles'
cp -vrp misc/vim/* '%{buildroot}%{_datadir}/vim/vimfiles'
find '%{buildroot}%{_datadir}/vim/vimfiles' \
    -type f -name 'README.*' -print -delete


%check
# Even if we are running the tests, this is useful; it could turn up import
# errors that would only be revealed by tests we had to disable (e.g. due to
# network access).
%pyproject_check_import -e '*.tests*'

%if %{with tests}
%if %{without network_tests}
# The following require network access (at least DNS) and pass if it is
# available.
k="${k-}${k+ and }not test_ancient"
k="${k-}${k+ and }not test_github_issue78"
k="${k-}${k+ and }not test_issue1083"
k="${k-}${k+ and }not test_modules_prefix"
k="${k-}${k+ and }not test_shell_exec"
%endif

# These use the s3_storage test fixture, which sets up a server on the local
# loopback interface. For some reason, this does not seem to work in mock, with
# or without network access enabled. It is very likely that this is a quirk of
# the build environment rather than a real issue.
k="${k-}${k+ and }not test_default_storage"
k="${k-}${k+ and }not test_default_storage_local_job"
k="${k-}${k+ and }not test_output_file_cache_storage"
k="${k-}${k+ and }not test_storage"

# The following requires cwltool,
# https://github.com/common-workflow-language/cwltool, which is not packaged.
k="${k-}${k+ and }not test_cwl_singularity"

# The following requires polars, which is not packaged.
k="${k-}${k+ and }not test_params_pickling"

# The following require the “pep” extra. They might also require network
# access.
k="${k-}${k+ and }not test_modules_peppy"
k="${k-}${k+ and }not test_pep_pathlib"
k="${k-}${k+ and }not test_peppy"

# See discussion in https://github.com/snakemake/snakemake/issues/2961
# regarding running individual tests explicitly rather than letting pytest
# discover them freely, and see the “Running the full test suite” section in
# docs/project_info/contributing.rst for the list of tests that should be run.
#   - tests/test_api.py requires network access and S3 credentials
%pytest -v -k "${k-}" ${ignore-} \
    tests/tests.py \
%if %{with conda_tests}
    tests/tests_using_conda.py \
%endif
    tests/test_expand.py \
    tests/test_io.py \
    tests/test_schema.py \
    tests/test_linting.py \
    tests/test_executor_test_suite.py \
    tests/test_internals.py
%endif


%files -f %{pyproject_files}
%doc CHANGELOG.md
%doc README.md
%doc README-nano.md
%doc README-vim.md

%{_bindir}/snakemake
%{_mandir}/man1/snakemake.1*

# This is not owned by the filesystem package, and there is no nano-filesystem
# subpackage, so we co-own the directory to avoid depending on nano.
%dir %{_datadir}/nano/
%{_datadir}/nano/snakemake.nanorc

%{_datadir}/vim/vimfiles/ftdetect/snakemake.vim
%{_datadir}/vim/vimfiles/ftplugin/snakemake/
%{_datadir}/vim/vimfiles/syntax/snakemake.vim


%changelog
## START: Generated by rpmautospec
* Fri Mar 21 2025 Benjamin A. Beasley <code@musicinmybrain.net> - 8.30.0-1
- Update to 8.30.0
- Add a weak dependency on R-core
- An asset bundle for offline HTML report generation is now included; this
  has required significant additional “machinery” to package properly, and
  adds many terms to the License field.

* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 8.18.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild

* Sun Oct 13 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 8.18.2-4
- Allow pulp 2.9

* Fri Sep 20 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 8.18.2-3
- Stop trying to generate BR’s from removed extras

* Fri Aug 23 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 8.18.2-2
- No longer conditionalize conda tests

* Fri Aug 23 2024 Packit <hello@packit.dev> - 8.18.2-1
- Update to 8.18.2 upstream release
- Resolves: rhbz#2307480

* Thu Aug 15 2024 Packit <hello@packit.dev> - 8.18.0-1
- Update to 8.18.0 upstream release
- Resolves: rhbz#2305095

* Tue Aug 13 2024 Packit <hello@packit.dev> - 8.17.0-1
- Update to 8.17.0 upstream release
- Resolves: rhbz#2304309

* Sun Aug 04 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 8.16.0-4
- Run tests the way upstream expects
- The result is that we run many more tests

* Thu Aug 01 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 8.16.0-3
- Rely on python-unversioned-command
- This seems to be the best compromise around portable remote execution

* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 8.16.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild

* Thu Jul 11 2024 Packit <hello@packit.dev> - 8.16.0-1
- Update to 8.16.0 upstream release
- Resolves: rhbz#2297081

* Fri Jul 05 2024 Packit <hello@packit.dev> - 8.15.2-1
- Update to 8.15.2 upstream release
- Resolves: rhbz#2295978

* Wed Jun 12 2024 Packit <hello@packit.dev> - 8.14.0-1
- Update to 8.14.0 upstream release
- Resolves: rhbz#2292066

* Sun Jun 09 2024 Python Maint <python-maint@redhat.com> - 8.13.0-3
- Rebuilt for Python 3.13

* Sun Jun 09 2024 Python Maint <python-maint@redhat.com> - 8.13.0-2
- Bootstrap for Python 3.13

* Thu Jun 06 2024 Packit <hello@packit.dev> - 8.13.0-1
- Update to 8.13.0 upstream release
- Resolves: rhbz#2290700

* Mon May 27 2024 Packit <hello@packit.dev> - 8.12.0-1
- Update to 8.12.0 upstream release
- Resolves: rhbz#2283549

* Fri May 17 2024 Packit <hello@packit.dev> - 8.11.6-1
- Update to 8.11.6 upstream release
- Resolves: rhbz#2280990

* Sat May 04 2024 Packit <hello@packit.dev> - 8.11.3-1
- Update to 8.11.3 upstream release
- Resolves: rhbz#2278739

* Wed May 01 2024 Packit <hello@packit.dev> - 8.11.1-1
- Update to 8.11.1 upstream release
- Resolves: rhbz#2278140

* Thu Apr 25 2024 Packit <hello@packit.dev> - 8.11.0-1
- Update to 8.11.0 upstream release
- Resolves: rhbz#2276195

* Sat Apr 20 2024 Packit <hello@packit.dev> - 8.10.8-1
- Update to 8.10.8 upstream release
- Resolves: rhbz#2276195

* Sat Apr 13 2024 Packit <hello@packit.dev> - 8.10.7-1
- Update to 8.10.7 upstream release
- Resolves: rhbz#2274843

* Thu Apr 04 2024 Packit <hello@packit.dev> - 8.10.6-1
- Update to 8.10.6 upstream release
- Resolves: rhbz#2273536

* Thu Mar 28 2024 Packit <hello@packit.dev> - 8.10.4-1
- [packit] 8.10.4 upstream release
- Resolves: rhbz#2271076

* Wed Mar 20 2024 Packit <hello@packit.dev> - 8.9.0-1
- [packit] 8.9.0 upstream release
- Resolves rhbz#2270394

* Fri Mar 15 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 8.8.0-1
- Update to 8.8.0

* Thu Mar 14 2024 Packit <hello@packit.dev> - 8.7.0-1
- [packit] 8.7.0 upstream release
- Resolves rhbz#2269498

* Tue Mar 12 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 8.6.0-2
- Non-bootstrap build of snakemake 8.6.0

* Tue Mar 12 2024 Packit <hello@packit.dev> - 8.6.0-1
- [packit] 8.6.0 upstream release (bootstrap)
- Resolves rhbz#2269081

* Mon Mar 11 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 8.5.5-2
- Patch to allow smart_open 7.x

* Fri Mar 08 2024 Packit <hello@packit.dev> - 8.5.5-1
- [packit] 8.5.5 upstream release
- Resolves rhbz#2268576

* Thu Mar 07 2024 Packit <hello@packit.dev> - 8.5.4-1
- [packit] 8.5.4 upstream release
- Resolves rhbz#2268374

* Mon Feb 26 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 8.5.3-1
- Update to 8.5.3

* Sun Feb 25 2024 Packit <hello@packit.dev> - 8.5.2-1
- [packit] 8.5.2 upstream release
- Resolves rhbz#2265871

* Wed Feb 21 2024 Packit <hello@packit.dev> - 8.4.12-1
- [packit] 8.4.12 upstream release
- Resolves rhbz#2265048

* Sun Feb 18 2024 Packit <hello@packit.dev> - 8.4.9-1
- [packit] 8.4.9 upstream release
- Resolves rhbz#2263559

* Fri Feb 09 2024 Packit <hello@packit.dev> - 8.4.8-1
- [packit] 8.4.8 upstream release
- Resolves rhbz#2263559

* Thu Feb 08 2024 Packit <hello@packit.dev> - 8.4.7-1
- [packit] 8.4.7 upstream release
- Resolves rhbz#2263390

* Wed Feb 07 2024 Packit <hello@packit.dev> - 8.4.6-1
- [packit] 8.4.6 upstream release
- Resolves rhbz#2263115

* Mon Feb 05 2024 Packit <hello@packit.dev> - 8.4.4-1
- [packit] 8.4.4 upstream release
- Resolves rhbz#2262847

* Sat Feb 03 2024 Packit <hello@packit.dev> - 8.4.3-1
- [packit] 8.4.3 upstream release
- Resolves rhbz#2259983

* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 8.2.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild

* Sun Jan 21 2024 Packit <hello@packit.dev> - 8.2.3-1
- [packit] 8.2.3 upstream release
- Resolves rhbz#2259386

* Sun Jan 21 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 8.2.1-2
- Don’t build PDF documentation
- Drop and Obsolete the -doc subpackage

* Fri Jan 19 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 8.2.1-1
- [packit] 8.2.1 upstream release

* Fri Jan 19 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 8.1.2-2
- Non-bootstrap build

* Sun Jan 14 2024 Packit <hello@packit.dev> - 8.1.2-1
- [packit] 8.1.2 upstream release
- Resolves rhbz#2255578

* Fri Jan 05 2024 Benjamin A. Beasley <code@musicinmybrain.net> - 7.32.4-3
- Assert that the .dist-info directory contains a license file

* Fri Dec 22 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.32.4-2
- Fix mis-named “chanegelog” in repo

* Mon Sep 18 2023 Packit <hello@packit.dev> - 7.32.4-1
- [packit] 7.32.4 upstream release

* Thu Aug 10 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.32.3-1
- Update to 7.32.3

* Thu Aug 10 2023 Packit <hello@packit.dev> - 7.32.2-1
- [packit] 7.32.2 upstream release

* Thu Aug 10 2023 Ankur Sinha (Ankur Sinha Gmail) <sanjay.ankur@gmail.com> - 7.32.0-8
- chore(packit): re-add upstream_tag_template

* Thu Aug 10 2023 Ankur Sinha (Ankur Sinha Gmail) <sanjay.ankur@gmail.com> - 7.32.0-7
- chore(packit): add koji job

* Thu Aug 10 2023 Ankur Sinha (Ankur Sinha Gmail) <sanjay.ankur@gmail.com> - 7.32.0-6
- chore(packit): limit PRs to rawhide

* Wed Aug 09 2023 Ankur Sinha (Ankur Sinha Gmail) <sanjay.ankur@gmail.com> - 7.32.0-5
- Revert "chore(packit): define upstream tag template"

* Wed Aug 09 2023 Ankur Sinha (Ankur Sinha Gmail) <sanjay.ankur@gmail.com> - 7.32.0-4
- chore(packit): define upstream tag template

* Sat Aug 05 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.32.0-3
- Don’t allow packit to report issues upstream

* Fri Aug 04 2023 Ankur Sinha (Ankur Sinha Gmail) <sanjay.ankur@gmail.com> - 7.32.0-2
- chore: add packit conf

* Fri Aug 04 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.32.0-1
- Update to 7.32.0 (close RHBZ#2229001)

* Wed Aug 02 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.31.1-1
- Update to 7.31.1 (close RHBZ#2224675)

* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 7.30.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Mon Jul 17 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.30.1-3
- Fix FTBFS due to SyntaxWarnings in Python 3.12 (fix RHBZ#2220595)

* Thu Jul 13 2023 Python Maint <python-maint@redhat.com> - 7.30.1-2
- Rebuilt for Python 3.12

* Thu Jun 29 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.30.1-1
- Update to 7.30.1 (close RHBZ#2214110)
- Adds a metapackage for the new “azure” extra

* Thu Jun 29 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.26.0-6
- Use new (rpm 4.17.1+) bcond style

* Mon May 22 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.26.0-5
- Install nano syntax highlighting support

* Mon May 22 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.26.0-4
- Install vim syntax highlighting support

* Mon May 22 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.26.0-3
- Install bash completions

* Mon May 22 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.26.0-2
- Add a generated man page

* Mon May 22 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.26.0-1
- Update to 7.26.0 (close RHBZ#2203471)

* Sat May 06 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.25.3-1
- Update to 7.25.3 (close RHBZ#2193279J)

* Sat Apr 29 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.25.2-1
- Update to 7.25.2 (close RHBZ#2178275)

* Sat Mar 11 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.24.1-1
- Update to 7.24.1 (close RHBZ#2171148)

* Mon Feb 13 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.22.0-1
- Update to 7.22.0 (close RHBZ#2169240)

* Wed Feb 08 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.21.0-1
- Update to 7.21.0 (close RHBZ#2166983)

* Sun Jan 22 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.20.0-1
- Update to 7.20.0 (close RHBZ#2162603)

* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 7.19.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Wed Jan 04 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 7.19.1-1
- Update to 7.19.1 (close RHBZ#2153168)

* Fri Dec 09 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 7.18.2-1
- Update to 7.8.12 (close RHBZ#2139921)

* Thu Dec 08 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 7.18.1-1
- Update to 7.18.1

* Tue Nov 01 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 7.18.0-1
- Update to 7.18.0 (close RHBZ#2138985)

* Tue Nov 01 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 7.17.2-4
- Remove an obsolete spec file comment

* Tue Nov 01 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 7.17.2-3
- Confirm the License is SPDX MIT

* Tue Nov 01 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 7.17.2-2
- Simplify references to the -doc subpackage

* Sun Oct 30 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 7.17.2-1
- Update to 7.17.2 (close RHBZ#2130414)

* Fri Aug 26 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 7.13.0-1
- Update to 7.13.0 (close RHBZ#2121550)

* Mon Aug 22 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 7.12.1-2
- Use rsvg-convert instead of inkscape

* Thu Aug 11 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 7.12.1-1
- Update to 7.12.1 (close RHBZ#2117565)

* Sun Jul 31 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 7.12.0-1
- Update to 7.12.0

* Wed Jul 27 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 7.11.0-1
- Update to 7.11.0

* Sun Jul 24 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 7.9.0-2
- Build documentation as PDF instead of HTML

* Sun Jul 24 2022 Benjamin A. Beasley <code@musicinmybrain.net> - 7.9.0-1
- Update to 7.9.0 (close RHBZ#2039280, fix RHBZ#2099173)
- Add “extras” metapackages
- Generate BuildRequires for documentation

* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 6.13.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Thu Jun 16 2022 Python Maint <python-maint@redhat.com> - 6.13.1-4
- Rebuilt for Python 3.11

* Mon Jan 24 2022 Vanessa_kris <vanessaigwe1@gmail.com> - 6.13.1-3
- added autochanelog

* Mon Jan 24 2022 Vanessa Christopher <vanessaigwe1@gmail.com> - 6.13.1-2
- autorelease

* Sun Jan 23 2022 Vanessa Christopher <vanessaigwe1@gmail.com> - 6.13.1-1
- Version update to v6.13.1

* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 6.12.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Sat Dec 18 2021 Aniket Pradhan <major AT fedoraproject DOT org> - 6.12.3-1
- Version update to v6.12.3
- Use pyproject macros

* Thu Sep 09 2021 Aniket Pradhan <major AT fedoraproject DOT org> - 6.8.0-1
- Version update to v6.8.0

* Tue Aug 17 2021 Aniket Pradhan <major AT fedoraproject DOT org> - 6.7.0-1
- Version update to v6.7.0

* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.6.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Sat Jul 17 2021 Aniket Pradhan <major AT fedoraproject DOT org> - 6.6.0-1
- Version update to v6.6.0
- Remove patches for documentation as they are no longer needed

* Mon Jul 05 2021 Aniket Pradhan <major AT fedoraproject DOT org> - 6.5.2-2
- Correct the import path of napoleon extension
- Use pytest macro

* Sat Jul 03 2021 Aniket Pradhan <major AT fedoraproject DOT org> - 6.5.2-1
- Initial build

## END: Generated by rpmautospec