Skip to content

Commit d7a4136

Browse files
committed
allign manifest.in to template
1 parent 6a71bbc commit d7a4136

File tree

1 file changed

+61
-3
lines changed

1 file changed

+61
-3
lines changed

MANIFEST.in

Lines changed: 61 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,70 @@
1-
prune .github
1+
# NOTE: based on a generic template in Scitools/.github/templates/MANIFEST.in
2+
3+
# General principles
4+
# - enable user to build locally, as well as in CI
5+
# - make it ignore temporary files generated by dev processes, e.g. coverage checks
6+
# - encode typical decisions, e.g. whether we package docs, requirements etc
7+
8+
#---------
9+
# SECTION: main code sources
10+
#
11+
recursive-include src *.py *.pyx
12+
# principles:
13+
# - *no* "prune" command is used
14+
# - use "include-recursive", by relevant file extensions
15+
# hints:
16+
# - top-level dir is typically "src", but maybe "lib" or <package-name>
17+
# - default package rules mean we generally don't actually *need* a statement
18+
# - but it's better to be explicit
19+
# - extension filetypes are typically sources (*.py)
20+
# - might also need testdata files, e.g. *.nc, *.npy *.npz
21+
# - also possibly non-python, e.g. *.pyx for Cython
22+
23+
#---------
24+
# SECTION: requirements
225
prune requirements
326
recursive-include requirements *.txt
4-
recursive-include src *.py *.pyx
5-
include CITATION.cff
27+
# principles:
28+
# include just requirements-level info, not lock files
29+
# hints:
30+
# - not all projects include requirements, but they can be drawn in anyway by dynamic dependencies
31+
# in the setuptools build process, linked via config in pyproject.toml
32+
# - for some repos, the *.txt are actually lockfiles. This probably needs fixing.
33+
34+
#---------
35+
# SECTION: root files
636
exclude .flake8
737
exclude .gitignore
838
exclude .pre-commit-config.yaml
39+
include CITATION.cff
40+
include LICENSE
41+
# principles:
42+
# - *ANY* file in the root should be explicitly "include"- or "exclude"-d
43+
# - EXCEPT (possibly) those covered by setuptools default rules (see above link)
44+
# - including : README.md/.rst; pyproject.toml; setup.py/.cfg
45+
# - N.B. a GHA "ci-manifest" check, if used, will check all this
46+
# - the above are typical ones : given in sorted order
47+
# - NB many will (eventually) be templated, but that is a separate issue
48+
# - probably, this section can be included as *boilerplate*
49+
# - i.e. it doesn't matter if some of the files mentioned don't exist
50+
51+
#---------
52+
# SECTION: generic exclusions
53+
# (1) top-level directories to omit entirely
54+
prune .github
55+
# (2) top-level files to omit
956
exclude Dockerfile
1057
exclude codecov.yml
1158
exclude index.ipynb
1259
exclude summary.png
60+
# (3) file types (path patterns) to skip everywhere
61+
global-exclude *.py[cod]
62+
global-exclude __pycache__
63+
# principles:
64+
# - common directories, files and file-types to be generally ignored
65+
# - all outside version control, temporary non-coding output and cache data
66+
# produced by dev processes, automation or user tools
67+
# - by having this section LAST, it can remove files which might have been added by
68+
# previous sections -- such as python compiler cache files
69+
# - can include this section as **boilerplate** :
70+
# - won't all exist in every repo, but including them all does no harm

0 commit comments

Comments
 (0)