diff --git a/MANIFEST.in b/MANIFEST.in
index d82e64d0a68b8..adaad1dc1c864 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -15,6 +15,7 @@ graft pandas
global-exclude *.bz2
global-exclude *.csv
global-exclude *.dta
+global-exclude *.feather
global-exclude *.gz
global-exclude *.h5
global-exclude *.html
@@ -24,7 +25,10 @@ global-exclude *.pickle
global-exclude *.png
global-exclude *.pyc
global-exclude *.pyd
+global-exclude *.ods
+global-exclude *.odt
global-exclude *.sas7bdat
+global-exclude *.sav
global-exclude *.so
global-exclude *.xls
global-exclude *.xlsm
diff --git a/doc/source/whatsnew/v1.0.0.rst b/doc/source/whatsnew/v1.0.0.rst
index c78e27f098f13..90e89168cd580 100644
--- a/doc/source/whatsnew/v1.0.0.rst
+++ b/doc/source/whatsnew/v1.0.0.rst
@@ -37,6 +37,15 @@ Other enhancements
(:issue:`28368`)
-
+
+Build Changes
+^^^^^^^^^^^^^
+
+Pandas has added a `pyproject.toml `_ file and will no longer include
+cythonized files in the source distribution uploaded to PyPI (:issue:`28341`, :issue:`20775`). If you're installing
+a built distribution (wheel) or via conda, this shouldn't have any effect on you. If you're building pandas from
+source, you should no longer need to install Cython into your build environment before calling ``pip install pandas``.
+
.. _whatsnew_1000.api_breaking:
Backwards incompatible API changes
@@ -226,13 +235,6 @@ Sparse
-
-
-
-Build Changes
-^^^^^^^^^^^^^
-- Fixed pyqt development dependency issue because of different pyqt package name in conda and PyPI (:issue:`26838`)
-- Added a `pyproject.toml `_ file (:issue:`20775`)
-
-
ExtensionArray
^^^^^^^^^^^^^^
diff --git a/setup.py b/setup.py
index 493254e5329bf..7040147c2b741 100755
--- a/setup.py
+++ b/setup.py
@@ -522,14 +522,14 @@ def run(self):
# re-compile.
def maybe_cythonize(extensions, *args, **kwargs):
"""
- Render tempita templates before calling cythonize
+ Render tempita templates before calling cythonize. This is skipped for
+
+ * clean
+ * sdist
"""
- if len(sys.argv) > 1 and "clean" in sys.argv:
- # Avoid running cythonize on `python setup.py clean`
+ if "clean" in sys.argv or "sdist" in sys.argv:
# See https://github.com/cython/cython/issues/1495
return extensions
- elif "sdist" in sys.argv:
- return extensions
numpy_incl = pkg_resources.resource_filename("numpy", "core/include")
# TODO: Is this really necessary here?