PMXBOT Log file Viewer

Help | Karma | Search:

#pypa-dev logs for Saturday the 2nd of July, 2016

(Back to #pypa-dev overview) (Back to channel listing) (Animate logs)
[14:30:51] <controversial> Hello
[18:28:21] <nlh> ping dstufft
[18:28:26] <dstufft> nlh: hi
[18:28:36] <nlh> hello
[18:28:39] <nlh> did you see my email?
[18:28:49] <nlh> is the reorganisation of the issue tracker ok for you?
[18:29:01] <dstufft> Yea it seems fine to me
[18:29:04] <nlh> great
[18:29:17] <dstufft> I am not super picky :)
[18:29:41] <nlh> one thing I wanted to ask - now we have it hosted at pypi.io, can we please update the link at the top of the github page
[18:29:49] <nlh> I'd do it myself, but I don't have the permission
[18:30:14] <nlh> I think it would be motivating for new contributors to see the new design, without having to find the link via the docs :)
[18:30:38] <dstufft> change the docs link to pypi.io you mean?
[18:30:48] <nlh> yeah
[18:31:04] <nlh> the link next to "Next Generation Python Package Repository"
[18:31:21] <nlh> on the github repo
[18:31:31] <nlh> also, maybe we should add it to the readme
[18:31:37] <nlh> though this is less important if we change the link
[18:33:27] <JosephBywater> Hi
[18:34:59] <JosephBywater> I'm trying to setup 'warehouse' however, when I run 'make initdb' I get an error https://dpaste.de/arZT I have installed xz-utils from http://tukaani.org/xz/
[18:35:42] <dstufft> nlh: done
[18:35:47] <dstufft> JosephBywater: which OS are you on
[18:36:00] <JosephBywater> Mac OSX
[18:36:14] <JosephBywater> I'm using 'docker-machine'
[18:36:21] <nlh> thanks dstufft :) :)
[18:36:29] <dstufft> JosephBywater: does `xz --help` return an error?
[18:36:46] <dstufft> (I should probably just call xz inside of the docker container tbh)
[18:37:03] <JosephBywater> Errrm, it says it's not installed. Is the link I provided where I should download it from? I ran the configure file.
[18:37:22] <dstufft> JosephBywater: do you have Homebrew?
[18:37:25] <JosephBywater> yes
[18:37:38] <dstufft> `brew install xz`
[18:37:41] <JosephBywater> ok
[18:37:52] <dstufft> that should get you fixed right up
[18:37:57] <JosephBywater> Thanks :)
[18:38:08] <dstufft> JosephBywater: no problem!
[18:38:31] <JosephBywater> Oh. It says some other session is using the database.
[18:39:49] <JosephBywater> dstufft: Do I need to do make serve again?
[18:39:49] <dstufft> JosephBywater: if you loaded any pages on the site in your browser Warehouse keeps a persistent pool of connections
[18:40:12] <dstufft> so exiting ``make serve`` and running it again should fix that
[18:41:47] <JosephBywater> dstufft: Ok ;) (It takes a while :( )
[18:42:34] <dstufft> JosephBywater: it shouldn't take that long typically-- when it detects you need to rebuild it has to do a bunch of work, but normally it can just reuse the re-built containers and just start them back up
[18:42:41] <dstufft> takes ~30 seconds or so for all of the processes to start
[18:42:48] <JosephBywater> dstufft: Oh, ok :)
[18:43:09] <dstufft> but the first time you run it and when it thinks it needs to rebuild it'll take longer
[18:43:48] <dstufft> (that's basically if you update one of Dockerfile package.json requirements/main.txt requirements/deploy.txt)
[18:43:54] <dstufft> or you run ``make purge``
[18:44:49] <JosephBywater> yep
[18:45:26] <JosephBywater> It's working now :)
[18:47:27] <dstufft> JosephBywater: great :D
[18:48:01] <JosephBywater> dstufft: Well, the website loads, but when I click browse projects or do a search I get errors
[18:48:12] <dstufft> JosephBywater: what kind of error?
[18:48:34] <JosephBywater> `elasticsearch.exceptions.NotFoundError: TransportError(404, 'index_not_found_exception', 'no such index')`
[18:49:11] <dstufft> did ``make initdb`` finish? normally that's setup by that
[18:50:15] <JosephBywater> Oh, wait, it says urllib3 timed out
[18:53:35] <dstufft> sigmavir1: you around by any chance?
[18:55:38] <JosephBywater> dstufft: Does the command make initdb 'finish' or is it meant to do https://dpaste.de/ZQ7J this
[18:56:17] <JosephBywater> Oh, it works... turns out it takes a few minutes. Last time there were errors, this time there were not.
[18:56:44] <JosephBywater> dstufft: Do I ever need to run 'make initdb' again?
[18:57:21] <dstufft> JosephBywater: it will finish yea, takes ~60s for me or so
[18:57:37] <JosephBywater> Ok
[18:57:53] <JosephBywater> I thought it was waiting for requests or something
[18:58:14] <JosephBywater> So it's all set up now
[18:58:17] <dstufft> And not really, if you ``make purge`` you'll delete the data and you'll need to run it again then, but rebuilding containers doesn't lose data so unless you do something to delete your data (like delete your docker-machine or something) you shouldn't need to run it again generally
[18:59:12] <dstufft> sometimes we'll do a data migration that won't be represented in the database migrations and will require a new initdb
[18:59:12] <JosephBywater> ok
[18:59:22] <dstufft> but in the general case you don't need to
[19:08:33] <JosephBywater> dstufft: Any issues that you think are easy to work on?
[19:08:46] <JosephBywater> dstufft: this? https://github.com/pypa/warehouse/issues/1309
[19:08:52] <dstufft> JosephBywater: https://github.com/pypa/warehouse/issues?q=is%3Aopen+is%3Aissue+label%3A%22Great+for+new+contributors%22
[19:09:00] <dstufft> that's one yup!
[19:09:01] <JosephBywater> Ok
[19:09:23] <dstufft> (I gotta go for a bit though)
[19:09:25] <JosephBywater> dstufft: Ok
[19:24:39] <JosephBywater> dstufft: Do I need to make build and make serve after making changes or just make serve?
[19:30:24] <controversial> Anyone here?
[19:30:43] <controversial> I have literally not used IRC more than twice in my life, I don't think.
[19:30:53] <JosephBywater> contoversial: Hi
[19:32:58] <controversial> Hi
[19:34:21] <controversial> So why do we actually need Docker? It seems like I have to get into complicated VM stuff...
[19:34:33] <JosephBywater> Nope
[19:34:36] <JosephBywater> Just install docker for mac
[19:34:44] <JosephBywater> and follow instructions :P
[19:34:52] <controversial> @JosephBywater My mac might be too old
[19:34:53] <controversial> We'll see
[19:34:55] <JosephBywater> and you need virtualbox
[19:35:45] <controversial> ugh I don't want to use virtualbox
[19:35:49] <controversial> 'Why is this actually needed?
[19:37:06] <controversial> I have an incompatible CPU
[19:37:49] <controversial> http://i.imgur.com/56uPFtK.png
[19:43:24] <dstufft> controversial: We use docker so folks don't have to worry about setting up PostgreSQL, Elasticsearch, Camo, Redis, RabbitMQ, Celery, Gunicorn, and a process for keeping static files up to date
[19:44:03] <controversial> Ok. But what if you're on a Mid-2010 Macbook Pro and can't run docker :P
[19:45:48] <controversial> dstufft: Is there an alternative?
[19:45:57] <apollo13> yes, manually configure everything
[19:46:01] <controversial> Ugh
[19:46:20] <controversial> I'm going to look more into docker :)
[19:46:41] <dstufft> controversial: yea that's harder :( I don't have a great answer for that-- as far as an alternative, you can just run those things yourself of course, but part of why we have Docker is because running all those things is a _pain_. You might be able to run docker remotely but I'm not sure how well that works with mounting a local FS on a remote host
[19:47:11] <controversial> Right. I've got 2 DigitalOcean droplets, but they're both
[19:47:16] <controversial> 1. 512MB of RAM
[19:47:18] <apollo13> dstufft: which of those is actually a pain? I do not know camo, but the rest in general runs on my box
[19:47:21] <controversial> 2. Running a web server already
[19:48:24] <dstufft> apollo13: indivdually they're not, it's just getting them all downloaded and installed and running
[19:48:29] <dstufft> camo is just a node.js app
[19:48:45] <apollo13> dstufft: ah, there is the joy of running linux vs mac :D
[19:49:59] <dstufft> Yea, also version differences-- here we have pretty tight controls over the versions of each of those things, but that gets harder when you are installing from a bunch of different sources
[19:50:16] <berker> I had to install warehouse manually because docker asked me to update my kernel version :P
[19:50:24] <controversial> https://docs.docker.com/v1.8/installation/mac/ looks like it supports older hardware than the newer docker for mac
[19:50:49] <controversial> Also: are people _opposed_ to having a Slack channel? It's frankly a lot easier than IRC
[19:51:43] <apollo13> not stupid smileys or similar in IRC
[19:52:01] <controversial> eh
[19:52:42] <controversial> but Slack will give me native notifications, it's far easier on multiple devices, you can have multiple channels in one team, you can mention users, you can see 10,000 messages of history, the list goes on
[19:53:08] <apollo13> mhm, dunno, I have all that on IRC here
[19:53:43] <dstufft> controversial: re: Slack, I know that jaraco (who does setuptools stuff) wanted something other than IRC. I think the discussion kind of stalled around that though. IRC exists and had a bunch of inertia already and anytime you change medium's like that you end up losing people (and ideally you end up gaining people too!)
[19:54:27] <apollo13> the biggest thing for me probably is that my irc client actually does not drain the battery as fast as the slack webapp
[19:54:31] <apollo13> that one is horrible imo
[19:54:36] <controversial> Lol
[19:54:53] <controversial> Slack _does_ have an IRC integration that will automatically handle cross-posting of messages between platforms
[19:55:19] <apollo13> that looks even more annoying, you always have "bot: <user> blabla" then
[19:55:57] <dstufft> slack has an IRC gateway that's native too it
[19:56:05] <dstufft> not like the thing we have in #python-infra
[19:56:11] <apollo13> oh, how does that work?
[19:56:17] <apollo13> without getting kicked by freenode
[19:56:18] <dstufft> but it exposes Slack as an IRC server
[19:56:24] <apollo13> ah
[19:56:29] <apollo13> makes sense, more or less
[19:57:39] <apollo13> controversial: you might wanna look into https://www.irccloud.com/
[19:57:50] <controversial> maybe
[19:59:29] <nlh> hey apollo13 :) Long time no see
[19:59:41] <apollo13> nlh: heh, could say the same :D how are you doing?
[20:00:14] <nlh> generally excellent - I'm sorry I didn't really get to catch up with you at django con :(
[20:00:49] <nlh> apollo13: so given that you're hanging out on this chan, should we expect some PRs on warehouse from you? :P
[20:01:13] <apollo13> nlh: that is the plan in the longrun, currently getting familiar with the server infrastructure behind though
[20:01:23] <nlh> excellent! that's really exciting
[20:01:25] <apollo13> but between work and university I am able to do less than planned
[20:01:33] <nlh> we'd be really glad to have you help
[20:01:53] <nlh> yes, that's life I suppose - not enough time for everything you want to do
[20:02:11] <apollo13> well, my plan was to have dstufft work a little bit less on pypi systemadministration so he can focus on warehouse :p
[20:02:18] <apollo13> but don't tell him ;)
[20:02:35] <nlh> apollo13: you know he has eyes everywhere, right?
[20:02:48] <apollo13> even on the back of his head?
[20:02:51] <nlh> probably
[20:02:55] <apollo13> bummer
[20:02:59] <nlh> must be how hes so brilliant :P
[20:03:21] <JosephBywater> Do you prefer to have commit messages squashed?
[20:03:43] <controversial> JosephBywater: It probably doesn't matter
[20:04:00] <JosephBywater> controversial: Ok
[20:04:09] <nlh> JosephBywater: unless you have several commits doing the same thing, its not needed
[20:04:16] <nlh> e.g. "make x work"
[20:04:27] <nlh> "make x work because it didn't work last time"
[20:04:30] <controversial> They're hard to get rid of afaik, once you've pushed. Normally I would git reset --hard HEAD^ && git pull --rebase, but that won't work if you've already pushed the merge commit
[20:04:30] <dstufft> I disabled regular merges on Warehouse anyways
[20:04:36] <nlh> "make x work for real this time"
[20:04:40] <dstufft> so it's all squash merges
[20:04:54] <controversial> dstufft: What's the actual difference?
[20:05:15] <controversial> well, I think I know the difference, but i haven't started using them
[20:05:36] <apollo13> can github do ff-only merges by now?
[20:05:54] <apollo13> ie without a merge commit and without squashing
[20:06:07] <dstufft> controversial: a squash merge won't retain all the individual commits on a PR, it'll take the entire diff, compress it down to a single commit, and allow the merger to generate a commit message for the entire PR (prefilled using the commit messages of all of the commits though)
[20:06:14] <JosephBywater> Anyway, I've got a pull request here. https://github.com/pypa/warehouse/pull/1346
[20:06:32] <dstufft> so other than the person doing the merge needing to clean up the commit message, adding random "make X work" commits won't matter
[20:06:40] <dstufft> they'll just get squashed out anyways
[20:06:43] <dstufft> apollo13: No
[20:06:47] <controversial> I installed Docker Toolbox on my mac, which seems to be supported on my ancient 2010 machine, but it's been on "creating SSH key" for a few minutes now...
[20:06:55] <controversial> oh never mind
[20:06:57] <controversial> stuff: thanks
[20:07:09] <controversial> I think it's better to keep all of them, imho
[20:07:17] <controversial> But get rid of the merge commit :P
[20:08:08] <controversial> God, Freenode Webchat doesn't have autocorrect disabled on OS X
[20:08:19] <controversial> Even when typing people's usernames
[20:08:31] <controversial> (Slack wins again, imho)
[20:08:42] <JosephBywater> Stop with the Slack! ;)
[20:09:25] <dstufft> controversial: everyone has different opinions on the right way to merge :) nice thing about squash merges is that you don't have to worry too much about what folks are doing in their commit history, and each commit on ``master`` represents a reviewed state of the repository. You lose some history, but that is still available in the review tool so it's not too bad
[20:09:29] <apollo13> controversial: mhm, I am pretty sure you could write a broken slake client too, not sure how some stupid webirc client would be part of any serious argument
[20:09:57] <controversial> apollo13: You're right, of course
[20:10:07] <controversial> Yay for old hardware http://i.imgur.com/ecy1dlp.png
[20:10:26] <controversial> by some miracle it runs
[20:13:03] <dstufft> nlh: oh yea, since I set it up to require squash merges now, when you press the merge button you'll need to review the commit title/body that Github generates to make sure it sounds reasonable
[20:13:16] <nlh> ok dstufft :) no problem
[20:20:35] <controversial> Any specific reason for Node.js v5.x ? It throws massive deprecation warnings...
[20:21:57] <dstufft> controversial: compared to what?
[20:22:29] <controversial> dstufft: By "massive" I just meant that it takes up the whole terminal window and pauses for 10 seconds
[20:22:40] <controversial> I was just casually wondering as an uninformed observer
[20:22:52] <dstufft> controversial: No I mean what version of node would you suggest
[20:23:35] <controversial> Oh, I don't know. It seems like 4.x is stable and 6.x is the current version, so I'm guessing 5 got dropped in between
[20:24:05] <dstufft> I suspect v5 was just the latest version when I set that up
[20:24:06] <controversial> I was kind of assuming it was a known thing, maybe it only comes into being through multiple levels of dependencies, though
[20:24:17] <dstufft> at least I don't remember making a specific choice for v5
[20:24:19] <controversial> dstufft: ok
[20:24:38] <dstufft> I do not really care what version of node we use :) as long as it works
[20:24:46] <dstufft> if there's a better version, I'm all for it
[20:25:02] <JosephBywater> ``make debug`` or ``make serve``?
[20:25:03] <dstufft> I don't really keep track of what node is doing :(
[20:25:20] <controversial> JosephBywater: serve
[20:25:32] <JosephBywater> ok
[20:25:38] <controversial> It's been running `make serve` for 5 minutes now, though
[20:25:51] <dstufft> controversial: if it's the first time you ran it, it has to build a bunch of stuff
[20:25:55] <controversial> dstufft: ok. Seems like there are a lot of deprecations throughout the stuff it installs
[20:26:02] <controversial> dstufft: Makes sense
[20:26:35] <controversial> Scary-looking warnings about DoS: http://i.imgur.com/9VM8dek.png
[20:27:00] <dstufft> controversial: yea, I just assumed that was node.js's ecosystem moving fast :D I'm really really not involved in node.js in any major capcity so I just kinda chuck together whatever I can make work and then try not to think about it past that :)
[20:27:13] <controversial> Ok :)
[20:27:53] <dstufft> if v6 or v4 or whatever is better or smarter to use we can use that
[20:27:54] <JosephBywater> Nice :)
[20:27:57] <controversial> dstufft: What's your role at PyPA? Are you just a community contributor or an employee?
[20:29:55] <dstufft> controversial: so PyPA is not really a company, it's just sort of an informal organization, the PSF is the legal entity that "owns" PyPI but it's a community project really so they're really just there to be the person on the line when legal things need decided. As far as who I am, I am employed by Hewlet Packard Enterprise to work on making Python's packaging better, which I'm currently focusing on trying to get Warehouse ready and
[20:29:55] <dstufft> launched to replace the dying old code base. So I'm an employee of somewhere, but I also sort of am a community contributor
[20:30:23] <JosephBywater> I knew it... you're both!
[20:30:30] <controversial> dstufft: HP pays you to work on Warehouse? That's pretty sweet
[20:31:03] <dstufft> controversial: yea, Warehouse, pip, etc
[20:31:49] <controversial> dstufft: How do Docker containers work as far as saving the state? I'm assuming the container will be restarted regularly between when I'm working on it, will the long build process happen every time or does it save its state somehow?
[20:32:15] <controversial> I've never used Docker, just written plain build scripts etc.
[20:32:46] <dstufft> controversial: the long build process was building the container image, it'll take that image and reuse it in the future. For most of the code changes you don't have to do anything, we mount your host OS inside of the running container and have it configured to auto restart on code changes
[20:33:05] <dstufft> controversial: if you change dependencies you'll need tod o the long build process again, or you change something that we don't mount inside of the container
[20:33:21] <controversial> Ok. `make serve` has been running for about 15 µminutes now.
[20:33:22] <dstufft> https://github.com/pypa/warehouse/blob/master/docker-compose.yml#L31-L34 is a list of the things we mount inside the container
[20:34:14] <dstufft> controversial: yea, the intial build takes a bit :/ after that ``make serve`` takes ~30s or so to start up as long as you don't change one of {Dockerfile package.json requirements/main.txt requirements/deploy.txt} that makes it think it needs to rebuild the container images
[20:34:22] <controversial> ok
[20:34:25] <controversial> Seems good
[20:34:52] <dstufft> it'll also download some images from the docker registry, those you won't have to redownload unless you delete them
[20:34:58] <dstufft> (like redis, postgresql, etc)
[20:35:05] <controversial> And does Docker actually set up web servers and stuff?
[20:35:11] <controversial> under this configuration?
[20:35:17] <dstufft> yea
[20:35:21] <controversial> Ok
[20:35:34] <dstufft> ``make serve`` is all you need to do, and you'll have everything going then, the web server, the background worker, database server, etc
[20:35:48] <dstufft> the only thing you'll need to do is once everytihng is running, you'll need to bootstrap the database data
[20:35:59] <dstufft> which is just ``make initdb`` while ``make serve`` is running in another shell
[20:36:14] <dstufft> once it's all started that is
[20:37:48] <controversial> The project i've done that's closest to this is probably https://github.com/controversial/wikipedia-map. For that, the build process is awful. Basically, if you clone it, you can tweak the front-end, but it will still be calling the API running on my server. So if you want to change the backend, you have to manually change a variable to point to localhost:5000 and then run the Flask server
[20:38:00] <controversial> It works *ok* on my website though :P
[20:38:26] <controversial> That's the only thing I've done that involves both a front-end and a backend supporting it
[20:38:37] <JosephBywater> dstufft: How often does the pre-production deployment of Warehouse get rebuilt/updated from the git repository?
[20:39:42] <dstufft> controversial: yea, the one nice hting about all this docker thing is once you get docker itself setup is everything else is handled for you :)
[20:39:53] <controversial> yeah
[20:40:25] <dstufft> JosephBywater: we auto deploy every commit that lands on ``master`` automatically once the tests pass on master. Tests and build process take maybe 5-10 minutes
[20:40:39] <dstufft> we also aggressively cache stuff though, so even if it's deployed you might see cached data for awhile
[20:40:44] <JosephBywater> ok
[20:40:56] <controversial> dstufft: What's the reason for caching?
[20:41:09] <JosephBywater> Oh, my thing's already been deployed
[20:41:19] <JosephBywater> controversial: reduce server load
[20:41:59] <dstufft> controversial: It's cached by our CDN so it makes things faster, but also it lets us serve ~350TB/month and 3 billion requests/month with 3 backend servers :)
[20:42:10] <controversial> Ok
[20:42:32] <controversial> FYI, Docker build has now resorted to spitting out massive ASCII art drawings in my terminal
[20:42:37] <JosephBywater> dstufft: So how does the server run the website? Surely it has to make build and make serve everytime?
[20:42:43] <controversial> One of some kind of layered thing with shapes on top, and one with a C
[20:43:03] <controversial> Redis and Celery, I guess
[20:43:28] <sigmavirus24> dstufft: what's up?
[20:44:09] <dstufft> JosephBywater: the server itself doesn't use docker, Redis, PostgresSQL, etc all of that persist between deploys, so it only has to compile the web app portion and that only takes a few minutes, plus it's got more build caching in play (but it's more complicated to setup)
[20:44:13] <dstufft> sigmavirus24: nevermind, glyph got me :D
[20:46:03] <JosephBywater> dstufft: oh, ok :)
[20:48:10] <JosephBywater> nlh: Just realised that you can still get to the dependencies tab if you add /#dependencies to the end of the URL.
[20:50:49] <controversial> My `make serve` command (which has now been running for 50 minutes) has been frozen on "[20:25:33] Finished 'watch' after 25 ms" for a very long time
[20:51:07] <controversial> 15 minutes, in fact
[20:51:48] <JosephBywater> controversial: That means it's done
[20:51:49] <JosephBywater> lol
[20:51:54] <controversial> No
[20:52:03] <controversial> I don't have my prompt back
[20:52:11] <controversial> and it's still eating up my CPU
[20:52:55] <controversial> JosephBywater: It still shows it's actively running `make serve`, and it hasn't given me control of my terminal back. So clearly, it's not done
[20:53:30] <JosephBywater> Is the watch bit blue?
[20:53:39] <controversial> nope
[20:54:05] <controversial> http://i.imgur.com/cBouNL0.png
[20:55:00] <controversial> (I have a script that lets me upload my latest screenshot to Imgur, I just run `uploadimage screenshot | pbcopy`. It's one of the more useful things I've written :D )
[20:55:43] <controversial> dstufft: Any ideas about http://i.imgur.com/cBouNL0.png ?
[20:56:02] <controversial> More specifically the script being frozen there for 20 minutes?
[20:56:22] <JosephBywater> controversial: That's done
[20:56:36] <controversial> JosephBywater: But it's _not
[20:56:41] <JosephBywater> Open a new tab (control + t) and run `make initdb`
[20:56:51] <JosephBywater> Then you go to localhost:80
[20:57:02] <controversial> Why should it not be finishing, though?
[20:57:10] <controversial> Shouldn't it give me control of my terminal back?
[20:57:13] <JosephBywater> Because it's watching for requests
[20:57:19] <JosephBywater> no
[20:57:35] <controversial> Opening a new tab and running that command doesn't work
[20:58:07] <controversial> It can't find the Docker machine from any other tab
[20:58:12] <controversial> JosephBywater:
[20:58:34] <JosephBywater> http://www.giphy.com/gifs/3oEjI6XLfKBFuplYty
[20:58:47] <JosephBywater> 192.168.99.100:80 ?
[20:59:12] <controversial> JosephBywater: nothing at `localhost:80`
[20:59:36] <controversial> JosephBywater: Second throws an error
[20:59:40] <JosephBywater> dstufft:
[21:00:43] <controversial> JosephBywater: Connecting says that the warehouse database doesn't exist, but I can't run `make initdb` because no other tabs will see the docker container
[21:01:07] <controversial> dstufft: Any input?
[21:01:09] <JosephBywater> did you start the docker container?
[21:02:34] <controversial> JosephBywater: How do you think I ran `make serve` if I didn't?
[21:02:38] <controversial> http://i.imgur.com/bW88g5z.png
[21:02:41] <JosephBywater> oh yeah
[21:02:52] <JosephBywater> ohhh
[21:04:02] <dstufft> controversial: sorry was helping my wife make shish kabobs
[21:04:07] <JosephBywater> You haven't run make initdb yet, however, you cannot run it at the moment because requested a page and it would say another service is using it, so you would have to run make serve again and then make initdb before visiting localhost:80
[21:04:15] <controversial> dstufft: No worries
[21:04:17] <JosephBywater> Or 192.168.99.100
[21:04:22] <dstufft> ``make serve`` never returns, it keeps running in the terminal you had opens o you can see logs
[21:04:38] <dstufft> I actually forgot, you odn't need to run ``make serve`` again, you can also just edit a file like warehouse/config.py
[21:04:43] <dstufft> that'll make the web server restart
[21:04:52] <controversial> dstufft: Ok
[21:04:54] <dstufft> (even just hitting ``save`` without making changes is enough)
[21:05:03] <JosephBywater> Ok :)
[21:05:05] <dstufft> that'll make the server restart and cause it to let go of the persistent database connection
[21:05:58] <controversial> dstufft: Edited the file, but `make initdb` still can't find the Docker container
[21:06:05] <JosephBywater> dstufft: I made a mistake but I don't know why it's happening. (You can see the closing comment tag '#}') https://github.com/pypa/warehouse/issues/1309
[21:06:18] <dstufft> controversial: so in the ``make serve`` terminal, you'll see stdout/stderr of all of the little containers, for each process we're running, then ``make initdb`` in another terminal (which _will_ return) will create the DB and such
[21:06:25] <dstufft> controversial: is ``make serve`` running?
[21:06:31] <JosephBywater> controversial: send a screenshot of the erro
[21:06:32] <JosephBywater> r
[21:06:34] <dstufft> sec dog wants to let out
[21:06:57] <controversial> dstufft: Yep, `make serve` is running, but `make initdb` won't connect
[21:08:25] <dstufft> controversial: what's the specific error message?
[21:09:02] <controversial> http://i.imgur.com/gJKuq3N.png
[21:09:04] <dstufft> JosephBywater: I suspect it's the tested comment blocks
[21:09:17] <dstufft> it has {# .... {# #} .... #}
[21:09:21] <JosephBywater> Oh
[21:09:23] <JosephBywater> nested?
[21:09:29] <dstufft> which I'm guessing jinja is seeing as {# .... {# #}
[21:09:32] <dstufft> as the comment
[21:09:41] <dstufft> JosephBywater: https://github.com/pypa/warehouse/commit/b38a458dbe2767cfb74da43873e6481796c81964#diff-2300880d801924899c92e292b10886ccL179
[21:09:56] <dstufft> controversial: oh! it can't connect to the docker daemon
[21:10:05] <JosephBywater> What should I do? have the {# Tab: ... #} Outside the comment?
[21:10:06] <controversial> dstufft: And that means...
[21:10:12] <dstufft> sec
[21:11:16] <dstufft> JosephBywater: yea
[21:11:25] <dstufft> controversial: looking to see how the docker toolbox runs things, one moment
[21:11:36] <controversial> destuff: ok, thanks
[21:12:20] <dstufft> ok looks like it uses docker-machine
[21:12:52] <dstufft> does ``docker-machine env`` print anything
[21:14:03] <dstufft> if so, eval "$(docker-machine env)" in a terminal should setup the correct environment variables so the docker client can connect to it
[21:14:37] <controversial> Yeah, I just found that too
[21:14:49] <controversial> Why do I need to do that but not JosephBywater :(
[21:15:04] <controversial> Maybe it's because he's not running the old toolbox thing
[21:15:19] <JosephBywater> I'm running the newest, cutting edge stuff :P
[21:15:24] <JosephBywater> (Docker for mac)
[21:15:30] <controversial> JosephBywater: What mac are you on?
[21:15:43] <controversial> I'm trying to get a 4K iMac
[21:16:38] <JosephBywater> Mac mini (Mid 2011); 2.3 GHz Intel Core i5; 16 GB 1600 MHz DDR3; Intel HD Graphics 3000 512 MB;
[21:17:11] <controversial> JosephBywater: Ayy I've got one of those
[21:17:18] <controversial> Guess it supports Docker
[21:17:21] <JosephBywater> Yep
[21:17:24] <controversial> I prefer my macbook tho
[21:17:32] <JosephBywater> More portable
[21:18:40] <controversial> dstufft: Can I have a quick rundown of how the stuff Warehouse is using works (I think Jinja)? For most changes, will I need to change both HTML and Python, or just HTML? Does Jinja make it so that the front-end and the backend are no longer really separate?
[21:19:21] <JosephBywater> It's jinja for the page templates, I know.
[21:21:13] <dstufft> controversial: the new stuff might have automatically setup his profile to call docker-machine env at start
[21:21:19] <dstufft> my profile does that, but I think I added it
[21:21:23] <dstufft> can give a rundown in a moment
[21:21:45] <controversial> dstufft: That'd be great, thanks
[21:25:10] <dstufft> controversial: running back and forth a bit to do grilling so forgive my bursts of comments :) but basically it's just a Pyramid web app that uses Jinja2 for the templating engine. It's not got a seperate front end/backend as far as daemon processes go, it's jsut a single app and it renders the HTML directly (after querying the DB in the view). IT's got some light JS for handling various things but it's not a super heavy JS app
[21:25:39] <dstufft> It uses Elasticsearch for it's search engine, PostgreSQL for the DB, Redis for transiet data storage
[21:27:00] <controversial> dstufft: OK
[21:27:23] <controversial> In Jinja2, if I see something that looks like a function call, is a `grep` the only way to intelligently find its definition?
[21:30:05] <dstufft> if it's like {{ functioncall() }} it'll most likely be listed here https://github.com/pypa/warehouse/blob/master/warehouse/config.py#L222-L227
[21:30:21] <JosephBywater> dstufft: I don't think it's elasticsearch anymore.
[21:30:25] <JosephBywater> https://www.elastic.co/
[21:30:30] <dstufft> if it's like {{ somethingomsrinth|functioncall() }}
[21:30:43] <dstufft> then it'll most likely be listed here https://github.com/pypa/warehouse/blob/master/warehouse/config.py#L210-L220
[21:31:06] <dstufft> JosephBywater: https://www.elastic.co/products/elasticsearch :)
[21:31:10] <JosephBywater> Yeah
[21:31:16] <JosephBywater> I just thought it had changed the name.
[21:35:01] <controversial> dstufft: thanks
[21:37:46] <dstufft> controversial: there are a handful listed elsewhere, like https://github.com/pypa/warehouse/blob/master/warehouse/i18n/__init__.py#L27-L37 but they'll all either be in the first two links, or they'll be in an includeme() function somewhere (includeme being called automatically whenever you see osomething like: https://github.com/pypa/warehouse/blob/master/warehouse/config.py#L271)
[21:39:39] <controversial> Ok I'm back
[21:40:00] <controversial> When you have a 6 year old laptop with a 10 year old battery, sometimes it dies at 75% battery.
[21:40:21] <JosephBywater> Oh
[21:52:32] <JosephBywater> dstufft: For some reason, on some pages, the Dependencies tab still shows... is this a result of the caching?
[22:01:17] <JosephBywater> Bye
[22:28:22] <controversial> Does warehouse use Python 2 or 3?
[22:28:40] <controversial> It seems Jinja2 only has "experimental" Py3 support
[22:34:29] <apollo13> controversial: py3, and it works fine on py3
[22:34:40] <controversial> Ok cool
[22:34:50] <apollo13> jinja2 that is, what made you think the support was experimental?
[22:40:51] <sigmavirus24> controversial: I think Jinja2 has had non-experimental python 3 support for a long time. apollo13 I suspect controversial has found a section of jinja2's docs that are wrong or an old copy of the docs
[22:41:01] <controversial> apollo13: ok
[22:41:33] <controversial> sigmavirus24: http://jinja.pocoo.org/docs/dev/intro/#experimental-python-3-support
[22:42:32] <sigmavirus24> Right. Jinja2 is on 2.8 and has had several releases since 2.7 was released in 2013.
[22:42:45] <sigmavirus24> It's rather stable on Python 3, the documentation just needs updating
[22:47:41] <dstufft> yea, CPython 3.5.2 to be specific is what Warehouse uses
[22:47:54] <dstufft> it may work with other implementations/versions but if it does, it's an accident :)
[23:29:10] <controversial> dstufft: Can you check out my PR?