Elixir port of Cucumber Expressions? #2320
Replies: 3 comments 4 replies
|
@aslakhellesoy I don't think it matter if you write it on paper or using vi or a IDE or an AI tool. What more matters is if you tell the agent "do this or that" it will do something in that direction but there is no guarantee it is correct (a bit like a non deterministic Turing machine always require a final deterministic step that tell "is the solution true or false"). So if you would supervise, understand and refine the result (what I have no doubt you would be able to do) then this is completely acceptable. What usually is qualified as slop is more when people don't do that or even don't understand what the tool has produced and just throwing it off hoping that other do the hard work for them! A quite good comprehensive summary is given here: https://docs.github.com/en/copilot/tutorials/review-ai-generated-code |
|
We recently added a section on AI usage to the contributing guide. I reckon that will broadly explain why those PRs were closed as slop. Now I can't really say up front if the PR would be accepted because "implemented with Claude Code" doesn't convey anything about the quality on its own. Though I would prefer it if you scrutinized every line before you ask anyone else to do the same. From a practical perspective though, since you'll be using this in Var, wouldn't you expect design pressures to push the expressions into a different direction? |
|
I don't really know Elixir, so my ability to review the code is limited. That said, I've steered Claude to closely follow existing implementations (while keeping it Idiomatic Elixir) and of course to make sure it implements tests using the same test data. There is very little room for an agent to go out on a limb and do crazy stuff given all the patterns and constraints that are already in the repo. There is already an Elixir port of Cucumber Expressions, but it hasn't been touched for four years and differs considerably from the official ones. I've instructed the agent to take inspiration from whatever good Elixir idioms this implementation uses, but to keep the implementation on par with the other official ones. You can see it here: cucumber/cucumber-expressions@main...varar-dev:cucumber-expressions:elixir Based on my experience implementing Varar for 7 languages so far, I don't expect any new design pressures. Cucumber Expressions is a beautifully designed and small/closed system, and it does (and exposes) everything I need. The only thing that might exercise pressure would be to align the official implementations with the Rust implementation. I think it might have some corectness and performance benefits over what's official, but this is just a hunch. And that's a different discussion. If we want to go down that route, I think it would be best to adopt the Rust implementation into the official repo and update the other implementations to align with it. Something I expect an agent would do very well. So to sum it up - I think a single official Cucumber Expressions repo with many language ports would benefit both Cucumber and Varar. You might wonder why I'm making an Elixir implementation if I don't know or use Elixir. It's for the same reasons we ported Cucumber to many languages - build a big community, increase adoption and mindshare. [1]: I renamed Vár to Varar |
Uh oh!
There was an error while loading. Please reload this page.
Hi everyone,
I'm about to start porting Cucumber Expressions to Elixir, following the existing conventions and shared test data.
I'll implement it with Claude Code. I'm not sure what the current team's stance is wrt to agent-authored code. Based on the number of pull requests that have been rejected as "slop", I think maybe it's something you don't want. In that case I'll maintain it in a forked repo.
FYI - I intend to use it in https://var.oselvar.com.
Should I send a PR or not bother?
Aslak
All reactions