Post

๐Ÿ’ฅ just released a github action: `uppt` it aims to be a very simple, secure release workflow for maintainers that adheres to best security practices โšช trusted, staged publishing on npmjs.com โšช github environment protection โšช generated release PR + changelog โšช automatic release + publish on merge โœจ

28 reposts163 likes

I used to use changesets, but then helped develop release-plan -- which supports both same versions and independent versions dependening on config, and semver impact labels I do still miss the fidelity of a manual high context changelog entry tho

Wow that was fast! I assume this will work in covector, but haven't had a chance to test it yet. Either way, love to see all the options crop up for this!

Also reviewing, and my first nit is simply that this workflow does quite a lot. I call that out bc my preference is for release workflows to do as little as possible, so the operating model is as dumb and simple as possible thus harder for anyone to screw up and requires fewest perms

IE, I prefer maintainers to push tags themselves, so then a workflow does not need to have write on the repo at all But just digging in. For the workflow I imagine you desire, where there is little manual work at all, then I can understand the complexity being an acceptable tradeoff

My personal model/desire is to have release jobs be as dumb as possible, and thus harder for someone to footgun by nature of them not understanding what is risky and what is not Im stoked to see innovation here even be possible now bc of staged releases, and happy to see you working on this โค๏ธ

Its a pleasure to be able to do so without having to just stop at โ€œno 2fa, ci/maintainer gets popped, game overโ€!!

The whole point is every publish needs a responsible human in the loop. If you do it via an API without 2fa, then youโ€™ve defeated the whole point of staged publishing.

Yeah, I think you can do that already. Iโ€™m out at a restaurant, so I canโ€™t find the link but you should be able to find what the npm client is doing and just re-implement that. Right?

I don't have time right now to do a full review, but happy to setup some time next week if you want to discuss why I believe this to be true and show me why I am wrong.