Patrik Svensson

This is my blog, where I write about stuff that interests me such as .NET, Rust, CI/CD and technology in general. I am a husband and a father, and I enjoy contributing to Open Source projects.

An introduction to Spectre.Cli

I've been writing a lot of CLI apps, both at work and in my free time, and there's never really been a command line parsing framework that has fitted my needs. While being either too complex or too simple, it's always nagged me that I need to write so much code myself. What I wanted was a way to be declarative about my commands, options and arguments while still allowing composition of them.

Debugging Rust on Windows using Visual Studio Code

I recently wanted to debug a Rust program on Windows that I had written, and was struggling with how to get it to work. Since there was quite a lot of hoops to jump through to get it to work, I though I should share it with other people as well. I've written this blog post from memory and I'm far from an expert in LLVM or Rust, so if you see something strange here then let me know.

Calculating product versions for MSI packages compatible with semantic versioning

In my new project Jarvis I wanted to start generate preview versions of the MSI packages, but one problem with that is that MSI requires the product version to be in the format Major.Minor.Patch which isn't compatible with semantic verisoning. We CAN use the Major.Minor.Patch.Revision format as a product version, but that won't work with major upgrades. An example of this would be 1.2.3-alpha45 which would require a different version number than 1.2.3-alpha46.