Skip to content

Commit

Permalink
Update announcement post
Browse files Browse the repository at this point in the history
  • Loading branch information
kylewlacy committed Jun 6, 2024
1 parent c1bfcf7 commit c517286
Showing 1 changed file with 3 additions and 5 deletions.
8 changes: 3 additions & 5 deletions src/content/blog/announcing-brioche.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,8 @@ The Nix community has recently [been going through Something](https://lwn.net/Ar

[Tangram](https://www.tangram.dev/) is another package manager that has a lot of overlap with Brioche: it's heavily Nix-inspired, it uses TypeScript for build scripts, it's written in Rust, and generally Brioche build scripts look pretty similar to Tangram build scripts. At the time of writing, Tangram hasn't yet been released, but it's due to release very soon.

The similarities between Tangram and Brioche aren't a coincidence: I worked for Tangram, Inc. starting in October 2022 to April 2023, when I was fired (I felt I was fired unfairly, but this isn't the time or place for that story). I had been working on Brioche before my time there, and I decided to resume it some time after I was fired.
The similarities between Tangram and Brioche aren't a coincidence: I worked for Tangram, Inc. starting in October 2022 to April 2023, when I was fired (I felt this was an unfair decision, but I'm not here to tell that story). I had been working on Brioche before my time there, and I decided to resume it some time after I was no longer employed by Tangram.

There were design decisions made at Tangram that I thought worked really well, and some I thought didn't work so well, so I simply incorporated what I learned at Tangram into the current iteration of Brioche. I think it's fair to say that Brioche is, ethically, a fork of Tangram, even though haven't used any code from Tangram directly (although I am still using some prebuilt static Busybox/Dash/env binaries that Tangram built/published). This is also why the [Brioche license](https://github.com/brioche-dev/brioche/blob/2dd8b881b68adb090c5115e245c3dbc1ee605e6c/LICENSE.md) includes a copyright notice from Tangram.
On reflection, I felt there were some parts of Tangram's design that would work well for the goals I had for Brioche, and some that didn't align with my goals[^1], so I simply incorporated what I learned at Tangram into the current iteration of Brioche. I think it's fair to say that Brioche is, ethically, a fork of Tangram, even though haven't used any code from Tangram directly (although I am still using some prebuilt static Busybox/Dash/env binaries that Tangram built/published). This is also why the [Brioche license](https://github.com/brioche-dev/brioche/blob/2dd8b881b68adb090c5115e245c3dbc1ee605e6c/LICENSE.md) includes a copyright notice from Tangram. Brioche was work-in-progress well before my time at Tangram, Inc. but I wanted to acknowledge that Tangram was the source for several design decisions I made in Brioche.

So, why build Brioche rather than just using Tangram when it comes out? Basically, my time at Tangram, Inc. led me to believe pretty strongly that Tangram hits _most_ of what I want from a package manager, but I don't believe it hits _everything_ I have in mind for Brioche (and vice versa, there certainly will be things Tangram can do that Brioche won't be able to do and aren't part of my long-term goals for the project). Said another way, I think both Tangram and Brioche have their own goals and will have their own niches to fill.

I also chose to start from a fresh codebase rather than forking. I felt that starting from scratch would let me re-evaluate some fundamental design decisions. Even though the up-front cost was higher, it also let me iterate faster in the long-run.
[^1]: In an earlier version of this post, I felt I worded my feelings about Tangram's design decisions poorly. I had said that I thought there were elements of Tangram's design that didn't work as well, but I should've clarified that I meant _in the context of my goals for Brioche_ specifically. I've tweaked some sections where I talked about Tangram, and my apologies for anyone that walked away with a different impression on Tangram after reading the first version of this article.

0 comments on commit c517286

Please sign in to comment.