Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 84 additions & 4 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,12 +1,92 @@
prune .github
# NOTE: based on a generic template in Scitools/.github/templates/MANIFEST.in

# General principles
# - enable user to build locally, as well as in CI
# - make it ignore temporary files generated by dev processes, e.g. coverage checks
# - encode typical decisions, e.g. whether we package docs, requirements etc

#---------
# SECTION: main code sources
#
recursive-include src *.c *.py *.pyx *.so
# principles:
# - *no* "prune" command is used
# - use "include-recursive", by relevant file extensions
# hints:
# - top-level dir is typically "src", but maybe "lib" or <package-name>
# - default package rules mean we generally don't actually *need* a statement
# - but it's better to be explicit
# - extension filetypes are typically sources (*.py)
# - might also need testdata files, e.g. *.nc, *.npy *.npz
# - also possibly non-python, e.g. *.pyx for Cython

#---------
# SECTION: requirements
prune requirements
recursive-include requirements *.txt
recursive-include src *.py *.pyx
include CITATION.cff
# principles:
# include just requirements-level info, not lock files
# hints:
# - not all projects include requirements, but they can be drawn in anyway by dynamic dependencies
# in the setuptools build process, linked via config in pyproject.toml

#---------
# SECTION: root files
exclude .flake8
exclude .git-blame-ignore-revs
exclude .git_archival.txt
exclude .gitattributes
exclude .gitignore
exclude .lycheeignore
exclude .mailmap
exclude .pre-commit-config.yaml
exclude Dockerfile
exclude .readthedocs.yml
exclude .ruff.toml
exclude CHANGES
include CITATION.cff
exclude CODE_OF_CONDUCT.md
include COPYING
include COPYING.LESSER
include LICENSE
exclude Makefile
exclude codecov.yml
include noxfile.py
# principles:
# - *ANY* file in the root should be explicitly "include"- or "exclude"-d
# - EXCEPT (possibly) those covered by setuptools default rules (see above link)
# - including : README.md/.rst; pyproject.toml; setup.py/.cfg
# - N.B. a GHA "ci-manifest" check, if used, will check all this
# - the above are typical ones : given in sorted order
# - NB many will (eventually) be templated, but that is a separate issue
# - probably, this section can be included as *boilerplate*
# - i.e. it doesn't matter if some of the files mentioned don't exist

#---------
# SECTION: generic exclusions
# (1) top-level directories to omit entirely
prune .github
prune .nox
prune .tox
prune .coverage
prune docs
# (2) top-level files to omit
exclude .coveragerc
# (3) file types (path patterns) to skip everywhere
global-exclude *.py[cod]
global-exclude __pycache__
# principles:
# - common directories, files and file-types to be generally ignored
# - all outside version control, temporary non-coding output and cache data
# produced by dev processes, automation or user tools
# - by having this section LAST, it can remove files which might have been added by
# previous sections -- such as python compiler cache files
# - can include this section as **boilerplate** :
# - won't all exist in every repo, but including them all does no harm

#
#=================================
# Local Python-Stratify-specific settings
#
exclude Dockerfile
exclude index.ipynb
exclude summary.png
Loading