-
Notifications
You must be signed in to change notification settings - Fork 315
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[bldr-build] Resolve and solve package dependencies once. #116
Conversation
This change changes the behavior when referring to other package dependencies in a Plan. Packages will be "resolved" early in the building of a Plan, occurring after `bldr_begin()` and before `donwnload()`. Here being "resolved" simply means that a precise version of a package will be selected (and possibly installed if not present on disk) as the only version to be used by a Plan. Previously, `bldr-build` used the `latest_package()` function to get the approximate behavior, but there are potential races that could occur as new packages are installed by other processes. This modified strategy is to use the new `pkg_path_for()` Plan authors whenever previously using `latest_package()`. This has an added benefit of guarenteeing that the Plan will get a valid result everytime. If a Plan attempts to reference another package's path (via `pkg_path_for()`) which is not in the `$pkg_deps` or `$pkg_build_deps` arrays, this will abort the package build with an error message on standard error.
This PR has passed 'Verify' and is ready for review and approval! |
REPO := http://159.203.235.47 | ||
|
||
bldr: gpg | ||
@for pkg in glibc libgcc zlib cacerts busybox patchelf libgpg-error libassuan gnupg gpgme openssl runit bldr; do \ | ||
@for pkg in $(BLDR_PKGS); do \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice cleanup.
I vetted these changes by running master's |
@delivery verify |
Failed to unknown change: cd77f944-1de2-456b-aa62-437657392daa |
@delivery approve |
Merged change cd77f944-1de2-456b-aa62-437657392daa From review branch bldr-build-resolve-deps-once into master Signed-off-by: adam <[email protected]>
Change: cd77f944-1de2-456b-aa62-437657392daa approved by: @adamhjk |
This PR has passed 'Acceptance' and is ready to be delivered! |
Move ServiceBind implementation from Habitat repo
This change changes the behavior when referring to other package
dependencies in a Plan.
Packages will be "resolved" early in the building of a Plan, occurring
after
bldr_begin()
and beforedonwnload()
. Here being "resolved"simply means that a precise version of a package will be selected (and
possibly installed if not present on disk) as the only version to be
used by a Plan. Previously,
bldr-build
used thelatest_package()
function to get the approximate behavior, but there are potential races
that could occur as new packages are installed by other processes.
This modified strategy is to use the new
pkg_path_for()
Plan authorswhenever previously using
latest_package()
. This has an added benefitof guaranteeing that the Plan will get a valid result everytime. If a
Plan attempts to reference another package's path (via
pkg_path_for()
)which is not in the
$pkg_deps
or$pkg_build_deps
arrays, this willabort the package build with an error message on standard error.