== Resolver team meeting == Paul / Pradyun / Tzu-Ping Paul: What are we gonna do in terms of !InstallRequirement and friends? * We could keep tripping over things. * Should we do the project model / new abstraction for it? * Should we bite the bullet? It is a chunk of work. * It does weird things. And it's tricky to get the nuances right. * The current resolver is difficult to follow. Options: our own thing, that might not have the same edge cases vs have something that might not be 100% same as what we have today. TP: The problem I was hitting before yesterday; sometimes for the resolver you need to unpopulate the link before going through things again. !InstallRequirement is Paul: terminology is confusing. Pradyun - treat !InstallRequirement as the candidate. Idea is wrap !InstallRequirement with an object that represents the requirement. Different object for the candidate, that also holds the requirement. So not unpopulating, just changing which requirement object you are using. Resolver never sees an !InstallRequirement, it's just an internal detail. This is very like the project model - with !InstallReq as internal detail. Paul - worried that if we're creating !InstallReq on the fly, to match up with candidates, then is there not gonna be a risk that we prepare the same thing multiple times? * Pradyun: Not introducing new complexity rather exposing existing complexity. TP: regarding copying -- I'm not sure what are the attributes that we should be copying. Pradyun - point where we are doing the copy is before we do any OS-level of disk level work / preparation. Paul: Ignoring all the pip > 19.0; all the stuff before having a direct requirement -- create an object that's basically requirements; ignoring the pre-candiates Pradyun: The wrapping objects only allow the operation that are are relevant for that "state" -- candidate Only allow operations when it is a requirement, not those when it is a candidate Paul: This will be tricky to do in practice since the language won’t be able to offer us any help, and we need to track things down by hand. * Also we need to be careful to do only what we need and not cross the boundary. Takeway: We are trying to change an object we don’t understand :scream: == pip Team Meeting Thursday, 27th Feb 2020 == Agenda: * What even is this CZI convening?? * PG, GB, SH are at CZI event for "essential open source support for science" for some goals. They want to do "foundation work" on FOSS software that scientists use * Projects that applied for funding to R1 are eligible that are re-eligibile for R3 * other projects may wany to apply --- start thinking about what the next grant proposal could be. * pandas, numpy, scipy, multiple domain spepfic projects * We did some listening -- science is doing "hard mode" * The big question we get is pip+conda. * Frustration of conda being completely different; which is an explicit message back in 2012 from Guido. * Communication around this + handling variants around this * Ralf Gommers (https://rgommers.github.io/) of !NumPy talked with Pradyun about edge cases of pip & tooling that, if we improve, would help scientific Python. Some notes from that may turn into grant proposals * Sign-off for !PyCon research plan (https://github.com/pypa/packaging-problems/wiki/pycon-2020-user-research-plan ) (GH issue for discussion: https://github.com/pypa/packaging-problems/issues/327 ) * Bernard attend all 4 days of the sprints (probably) * Pradyun: I don't think I'd intended to imply staying for a few days; but was mostly describing how the audience changes (B: Ah. Understood!) * Bernard said don't worry about forming "clear" questions -- we can polish as we go. * * TODO: Sumana to talk with SS about which sprint days which person is attending * Who's blocked, and on what? * Bernard: not really blocked on anything - trying to put together mechanism for people to be recruited for user research. Does PSF have any survey service? * * TODO: go into this on Zulip * Paul: not particularly blocked on anything. Talked a bit before meeting started. * A difficulty in coordination is emerging. We're working on closely related bits of the code. From here on out, will have daily catchups or a few times per week * Big question for Paul: what is the best place to focus my time. Can work that out amongst ourselves * Tzu-Ping: Basically the same as Paul. * Let's stay longer after this call to figure out what to do tomorrow * Pradyun: not blocked on anything. This week has been mostly merging my own PRs and doing travel. * Issue triage & docs are moving along. * I could use (maybe) some help on how much I should go around doing the refactoring work with TP & PM -- coding work? * discussion of getting TP to maintainer status, making architecture doc work more iterative so it does not balloon so much * pip branding! * commission someone to design a logo? * https://github.com/pypa/pip/pull/7754#issuecomment-588194568 * How important is this? 1 or 2 on a scale of 1-10. * Bernard notes: activity to come up with "what pip is" is an important activity, for SS's user-centered design, and later for branding * TODO: follow up with Simply Secure * Choices over the requirement model, and how we co-ordinate work. * Covered in "are you blocked" & previous meeting & followup * Invoices * Atos: doing so right now for Jan + Feb * TP: received payment for Jan, submitting the Feb one tomorrow * PG: waiting for Indian tax paperwork. Sumana needs hours from Feb * SS: [PSF and revised Jan invoice - in progress] * Is it possible for them to break down about how many hours were performed in which weeks? And about how many hours were spent on phone calls versus on reading and writing? * might also be worth chatting with Nicole * Changeset: in progress