Why has the package manager not been added to the official language overview?

Hey! Was wondering if there was a reason why the package manager released in 0.11 hasn’t been mentioned in the official language overview? Currently if people search “zig package manager” they mainly get third-party articles covering a wide range of topics to do with package management in zig, some not relevant anymore.

I know the package manager is early, but the official overview states that “It’s planned to have a Zig Package Manager, but it’s not done yet.” I think this can be quite confusing for new people looking to understand the language. The only place on the official website that discusses the package manager is the 0.11 release notes.

The package manager is a working feature, so was wondering if there was a reason why there is no place on the website discussing it?

Thank you!


Hi @Robertismo, welcome. The reason is that I wrote that document a few years ago, and I haven’t updated it yet :slight_smile:


@andrewrk Oh wow. Is it currently open to contributions?

1 Like

Sure, feel free to open a pull request to GitHub - ziglang/www.ziglang.org.


I personally also think that it’s worth focusing on communication about this feature only once it has the the main features that people expect from it. The package manager currently doesn’t do version resolution and people will feel cheated if we claim we have a package manager, and then this stuff is not implemented.

Sure we could add all the explanations of the case, but people will still misinterpret and have demands etc. In practice it’s better to have people more deeply involved in the community use the feature and then write about it once it reaches a more complete state, IMO.

Keep also in mind that when it comes to bulding software Zig is extremely complete already, and so that’s the kind of expectations that outsiders will have if we announce more loudly that we have a package manager.

That said, updating the overview isn’t an announcement so my words aren’t meant to discourage changing it, just trying to provide perspective of the dynamics of public communication based on my experience.


I think it would help to be careful and clear with terminology.

What zig has is toolchain and language support for packages. This well defined, clearly useful, and pretty much complete. It would be great if this was clearly documented somewhere.

What zig doesn’t have is a package database and tooling to manage package versioning. (upgrades, etc.) This is not so easily defined and it’s not clear (to me at least) if such a thing should or even could be part of the core language.


But would a command that downloads dependencies from an URI and adds them to a mod file make sense? Is there such a thing?

I’m not sure what you mean. That sounds like zig fetch --save though, which already exists.

1 Like