Skip to content

ability to fetch dependencies via mercurial protocol #14297

@andrewrk

Description

@andrewrk

Extracted from #14265.

zig build should support fetching via an URL like this:

    .url = "hg+ssh://[email protected]/~hyozd/serialplot#fadfbeea9d5cbed90eb79b66878ac029de2953c9",

and this:

    .url = "hg+https://hg.sr.ht/~hyozd/serialplot#fadfbeea9d5cbed90eb79b66878ac029de2953c9",

Note that the fragment is used to fetch a particular revision. I suppose the fragment could be omitted, meaning to fetch the tip, however, this would be not advised since the hash would be wrong as soon as another revision is pushed. Ideally, if the fragment is omitted then an error would be emitted telling the user to add the fragment, giving them a copy+pasteable snippet, or perhaps even editing the manifest file on the user's behalf.

Whether this is built-in or ends up being closed and relying on a third-party to provide a fetch plugin (#14294) will be determined based on the complexity of implementing and maintaining the mercurial protocol.

I think the first step would be to implement this as a third-party fetch plugin, and then we can evaluate whether it can be upstreamed and become a builtin.

Related:

Metadata

Metadata

Assignees

No one assigned

    Labels

    contributor friendlyThis issue is limited in scope and/or knowledge of Zig internals.enhancementSolving this issue will likely involve adding new logic or components to the codebase.zig build systemstd.Build, the build runner, `zig build` subcommand, package management

    Type

    No type

    Projects

    Status

    Fetching

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions