helix
helix copied to clipboard
Is there a list of supported objects?
I'm wanting to re-write https://github.com/NullVoxPopuli/case_transform/blob/master/lib/case_transform.rb as a rust-extension.
Basically, each method does
case value
when Array then ...
when Hash then ...
when Symbol then ...
when String then ...
else value
end
Does helix support these 4 objects? (I guess I know it does Strings, based on the fast blank example)
But also (and maybe this is more of a rust question / I need to dive deeper in to the rust docs) for hash, case_transform uses deep_transform_keys!, is that something that would be exposed via helix? would I implement that in rust if it doesn't exist yet?
Is this project dead?
The most recent commit I can find is from "3 months ago" in the duration_wip branch. Probably. Or they're just busy.
Depends on what you mean. It has never been a production-ready/"complete" project (yet), and I could only afford to work on it as a side-project/experiment capacity. There is a path to taking it there, and at some point it would make sense for me to spend company time (Tilde has a custom binding for the Rust agent that I would like to replace with Helix) on it.
My most recent experiment was porting Active Support's Inflector to Rust, but I ended up discovering a bunch of issues in the Ruby implementation that I am now trying to fix.
I've been silently following Helix since May. While I haven't been under the impression that its development has halted, I can see how one might come to that conclusion. It was rather disheartening to see issues & PRs following shortly after the initial announcement of Helix receive no followup until about a month later. It sounds like Helix is a strategically important project for Tilde in the long term, so it makes sense to invest even just 5% of your time to keep potential contributors engaged and informed.
I'm happy to hear there are some porting experiments in the works. A really good use case story could easily generate another wave of buzz for Helix, as we saw recently with Sentry.io's "Fixing Python Performance with Rust" article.
@NullVoxPopuli I'm sorry for continuing the hijacking of your issue 😅
@erlend-sh, it's cool. I currently have one of my ruby-rust projects using ruru. I like Helix's API much better though.
https://github.com/NullVoxPopuli/case_transform-rust-extensions/blob/master/ext/case_transform/src/lib.rs
Just one piece of my long term goal of making ActiveModelSerializers crazy fast.
@erlend-sh yes, I completely agree with what you said.
However, 5% is not a lot of time – if you do the math it amounts to around 1 day every work month. To be honest, I think we have been spending much more than a day each month on Helix at work and in our personal time, but we ended up spending it on things like tactical discussions/feedback with the Rust team, pairing with other people (I recently paired with @hone on the mruby side of things), explaining the project (both high-level goals and technical details) to other people including members of the Rails team, and experiments like the Duration branch and my recent Inflector spike.
I agree that this project is strategically important for Tilde, and I also feel guilty for not having the bandwidth to review the issues/contributions. Given that we have at least two other major open-source efforts at Tilde at the moment (Glimmer 2 and Yarn), I am not sure how to "fix" that in the immediate term. It might be just a matter of re-prioritizing the (more than) 5% time in the near term to work on the issue tracking and writing documentation – but all of these are competing with the other work I enumerated above.
The good news is I think we are getting close to wrapping up our initial effort on Glimmer 2 and Yarn (not that we will stop working on them, but they won't have to take up 100% of our time anymore, at least that's the hope). In terms of Helix, I think we are also getting close to a place where we can start documenting and delegating the remaining work – but there are a few foundation pieces @wycats and I want to get right before piling more on top. I really hope that we can return to that work soon™.
I hope to be doing a bit of work on Helix as well so that should help at least a little bit.
By the way, work on this project has picked up quite a bit. #30 tracks immediately pending work.
See #46 for some attempts at this. It's worth noting that we probably won't merge the Array and Hash stuff as is, instead mapping into special versions that have more Ruby-like behaviors in regards to their contents.
We should also document what we do and don't support.
Doesn't look like the documentation of what is supported has been referenced to this issue. I'd say https://usehelix.com/documentation#valid-parameter-types does a good job of documenting what is supported. Do we want this information added to the README or is there a better location for this repo to include this documentation? Is it best left as is and the documentation label of this issue removed?