[13:14:58] <sumanah> Reminder that the next livechat is in a little under 2 hours, 1500 UTC.
[15:00:05] <sumanah> Welcome to the Warehouse/PyPI livechat, the third of four during this beta!
[15:00:18] <sumanah> Warehouse, the codebase behind the new PyPI, is now in beta https://pypi.org, and I'm one of the people working on it. I'm Sumana Harihareswara, project manager. We also have Dustin Ingram - introduce yourself, Dustin?
[15:00:52] <sumanah> We intend to make pypi.python.org redirect to Warehouse on Monday, April 16th, and then fully shut down the legacy PyPI site pypi.python.org on Monday, April 30th.
[15:01:35] <di_codes> hi everyone! I’m Dustin (@di), a PyPI maintainer/administrator and PyPA enthusiast
[15:01:47] <sumanah> We want to hear from you about what you like & what doesn't work for you in the new interface. https://pyfound.blogspot.com/2018/03/warehouse-all-new-pypi-is-now-in-beta.html#workflows has a list of stuff we especially want people to test.
[15:02:10] <sumanah> And, as a reminder, participating in this livechat means you agree to abide by the PyPA code of conduct: https://www.pypa.io/en/latest/code-of-conduct/
[15:02:10] <sumanah> So let's start with introductions. Who all is here for the livechat? Wave your hand: )
[15:03:46] <sumanah> [Also: we've made it to beta thanks to funding from Mozilla's Open Source Support Program https://pyfound.blogspot.com/2017/11/the-psf-awarded-moss-grant-pypi.html . Thanks, Mozilla! And thanks Python Software Foundation for supporting this work.]
[15:04:20] <sumanah> di_codes: today's really the day I've started publicizing the plan we agreed on yesterday, where April 16th is the redirect date and April 30th is the legacy shutdown date
[15:04:36] <sumanah> di_codes: I checked in with Ernest about it yesterday night and he was cool with it, so, yay :)
[15:06:26] <sumanah> di_codes: so I've been advising folks to wait till we say on pypi-announce "please update your automated tools to point to pypi.org" and I think we should say that on April 9th or 16th since we haven't said it yet
[15:06:27] <di_codes> but, we do have that capacity now!
[15:18:13] <sumanah> asx_: alanbato: I'd love your feedback on https://github.com/pypa/warehouse/issues/2794 -- what do you think we ought to add to https://warehouse.readthedocs.io/application/ ?
[15:18:25] <sumanah> to help newer Warehouse developers get up to speed faster?
[15:20:14] <mgedmin> does anyone here have working wiki.python.org credentials?
[15:20:26] <mgedmin> my browser offers to autocomplete something that the server then rejects
[15:20:48] <alanbato> sumanah: I'm reading the docs and the GH issue, give me a sec :)
[15:20:55] <di_codes> asx_: are you a Warehouse contributor I should know? sorry, don’t have a great mapping between IRC nicks and github handles
[15:20:55] <mgedmin> I think it would be nice if https://wiki.python.org/moin/PyPIJSON linked to https://warehouse.readthedocs.io/api-reference/json for a more-recent API doc version
[15:22:54] <sumanah> mgedmin: I am logged in but don't see an Edit link/button on https://wiki.python.org/moin/PyPIJSON
[15:22:57] <mgedmin> but people might have them bookmarked
[15:23:08] <sumanah> so I think I don't have the relevant privileges.
[15:23:17] <mgedmin> oh, I see it's an immutable page!
[15:23:31] <mgedmin> I'm not sure what's the process for changing those
[15:23:33] <asx_> @sumanah: especially the section on what the codebase is made of.
[15:23:39] <mgedmin> maybe I ought to file a bug on bugs.python.org
[15:24:16] <sumanah> asx_: What if the link to the application overview were higher up? Right now it's in https://warehouse.readthedocs.io/development/getting-started/#learn-about-warehouse-and-packaging
[15:25:04] <sumanah> asx_: I think "getting started" should probably be basically a long recipe that the reader should follow :) and prose/diagrams like the application overview should be on a different page. But I am happy to move the link so the reader sees it much earlier in the recipe.
[15:25:05] <asx_> @sumanah: Maybe the warehouse code base should be on the top in the table of contents.
[15:25:24] <sumanah> mgedmin: I think that's a good call
[15:26:58] <sumanah> di_codes: you said "unless your automated tool is generating a ton of requests, it’s _probably_ ok to do it now" -- if we could make a litmus test and publicize that, I think we ought to do that this week. "Under n requests/minute? Move it now. Over? Move it on the 16th."
[15:27:59] <asx_> I have a docker related question. What is the best way to make sure docker is not eating up all your resources? Mac user. 8GB ram.
[15:31:34] <sumanah> dstufft: and I still think that the "n requests per [time period]" is a useful metric to be able to give hobbyists who have tools that hit our APIs
[15:31:39] <dstufft> sumanah: We'll care more about not taking the site down
[15:31:47] <dstufft> is basically the promise, as far as APIs is concerned
[15:31:59] <dstufft> (since I think all the APIs are feature complete?)
[15:32:11] <dstufft> if they're not, the other promise is we'll have things implemented :)
[15:32:14] <sumanah> I'll double check that, but basically yes
[15:32:16] <Wooble> dstufft: (also people will yell at you if it's working perfectly fine, for no apparent reason at all, and the community appreciates that you put up with that)
[15:32:20] <alanbato> sumanah: I think a Glossary regarding terms like "project, distribution, maintainer" could be helpful to clear confusions between similar concepts and synonims. Both in the codebase and the docs
[15:32:31] <sumanah> alanbato: ok, thanks, I will come back to this
[15:32:35] <dstufft> sumanah: to be clear, not opposed to a req/s thing
[15:32:42] <dstufft> just saying, it's going to be largely arbitrary
[15:32:49] <dstufft> so whatever folks want to suggest is fine
[15:32:54] <sumanah> dstufft: so I am in favor of nailing things down a bit and being able to say to people, here's what we promise (even if the promise is more about caring than about specific uptime numbers)
[15:33:44] <di_codes> sumanah: how about “we promise we tried out best”? :wink:
[15:33:49] <dstufft> sumanah: Yea, messaging SLA is hard here, because we don't really have one in general
[15:34:01] <sumanah> yes I know -- I'm trying to talk about that without actually being flippant
[15:35:06] <sumanah> on requests/second, so I could pull a number out of nowhere but I presume it would be wrong, so with that in mind, what if the advice were like this?
[15:36:13] <sumanah> If your tool hits pypi.python.org more often than once a second, and/or you care a lot about service interruption, you should go ahead and migrate between now and April 16th
[15:36:59] <sumanah> and if we want to add some specific different advice about XML-RPC we can do that
[15:37:55] <dstufft> sumanah: is the conditional on that inverted
[15:37:57] <di_codes> sumanah: don’t we want to say the opposite?
[15:38:11] <alanbato> sumanah: Also, I think it would be valuable to include architecture beyond the codebase, and include things like design preferences for tests, how the docker containers are setup right now, describe with detail what each `make` command does, and other "development" parts of the workflow for completeness.
[15:38:15] <sumanah> RIGHT, less often than once a second, that's what I meant
[15:38:34] <sumanah> alanbato: cool! could you add both your suggestions -- that and the glossary -- to the GitHub issue?
[15:40:07] <sumanah> If your tool hits pypi.python.org less often than once a second, and/or you are fine with a little service interruption as we work out beta stuff, you should go ahead and migrate between now and April 16th
[15:44:13] <sumanah> and then when we launch/redirect on April 16th, we'll remove https://pypi.org/help/#beta and add something to https://pypi.org/help/#availability basically saying: there is no specific SLA for PyPI. Volunteers get paged if the site goes down, and we've never had an outage lasting longer than [8 hours?? not sure].
[15:44:48] <sumanah> we can't give actual predictions or promises but we can give people a little data
[15:44:50] <dstufft> we've def had PyPI in YOLO mode running screen for like 3 days before >:]
[15:45:00] <sumanah> dstufft: right i remember you telling me about that
[15:45:28] <sumanah> how about, since [year? 2015? whatever relevant year] we haven't had an outage lasting longer than [time]
[15:45:41] <dstufft> (in general, ``pip install`` is really really hard to get an outage on now adays, other parts of the service are easier to take down)
[15:45:54] <dstufft> but we really engineer/optimize for pip install not failing
[15:46:10] <dstufft> (I am fine with giving data to be clear)
[15:46:24] <sumanah> thanks for clarifying, on this and the reqs/second thing
[15:48:23] <sumanah> mgedmin: thanks for asking about this and getting us to clarify stuff
[15:49:26] <sumanah> Our livechat hour is winding up -- this is a 24-7 channel so you're welcome to continue to talk & hang out here, but Dustin and I may drift away in about 10 min. :)
[15:49:59] <sumanah> I see Anurag had to leave, but I'll probably write a quick PR to move the link to the application overview higher up in the Getting Started guide.
[15:50:58] <alanbato> sumanah: I added a comment with what I said to the issue
[15:51:53] <alanbato> If di_codes could take a look at https://github.com/pypa/warehouse/pull/3520 and give me some feedback I'd really appreciate it!
[15:52:38] <sumanah> pradyunsg: I'd also appreciate your take on https://github.com/pypa/warehouse/issues/2794 , on what we should add to application overview docs, if you have time and interest
[15:54:15] <di_codes> alanbato: looking at that now. seems to be a lot of duplication between that and <https://packaging.python.org/specifications/core-metadata/> with regards to the descriptions/examples. maybe it would be better to just link to the specification for each field?
[15:54:24] <di_codes> also would be great to know which ones are optional or not
[15:54:38] <sumanah> in case you want to comment on some proposed API doc improvements
[15:54:38] <alanbato> sumanah: Feel free to point me or tag me in any other issue I can help with
[15:55:30] <di_codes> alanbato: also looks like it’s missing the dependency/digest fields but seems like you’re already aware of that
[15:55:39] <sumanah> alanbato: :) once you revise #3520 per Dustin's feedback here, perhaps you could take on https://github.com/pypa/warehouse/issues/3490 , Document User-Agent filtering for clients with broken redirect handling APIs/feeds documentation ?
[15:56:34] <thea> Yeah it's my strong preference that we have a single source of Truth for that. Warehouse should link to pypug for the metadata specs.
[15:57:17] <alanbato> di_codes: Yes, most of it was just me paraphrasing and trying to give it another format.
[15:57:18] <di_codes> alanbato: basically I’m imagining a plaintext version of this form: <https://github.com/pypa/warehouse/blob/8118bd3c5e9bbc72ef1f24aff26716df5ade1d5c/warehouse/forklift/legacy.py#L326-L558> with links to the metadata spec
[15:57:19] <sumanah> I'll +1 that. Thanks for prototyping and iterating on this thea and I'm sorry to have inadvertently led you astray, as I think I did with some early comments
[15:57:33] <sumanah> er, thanks for iterating, alanbato
[15:58:00] <sumanah> I'll also give a shoutout right now to thea for the GitHub-Flavored Markdown work http://blog.jonparrott.com/github-flavored-markdown-on-pypi/ :) thanks for the work and the kind words, thea
[15:59:32] <sumanah> ok it's 2 minutes till the hour by my clock -- pradyunsg alanbato mgedmin Wooble any last thoughts?
[16:00:04] <alanbato> di_codes: Yes, I was using the form as a reference. I'm sorry, but I'm not sure what do you mean by a plaintext versions. Maybe replacing the description and example with the link in the table?
[16:00:46] <di_codes> alanbato: ah, I meant: that form, but not in code (human-readable)
[16:00:54] <sumanah> Dustin & I may drift away now -- thanks for joining us. The next one:
[16:05:38] <alanbato> di_codes: I'm having a bit of trouble thinking how that would look like, I'll try to look for examples on other projects and submit a patch to the PR Soon™. Thanks for your input :)