opticdev / optic

OpenAPI linting, diffing and testing. Optic helps prevent breaking changes, publish accurate documentation and improve the design of your APIs.
https://useoptic.com
MIT License
1.36k stars 83 forks source link

downgrade typebox #2639

Closed niclim closed 10 months ago

niclim commented 10 months ago

🍗 Description

What does this PR do? Anything folks should know?

The binary build was broken because 0.32.0 typebox uses the exports field in package.json to build support for ESM, but pkg does not respect it https://github.com/vercel/pkg/issues/1873

📚 References

Links to relevant docs (Notion, Twist, GH issues, etc.), if applicable.

👹 QA

How can other humans verify that this PR is correct?

notnmeyer commented 10 months ago

we've seen enough "X broke the binaries" issues that im feeling extra motivated to get some sort of testing around them. annoyingly (and my fault), we dont have an atomic release process. the binaries and container image wait for the npm packages to release first, then the binaries start. its a remnant of how things were added on over time.

what would be great is building all the artifacts first, doing whatever verification, and then publishing everything.

@niclim was this failing during optic run? we could do something like https://github.com/opticdev/bookstore-example/blob/main/.github/workflows/optic.yml between building the binaries and publishing them. that won't do anything for atomicity, but could at least prevent us from pushing broken binary builds.