-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
"extras" are brought into the extra package's lockfile entry as "markers" #3026
Comments
Obscure trivia: Python packaging does treat extras as a marker internally, so it is probably not doing the wrong thing here. The problem is we need to evaluate that extra marker correctly. |
Thanks for the report, even more interesting trivia is that we are evaluating it correctly. The real trivia is that the current tooling dictates that the correct behavior is to not evaluate it... We used to do this but I removed some of the marker cleaning code during a bit of a cleanup in the last few releases, but forgot to add it back when I reverted some things: 4a8086d |
@kavdev if you'd like to PR the fix, this being hacktoberfest and all, I'm happy to hold off -- Essentially since we are now using Because the other logic is for pipfiles formatted as So basically what we need to do is just ignore anything that starts that way. I'm happy to fix this if you prefer, but it's actually a pretty good one to tackle if you haven't worked on the codebase before |
@techalchemy sounds fun! I'll spend some time on it now |
@techalchemy I cloned the repo, ran This came up:
Is master stable to develop on? Am I missing something? I'm running python 3.6.5 |
Ah sorry I missed this, it should be, but your best bet for development is actually to just |
@techalchemy still no dice. any thoughts? |
@techalchemy it'll be quicker for you to push a fix. We can figure out dev setup stuff in another issue |
@kavdev the screenshot you showed has like nothing installed, that's kinda odd... do we not have six as a direct dependency? you can just pip install it into the environment for now |
Any idea when a version is expected to be released with a fix for this? |
This is a workaround for the issue described in pypa/pipenv#3026 (comment). It can be reverted as soon as the fix is released.
2018.10.13 still has the bug. |
@techalchemy why is this closed if the issue is still present in the most latest version? It gives false impression that it's resolved. |
Because it is fixed in master branch though it is not released yet. |
Until the new version is released you can remove the "extra" markers manually from the $ sed -i "/\"markers\": \"extra == /d" Pipfile.lock |
This is still not working for me as of release |
@jxltom The tool that I need the "extra" for is
|
@Kilo59 Thanks for the info. But I didn't see anything wrong? |
The problem is, regardless of what the lockfile says. It's not actually installing the extra which becomes apparent when I try to run my linter
But if I use pip directly
And now when I check
|
I'd be happy to write a regression test to check for this. |
@Kilo59 That will be great. We definitely needs more tests. You could consider |
The extra is only in your lockfile, did you try re-locking? I suspect you generated this with pipenv |
I'm not sure what you mean by this, it's also in the Pipfile. I did re-lock it. |
@Kilo59 I think that means this extra is only shown as an extra in the lockfiles as below but not a independent item.
|
@Kilo59 Oh, I think I catch it. You have a typo in Pipfile. It should be |
@jxltom Wow, yep. Was a typo the whole time. Would have caught it earlier except I actually typed it correctly when I did the raw |
I think we should throw the warning message that the extra cannot be provided during installation. |
@frostming Makes sense to me. If so, it is better to open a new issue for tracking this. |
Update 2: Actually, pip does not if |
I thought about this a bit. The |
I agree. With Likewise, Pipenv only needs to warn during locking but not syncing. |
Issue description
The title is a bit confusing, so I'll just get straight into the setup. Here's my pipfile:
Notice the packages syntax. This is put in automatically by pyup.io -- a service we use to keep our dependencies up to date. If that's causing this issue, let me know and I'll file a bug with the maintainer.
Behavior
As of the latest updates (assuming 2018-10-09), the lockfile entries for libsass and brotli contain markers for the extra args. Example:
This causes the following errors when installing dependencies:
Note also that the entries that specify extras are totally fine in the lockfile:
I'm happy to submit a PR if I get some pointers on where to begin. If it would be helpful for me to condense my pipfile to only relevant packages for reproduction, let me know.
The text was updated successfully, but these errors were encountered: