Comment by jiveturkey
2 years ago
> dependencies vendored
did you mean versioned? if you really meant vendored, could you elaborate?
I don't know about brew, but MacPorts wasn't ready when Sonoma came out. So that's a bit of a bummer for early adopter types, or folks that need to develop their own app against beta macOS and depend on ports for their setup.
Vendoring means to bundle dependencies into a project directly (often this means copying source code and using/maintaining the copy) rather than from some other source (other packages, OS, package repo, etc). Here's an article from LWN that talks about it with a real world example: https://lwn.net/Articles/842319/
Early adopters can upgrade MacPorts before it officially supports the latest OS by building from source if they have the patience and are willing to debug any broken ports.
Isn't that the point of using a package manager to avoid the compiling from source and manually handling the dependency tree? Seems the better advice would be to wait for MacPorts is ready before upgrading if the software from it is that critical
No? Ports (and thus MacPorts) is source based. For FreeBSD, pkg provides binaries for ports, but is separate.
>Isn't that the point of using a package manager to avoid the compiling from source and manually handling the dependency tree?
The point of using a package manager is to avoid "manually handling the dependency tree". Whether you build from source or not is orthogonal.
2 replies →
vendored just means copying the upstream code dependencies into your project.
Golang, where it is (or used to be) a common practice, even has special tooling for this, and dedicates the "vendor" directory to that.