<FromGitter>
<VanyaNeytrino> Hi. Can I create a PR in the WIP state? Or is it better to finish the implementation and then create it?
<FromGitter>
<Blacksmoke16> implementation of what?
<FromGitter>
<Blacksmoke16> draft PR can be helpful if you want feedback on the current approach
<FromGitter>
<VanyaNeytrino> I want to add control cache headers for caching static files.
<FromGitter>
<Blacksmoke16> 👍 nice
<FromGitter>
<wout> Hi all! I am researching frameworks for a project I am working on and I think there are two obvious candidates: Amber and Lucky.
<FromGitter>
<wout> I like both but why is Amber so much faster than Lucky in benchmarks?
<FromGitter>
<Blacksmoke16> is also Athena ^ 😉
<FromGitter>
<Blacksmoke16> lucky prob has more default middleware maybe?
<FromGitter>
<wout> I'll have to dig deeper into it get a clearer idea. The difference is quite severe, though.
<FromGitter>
<Blacksmoke16> whats the project? benchmarks !=real world needs
<FromGitter>
<wout> Athena looks nice too, but it lacks documentation. I need to sell this to a client, so they need to see it's more or less established.
<FromGitter>
<Blacksmoke16> fair enough, lacking docs in any particular area?
<FromGitter>
<wout> It's a mid-size e-commerce project for an online printing company. It's fairly heavy on the database, so maybe framework benchmarks are not that important.
<FromGitter>
<wout> Athena: Maybe not so much documentation as online representation and "stars" :)
<FromGitter>
<VanyaNeytrino> I can't find helpers to view… they are not?
<FromGitter>
<wout> You know, some getting started guids, examples, ...
<FromGitter>
<Blacksmoke16> ah yea, its deff not as mature as lucky/amber, takes a diff approach as well
<FromGitter>
<Blacksmoke16> there is the demo app and some blog posts i wrote
<FromGitter>
<Blacksmoke16> (disclaimer, its mine ha)
<FromGitter>
<wout> Yeah, I know :)
<FromGitter>
<Blacksmoke16> 😛 sadly can be a bit hard to get started when other frameworks get the usage just due to their star count etc
<FromGitter>
<Blacksmoke16> is also kemal if you need something simpler
<FromGitter>
<andrewc910> Does Amber have an actual roadmap? Like new features we plan to add and how? Wouldn't mind opening a PR or two but idk what the roadmap is 😕
<FromGitter>
<Blacksmoke16> :shrug:
<FromGitter>
<Blacksmoke16> @eliasjpr or @drujensen might have some ideas
<FromGitter>
<Brodan> is there any plan to address #1174 ? its a very breaking bug and without functioning auth it kinda defeats my purpose of working with amber. was there a regression by any chance? anyone know a version i can pin that doesnt break this?
<FromGitter>
<Brodan> i unfortunately dont know crystal well enough to try to fix with my own PR just yet
<FromGitter>
<Blacksmoke16> 😬
<FromGitter>
<Blacksmoke16> thats not ieal
<FromGitter>
<Blacksmoke16> prob an issue with how amber is newing up the granite objects
<FromGitter>
<Brodan> thats what i assumed, like i mentioned in my PR comment, when i check the DB, the new user is there but the hashed_password field is blank, so when you try to log back in the password validation fails. i guess the password hashing function or something isnt getting called
<FromGitter>
<Blacksmoke16> the model doesnt have a `password` column, nor does anything explicitly call `user.password = ...` so it never gets set
<FromGitter>
<Brodan> huh? i see `hashed_password`
<FromGitter>
<Brodan> i suppose that a Granite thing then and not an amber thing?
<FromGitter>
<Blacksmoke16> depends on your views i guess :) i see it as an amber issue
<FromGitter>
<Blacksmoke16> how/why should granite know to call a setter for a property it doesnt have
<FromGitter>
<Blacksmoke16> you could prob rename `hashed_password` to `password` then use a `before_save` hook to hash the current password
<FromGitter>
<Brodan> i have no idea haha. like i said im not too familiar with crystal/amber yet so its hard for me to figure out what the models are doing and stuff and tough to try to fix it myself. i was hoping the auth stuff would just work out of the box. i do appreciate you being super responsive in this chat though!!
<FromGitter>
<Blacksmoke16> imo granite shouldnt be responsible for implicitly defining an initializer that allows creating a model from a hash, or whatever. Nor should it convert `"17"` to `17`
<FromGitter>
<Blacksmoke16> just because the columns type is `Int32`
<FromGitter>
<Blacksmoke16> could prob get it to work by changing up your model
<FromGitter>
<Brodan> word, ill try later today
<FromGitter>
<Blacksmoke16> or really just doing like `user.password = user_params.validate!["password"]` should do it
<FromGitter>
<Blacksmoke16> before the `if user.save`
<FromGitter>
<andrewc910> I was going to look into that issue later today. I imagine it's a really easy fix. My auth shard works for granite and the authenticable module is based off the Amber auth template.
<FromGitter>
<andrewc910> If it's what I suspect, I'll open a PR later
<FromGitter>
<Brodan> thanks a bunch @andrewc910 !
<FromGitter>
<andrewc910> @HCLarsen my auth shard will be released soon btw(maybe today actually).