Skip to content
Open
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
121 changes: 103 additions & 18 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,20 +1,105 @@
prune .github
# A generic template for "MANIFEST.in" files in Scitools repos.
# NOTE: most of this can't be duplicated as-is into any given repo, but suggests
# guidelines + structure.
# For the syntax of "MANIFEST.in" files, see:
# https://setuptools.pypa.io/en/latest/userguide/miscellaneous.html#using-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 tephi *.py *.json *.npz *.txt
# 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: docs
prune docs
# and if required ... include ONLY docs source files.
# E.G. recursive-include docs *.rst *.inc
# principles:
# - use prune to ignore everything (optionally: except the docs sources)
# hints:
# - most projects don't want to package the docs, but some currently do (cf-units).

Comment on lines +28 to +36
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SciTools/.github#181 makes changes to the docs entry, if you wanted to align with that now?


#---------
# SECTION: requirements
prune requirements
recursive-include requirements *.yml
# principles:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

YAML files are specifically the ones that we don't want to be included. I appreciate that there are no .txt files currently but we would want to include those were they ever added.

# 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
# - for some repos, the *.txt are actually lockfiles. This probably needs fixing.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SciTools/.github#181 removes this line, if you wanted to align with that now?


#---------
# 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 .readthedocs.yml
exclude .ruff.toml
exclude CHANGES
include CITATION.cff
exclude CODE_OF_CONDUCT.md
include COPYING
include COPYING.LESSER
include environment.yml
include LICENSE
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be excluded, if the template is to be believed.

This should be in a tephi-specific section at the bottom.

include *.ipynb
include *.yaml
include *.yml
include *.cff
include .coveragerc
include .flake8
include .git-blame-ignore-revs
exclude Makefile
exclude codecov.yml
include noxfile.py
include tox.ini
recursive-include requirements *.yml
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be in a Tephi-specific section at the bottom.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update: SciTools/.github#183; need to port those changes into here

recursive-include docs *.bat
recursive-include docs *.ico
recursive-include docs *.png
recursive-include docs *.py
recursive-include docs *.rst
recursive-include docs Makefile
recursive-include tephi *.json
recursive-include tephi *.npz
recursive-include tephi *.txt
# 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
# (2) top-level files to omit
exclude .coveragerc
exclude index.ipynb
# (3) file types (path patterns) to skip everywhere
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be in a Tephi-specific section at the bottom.

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
Loading