It seems that running python setup.py bdist_conda should be somewhat like bdist in that it uses MANIFEST.in to include files that it may not be including otherwise. However, this currently appears not to be the case.
Does MANIFEST.in specify stuff things that actually get installed? I thought it was just extra things for the bdist tarball. Anyway, bdist_conda is currently based on install, since that's how conda build works.
This file is very central feature to distutils/setuptools projects, since one defines what is going to be installed and packaged (sdist, bdist etc.). So supporting this is IMHO crucial for operation. I just ran into this, since I'm installing test-data into my projects package via the manifest and it just got silently ignored.
Do you suggest a workaround until this (hopefully) gets fixed?
The funny thing is that the build-wrapper just does the normal install via setup.py, so the data should be there, but it is then not being packaged, when the conda package is created.
using test: files: list in meta.yaml seems to be a temporary workaround, but the conda package is not containing the same stuff as the pypi one. For example I explicitly want to ship the test data, so users can use them for their purposes.
If it is data that you want, and you can use setuptools, you could try this ( https://pythonhosted.org/setuptools/setuptools.html#including-data-files ).
The problem with that approach is, that this files are then not included
in sdist, but only bdist commands.
If you tell me, where in conda-build those files are being stripped
away, I want to open a PR to change this. I'm pretty sure that this
behaviour is not expected by literally all external package managers and
it is very hard to spot, why things are failing - just because the
standard way of doing things is broken.
include_package_data=True in setuptools makes not difference either. The
files are just missing in the conda package.
Please note that including data files works perfectly for my projects if only using setuptools. I can not spot the location in the conda build code where my files are being thrown away. Don't you just recursively include the newly installed package in the _build environment?
You're right @jakirkham. If one sets up a proper package_data in setup.py it works perfectly (and it has to, because its written like that). Actually I belive that setuptools/pip does some voodoo to fix missing package_data declarations by parsing the Manifest, but this is not official.
sorry @conda-devs! This issue can be closed as it also works in bdist_conda!
I also had a problem where conda build is not including files that the normal python setup.py build includes. It seems for me that the problem is that conda builds the manifest from MANIFEST.in _before_ the install, and I add some files during the install that should be included. Maybe this is part of the issue?
To be clear @marscher, I don't believe this can be closed. The fact that MANIFEST.in is ignored still presents a problem.
Perhaps relevant: pypa/sampleproject#30
@jakirkham do you still see this issue? I have a package that uses a MANIFEST.in with a recursive-include statement, which gets correctly parsed when I build with python setup.py bdist_conda, so I'm not sure if this still occurs.