Skip to content

Pin the four dependency branches left floating in the lockfiles - #4244

Open
tas50 wants to merge 1 commit into
chef:mainfrom
tas50:fix/pin-lockfile-branches
Open

Pin the four dependency branches left floating in the lockfiles#4244
tas50 wants to merge 1 commit into
chef:mainfrom
tas50:fix/pin-lockfile-branches

Conversation

@tas50

@tas50 tas50 commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Six lockfile entries across the three services record a branch instead of a commit:

Service Dep Repo Branch
bookshelf erlcloud chef/erlcloud CHEF-11677/CHEF-12498/lbaker
bookshelf erlsom chef/erlsom integer_long_string_probs2
bookshelf mini_s3 chef/mini_s3 CHEF-11677/CHEF-12498/lbaker
bookshelf sqerl chef/sqerl shahid/sqerl-erl27.3-pg16.1
oc_bifrost sqerl chef/sqerl shahid/sqerl-erl27.3-pg16.1
oc_erchef sqerl chef/sqerl shahid/sqerl-erl27.3-pg16.1

A branch in rebar.config is a statement of intent. A branch in rebar.lock defeats the point of the lock. Two builds of the same chef-server commit can embed different dependency code with no record of either, and the build breaks outright if one of these branches is force-pushed, renamed or deleted.

Three of the four are personal or ticket branches rather than a maintained line, and sqerl is pinned this way in all three services.

What this changes

Each entry is pinned to the commit its branch points at today, so this records what is already being built rather than moving anything:

Dep Commit Last commit
erlcloud 398d67ecfe6d398a444d42ab9e94e8b1df0171a5 2024-11-26
erlsom 131e660ee39254a58b75075e07dfd742f445bfce 2013-04-06
mini_s3 aa206d4d5a8380aff68629b46c15b87931e5c801 2025-07-27
sqerl bc1fbb57df0ce1c3d7aeb8733c1ffa2b8ebbca2c 2026-05-08

The rebar.config entries are deliberately left alone: the lock governs resolution, and changing the declared branches is a separate decision about which line each dependency should track.

Verified

In erlang:26 containers, from a clean _build:

  • bookshelf (carries all four dependencies) compiles.
  • oc_bifrost compiles, and fetches sqerl at exactly bc1fbb57df0ce1c3d7aeb8733c1ffa2b8ebbca2c.
  • No lockfile entry now records a branch.

Six lockfile entries across the three services record a branch instead
of a commit:

  bookshelf    erlcloud  chef/erlcloud  CHEF-11677/CHEF-12498/lbaker
  bookshelf    erlsom    chef/erlsom    integer_long_string_probs2
  bookshelf    mini_s3   chef/mini_s3   CHEF-11677/CHEF-12498/lbaker
  bookshelf    sqerl     chef/sqerl     shahid/sqerl-erl27.3-pg16.1
  oc_bifrost   sqerl     chef/sqerl     shahid/sqerl-erl27.3-pg16.1
  oc_erchef    sqerl     chef/sqerl     shahid/sqerl-erl27.3-pg16.1

A branch in rebar.config is a statement of intent; a branch in
rebar.lock defeats the point of the lock. Two builds of the same
chef-server commit can embed different dependency code with no record of
either, and the build breaks outright if one of these branches is
force-pushed, renamed or deleted. Three of the four are personal or
ticket branches rather than a maintained line, and sqerl is pinned this
way in all three services.

Each entry is pinned to the commit its branch points at today, so this
records what is already being built rather than moving anything:

  erlcloud  398d67ecfe6d398a444d42ab9e94e8b1df0171a5  (2024-11-26)
  erlsom    131e660ee39254a58b75075e07dfd742f445bfce  (2013-04-06)
  mini_s3   aa206d4d5a8380aff68629b46c15b87931e5c801  (2025-07-27)
  sqerl     bc1fbb57df0ce1c3d7aeb8733c1ffa2b8ebbca2c  (2026-05-08)

The rebar.config entries are left alone: the lock is what governs
resolution, and changing the declared branches is a separate decision
about which line each dependency should track.

Verified in erlang:26 containers: bookshelf (all four dependencies) and
oc_bifrost both compile from a clean _build, and oc_bifrost fetches
sqerl at exactly bc1fbb57df0ce1c3d7aeb8733c1ffa2b8ebbca2c. No lockfile
entry now records a branch.

Signed-off-by: Tim Smith <tim@mondoo.com>
@tas50
tas50 requested review from a team as code owners September 7, 2026 17:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant