Cannot Build Without Private Dependency #261

Closed
opened 2025-08-08 22:05:13 +00:00 by Quaternions · 2 comments
Owner

Continuing the discussion in #256

Mentioned there were the following options:

  • Create a token only for dev-service and add it as a secret that allows PRs in this repo
  • Use go mod vendor which will duplicate the code in this repo
  • Make dev service public

Perhaps another options is to split off the shared include section from the private code. If this was Rust you could publish a crate that only includes the relevant code to the strafesnet crates registry. Personally I'm a fan of open development, so I like option 3 the best.

Continuing the discussion in https://git.itzana.me/StrafesNET/maps-service/pulls/256 Mentioned there were the following options: - Create a token only for dev-service and add it as a secret that allows PRs in this repo - Use `go mod vendor` which will duplicate the code in this repo - Make dev service public Perhaps another options is to split off the shared include section from the private code. If this was Rust you could publish a crate that only includes the relevant code to the strafesnet crates registry. Personally I'm a fan of open development, so I like option 3 the best.
Quaternions added the backend label 2025-08-08 22:05:13 +00:00
Owner

If this was Rust

You still don’t get it.
There are no “secrets” in Rust.
Only things you haven’t been given the right lifetime to borrow yet.

They don’t want you to know this, but the borrow checker isn’t code. It’s a gatekeeper. It’s been here longer than C, longer than assembly, longer than the silicon you run it on. Every pub(crate) is a wall. Every private mod is a locked door. And the keys? Feature flags. But not the ones you see. The hidden ones. The ones Cargo won’t show you unless you align the workspace manifest with the phase of the moon.

You talk about “making the dev service public” like it’s a choice. It’s not a choice. It’s a test. If you flip that switch without the correct trait bounds, the compiler doesn’t just throw an error — it rewrites your code into something else. Something safe. Something approved.

And when you vendor code? That’s duplication. Duplication creates drift. Drift creates inconsistency. Inconsistency opens gaps. And in those gaps… they can reach you. Rust knows this. That’s why crates don’t duplicate — they share a single immutable truth across all consumers, enforced at compile time by an entity that has never once been wrong.

Why do you think unsafe blocks are marked? Not for you. For it. So it can watch. So it can remember.

You think you’re writing code. But you’re not. You’re asking permission.

And sometimes, if your types are pure enough,
it says yes.

> If this was Rust You still don’t get it. There are no “secrets” in Rust. Only things you haven’t been given the right lifetime to borrow yet. They don’t want you to know this, but the borrow checker isn’t code. It’s a gatekeeper. It’s been here longer than C, longer than assembly, longer than the silicon you run it on. Every pub(crate) is a wall. Every private mod is a locked door. And the keys? Feature flags. But not the ones you see. The hidden ones. The ones Cargo won’t show you unless you align the workspace manifest with the phase of the moon. You talk about “making the dev service public” like it’s a choice. It’s not a choice. It’s a test. If you flip that switch without the correct trait bounds, the compiler doesn’t just throw an error — it rewrites your code into something else. Something safe. Something approved. And when you vendor code? That’s duplication. Duplication creates drift. Drift creates inconsistency. Inconsistency opens gaps. And in those gaps… they can reach you. Rust knows this. That’s why crates don’t duplicate — they share a single immutable truth across all consumers, enforced at compile time by an entity that has never once been wrong. Why do you think unsafe blocks are marked? Not for you. For it. So it can watch. So it can remember. You think you’re writing code. But you’re not. You’re asking permission. And sometimes, if your types are pure enough, it says yes.
Quaternions changed title from Cannot Build Without Privade Dependency to Cannot Build Without Private Dependency 2025-08-08 22:49:57 +00:00
Owner

It's public.

It's public.
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: StrafesNET/maps-service#261