Support for Multiple Operating Systems, without Defaults or Boilerplate

Company
Jul 16, 2025
Dan Manges
Support for Multiple Operating Systems, without Defaults or Boilerplate

We recently shipped support for specifying the operating system used for RWX runs.

Interface Considerations

When designing the feature, we had to decide how to approach the configuration.

Should the operating system be required in the configuration? We like keeping our configuration syntax as minimal as possible, so we wanted to omit it. We didn't like the idea of having to type boilerplate lines of configuration in every run definition.

However, without specifying, how would we choose which operating system to run? We could always run the latest, but this would run the risk of runs breaking whenever we released newer operating systems. We care a lot about making sure runs never spontaneously break, so we didn't like the idea of ever automatically rolling out a new version.

There are techniques that dev tool companies use to mitigate this problem, such as sending out advanced notices with recommendations to test, or configuring a default value out-of-band, such as in the web UI for the account. We considered those approaches undesirable.

Config Injection with the CLI

After some contemplation, Tommy suggested having the CLI automatically inject the base OS configuration. It's the best of both worlds.

Since engineers are already testing RWX run definitions using the CLI, we can make the operating system required without requiring people to enter it themselves.

Automatic configuration is the best technique to have explicit values without requiring boilerplate.

Example

Start with a config file without an operating system specified

tasks.yml
1
tasks:
2
- key: hello-world
3
run: echo "hello world"

Run the file

shell
rwx run --file tasks.yml --open

Have the base operating system automatically configured

tasks.yml
1
base:
2
os: ubuntu 24.04
3
tag: 1.1
4
5
tasks:
6
- key: hello-world
7
run: echo "hello world"

Demo

Never miss an update

Get the latest releases and news about RWX and our ecosystem with our newsletter.

Share this post

Enjoyed this post? Pleas share it on your favorite social network!

Related posts

Read more on updates and advice from the RWX engineering team

See all posts
Automatically Creating GitHub Pull Requests
Company

Automatically Creating GitHub Pull Requests

We recently shipped an RWX package to create GitHub pull requests. It's the fastest and easiest way to automate opening PRs.

Jul 15, 2025
Read now
Dave Reed Joins RWX as Chief Operating Officer
Company

Dave Reed Joins RWX as Chief Operating Officer

Dave Reed has joined RWX as Chief Operating Officer. He has been advising us since last summer, watching us grow from $0 to landing $100,000 ARR customers.

Jul 14, 2025
Read now