[13:54:11] <devesh> Can this channel be used for asking questions about PR's, issues etc as well, given that those questions are already asked on github?
[13:54:55] <pradyunsg> devesh: GitHub is likely best, since it allows for longer form discussions and does not need everyone to be online at the same time.
[13:55:51] <devesh> Sure I will do that, so what else is the motive of this channel, what else can be discussed here?
[13:56:18] <pradyunsg> devesh: This channel is mostly useful for synchronous discussions.
[13:56:31] <pradyunsg> You can see past discussions in the logs (yes, this channel is logged).
[13:58:19] <pradyunsg> For other folks wondering, devesh recently started contributing to pip, during a sprint conducted by BangPypers (https://www.meetup.com/BangPypers/).
[13:59:34] <devesh> Thanks for the intro @pradyunsg, the contribution was just a doc, but I learned the ways of contributing to open-source :)
[14:01:55] <devesh> I created another PR: https://github.com/pypa/pip/pull/7891 which is a bit better contrib than the previous one
[14:25:35] <McSinyx[m]> hi, may I ask about the status of coupling of pip install stages?
[14:26:57] <McSinyx[m]> I'm writing my proposal about it according to the discussion here yesterday, but I have yet to find the part of code indicating the (assumed) issue
[14:34:40] <pradyunsg> McSinyx[m]: not sure what you’re refering to.
[14:35:06] <pradyunsg> you can see the "flow" of pip install in the pip/_internal/commands/install.py file.
[14:36:10] <McSinyx[m]> I finally traced to the req subpackage
[14:36:34] <pradyunsg> Ah, you reached the belly of the beast, I see. :P
[14:36:36] <McSinyx[m]> I was asking for confirmation that if the download-install stages need decoupled
[14:37:46] <McSinyx[m]> following the flow is like falling down the rabbit hole, I've been through 10 wrapper functions and still haven't find what actually do the downloading
[14:38:18] <pradyunsg> All the downloading happens as part of https://github.com/pypa/pip/blob/master/src/pip/_internal/commands/install.py#L332.
[14:38:18] <pradyunsg> The actual installation happens after https://github.com/pypa/pip/blob/master/src/pip/_internal/commands/install.py#L380.
[14:38:54] <McSinyx[m]> found it: req_install.InstallRequirement!
[14:38:58] <pradyunsg> https://github.com/pypa/pip/blob/master/src/pip/_internal/network/download.py <- code for downloading a file.
[14:39:19] <pradyunsg> McSinyx[m]: I’ll ask again, what are you looking for?
[14:42:57] <McSinyx[m]> I was looking for the relationship between install and download
[14:43:51] <McSinyx[m]> as techalchemy suggested yesterday
[14:44:17] <McSinyx[m]> TBH I'm feeling a bit lost now: there are 2 refactoring direction I can think of
[14:44:30] <pradyunsg> If you 'pip install flask', you’ll notice that there’s a clear stage where all the downloads happen and then a separate step where all the installs happen.
[14:44:46] <McSinyx[m]> techalchemy: that's not blaming, I have too read it now or later; one is to mess with the way resolver
[14:44:55] <pradyunsg> They’re decoupled and the only thing that passes between those two is… basically… a list of what to install. :)
[14:45:22] <McSinyx[m]> *the way the resolver call the downloads
[14:45:48] <McSinyx[m]> pradyunsg: silly me yea the functional try would be much easier then read every thing (-:
[14:46:49] <McSinyx[m]> techalchemy: can you please elaborate?
[14:47:42] <techalchemy> McSinyx[m], pradyun should just guide you where he thinks your time is best spent anyhow, i am only giving half attention to this which is going to lead you back down another weird road no doubt :p
[14:48:32] <McSinyx[m]> my current concern is here: https://github.com/pypa/pip/issues/825#issuecomment-302020952, which leads to the next approach, to provide a fake file system that let caller waits on the same download
[14:49:21] <McSinyx[m]> techalchemy: I'm overwhelm by the amount of infomation either way no worries
[14:49:51] <techalchemy> there's definitely a lot to take in
[14:50:46] <McSinyx[m]> the second would be basically sth we can plug into the place of Downloader, but I've noidea if it's possible (for me to do it)
[14:51:58] <McSinyx[m]> techalchemy: can alchemy help in my case, I mean the burn out probably a few days from now d-:
[15:30:46] <McSinyx[m]> I think it'd be better for me to draft a patch to see the posibility of each approach
[15:31:31] <McSinyx[m]> from what I've found, seemingly I'd need to start working from operations.prepare.unpack_url
[16:47:03] <sumanah> am spreading the word in various places about the pip resolver work and how people can help now https://pyfound.blogspot.com/2020/03/new-pip-resolver-to-roll-out-this-year.html
[16:47:07] <sumanah> techalchemy: now a good time?
[17:04:40] <sumanah> techalchemy: go ahead and look at that for a bit? I will look at a docs issue
[17:05:54] <techalchemy> i'm not sure what to do about that one i think we need more info
[17:08:27] <sumanah> techalchemy: ok. I'll leave a note there saying we need more info
[17:08:43] <techalchemy> we should consider closing some of the super old stuff i guess
[17:08:48] <techalchemy> we can revisit that though
[17:08:57] <sumanah> techalchemy: can you check the settings on https://readthedocs.org/projects/pipenv/ to ensure that it is building from pypa's master?
[17:09:13] <sumanah> because I'm looking at https://pipenv.pypa.io/en/latest/ and it doesn't include the link fixes that you just merged
[17:10:28] <techalchemy> it wasn't specified before
[17:11:06] <sumanah> techalchemy: I wonder whether it was maybe building off a personal repo
[17:16:54] <sumanah> techalchemy: ok! I think you may also need to kick off a build for "stable" as well as "latest"
[17:20:47] <sumanah> techalchemy: and you can merge https://github.com/pypa/pipenv/pull/4160 to fix the GitHub logo in the upper right and update it to go to the right repo. I had ignored the hacks.html file earlier; should not have.
[17:29:38] <pradyunsg> As sumanah said, what's your question?
[17:30:24] <sumanah> pulling up tests/functional/test_uninstall.py now....
[17:30:33] <devesh> I was trying to run "pip install -e ." in test_uninstall.py, using the code provided at https://github.com/pypa/pip/blob/master/tests/functional/test_uninstall.py#L528
[17:32:56] <devesh> When you run "pip install -e ." generally, you get both an *.egg-link and easy-install.pth file
[17:33:17] <devesh> In /lib/python3.7/site-packages/
[17:33:35] <devesh> But using the script.pip line, I only see that the *.egg-link is created
[17:34:29] <devesh> To give more background, this question is in suggestion by a committer for me to create a test case here: https://github.com/pypa/pip/pull/7891#issuecomment-603308975
[17:34:47] <devesh> The relevant issue for it is https://github.com/pypa/pip/issues/7856
[17:35:57] <sumanah> hey devesh - that's useful background but I am looking forward to hearing your question :-)
[17:36:35] <devesh> When I run "pip install -e ." generally, I get both an *.egg-link and easy-install.pth file but when I run script.pip('install', '-e', '.', expect_stderr=True, cwd=pkg_path), I just get *.egg-link
[17:37:20] <devesh> and not easy-install.pth, I am running "pip install -e ." on the command line
[17:38:10] <sumanah> devesh: still not sure what your question is. :-) maybe you want to ask something like "is this a bug?" or "why is this happening?" or "should I try to fix this?" :-)
[17:38:40] <devesh> In that case my question will be why is this happening
[17:38:48] <sumanah> pradyunsg: you got any ideas?
[17:39:23] <devesh> Different behaviour for the same command, one run on command prompt, and one run via tox and pytest in unit testing
[17:39:36] <sumanah> devesh: thanks for looking into this. remind me - have you ever poked around the pip codebase before? I don't know all the contributors' names.....
[17:39:51] <pradyunsg> I'd suggest checking which version of setuptools you're on currently, and trying the version that was release around the time the issue was filed. It might be a case of different behaviours across different setuptools versions.
[17:40:02] <devesh> I actually started a week back @sumanah
[17:45:28] <sumanah> devesh: welcome to open source :-) I wrote something you might find useful: https://www.harihareswara.net/sumana/2016/10/12/0 on the work of making hypotheses in situations like this. I think you're doing well overall but figure you might find a few tips helpful to improve further!
[17:46:05] <devesh> Thanks sumanah: I will take a look for sure
[17:56:11] <devesh> This is the behaviour in terminal @pradyunsg, as you can see, after creating a dummy package and running "pip install -e .", both repro.egg-link and easy-install.pth are present
[17:56:17] <sumanah> btw devesh - the next time you need to paste a bunch of stuff into an IRC conversation you can use a service like https://hastebin.com/ to make a short ephemeral "paste" and then give us the link
[17:57:14] <devesh> Sorry, here it is: https://hastebin.com/sizagezala.rb
[17:57:36] <devesh> I didn't expect the message to be split like that
[17:59:04] <pradyunsg> AFK for a bit. I'll be back in ~15 minutes.
[18:18:44] <sumanah> while we wait for pradyunsg -- devesh do you have any ideas about why this is happening?
[18:19:13] <sumanah> and hey techalchemy -- how is the requirementslib stuff going? do you think we should pin to an old version of hypothesis or fix the underlying behavior?
[18:19:53] <devesh> Not really @sumanah , I just recently have started dabbling with pytest, and the unit tests here are at a different level
[18:20:13] <devesh> I am trying out different things and figuring out from print statements and debug logs
[18:22:21] <sumanah> devesh: so pradyunsg mentioned " suggest checking which version of setuptools you're on currently, and trying the version that was release around the time the issue was filed. It might be a case of different behaviours across different setuptools versions." let's start there
[18:22:30] <sumanah> what version of setuptools are you using?
[18:24:28] <devesh> The issue has been filed 10 days back, I am using version 41.2.0
[18:25:39] <devesh> And I see that the latest release is 46.1.1 3 days ago as per https://github.com/pypa/setuptools/releases, so I think I should try a newer version
[18:31:13] <devesh> The code is taken from the first few lines of https://github.com/pypa/pip/blob/master/tests/functional/test_uninstall.py#L528
[18:32:04] <devesh> And I used "tox -e py tests/functional/test_uninstall.py::test_uninstall_editable_and_pip_install_and_easy_install_remove -s" to run this particular function
[18:38:42] <devesh> One thing I just realised that I should be using "script.site_packages_path" which points to site-packages inside virtualenv of pytest
[18:39:50] <pradyunsg> I'm not sure about site_packages vs site_packages_path.
[18:40:33] <devesh> I found out after printing those two paths
[18:41:10] <devesh> script.site_packages is "venv/lib/python3.7/site-packages"
[18:41:20] <devesh> script.site_packages_path is /private/var/folders/xg/blp845_s0xn093dyrtgy936h0000gp/T/pytest-of-devesh/pytest-1/test_uninstall_editable_and_pi0/workspace/venv/lib/python3.7/site-packages
[18:43:16] <pradyunsg> Hmm... Looks like site_packages_path is the one for the virtualenv that you want to use.
[18:43:45] <pradyunsg> site_packages is, well, not the right thing.
[18:44:19] <devesh> Yes, so I am now able to see the same behavior in terminal as well as through pytest
[18:44:49] <pradyunsg> ssurbhi, gutsytechster: ^ this could be another thing worth considering to include in your GSoC proposal - working on cleaning up PipTestEnvironment.
[18:45:11] <pradyunsg> devesh: great! Was the environment variable the cause?
[18:46:19] <pradyunsg> ssurbhi, gutsytechster: actually, cleaning up the situation with scripttest + PipTestEnvironment would be *awesome*! About as awesome as getting coverage reports working. 🙃
[18:46:26] <devesh> It works now with and without removing the environment
[18:57:26] <devesh> I have a dilemma, the fix I have written makes sure that the uninstall of a package goes through even if easy-install.pth doesn't exist,
[18:58:02] <devesh> But if I remove this file while writing a unit test, I also lose the path of pip, since easy-install.pth is being used for it by pytest to run the uninstall command
[19:48:38] <devesh> @pradyunsg: https://github.com/pypa/pip/issues/7893 , the issue w.r.t what we discovered in test_uninstall.py
[20:00:16] <sumanah> techalchemy -- how is the requirementslib stuff going? do you think we should pin to an old version of hypothesis or fix the underlying behavior?
[20:00:55] <techalchemy> sumanah, going to grab coffee and see what the actual issue is first
[20:00:59] <techalchemy> if it looks easy to fix i'll fix it
[22:00:43] <sumanah> I see https://github.com/sarugaku/requirementslib/issues/214
[22:04:33] <techalchemy> yep, i think it i sgood now
[22:05:50] <sumanah> techalchemy: ok! so it's past 6pm ET - do you have time to talk about any of the other items on the March release TODO list? or do you need to go?
[22:08:08] <techalchemy> i've been kind of all over the place today as i'm sure you can tell, i keep getting pulled in 20 different directions
[22:08:42] <techalchemy> it might be ideal to devote some actual time to this
[22:08:55] <sumanah> techalchemy: yes. is now ok for that?
[22:17:37] <techalchemy> sumanah, i have 20 mins or so if that's good
[22:17:47] <techalchemy> just trying to clear everything else out
[22:17:50] <sumanah> techalchemy: ok! So - let's look at the remaining requirementslib issues
[22:18:24] <sumanah> so the "Review requirements-lib issues for other pipenv release blockers" item - you've done that? in that case I will check it off
[22:18:45] <sumanah> the issue you filed, "We shouldn't install upgraded versions of test dependencies in CI", is the only blocker to a requirementslib release
[22:19:14] <sumanah> there are a few more items: "Merge https://github.com/pypa/pipenv/tree/feature/vendor-update to address missing dependencies/imports" and "make new releases" of pythonfinder & vistir
[22:19:35] <sumanah> techalchemy: which of those do you want to look at now?
[22:20:14] <techalchemy> i have pythonfinder next on my own list
[22:21:42] <sumanah> techalchemy: ok! go ahead and make a release?
[22:22:36] <sumanah> techalchemy: and/or a release of requirementslib since I see you have now merged in #215
[22:23:38] <travis-ci> pypa/twine#1342 (master - f7402e0 : Brian Rutledge): The build passed.
[22:24:56] <techalchemy> sumanah, sorry was just doing a dry run with the release generation script and the news file generator syntax changed a tiny bit