Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

poetry-core 2.0.1: man pages not installed any longer #5596

Closed
0-wiz-0 opened this issue Jan 14, 2025 · 5 comments
Closed

poetry-core 2.0.1: man pages not installed any longer #5596

0-wiz-0 opened this issue Jan 14, 2025 · 5 comments

Comments

@0-wiz-0
Copy link

0-wiz-0 commented Jan 14, 2025

When building a wheel for beets 2.2.0 with poetry-core 2.0.1, the man pages are not included any longer.

# python3.13 -m build --wheel                                                                                                                                                                                     * Creating isolated environment: venv+pip...
* Installing packages in isolated environment:
  - poetry-core>=1.0.0
* Getting build dependencies for wheel...
* Building wheel...
Successfully built beets-2.2.0-py3-none-any.whl
# tar tvzf dist/beets-2.2.0-py3-none-any.whl |grep man/
#

Compare to when I add ,<2 to the dependency line in pyproject.toml:

# python3.13 -m build --wheel
* Creating isolated environment: venv+pip...
* Installing packages in isolated environment:
  - poetry-core>=1.0.0,<2
* Getting build dependencies for wheel...
* Building wheel...
Successfully built beets-2.2.0-py3-none-any.whl
# tar tvzf dist/beets-2.2.0-py3-none-any.whl |grep man/
-rw-r--r--  0 0      0       22070 Jän.  1  1980 man/beet.1
-rw-r--r--  0 0      0       45174 Jän.  1  1980 man/beetsconfig.5

See also python-poetry/poetry#10042

@Secrus
Copy link

Secrus commented Jan 14, 2025

(poetry and poetry-core maintainer here 👋)
This is correct and happens because poetry-core since version 2.0 changed how the default include works. It now matches the behavior that was set up in this commit, that is, defaults to including only in sdists, not in wheels.

It is generally recommended to pin your build backend requirement to a range between major versions, poetry-core>1.0,<2 for version 1.x and poetry-core>2.0.1,<3 for version 2.x.

@0-wiz-0
Copy link
Author

0-wiz-0 commented Jan 14, 2025

I think installing man pages for binaries is a good idea. So I'd like to leave this as a change request so that the man pages will still be installed with poetry-core 2.0.1.

@snejus
Copy link
Member

snejus commented Jan 27, 2025

We specifically exclude anything that is not source code from the wheel:

include = [ # extra files to include in the sdist
    { path = "docs", format = "sdist" },
    { path = "extra", format = "sdist" },
    { path = "man/**/*", format = "sdist" },
    { path = "test/*.py", format = "sdist" },
    { path = "test/rsrc/**/*", format = "sdist" },
]

What's the reason for including the man pages into the wheel? Do they get picked up and mapped automatically by your distribution on install?

@0-wiz-0
Copy link
Author

0-wiz-0 commented Jan 27, 2025

In pkgsrc we build the wheel, and then install the wheel.
So what is not in the wheel is not installed.
It would be nice to have man pages for command line programs.

Perhaps we should just install these man pages separately, in addition to the files included in the wheel.

@0-wiz-0
Copy link
Author

0-wiz-0 commented Jan 27, 2025

I've just done that.

@0-wiz-0 0-wiz-0 closed this as completed Jan 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants