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 ✨

Or both, as in each in a different context, but not part of the same releases? Heh, that sounds kind of awful for a big monorepo publish.

gotchya -- I have a couple repos that *can* release up to 10 packages at once -- so for this setup, I think I'd prefer github deployment gating tho, I realize now, in either method of gating publish, I kind of want to see the diff between what is trying to be released and the last published version

0 reposts2 likes

That is a fair way to do it. My fear from doing things on npm is giving mole people access to reduce bus factor also increases risk of compromised npm account from doing something bad

The monorepo use case technically requires a topological sort for which order you publish (and now approve/promote). The ideal is a one click that understands this and can promote them all together in order. Ideally needs additional work from @npmjs.bsky.social, but can be mostly bolted on top of

I presumed you could queue up a bunch of these for approval, right? With covector, we were sequentially publishing considering that, and I presumed you could push a bunch for approval. Might need a dirty publish, but would be fine in this context.

Yes, but because you have to manually click the button right now it means that there is a race condition between somebody installing latest and you actually approving all of the packages. This is why you have to do it in topological order, technically.

The ideal would be the npm knows these go together, and you can queue them such that the registry will approve them as a transaction, or in order.

There’s always a delay in the current workflow because you have to manually approve them. I replied with more details in the other part of the thread.