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

dist_info: implement command #190

Closed
wants to merge 3 commits into from
Closed

dist_info: implement command #190

wants to merge 3 commits into from

Conversation

ghost
Copy link

@ghost ghost commented Sep 3, 2017

I'm sorry about the whitespace changes, but working on pip requires flake8; it's frustrating to turn it off and then on again.

@codecov
Copy link

codecov bot commented Sep 3, 2017

Codecov Report

Merging #190 into master will decrease coverage by 0.45%.
The diff coverage is 7.69%.

Impacted file tree graph

@@            Coverage Diff            @@
##           master    #190      +/-   ##
=========================================
- Coverage   69.86%   69.4%   -0.46%     
=========================================
  Files          18      19       +1     
  Lines        1812    1824      +12     
=========================================
  Hits         1266    1266              
- Misses        546     558      +12
Impacted Files Coverage Δ
wheel/dist_info.py 0% <0%> (ø)
wheel/egg2wheel.py 65.62% <100%> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2890278...3c0126e. Read the comment docs.

@ghost ghost mentioned this pull request Sep 3, 2017
I added a new command called "dist_info', which is exactly like egg_info but generates a dist_info directory.
@ghost
Copy link
Author

ghost commented Sep 3, 2017

@agronholm Can you merge this and then release?

@agronholm
Copy link
Contributor

I cannot make any releases before the ReadTheDocs configuration has been adjusted to point to the Github repository. I've asked @dholth for maintainer access there twice now but have not received a response. Also, I am not happy about the fact that your new command has no tests whatsoever attached.

@agronholm
Copy link
Contributor

I'm also wondering whether wheel should keep relying on setuptools, given the PEP 517 effort. But that is a topic for another time.

@ghost
Copy link
Author

ghost commented Sep 3, 2017

I actually added a test but then removed it because of some json validator test failures that I don't understand.

@ghost
Copy link
Author

ghost commented Sep 3, 2017

I'm also wondering whether wheel should keep relying on setuptools, given the PEP 517 effort. But that is a topic for another time.

That is why this command is needed in fact. Setuptools needs to generate a dist-info to comply with the specification but currently cannot.

@ghost
Copy link
Author

ghost commented Sep 3, 2017

Why is test_pydist failing?

@agronholm
Copy link
Contributor

Shouldn't the setuptools code for egg_info not be copied here then, instead of importing setuptools directly?

@agronholm
Copy link
Contributor

I don't know why it's failing, but the test suite passes on master. So this PR must've done something to cause them to fail. Would you mind figuring that out? I'm going to sleep in an hour or two.

@ghost
Copy link
Author

ghost commented Sep 3, 2017

The PR passed on master 3 hours ago. Let me try to re-run master.

@agronholm
Copy link
Contributor

I picked this up from the logs:
error = <ValidationError: "Additional properties are not allowed (u'description_content_type' was unexpected)">

@ghost
Copy link
Author

ghost commented Sep 3, 2017

Shouldn't the setuptools code for egg_info not be copied here then, instead of importing setuptools directly?

Will do.

@ghost
Copy link
Author

ghost commented Sep 3, 2017

That makes sense.

@agronholm
Copy link
Contributor

If you run tox locally, do the tests pass then?

@ghost
Copy link
Author

ghost commented Sep 3, 2017

Running tox locally, I receive two failures: the validation failure and test_zipfile_attributes; running pytest directly I only receive the failure of test_zipfile_attributes. test_zipfile_attributes does not appear to fail on the CI, so it's probably a spurious problem with my computer.

@agronholm
Copy link
Contributor

What could possibly cause the validation failure? The command did not touch any existing tests or functionality.

@ghost
Copy link
Author

ghost commented Sep 3, 2017

It's probably a tox failure because it only happened when I ran tox.

@ghost
Copy link
Author

ghost commented Sep 3, 2017

Let me downgrade tox and see.

@agronholm
Copy link
Contributor

I'm checking out now – let me know what you find. I'll get back to this tomorrow.

@ghost
Copy link
Author

ghost commented Sep 3, 2017

Downgrading tox failed to resolve the problem, and tox was released September 1; the problem happened sometime between now and 6 hours ago. The question is: what changed in the last six hours?

@agronholm
Copy link
Contributor

I am also seeing the errors locally now that I upgraded tox.

@ghost
Copy link
Author

ghost commented Sep 3, 2017

Maybe it is tox then. Does pip install tox==2.70 resolve the issue? That failed on my end.

EDIT: botched tox version.

@agronholm
Copy link
Contributor

