##
5.2 Manifest-related options

The normal course of operations for the `sdist` command is as follows:

- if the manifest file, MANIFEST doesn't exist, read MANIFEST.in and create the manifest
- if neither MANIFEST nor MANIFEST.in exist, create a manifest with just the default file set3
- if either MANIFEST.in or the setup script (setup.py) are more recent than MANIFEST, recreate MANIFEST by reading MANIFEST.in
- use the list of files now in MANIFEST (either just generated or read in) to create the source distribution archive(s)

There are a couple of options that modify this behaviour. First, use the --no-defaults and --no-prune to disable the standard ``include'' and ``exclude'' sets.4

Second, you might want to force the manifest to be regenerated--for example, if you have added or removed files or directories that match an existing pattern in the manifest template, you should regenerate the manifest:

      python setup.py sdist --force-manifest

Or, you might just want to (re)generate the manifest, but not create a source distribution:

      python setup.py sdist --manifest-only

--manifest-only implies --force-manifest. -o is a shortcut for --manifest-only, and -f for --force-manifest.

#### Footnotes

... set 3
  In versions of the Distutils up to and including 0.9.2 (Python 2.0b1), this feature was broken; use the -f (--force-manifest) option to work around the bug.
... sets.4
  Note that if you have no manifest template, no manifest, and use the --no-defaults, you will get an empty manifest. Another bug in Distutils 0.9.2 and earlier causes an uncaught exception in this case. The workaround is: Don't Do That.