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

pyp2spec builds choke on PEP 625 incompatible packages #3517

Closed
praiskup opened this issue Nov 19, 2024 · 16 comments
Closed

pyp2spec builds choke on PEP 625 incompatible packages #3517

praiskup opened this issue Nov 19, 2024 · 16 comments
Assignees

Comments

@praiskup
Copy link
Member

praiskup commented Nov 19, 2024

After upgrading the builders to Fedora 41 where's the newer pyp2spec utility:

https://download.copr-dev.fedorainfracloud.org/results/@copr/TEST1732047865954994293-Pyp2spec/srpm-builds/02920033/builder-live.log.gz

When I try locally, I see:

$ spectool -S *spec --get-files
Downloading: https://files.pythonhosted.org/packages/source/p/pello/pello-1.0.4.tar.gz
Download failed:
404 Client Error: Not Found for url: https://files.pythonhosted.org/packages/source/p/pello/pello-1.0.4.tar.gz
-   0.0 B Elapsed Time: 0:00:00  
@praiskup
Copy link
Member Author

praiskup commented Nov 19, 2024

@befeleme this is an interesting situation; the new pyp2spec doesn't support --top-level, so old copr-rpmbuild fails with that. When I upgrade copr-rpmbuild (to a new release don just now) to start using #3473, it fails like ^^^.

Shall we keep using the old pyp2spec for some time?

@praiskup
Copy link
Member Author

Shall we keep using the old pyp2spec for some time?

I mean "old copr-rpmbuild" and "old pyp2spec"?

@praiskup
Copy link
Member Author

There's now also the %autochangelog and %autorelease (/me 😢). Is that anyhow useful in Copr?

@praiskup
Copy link
Member Author

The diffeerence between pyp2spec 0.8 (in copr production, on f39) and pyp2spec 0.11.0
(in copr stage, on f41):

- https://files.pythonhosted.org/packages/source/P/Pello/Pello-1.0.4.tar.gz
+ https://files.pythonhosted.org/packages/source/p/pello/pello-1.0.4.tar.gz

@hroncok
Copy link
Contributor

hroncok commented Nov 20, 2024

There's now also the %autochangelog and %autorelease (/me 😢). Is that anyhow useful in Copr?

It's easier to generate 😀

@befeleme
Copy link
Contributor

Hi, the main issue is not really in pyp2spec. It's that it has PEP 625 implemented now which standardizes the name of the sdist. Pello has been released too long ago to conform to this PEP - it could help if the sdist was regenerated / new version released. For the time being you can test pyp2spec on any other project that has more recent releases, e.g. pyp2spec itself.

There's now also the %autochangelog and %autorelease (/me 😢). Is that anyhow useful in Copr?

Does that pose a problem in Copr? I could keep the old behavior for the automode. As rpmautospec is gaining popularity in Fedora and we keep building tonnes of its rpms in Copr, it didn't occur to me there could be an issue at your end.

@hroncok
Copy link
Contributor

hroncok commented Nov 20, 2024

Shouldn't pyp2spec reach out to PyPI and ask for the sdist filename?

@befeleme
Copy link
Contributor

I see it more as a philosophical question: from practical POV it could (that's what it was doing before). OTOH the idea in my head is that pyp2spec should rely on standard whenever possible, and any identified gaps can be hotfixed and ideally proposed as future upstream standard. The sdist filenames were recently standardized so it felt correct to move to it.

@praiskup
Copy link
Member Author

praiskup commented Nov 20, 2024

Does that pose a problem in Copr?

We are generating %changelog from a generated git-log :) and IMVHO empty %changelog is better than a generated and misleading %changelog like this. But since this is probably not causing any technical issues right now, let's leave it as is (we may track it separately later-on, if needed).

It's that it has PEP 625 implemented now which standardizes the name of the sdist.

