diff --git a/src/blog/2024/stupid-lockfile-tricks/README.md b/src/blog/2024/lockfiles-are-trash/README.md similarity index 99% rename from src/blog/2024/stupid-lockfile-tricks/README.md rename to src/blog/2024/lockfiles-are-trash/README.md index d3a2a25..8c07020 100644 --- a/src/blog/2024/stupid-lockfile-tricks/README.md +++ b/src/blog/2024/lockfiles-are-trash/README.md @@ -1,10 +1,10 @@ --- layout: article -title: "Stupid Lockfile Tricks" +title: "Lockfiles Are Trash" serif: true publishDate: "2024-02-15T19:35:38.818Z" published: false -description: "Stupid lockfile tricks and some history." +description: "Lockfiles are install receipts. Receipts are trash and therefore so are lockfiles." image: ./img/og.jpeg --- diff --git a/src/blog/2024/stupid-lockfile-tricks/img/artifact.png b/src/blog/2024/lockfiles-are-trash/img/artifact.png similarity index 100% rename from src/blog/2024/stupid-lockfile-tricks/img/artifact.png rename to src/blog/2024/lockfiles-are-trash/img/artifact.png diff --git a/src/blog/2024/stupid-lockfile-tricks/img/npm-5.png b/src/blog/2024/lockfiles-are-trash/img/npm-5.png similarity index 100% rename from src/blog/2024/stupid-lockfile-tricks/img/npm-5.png rename to src/blog/2024/lockfiles-are-trash/img/npm-5.png diff --git a/src/blog/2024/stupid-lockfile-tricks/img/og.png b/src/blog/2024/lockfiles-are-trash/img/og.png similarity index 100% rename from src/blog/2024/stupid-lockfile-tricks/img/og.png rename to src/blog/2024/lockfiles-are-trash/img/og.png diff --git a/src/blog/2024/stupid-lockfile-tricks/img/sindre.png b/src/blog/2024/lockfiles-are-trash/img/sindre.png similarity index 100% rename from src/blog/2024/stupid-lockfile-tricks/img/sindre.png rename to src/blog/2024/lockfiles-are-trash/img/sindre.png diff --git a/src/blog/2024/stupid-lockfile-tricks/img/updates.png b/src/blog/2024/lockfiles-are-trash/img/updates.png similarity index 100% rename from src/blog/2024/stupid-lockfile-tricks/img/updates.png rename to src/blog/2024/lockfiles-are-trash/img/updates.png diff --git a/src/blog/2024/stupid-lockfile-tricks/img/yarn-intro.png b/src/blog/2024/lockfiles-are-trash/img/yarn-intro.png similarity index 100% rename from src/blog/2024/stupid-lockfile-tricks/img/yarn-intro.png rename to src/blog/2024/lockfiles-are-trash/img/yarn-intro.png diff --git a/src/blog/2024/on-monorepos/README.md b/src/blog/2024/on-monorepos/README.md new file mode 100644 index 0000000..002d42a --- /dev/null +++ b/src/blog/2024/on-monorepos/README.md @@ -0,0 +1,23 @@ +--- +layout: article +title: "Thoughts on monorepos" +serif: true +publishDate: "2024-05-11T21:53:29.639Z" +published: false +description: "I finally came around to monorepos. Here is what I think about them." +image: ./img/og.jpeg +--- + +I've long been cool to the idea of monorepos. I dislike almost every quality about then and find working in and around them tedious and full of additional challenges that are never acknowledged by those that advocate for them, especially when used in open source library work. +Recently I have come around to the idea of their use under certain specific circumstances: + +When you need to split a single process into two or more individual processes and need to share code between them, a monorepo workspace streamlines a workflow to facilitate development on shared code living between two independent targets. +Additionally, the shared code should generally lack value outside of this shared context (no need to publish discrete versions), otherwise it may be beneficial to develop it as a standalone module. + +In effect, monorepo workspaces provide a similar workflow to npm modules or private npm modules, without the need to discretely version the shared portion of code. +This doesn't come without cost though. + +Monorepos introduce a ton of additional configuration overhead. +Testing and deploying is complicated by multiplexing configuration for multiple targets into a single repo. In addition to the performance overhead of doing "everything in one" repo, working in a single repo tends to facilitate the illusion that all changes deploy atomically. +This is of course not the case with 2 or more processes. +Its key to not forget that you are still working in a distributed environment, as well as the nuances around that during deploy ordering and whatnot. diff --git a/src/blog/2024/on-monorepos/img/artifact.png b/src/blog/2024/on-monorepos/img/artifact.png new file mode 100644 index 0000000..f5cc825 --- /dev/null +++ b/src/blog/2024/on-monorepos/img/artifact.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de6b188ed05521b9451bb5d59f7e241a035ced6a90f0ff60a0500ce18aa9e2fd +size 35093 diff --git a/src/blog/2024/on-monorepos/img/npm-5.png b/src/blog/2024/on-monorepos/img/npm-5.png new file mode 100644 index 0000000..f0b5c6a --- /dev/null +++ b/src/blog/2024/on-monorepos/img/npm-5.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77da94a6ae9d2335f5492cb9276257e69dcdf1f19e1ff5e97c1e48ed02975a18 +size 589311 diff --git a/src/blog/2024/on-monorepos/img/og.png b/src/blog/2024/on-monorepos/img/og.png new file mode 100644 index 0000000..65b496b --- /dev/null +++ b/src/blog/2024/on-monorepos/img/og.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:822ab3d514fe6c718a7092f3d95a07885845cb49d949ad3ed375be1a33345d62 +size 87499 diff --git a/src/blog/2024/on-monorepos/img/sindre.png b/src/blog/2024/on-monorepos/img/sindre.png new file mode 100644 index 0000000..9d95fdb --- /dev/null +++ b/src/blog/2024/on-monorepos/img/sindre.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bcf9d6224b62660b51f805ae87c5bef3bc7cce2c1b6521287e6cd0e4766e89c9 +size 57933 diff --git a/src/blog/2024/on-monorepos/img/updates.png b/src/blog/2024/on-monorepos/img/updates.png new file mode 100644 index 0000000..02f77f8 --- /dev/null +++ b/src/blog/2024/on-monorepos/img/updates.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6663cf4d2de7408b4273c26a3d3f41f602b8fd39ca0e668f120d35fc83c00430 +size 468892 diff --git a/src/blog/2024/on-monorepos/img/yarn-intro.png b/src/blog/2024/on-monorepos/img/yarn-intro.png new file mode 100644 index 0000000..28712a4 --- /dev/null +++ b/src/blog/2024/on-monorepos/img/yarn-intro.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb3345c5b218587a75b3be2736c3e3b481d6542e96910eacb63a918dc97b438e +size 244503