1
0
mirror of https://github.com/openshift/installer.git synced 2026-02-05 15:47:14 +01:00
Files
installer/docs/dev/dependencies.md
W. Trevor King 4d940ceea6 pkg/destroy/libvirt: Add behind a libvirt_destroy build tag
Docs for Go's build constraints are in [1].  This commit allows folks
with local libvirt C libraries to compile our libvirt deletion logic
(and get a dynamically-linked executable), while release binaries and
folks without libvirt C libraries can continue to get
statically-linked executables that lack libvirt deletion.

I've also simplified the public names (e.g. NewDestroyer -> New),
dropping information which is already encoded in the import path.

Pulling the init() registration out into separate files is at
Abhinav's request [2].

[1]: https://golang.org/pkg/go/build/#hdr-Build_Constraints
[2]: https://github.com/openshift/installer/pull/387#discussion_r221763315
2018-10-01 16:47:11 -07:00

1.7 KiB

Managing Dependencies

Build Dependencies

The following dependencies must be installed on your system before you can build the installer.

Fedora

sudo dnf install golang-bin gcc-c++

If you need support for libvirt destroy, you should also install libvirt-devel.

CentOS, RHEL

sudo yum install golang-bin gcc-c++

If you need support for libvirt destroy, you should also install libvirt-devel.

Go

We follow a hard flattening approach; i.e. direct and inherited dependencies are installed in the base vendor/.

Dependencies are managed with glide but committed directly to the repository. If you don't have glide, install the latest release from https://glide.sh/. We require version 0.12 at a minimum.

The vendor directory is pruned using glide-vc. Follow the installation instructions in the project's README.

To add a new dependency:

  • Edit the glide.yaml file to add your dependency.
  • Ensure you add a version field for the sha or tag you want to pin to.
  • Revendor the dependencies:
rm glide.lock
glide install --strip-vendor
glide-vc --use-lock-file --no-tests --only-code

If it worked correctly it should:

  • Clone your new dep to the /vendor dir and check out the ref you specified.
  • Update glide.lock to include your new package, add any transitive dependencies and update its hash.

For the sake of your fellow reviewers, commit vendored code separately from any other changes.

Tests

See tests/README.md.