Downgrading to 2.6.0 and erasing the .tox directory did not help. The same failure still happens. The only two libs it upgraded at the same time were pluggy and py.

@agronholm
Copy link
Contributor

I noticed though that a new version of setuptools was just released. Could that have something to do with it?

@ghost
Copy link
Author

ghost commented Sep 3, 2017

Does tox download requirements?

@agronholm
Copy link
Contributor

I'm not really sure how it works exactly :) But I have come across situations where it does download things.

@ghost
Copy link
Author

ghost commented Sep 3, 2017

I'm guessing pypa/setuptools#1075?

@agronholm
Copy link
Contributor

Which PEP governs the allowed fields in metadata?

@ghost
Copy link
Author

ghost commented Sep 3, 2017

PEP 314

@agronholm
Copy link
Contributor

Well, I don't see this PEP having been amended to include that field.

@ghost
Copy link
Author

ghost commented Sep 3, 2017

Also, PEP 345

@agronholm
Copy link
Contributor

Ditto for 345 and 426 (which replaces it).

@ghost
Copy link
Author

ghost commented Sep 3, 2017

You're correct. However, there were a lot of requests for markdown support and I can attest that submitting a PEP is a nightmare. So it appears that @msabramo decided to implement markdown support unilaterally.

I cannot say I disagree with this though because markdown support is far more valuable than squabbling over a PEP.

@agronholm
Copy link
Contributor

I too am +1 on markdown support, but the latest PEP is a draft anyway. Could that not have been amended too? How else are we going to keep track of the fields going forward?

@ghost
Copy link
Author

ghost commented Sep 3, 2017

Which PEP is that?

@agronholm
Copy link
Contributor

@ghost
Copy link
Author

ghost commented Sep 3, 2017

@ericholscher @agjohnson @humitos

Would you mind tranferring ownership of wheel to @agronholm.

@dholth
Copy link
Member

dholth commented Sep 3, 2017 via email

@ghost
Copy link
Author

ghost commented Sep 3, 2017

@dholth Would you please transfer read the docs ownership?

@agronholm
Copy link
Contributor

While wheel may have been a setuptools plugin, I don't think it should remain as such, going forward. But decisions like this were the primary motivation for arranging the Hangouts meeting.

@agronholm
Copy link
Contributor

@xoviat looks like Daniel has given me maintainer access to the wheel docs on RTD now, so that is no longer a blocker. Now I would like to properly understand how the dist_info command fits to the picture now. If you can point me to tickets or mailing list messages or other material, that would be appreciated.

@ghost
Copy link
Author

ghost commented Sep 4, 2017

dist_info is needed for prepare_metadata_for_build_wheel, which will replace egg_info.

@ghost
Copy link
Author

ghost commented Sep 4, 2017

You can also see the proposed setuptools build backend at pypa/setuptools#1039. Basically it maps command line calls onto the new functions, but there is currently no way to generate a dist-info directory. The options are to either work around that in setuptools or actually fix the problem with a new dist_info command.

@agronholm
Copy link
Contributor

Ok, thanks for the info. We're holding a closed circle meeting tomorrow, during which wheel's role in all of this should become much clearer. I will have to hold off on merging this until at least then.

@agronholm
Copy link
Contributor

Just be aware that depending on the outcome of the discussions, I may require even heavy refactoring of the code. Thankfully there's not much of it, so it shouldn't be a big issue :)

@dholth
Copy link
Member

dholth commented Sep 4, 2017 via email

@agronholm
Copy link
Contributor

My vision is this: "wheel" becomes independent of setuptools, and setuptools adds a bdist_wheel command of its own, which relies on the wheel library. This way, other build backends do not have to rely on the existence of setuptools.

@dholth
Copy link
Member

dholth commented Sep 4, 2017 via email

@agronholm
Copy link
Contributor

If that is the consensus in tomorrow's meeting, I will respect it.

@ghost
Copy link
Author

ghost commented Sep 5, 2017

@agronholm What was the consensus of the meeting?

@agronholm
Copy link
Contributor

It was rescheduled for today. I'll let you know afterwards.

@agronholm
Copy link
Contributor

So, the consensus was that this command is a better fit for setuptools rather than wheel. I will further discuss this with @jaraco.

@agronholm
Copy link
Contributor

So @xoviat, would you mind making a PR against setuptools? Jason also agreed that it should probably go to setuptools rather than wheel.

@ghost
Copy link
Author

ghost commented Sep 6, 2017 via email

@ghost ghost closed this Sep 6, 2017
This pull request was closed.
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

Successfully merging this pull request may close these issues.

None yet

3 participants