Immutability is key to package management

Since the beginning of its existence, Azure Artifacts has taken a firm stance on the immutability of the packages we store. We get a lot of questions about that stance, esp. from engineers newer to package and artifact management.

The 409 Conflict error is a common way engineers discover the immutability requirements of Azure Artifacts.

In this post, I’ll provide some history and stories from within Microsoft that led us to take such a firm stance, cover how you can avoid the issues we ran into, and talk about some of the options we’ve considered to enable new workflows that are today blocked by the immutability guarantee.

Continue reading “Immutability is key to package management”


Versioning and releasing NuGet packages

The VSTS Package Management team gets a fair amount of questions about the process of versioning, testing, and releasing NuGet packages, especially in the context of continuous integration builds that frequently produce new packages. We have several features that can help you create a CI/CD pipeline that produces, verifies, and releases packages. In this post, I’ll review some of the “obvious” solutions that turn out to be quite tricky and also details some recommended solutions.

Continue reading “Versioning and releasing NuGet packages”

Terminology in the workplace

A team member swung by my desk today shortly after I used the word ‘jipped’ in a team chat, and explained to me that the term has racist origins. A few thoughts:

  1. They were right; I learned something today. I learned the phrase growing up and I don’t think I’ve ever known or thought about the history of it.
  2. I’m proud to work in a team and a larger culture where (a) they felt the ability to come to me with feedback and (b) I was able to learn, apologize, and choose better terms without having to save face. I’m sometimes a bit skeptical of “growth mindset” but this was a small place to apply it and become better.
  3. Microsoft Teams (where this was posted) has the ability to edit messages, so I changed to a better word, but it felt odd to just remove the original one. I ended up also posting a quick thank-you to the team member who talked to me. I was a bit concerned this could come off as showmanship, but it seemed important to publicly acknowledge what I learned.
Posted in D&I