The following dependencies must be installed on your system before you can build the installer.
sudo dnf install golang-bin gcc-c++ zip
If you need support for libvirt destroy, you should also install libvirt-devel
.
We follow a hard flattening approach; i.e. direct and inherited dependencies are installed in the base vendor/
.
Dependencies are managed with Go Modules but committed directly to the repository.
We require at least Go 1.22.
- Add or update a dependency with
go get <dependency>@<version>
. - If you want to use a fork of a project or ensure that a dependency is not updated even when another dependency requires a newer version of it, manually add a replace directive in the go.mod file.
- Run
go mod tidy
to tidygo.mod
and updatego.sum
, then commit the changes. - Run
go mod vendor
to re-vendor and then commit updated vendored code separately.
If your vendor bump touched github.com/openshift/api
, also run go generate ./pkg/types/installconfig.go
to update data/data/install.openshift.io_installconfigs.yaml
.
This guide is a great source to learn more about using go mod
.
For the sake of your fellow reviewers, commit vendored code separately from any other changes.