This week at Sturdy #18This week at Sturdy

Gustav WestlingMay 3, 2022

Hello world! In this newsletter we're sharing some of the biggest updates and new features in Sturdy v1.8, let's get started!

Hey ducklings (that's you, all Sturdy fans!) Sturdy v1.8.0 is just fresh of the compiler and we'd like to share all of the goodies in this new release.

The CHANGELOG contains a condensed list of everything that's new, but in this post we're digging deeper into all of the new features and improvements.

Undo and redo

Behind the scenes, Sturdy has been been operating on "snapshots" for a while now. It's what's powering all of our drafts, and for example powers the automatic store and restore of changes when you're jumping between drafts.

Snapshots are a stored in a linked list, where each draft has a "head" snapshot, that in turn can have a "parent" snapshot (this becomes important later).

Sturdy automatically creates snapshots in the background when you're coding (or really, when we detect changes to files on your filesystem), and when you're doing manual actions to a draft through the UI (such as undoing a file).

The new undo/redo functionality operates entirely on the snapshots, and exposes them to the user.

Undo and redo on Sturdy
Undo and redo in Sturdy (in the upper right corner).

Undoing restores the code changes in the draft to the state as it was of a previous snapshot. And takes just a few milliseconds to run. Clicking undo again, will restore you to an even earlier state. Redoing moves you forward to the state that you recently undid from. I guess that's a long way to describe that we've introduced Ctrl+Z and Ctrl+Y support to Sturdy!

CI/CD on drafts

In v1.7.0 we introduced support for running your automated testing via first-party integrations. In v1.8.0 we're expanding the support for CI/CD over the "Sturdy for GitHub" bridge and are adding support for all CI/CD providers that integrate with GitHub, including GitHub Actions, CircleCI, and more! This works by pushing a the draft to a branch named sturdy-ci-${NAME} to GitHub, and using the push event as the trigger to run the tests.

Sturdy CI/CD via GitHub
How you can integrate any CI/CD provider with Sturdy via Sturdy for GitHub.

The CI/CD documentation has been updated and goes further in-depth about how this works.

Highlights

  • [Improvement] Improved caching of codebase contents, making operations like "undo" and "merge" significantly faster
  • [Improvement] Fixed a data-race where sometimes a change could be imported (from GitHub or other) multiple times (leading to a confusing changelog)
  • [Improvement] Improved reliability when importing extremely large pull requests (+100k lines changed)
  • [Improvement] Better performance when GitHub webhook delivery is slow (added internal handling that does not rely on webhooks)
  • [Improvement] Register the Sturdy app as a handler for the sturdy:// protocol scheme on Linux (App Images, deb, and rpm)
  • [Fix] Improved first time boot performance of the server, and fixed a race condition where sometimes the server did not successfully start the first time.
  • [Fix] Fixed a bug where navigation between drafts could take you to the wrong page
  • [Fix] Fixed a bug where the callback from GitHub after updating permissions for the Sturdy app could take you to an unexpected page
  • [Fix] Fixed a bug where comments on "live" code could sometimes "jump" around

Upgrading our team!

We now have three open positions to come and join our team! You'll get to work on some really cool open-source tech, and have fun while doing it!


Thanks for reading, and until the next post!
— Gustav and team Sturdy

Ready to dive in?Sturdy up your life

Get started with Sturdy today, use it standalone or on top of your existing Git or GitHub setup.

Download now

Pssst, did you know that Sturdy is free and open-source?

Sturdy app screenshot