Yeah, this actually broke our beaker tests in two places :-) I can of course adapt the testsuite and let Copr forget about the "old times", but if there are still too many packages released without conforming to PEP 625 (e.g., copr-cli still is #3521), then pyp2spec generator is not the tool of choice for as many users as it used to be.

@befeleme
Copy link
Contributor

Does that pose a problem in Copr?

We are generating %changelog from a generated git-log :) and IMVHO empty %changelog is better than a generated and misleading %changelog like this. But since this is probably not causing any technical issues right now, let's leave it as is fornow (we may track it separately later-on, if needed).

Alright.

It's that it has PEP 625 implemented now which standardizes the name of the sdist.

Yeah, this actually broke our beaker tests in two places :-) I can of course adapt the testsuite and let Copr forget about the "old times", but if there are still too many packages released without conforming to PEP 625 (e.g., copr-cli still is #3521), then pyp2spec generator is not the tool of choice for as many users as it used to be.

That makes sense. There's not much cost to keep the old behavior going for some more time (years, probably), so I may just revert it.

@praiskup
Copy link
Member Author

@befeleme do you have ETA for the new pyp2spec release & Fedora 41 build? If not, shall we just move to F41 builders, ignoring the the fact these non-pep-625 compliant packages fail to build?

@hroncok
Copy link
Contributor

hroncok commented Nov 20, 2024

My opinion: Yes please, update to Fedora 41, don't wait for pyp2spec.

If this problem breaks users, at least we'll know about them if they speak up.

In the meantime, we know that the old Fedora version on builders already breaks existing users who spoke up (yours truly).

praiskup added a commit to praiskup/copr that referenced this issue Nov 20, 2024
This makes the runtest.sh at least shorter (but still the
longest-running test-case).

Adapt the test-cases to post-F39 state.

Relates: fedora-copr#3517
Relates: fedora-copr#3521
Relates: fedora-copr#3523
praiskup added a commit to praiskup/copr that referenced this issue Nov 20, 2024
This makes the runtest.sh at least shorter (but still the
longest-running test-case).

Adapt the test-cases to post-F39 state.

Relates: fedora-copr#3517
Relates: fedora-copr#3521
Relates: fedora-copr#3523
praiskup added a commit to praiskup/copr that referenced this issue Nov 20, 2024
This makes the runtest.sh at least shorter (but still the
longest-running test-case).

Adapt the test-cases to post-F39 state.

Relates: fedora-copr#3517
Relates: fedora-copr#3521
Relates: fedora-copr#3523
@befeleme
Copy link
Contributor

@befeleme do you have ETA for the new pyp2spec release & Fedora 41 build? If not, shall we just move to F41 builders, ignoring the the fact these non-pep-625 compliant packages fail to build?

Seconding Miro: move to F41, I'll ship pyp2spec till the end of this week.

@nikromen nikromen moved this from Needs triage to In 2 years in CPT Kanban Nov 20, 2024
praiskup added a commit to praiskup/copr that referenced this issue Nov 20, 2024
This makes the runtest.sh at least shorter (but still the
longest-running test-case).

Adapt the test-cases to post-F39 state.

Relates: fedora-copr#3517
Relates: fedora-copr#3521
Relates: fedora-copr#3523
@praiskup praiskup changed the title pyp2spec broken now pyp2spec builds choke on PEP 625 incompatible packages Nov 20, 2024
FrostyX pushed a commit that referenced this issue Nov 20, 2024
This makes the runtest.sh at least shorter (but still the
longest-running test-case).

Adapt the test-cases to post-F39 state.

Relates: #3517
Relates: #3521
Relates: #3523
@befeleme
Copy link
Contributor

@praiskup praiskup moved this from In 2 years to In Progress in CPT Kanban Nov 25, 2024
@praiskup praiskup self-assigned this Nov 25, 2024
@praiskup
Copy link
Member Author

Updated in production. Thank you @befeleme

@nikromen nikromen moved this from In Progress to Done in CPT Kanban Nov 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

No branches or pull requests

3 participants