{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreignfvjtwkzj6vnykpxleqq4kozrl2zvspuypyhlmjuionzwp6p5gm",
"uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mgihkdcunzd2"
},
"path": "/t/fork-basement-as-baseplate/12415?page=4#post_75",
"publishedAt": "2026-03-07T11:38:29.000Z",
"site": "https://discourse.haskell.org",
"tags": [
"@philh",
"@hilph"
],
"textContent": "hasufell:\n\n> You could do it another way and say global/public names are just symlinks maintained by a committee or something. But at that point, I’d rather not upload my packages to hackage anymore. If they decide to put one of my packages into global namespace with my name on it, then change it in a couple of years to something worse, this could indeed damage my own reputation as a maintainer.\n\nHackage admins can already choose to do this. Right now they say “we won’t do this”. If they instead said “we’ll only do this in circumstances X, Y or Z”, where you’re confident you won’t make those circumstances arise, would you trust them less?\n\nI think that we fundamentally have to choose one of two options:\n\n 1. Maintainers can say “I don’t want to maintain this any more and no one else is allowed to either”, and everyone who was using their package needs to update.\n 2. Someone gets to override maintainers on that matter, and then maintainers and users need to trust that person (or group) to make good decisions on when to override them.\n\n\n\nI think we can find ways to make (1) less of a problem, like “this package is actually provided by this other package now”. But “everyone who uses a package depending on `basement` needs to put “`basement` is provided by `baseplate`\" in their cabal.project/stack.yaml, until the whole ecosystem has caught up” is still not great.\n\n(2) feels to me like a reasonable amount of trust to extend to the people who already maintain a bunch of critical infrastructure.\n\nThat said, with my proposal from above where I get both `@philh/acme-missiles` and a global `acme-missiles` pointing at it (unless that already exists), then I’d be fine with maintainers saying “actually I don’t want the global one”, and then users have to point directly at the namespaced one.\n\n(What if I do that, and then someone forks my package and grabs the global name `acme-missiles` pointing at `@hilph/acme-missiles`? Then he could choose to do nothing with his fork except keep it up to date with mine, and we’re back in basically the same situation. Seems fine to me! Just like it would be fine if someone had forked `basement` as `committee-basement` years ago, and done nothing except keep the fork up to date with `basement`, right up until Vincent had stepped away.)",
"title": "Fork `basement`? As `baseplate`?"
}