samueldr changed the topic of #nixops to: NixOps related talk | logs: https://logs.nix.samueldr.com/nixops/
bhipple has joined #nixops
aminechikhaoui has quit [Ping timeout: 240 seconds]
aminechikhaoui has joined #nixops
bhipple has quit [Remote host closed the connection]
aminechikhaoui has quit [Quit: Ping timeout (120 seconds)]
aminechikhaoui has joined #nixops
cole-h has quit [Quit: Goodbye]
* manveru pokes adisbladis
<manveru> oh i figured it out :D
<manveru> this needs to be `aws = "nixopsaws.plugin"` it seemms
<manveru> i really should've read the new plugin docs more closely and compared every line earlier...
<manveru> now poetry is hating me...
<manveru> god why does python still exist...
<DigitalKiwi> some people like it
<DigitalKiwi> and we're not allowed to say bad things about things people like
<manveru> i have no idea why it suddenly needs git now...
<manveru> got around that too... now it complains that a `setup.py` is missing...
<manveru> my head is all bloody now from banging it too much against this wall :P
<manveru> adisbladis: help please?
<manveru> how does it decide that it needs a setup.py instead of using poetry?
<manveru> for the overrides, there is stuff like `dontUseSetuptoolsBuild`, and `dontUsePipInstall` but no `doUsePoetryInstall`
<manveru> finally got it to build
<manveru> now on to fixing all the nix errors...
<gchristensen> manveru: you've really got some grit :x
<gchristensen> manveru: https://github.com/NixOS/nixops/blob/master/doc/plugins/authoring.rst had you seen this? ideally it would be easy to follow
<manveru> gchristensen: it's my job :P
<gchristensen> aye
<gchristensen> thank you :)
<manveru> and yeah, i read through that doc a few times, but it didn't mention any of this
<manveru> one for example needs `expr_path = os.path.realpath(os.path.dirname(__file__) + "/../nix")`, the doc was missing the `realpath`
<manveru> i was a bit naive, hoping that what adisbladis had made would actually somehow work without modifying the repo too much :)
<manveru> the trickiest today was that you have to override the dependency of nixops in nixops-aws to set `format = "pyproject";`
<manveru> i was looking for something related to poetry all over the place, but didn't find this
<gchristensen> a bit spooky -- did you learn anything else like that realpath issue? can you file an issue or PR?
<gchristensen> it would suck to have you test it so thoroughly but not have any of the docs improve :)
<manveru> so i endend up reading through the poetry source as well as the nixpkgs python build infra...
<manveru> yeah
<gchristensen> but you didn't look for that tip in the docs / didn't expect to find it there, or it was a different problem / fix?
<manveru> i looked in the github issues and docs for poetry2nix...
<manveru> sorry, i just somehow didn't read that far i guess :|
<manveru> the branch from adisbladis had `nixops = super.zipp.overridePythonAttrs(`
<manveru> which gave me the original git checkout error
<gchristensen> no worries, and no appology needed -- I tried really hard to make every problem I ran in to written down in that doc
<gchristensen> nixops ... zipp .... hm
<manveru> seems obvious in hindsight that this was a copy&paste error :P
<gchristensen> I made that mistake once too :D
<manveru> but yeah, my fault was probably also that i didn't think of it as "authoring a nixops plugin", but rather "use nixops with a plugin"
<gchristensen> ah
<manveru> and it evolved into actually authoring plugin for nixops-aws... my whole initial stance was "this is working already for someone else, so it must be my usage being wrong"
<gchristensen> ack
<gchristensen> probably the most important thing to do is get actual deploys doing actual AWS things is CI :)
<manveru> well, right now the AWS plugin is still broken
<manveru> it seems to close the db too early
<gchristensen> exactly
<gchristensen> that is why it is the most important thing
<manveru> might be nixops issue, but not sure
<manveru> the reason why we tried to upgrade initially was that the ebs volume creation was broken :P
<manveru> so yeah... CI would be awesome
<gchristensen> maybe you have ideas on how to provide that
<gchristensen> some tricky problems there
<gchristensen> like a way to erase everything in the account every hour would probably be needed, and a super restrictive IAM policy, and a low limit of resources
<manveru> i'm not sure either
<manveru> i was more thinking about testing the code at least :)
<gchristensen> oh!
<gchristensen> maybe you have ideas on how to do that!
<manveru> you can run it once against real endpoints, record the responses, and mock the tests that way
<gchristensen> sounds hard to maintain :)
<manveru> not perfect, but probably less costly :)
<manveru> and yeah, it's not maintenance-free, but you avoid having your tests fail for hundreds of other unrelated reasons that occur
<gchristensen> at any rate, if you have suggestions or could provide some code / tools / prs, that'd be really great. being able to test it seems super important
<manveru> i try really hard not to get even more involved in python things :P
<gchristensen> hehe, fair enough
<manveru> same reason why i don't want to do ruby anymore...
<gchristensen> types?
<manveru> yeah
<gchristensen> yeah
<gchristensen> I've found mypy to provide almost all I wanted w.r.t. types. it does have some missing bits that I wis hwere different, but developing with mypy is a totally different experience for me
<gchristensen> but fair enough:)
<manveru> maybe if nixops uses mypy :)
<gchristensen> it does
<gchristensen> every PR is checked, and if type coverage goes down, the PR is marked as failed. up to I think 75-80% type coverage
<manveru> maybe nioxps-aws then?
<manveru> i don't know, it doesn't seem very robust atm
<gchristensen> I think it does too, but boto doesn't have type signatures
<gchristensen> which sucks
<manveru> ah, ok
<manveru> this is the current issue
<gchristensen> when does this happen?
<manveru> just `nixops info`
<manveru> or pretty much every nixops operation i tried
<manveru> `nixops list` works at least
<manveru> that's how i know that it finally loads the aws plugin :)
<gchristensen> curious
<gchristensen> can you open an issue and include the nix expressions to get /nix/store/dhfs69kaq7m1ddcg5i5xbm35nn2k9qxp-python3.7-nixops-1.8.0 ?
<manveru> sure
<{^_^}> nixops#1316 (by manveru, 9 seconds ago, open): sqlite3.ProgrammingError: Cannot operate on a closed database.
<gchristensen> thanks :)
<gchristensen> I'm going to drink a cup of coffee and eat breakfast, and I'll take a look
<manveru> thanks a million :)
<manveru> felt like shouting into the void the last few days...
<manveru> i'm used to it by now, given that i tend to work on esoteric stuff, but still
<gchristensen> I know the feeling :')
<manveru> is there any reason why https://github.com/NixOS/nixops/blob/master/nixops/deployment.py#L40-L52 is duplicated?
<gchristensen> looks like merge joys
<gchristensen> looks like we should add pylint or something to the checks :)
<adisbladis> gchristensen: I've had god success combining black & flake8 (with some flake8 restrictions lifted)
<gchristensen> cool
<gchristensen> yeah you're on the list of people I want to talk to :P
<gchristensen> generally everyone, really
<aanderse> ha ha ha
<aanderse> ok
<gchristensen> can you do a call in like ...30min?
<DigitalKiwi> how can you use nixops without -d
<gchristensen> so actually, adisbladis have just started doing a regular review of PRs and issues around this time (today was #2), and at the start of today we realized we should do them publicly
<gchristensen> we're going to continue our call in like 30min :)
<manveru> DigitalKiwi: ideally you just need some way to specify where to store state, and have each state be only for one deployment
<manveru> i really like that idea anyway
<gchristensen> (yeah, on a couple calls other than nixops or I'd write up what the proposal is)
<aanderse> gchristensen: publicly, cool :)
<manveru> you've turned into a meeting monster :D
<gchristensen> manveru: I don't know what happened :(
<manveru> well, i still gotta figure out how to fix this sqlite issue... it doesn't make any sense :|
<gchristensen> yeah, it is at the top of my to-do :x
<manveru> heh, nice
<aanderse> gchristensen: ok advice... say i want to follow your blog post. do i get 32gb of ram or 64... and then instead of using zfs snapshot just load the entire os into ram?
<gchristensen> hah
<aanderse> i thought i was getting a great machine with 32gb of ram then flokli made me feel like crap saying "only 32?" T_T
<gchristensen> mine are 16g :x
<aanderse> ha ha ha
<aanderse> yeah all my current machines are 16 but i'm building one
<DigitalKiwi> get more ram than storage
<gchristensen> aanderse: I put a lot of stuff on my root partition on my servers (30+G) but my laptop looks to only have about 1G
<gchristensen> so maybe that'd work well :)
cole-h has joined #nixops
<manveru> hmm
<manveru> i wonder if the `with self._db:` shouldn't be `with self._db as db:` and use `db`?
<manveru> no, that's not it, but it does look nicer :)
<manveru> i think i figured it out...
<manveru> there was an indentation error :P
* manveru silently weeps
<gchristensen> :|
<gchristensen> in like 2 minutes adisbladis and I are going to be on https://meet.jit.si/NixOpsReview to review the XML -> JSON PR, and we can discuss other issues too
<aanderse> ha, sorry guys, yeah just ignore me :)
<cole-h> Easily done ;)
<cole-h> "My system might crash, because I need to plugin my charger." -- gchristensen 2020
<cole-h> s/plugin/plug in/
<gchristensen> manveru: what was up with the indentation error, and can you share some more info? :)
<manveru> it was our rebase gone wrong
<manveru> there are two `depl` variables, the `with` statement shadows it
<gchristensen> oh so the issue was in a rebase?
<gchristensen> and not in master?
<manveru> jup
<manveru> i'll close the issue
<gchristensen> cool, thanks
<gchristensen> I don't suppose you have some good patches to send upstream? :)
<gchristensen> aanderse: available to talk about `-d`?
<aanderse> 1 sec
lordcirth__ has joined #nixops
lordcirth has quit [Ping timeout: 252 seconds]
<gchristensen> lol info: Output 'V4l2sink': Number of lagged frames due to rendering lag/stalls: 28923 (65.8%)
<gchristensen> thanks for coming :D
<cole-h> Thanks for hosting :) Enjoy your lunch
<gchristensen> need to figure out what is for lunch....
<gchristensen> I don't eat much fried chicken, but I have been nursing a hankering for days now
<aanderse> mmm fried chicken...
<aanderse> dipped in a mixture of butter and franks hot sauce
<gchristensen> saoeutnhaoeunsthaoeunsthoa
<cole-h> Try saying that 5 times fast
<gchristensen> (1) there is no good fried chicken around here (2) I'm not really getting food from restaurants these days (3) I really don't like to fry at home , due to how much oil and mess it is
<aanderse> yeah so if you're feeling really down and dirty and have young kids
<aanderse> you probably have really crappy chicken fingers
<gchristensen> nice, might add those to my next grocery shop :P
<aanderse> and you probably put some of those chicken fingers in the oven for your kids for lunch sometimes when you or your spouse don't feel like cooking
<aanderse> what you do
<aanderse> is you put a couple extra crappy chicken fingers in the oven
<aanderse> then you put a chunk of butter and a bunch of franks in a pan
* gchristensen takes notes
<aanderse> on low heat
<aanderse> and take a whisk
<aanderse> and melt the butter, constantly whisking to make sure the butter and hot sauce combine nicely
<aanderse> then you take the cooked chicken fingers
<aanderse> and dump them into the sauce pan of buttery hot sauce
<aanderse> then you don't need to fry anything
<aanderse> and its pretty disgusting(ly awesome)
<aanderse> i also have cravings for garbage food but we're not doing takeout at all
<aanderse> ha ha ha
<cole-h> aanderse: Sounds like you have experience with this sort of thing... ;^)
<gchristensen> aanderse: same w.r.t. take-out
<aanderse> if anyone wants to say "eww" right now thats appropriate
<gchristensen> honestly, I'm here for it
<aanderse> but its also appropriate to say "that sounds amazing"
<cole-h> `nixops deploy friend-chicken`
<cole-h> Wait
<gchristensen> never name your chickens
<cole-h> `nixops deploy fried-chicken`
<adisbladis> :(
<adisbladis> I prefer `nixops deploy friend-chicken`
<gchristensen> :)
<adisbladis> Chickens are friends, not food :)
<gchristensen> <3
<aanderse> oh... sorry
<aanderse> i uh
<aanderse> i meant vegan chicken
<aanderse> whats that stuff called
<gchristensen> I've looked at keeping some chickens for eggs, but it seems like more work than I'd like to do in the deepest of winter
<cole-h> But they're delicious friends...
<aanderse> i heard its good
<aanderse> they make chicken wings out of it
globin has left #nixops ["o/"]
<aanderse> seitan
<gchristensen> too much chicken squaking for globin
<aanderse> right
<aanderse> i heard thats some good stuff
<adisbladis> Heil seitan <3
<adisbladis> Seitan is really nice
<aanderse> oh also cauliflower
<aanderse> if you bake some cauliflower in the oven
<aanderse> drizzle a little oil on top of it before in the oven of course
<aanderse> then dump that in the butter + hot sauce
<adisbladis> Yeah, but if you have that junk food craving nothing beats seitan
<aanderse> it would be pretty fantastic as well
<gchristensen> adisbladis: can you push an empty commit or something to your XML PR?
<gchristensen> I'm hoping it just needs a gentle prodding
<cole-h> Or just amend and force-push
<gchristensen> yea
<aanderse> empty commit to empty stomach for gchristensen :(
<gchristensen> oh yeah I should make lunch
<adisbladis> That seems to have tickled it
<gchristensen> thank goodness
<gchristensen> at least it isn't ofborg and travis being hurt by github's current scenario
<gchristensen> isn't only*
<adisbladis> gchristensen: Speaking of which we might want to add a binary cache to the CI
<gchristensen> sure
<adisbladis> Yay, still only mypy-ratchet failing
<manveru> god... i'm even writing python now
<gchristensen> <3 :D
<gchristensen> oh cool
<manveru> `nixops eval`, because we need it and the plugins broke the way we hacked it together
<gchristensen> what do you use it for?
<manveru> a couple of things... most prominent for preDeploy hooks
<cole-h> `evalFile` defaulting to a bool seems weird to me. Why not `? null` to check for presence (I'm assuming that's what it's for)
<gchristensen> definitely want to hear more about those hooks
<gchristensen> also -- thanks for sticking on master, it is nice having some users try it out. can you link me to your nixops-aws work? I'm going to be working in that repo in about 15 minutes
<manveru> history is a bit of a mess... we did a ton of iterations today
<manveru> gotta cool off my head now, cu folks :)
<gchristensen> thanks for the good stuff, manveru!
lordcirth__ is now known as lordcirth
<gchristensen> adisbladis: I am tripping myself over mypy right now and I don't know what is going on :x
andi- has quit [Ping timeout: 256 seconds]
andi- has joined #nixops
andi- has quit [Quit: WeeChat 2.8]
andi- has joined #nixops
andi- has quit [Excess Flood]
andi- has joined #nixops