Do not install C sources in binary distributions
State: closed

With this PR, binary distributions, including wheels, no longer contain `.c` and `.h` C source files in `pandas/_libs/src` and `pandas/_libs/tslibs/src`. Shipping these sources in binary distributions doesn’t seem to have any clear benefit.

This does not affect source distributions, and Cython sources (`.pyx`), definition files (`.pxd`), and include files (`.pxi`) are still installed with binary distributions.

- [ ] closes #xxxx (Replace xxxx with the Github issue number) **No issue filed**
- [ ] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature **Not applicable**
- [x] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [ ] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature. **Should I do this?**


Labels:
name: Build
description: Library building on various platforms

Comments:
Does this make a noticeable difference in wheel size at all? Somewhat inclined to just keep them as is so that the source code stays intact
> Does this make a noticeable difference in wheel size at all? Somewhat inclined to just keep them as is so that the source code stays intact

On Python 3.10 / Linux / x86_64, for the `.whl` file, it saves 90kiB of 35MiB, and for the uncompressed wheel contents, it saves 452kiB of 138MiB. It’s probably negligible in the context of a package as large as Pandas.

If this isn’t merged upstream—which is fine—we’ll probably still carry the patch downstream in Fedora Linux. There are other ways for users of the `python-pandas` RPM package to access the C sources (source RPMs, or `debuginfo`/`debugsource` RPMs for debugging), and we tend not to want to ship `.h` files in a package that isn’t a `-devel` package.
does this change the sdists at all? cc @fangchenli 
> does this change the sdists at all? cc @fangchenli

I checked. The .c and .h files are still in the sdist. So it probably doesn't change the sdist.
> > does this change the sdists at all? cc @fangchenli
> 
> I checked. The .c and .h files are still in the sdist. So it probably doesn't change the sdist.

Correct: as mentioned in the original PR description, this affects binary distributions including wheels, but not source distributions.
This pull request is stale because it has been open for thirty days with no activity. Please [update](https://pandas.pydata.org/pandas-docs/stable/development/contributing.html#updating-your-pull-request) and respond to this comment if you're still interested in working on this.
> This pull request is stale because it has been open for thirty days with no activity. Please [update](https://pandas.pydata.org/pandas-docs/stable/development/contributing.html#updating-your-pull-request) and respond to this comment if you're still interested in working on this.

There is nothing else to be done here. The PR simply needs to be approved or rejected.
cc @simonjayhawkins if any issues
This pull request is stale because it has been open for thirty days with no activity. Please [update](https://pandas.pydata.org/pandas-docs/stable/development/contributing.html#updating-your-pull-request) and respond to this comment if you're still interested in working on this.
> cc @simonjayhawkins if any issues

let's merge on green and we can then check nightlies that there are no build issues.
Thanks @musicinmybrain