Hacker Newsnew | past | comments | ask | show | jobs | submit | WillAbides's commentslogin

I also blogged about my motivations for writing Release Train here: https://willabides.com/posts/release-train-continuous-releas...


Release Train will automatically create a new GitHub release every time you merge a pull request into main or whatever release branches you set up. It's inspired by semantic-release[1] but takes a different approach. Instead of using commit messages it uses PR labels to determine the type of release. This makes it easier to use. It's also a single binary so it doesn't require npm or any other package manager.

It comes in the forms of both cli and GitHub Action.

The downside of this approach is that it ties you to GitHub. It could be extended or forked to support any platform that has something like a pull request with labels. I'm comfortable adding that to the technical debt I will incur migrating away from GitHub.

I would love to get notes from the hn community on this.

[1] https://github.com/semantic-release/semantic-release


You’ve got me beat. https://willabides.com. I haven’t posted anything yet.


Give me a shout when you get around to writing something. Even if what you post goes over my head I'll be happy to check it out!



I wrote a mostly branchless json parser in go using ragel to generate most of the code.

https://github.com/WillAbides/rjson

The generated code isn't much to look at, but it is certainly fast.

https://github.com/WillAbides/rjson/blob/main/object_handler...


This must be some strange new definition of "branchless" with which I'm not previously familiar; the generated code is full of branches, conditional or otherwise. I don't think invoking some other tool to put branches into your code qualifies you as branchless.

Have you compared your parser to simdjson-go? I haven't looked specifically at the go rewrite, but I hear it's decent.

I was very excited to do branch free coding to parse JSON, but really only handled the 'lexing' portion of the task in branch free fashion. Certainly more of the task could be done branch free, especially if you are working on SIMD or GPGPU.


I apparently had a fundamental misunderstanding of the meaning of branchless. That's embarrassing.

As for simdjson-go, I did benchmark it. rjson outperformed simdjson-go in most benchmarks, but simdjson-go was about 3% faster reading citm_catalog.json.

https://github.com/WillAbides/rjson#simdjson

Edit:

I see on your bio that you are one of the simdjson authors. I hope you will indulge a question about it. I am generally more interested parsing a large volume of json documents efficiently than I am in doing it quickly. Since simdjson uses parallel instructions, would that mean that the speedup comes at the expense of being able to process more documents in parallel on the same hardware?


I'm not sure I believe your benchmarks, honestly. They are way slower than the C++ version. But I don't really have a horse in the race as simdjson-go is its own thing. Still, I'm mildly surprised that a byte-by-byte parser is the same speed as a SIMD approach, and usually when someone tells me this, the answer is usually that they buggered up the benchmarking. I would suggest comparing your numbers to the simdjson paper or whatever brag numbers simdjson-go has as a reality check; one of us is clearly wrong.

The use of parallelism in simdjson is the use of SIMD instructions, not multiple cores. So the answer is "no" to the second question.


For anybody who stumbles across this and is interested, this conversation is continued on reddit.

https://old.reddit.com/r/golang/comments/mlhvx0/i_wrote_yet_...


I’m not involved in this project, but I would guess that it’s because it validates both issues and PRs, but only PRs have statuses on GitHub, More precisely, only commits have statuses, and issues aren’t associated with commits.


This is exactly correct. I haven't finished the pull request feature yet, what you're seeing on the repo is just issues. I will be taking requests for any desired features


“avatar_url” is the only part of that endpoint in preview, so that warning only applies to that field. I can see how the notification isn’t clear on that point, and I will bring that up.


I see. Thanks for the clarification!


I don't think they store all their data on twitter. If they did, they probably wouldn't have this file in their repo: https://github.com/edent/openbenches/blob/master/database/da...


I didn’t spend hundreds of dollars on a mechanical keyboard with custom caps and switches to “click”.


No clicky keys?


This brings back a memory of a conversation with my grandfather. We were in Midland, and I said something about heading over to Odessa. He made a disparaging remark about my intelligence and said we would have to head out to Odessa from there.

That never made any sense to me until now.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: