改善
Kaizen  · Today I Learned by Ville Säävuori

Weeknotes 2022/18 - Signed GitHub Commits, Deprecating Cypress

The Rust-based Electron alternative, Tauri, is in release candidate status. I want to keep up with its development to be able to compare it to Electron so I created a simple tauri-vue-template that uses Vite for bundling.

In the process I learned how to sign GitHub commits which was really easy to set up using brew (to install GPG) and GPG Suite (to handle the keys and macOS keychain). I also set up git.enableCommitSigning setting in VSCode settings so I’m now automatically signing all the commits I do via VSCode using my GPG key.

Deprecating Cypress.io

I’ve been using Cypress for a long time and I’ve mostly been pretty happy with it. But Cypress has few issues that seem not to go away, it seems to be getting more flakier in CI-environments, and at the same time PlayWright has been maturing very fast so I finally decided to start deprecating Cypress in my projects.

The last straw for me was this rejected PR which was a community-provided patch to add --bail flag to fail fast in CI environments. This is an important feature to save GitHub Action minutes but also unnecessary energy consumption in general. But Cypress authors rejected the change because they wanted to limit this feature to paying customers only. To be perfectly clear: I’m all for having premium features for users who need them, but the Cypress dashboard features are something only bigger teams actually need, and putting these kind of important basic features behind a paywall — especially when the feature would have been provided for free by the community— is not a smart.

PlayWright team don’t need to push a paid product so the community works much better. The tool is also lighter, works much better in CI, and supports all major browser engines which is a big win when you have a complex app.

I do hope Cypress keeps making their product better to keep the other players on their toes but personally I’m now starting to move away from it with projects that aren’t been worked on with a large team.