Project Setup runs on Mac, incomplete on ubuntu (due to case-sensitive MANIFEST name)

My project is API Logic Server.

The build runs fine on Mac: python3 setup.py sdist bdist_wheel. Python 3.10.6, twine 4.0.1

On Ubuntu (Python 3.10.6, same twine version), it only processes the first line of the manifest.ln.

I am not able to spot anything in the log:

val:~/dev/ApiLogicServer$ python3 setup.py sdist bdist_wheel
/usr/lib/python3/dist-packages/setuptools/dist.py:493: UserWarning: Normalizing '6.02.14' to '6.2.14'
  warnings.warn(tmpl.format(**locals()))
running sdist
running egg_info
writing ApiLogicServer.egg-info/PKG-INFO
writing dependency_links to ApiLogicServer.egg-info/dependency_links.txt
writing entry points to ApiLogicServer.egg-info/entry_points.txt
writing requirements to ApiLogicServer.egg-info/requires.txt
writing top-level names to ApiLogicServer.egg-info/top_level.txt
package init file 'api_logic_server_cli/expose_existing/__init__.py' not found (or not a regular file)
package init file 'api_logic_server_cli/project_prototype/logic/__init__.py' not found (or not a regular file)
package init file 'api_logic_server_cli/project_prototype/templates/__init__.py' not found (or not a regular file)
reading manifest file 'ApiLogicServer.egg-info/SOURCES.txt'
adding license file 'LICENSE'
writing manifest file 'ApiLogicServer.egg-info/SOURCES.txt'
running check
creating ApiLogicServer-6.2.14
creating ApiLogicServer-6.2.14/ApiLogicServer.egg-info
creating ApiLogicServer-6.2.14/api_logic_server_cli
creating ApiLogicServer-6.2.14/api_logic_server_cli/create_from_model
creating ApiLogicServer-6.2.14/api_logic_server_cli/expose_existing
creating ApiLogicServer-6.2.14/api_logic_server_cli/expose_existing/sqlacodegen
creating ApiLogicServer-6.2.14/api_logic_server_cli/expose_existing/sqlacodegen/sqlacodegen
creating ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype
creating ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype/api
creating ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype/database
creating ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype/logic
creating ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype/test
creating ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype/ui
copying files to ApiLogicServer-6.2.14...
copying LICENSE -> ApiLogicServer-6.2.14
copying README.md -> ApiLogicServer-6.2.14
copying setup.py -> ApiLogicServer-6.2.14
copying ApiLogicServer.egg-info/PKG-INFO -> ApiLogicServer-6.2.14/ApiLogicServer.egg-info
copying ApiLogicServer.egg-info/SOURCES.txt -> ApiLogicServer-6.2.14/ApiLogicServer.egg-info
copying ApiLogicServer.egg-info/dependency_links.txt -> ApiLogicServer-6.2.14/ApiLogicServer.egg-info
copying ApiLogicServer.egg-info/entry_points.txt -> ApiLogicServer-6.2.14/ApiLogicServer.egg-info
copying ApiLogicServer.egg-info/not-zip-safe -> ApiLogicServer-6.2.14/ApiLogicServer.egg-info
copying ApiLogicServer.egg-info/requires.txt -> ApiLogicServer-6.2.14/ApiLogicServer.egg-info
copying ApiLogicServer.egg-info/top_level.txt -> ApiLogicServer-6.2.14/ApiLogicServer.egg-info
copying api_logic_server_cli/__init__.py -> ApiLogicServer-6.2.14/api_logic_server_cli
copying api_logic_server_cli/cli.py -> ApiLogicServer-6.2.14/api_logic_server_cli
copying api_logic_server_cli/config.py -> ApiLogicServer-6.2.14/api_logic_server_cli
copying api_logic_server_cli/extended_builder.py -> ApiLogicServer-6.2.14/api_logic_server_cli
copying api_logic_server_cli/ui_basic_web_app_run.py -> ApiLogicServer-6.2.14/api_logic_server_cli
copying api_logic_server_cli/create_from_model/__init__.py -> ApiLogicServer-6.2.14/api_logic_server_cli/create_from_model
copying api_logic_server_cli/create_from_model/api_expose_api_models.py -> ApiLogicServer-6.2.14/api_logic_server_cli/create_from_model
copying api_logic_server_cli/create_from_model/api_logic_server_utils.py -> ApiLogicServer-6.2.14/api_logic_server_cli/create_from_model
copying api_logic_server_cli/create_from_model/model_creation_services.py -> ApiLogicServer-6.2.14/api_logic_server_cli/create_from_model
copying api_logic_server_cli/create_from_model/ui_admin_creator.py -> ApiLogicServer-6.2.14/api_logic_server_cli/create_from_model
copying api_logic_server_cli/create_from_model/ui_basic_web_app_creator.py -> ApiLogicServer-6.2.14/api_logic_server_cli/create_from_model
copying api_logic_server_cli/create_from_model/ui_basic_web_app_run.py -> ApiLogicServer-6.2.14/api_logic_server_cli/create_from_model
copying api_logic_server_cli/expose_existing/expose_existing_callable.py -> ApiLogicServer-6.2.14/api_logic_server_cli/expose_existing
copying api_logic_server_cli/expose_existing/sqlacodegen/__init__.py -> ApiLogicServer-6.2.14/api_logic_server_cli/expose_existing/sqlacodegen
copying api_logic_server_cli/expose_existing/sqlacodegen/setup.py -> ApiLogicServer-6.2.14/api_logic_server_cli/expose_existing/sqlacodegen
copying api_logic_server_cli/expose_existing/sqlacodegen/sqlacodegen/__init__.py -> ApiLogicServer-6.2.14/api_logic_server_cli/expose_existing/sqlacodegen/sqlacodegen
copying api_logic_server_cli/expose_existing/sqlacodegen/sqlacodegen/codegen.py -> ApiLogicServer-6.2.14/api_logic_server_cli/expose_existing/sqlacodegen/sqlacodegen
copying api_logic_server_cli/expose_existing/sqlacodegen/sqlacodegen/main.py -> ApiLogicServer-6.2.14/api_logic_server_cli/expose_existing/sqlacodegen/sqlacodegen
copying api_logic_server_cli/project_prototype/__init__.py -> ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype
copying api_logic_server_cli/project_prototype/admin_api.py -> ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype
copying api_logic_server_cli/project_prototype/api_logic_server_run.py -> ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype
copying api_logic_server_cli/project_prototype/config.py -> ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype
copying api_logic_server_cli/project_prototype/python_anywhere_wsgi.py -> ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype
copying api_logic_server_cli/project_prototype/util.py -> ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype
copying api_logic_server_cli/project_prototype/api/__init__.py -> ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype/api
copying api_logic_server_cli/project_prototype/api/customize_api.py -> ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype/api
copying api_logic_server_cli/project_prototype/api/expose_api_models.py -> ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype/api
copying api_logic_server_cli/project_prototype/api/json_encoder.py -> ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype/api
copying api_logic_server_cli/project_prototype/database/__init__.py -> ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype/database
copying api_logic_server_cli/project_prototype/database/customize_models.py -> ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype/database
copying api_logic_server_cli/project_prototype/logic/declare_logic.py -> ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype/logic
copying api_logic_server_cli/project_prototype/test/__init__.py -> ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype/test
copying api_logic_server_cli/project_prototype/ui/__init__.py -> ApiLogicServer-6.2.14/api_logic_server_cli/project_prototype/ui
Writing ApiLogicServer-6.2.14/setup.cfg
Creating tar archive
removing 'ApiLogicServer-6.2.14' (and everything under it)
running bdist_wheel
running build
running build_py
/usr/lib/python3/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
installing to build/bdist.linux-aarch64/wheel
running install
running install_lib
creating build/bdist.linux-aarch64/wheel
creating build/bdist.linux-aarch64/wheel/api_logic_server_cli
copying build/lib/api_logic_server_cli/config.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli
copying build/lib/api_logic_server_cli/ui_basic_web_app_run.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli
creating build/bdist.linux-aarch64/wheel/api_logic_server_cli/create_from_model
copying build/lib/api_logic_server_cli/create_from_model/ui_basic_web_app_creator.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/create_from_model
copying build/lib/api_logic_server_cli/create_from_model/ui_basic_web_app_run.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/create_from_model
copying build/lib/api_logic_server_cli/create_from_model/ui_admin_creator.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/create_from_model
copying build/lib/api_logic_server_cli/create_from_model/api_logic_server_utils.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/create_from_model
copying build/lib/api_logic_server_cli/create_from_model/__init__.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/create_from_model
copying build/lib/api_logic_server_cli/create_from_model/api_expose_api_models.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/create_from_model
copying build/lib/api_logic_server_cli/create_from_model/model_creation_services.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/create_from_model
copying build/lib/api_logic_server_cli/extended_builder.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli
creating build/bdist.linux-aarch64/wheel/api_logic_server_cli/expose_existing
copying build/lib/api_logic_server_cli/expose_existing/expose_existing_callable.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/expose_existing
creating build/bdist.linux-aarch64/wheel/api_logic_server_cli/expose_existing/sqlacodegen
copying build/lib/api_logic_server_cli/expose_existing/sqlacodegen/setup.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/expose_existing/sqlacodegen
copying build/lib/api_logic_server_cli/expose_existing/sqlacodegen/__init__.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/expose_existing/sqlacodegen
creating build/bdist.linux-aarch64/wheel/api_logic_server_cli/expose_existing/sqlacodegen/sqlacodegen
copying build/lib/api_logic_server_cli/expose_existing/sqlacodegen/sqlacodegen/main.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/expose_existing/sqlacodegen/sqlacodegen
copying build/lib/api_logic_server_cli/expose_existing/sqlacodegen/sqlacodegen/__init__.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/expose_existing/sqlacodegen/sqlacodegen
copying build/lib/api_logic_server_cli/expose_existing/sqlacodegen/sqlacodegen/codegen.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/expose_existing/sqlacodegen/sqlacodegen
copying build/lib/api_logic_server_cli/cli.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli
copying build/lib/api_logic_server_cli/__init__.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli
creating build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype
copying build/lib/api_logic_server_cli/project_prototype/config.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype
creating build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype/logic
copying build/lib/api_logic_server_cli/project_prototype/logic/declare_logic.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype/logic
creating build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype/api
copying build/lib/api_logic_server_cli/project_prototype/api/customize_api.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype/api
copying build/lib/api_logic_server_cli/project_prototype/api/expose_api_models.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype/api
copying build/lib/api_logic_server_cli/project_prototype/api/json_encoder.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype/api
copying build/lib/api_logic_server_cli/project_prototype/api/__init__.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype/api
copying build/lib/api_logic_server_cli/project_prototype/python_anywhere_wsgi.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype
copying build/lib/api_logic_server_cli/project_prototype/api_logic_server_run.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype
copying build/lib/api_logic_server_cli/project_prototype/util.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype
creating build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype/test
copying build/lib/api_logic_server_cli/project_prototype/test/__init__.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype/test
copying build/lib/api_logic_server_cli/project_prototype/admin_api.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype
creating build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype/database
copying build/lib/api_logic_server_cli/project_prototype/database/customize_models.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype/database
copying build/lib/api_logic_server_cli/project_prototype/database/__init__.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype/database
creating build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype/ui
copying build/lib/api_logic_server_cli/project_prototype/ui/__init__.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype/ui
copying build/lib/api_logic_server_cli/project_prototype/__init__.py -> build/bdist.linux-aarch64/wheel/api_logic_server_cli/project_prototype
running install_egg_info
Copying ApiLogicServer.egg-info to build/bdist.linux-aarch64/wheel/ApiLogicServer-6.2.14.egg-info
running install_scripts
adding license file "LICENSE" (matched pattern "LICEN[CS]E*")
creating build/bdist.linux-aarch64/wheel/ApiLogicServer-6.2.14.dist-info/WHEEL
creating 'dist/ApiLogicServer-6.2.14-py3-none-any.whl' and adding 'build/bdist.linux-aarch64/wheel' to it
adding 'api_logic_server_cli/__init__.py'
adding 'api_logic_server_cli/cli.py'
adding 'api_logic_server_cli/config.py'
adding 'api_logic_server_cli/extended_builder.py'
adding 'api_logic_server_cli/ui_basic_web_app_run.py'
adding 'api_logic_server_cli/create_from_model/__init__.py'
adding 'api_logic_server_cli/create_from_model/api_expose_api_models.py'
adding 'api_logic_server_cli/create_from_model/api_logic_server_utils.py'
adding 'api_logic_server_cli/create_from_model/model_creation_services.py'
adding 'api_logic_server_cli/create_from_model/ui_admin_creator.py'
adding 'api_logic_server_cli/create_from_model/ui_basic_web_app_creator.py'
adding 'api_logic_server_cli/create_from_model/ui_basic_web_app_run.py'
adding 'api_logic_server_cli/expose_existing/expose_existing_callable.py'
adding 'api_logic_server_cli/expose_existing/sqlacodegen/__init__.py'
adding 'api_logic_server_cli/expose_existing/sqlacodegen/setup.py'
adding 'api_logic_server_cli/expose_existing/sqlacodegen/sqlacodegen/__init__.py'
adding 'api_logic_server_cli/expose_existing/sqlacodegen/sqlacodegen/codegen.py'
adding 'api_logic_server_cli/expose_existing/sqlacodegen/sqlacodegen/main.py'
adding 'api_logic_server_cli/project_prototype/__init__.py'
adding 'api_logic_server_cli/project_prototype/admin_api.py'
adding 'api_logic_server_cli/project_prototype/api_logic_server_run.py'
adding 'api_logic_server_cli/project_prototype/config.py'
adding 'api_logic_server_cli/project_prototype/python_anywhere_wsgi.py'
adding 'api_logic_server_cli/project_prototype/util.py'
adding 'api_logic_server_cli/project_prototype/api/__init__.py'
adding 'api_logic_server_cli/project_prototype/api/customize_api.py'
adding 'api_logic_server_cli/project_prototype/api/expose_api_models.py'
adding 'api_logic_server_cli/project_prototype/api/json_encoder.py'
adding 'api_logic_server_cli/project_prototype/database/__init__.py'
adding 'api_logic_server_cli/project_prototype/database/customize_models.py'
adding 'api_logic_server_cli/project_prototype/logic/declare_logic.py'
adding 'api_logic_server_cli/project_prototype/test/__init__.py'
adding 'api_logic_server_cli/project_prototype/ui/__init__.py'
adding 'ApiLogicServer-6.2.14.dist-info/LICENSE'
adding 'ApiLogicServer-6.2.14.dist-info/METADATA'
adding 'ApiLogicServer-6.2.14.dist-info/WHEEL'
adding 'ApiLogicServer-6.2.14.dist-info/entry_points.txt'
adding 'ApiLogicServer-6.2.14.dist-info/top_level.txt'
adding 'ApiLogicServer-6.2.14.dist-info/RECORD'
removing build/bdist.linux-aarch64/wheel
val:~/dev/ApiLogicServer$ 

Suggestions would be welcome…

Any chance this is caused by case sensitivity/case insensitivity in the file system?
Have you tried renaming manifest.in to MANIFEST.in (this is the file name in the official documentation)?

I cloned your repository, renamed the file and used the recommended python -m build mechanism: the resulting wheel seems to contain the intended files[1].

If I don’t rename the file, this process fails…


  1. The file api_logic_server_cli/api_logic_server_info.yaml seems to be missing in the repository ↩︎

2 Likes

Yep, that was it… many thanks for your prompt reply!!

1 Like