Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Simplify the build with vendoring

Open
#541 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Refactor
Clarity
Mostly clear
Activity status
Stale
Tech stack
ocaml

Research direction

Start by reading the build setup and the prerequisite issues #542 and #539, then review the opam monorepo approach. The work includes vendoring DNS dependencies, switching from Uwt to Luv, updating TCP/IP stack interfaces, and initializing the monorepo. Done means the project can be cloned and built with dune build without the current opam, network, or Cygwin dependencies.

Written by the indexing model from the issue text.

Description

The current build is complex because it relies on

  • opam for package selection and installation
  • the network for downloading packages
  • Cygwin on windows for build scripts
  • out of date dependency versions

In particular the Windows CI is broken due to a Cygwin bug.

The build could be simplified if we switched to a vendor model with opam monorepo. We would be able to build by git clone and dune build (assuming an OCaml compiler is installed)

To achieve this we need to

  • update our DNS dependencies to use dune and vendor: #542
  • switch from Uwt to Luv for libuv: #539
  • update to the latest TCP/IP stack interfaces
  • initialise the monorepo
Dominant language
OCaml
Stars
1.2k
Forks
214
PR merge metrics
No merged PRs in 30d

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from moby/vpnkit

All issues in moby/vpnkit

Similar issues

More Build System issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.