lib/bundler/definition.rb in bundler-2.2.34 vs lib/bundler/definition.rb in bundler-2.3.0
- old
+ new
@@ -4,10 +4,15 @@
module Bundler
class Definition
include GemHelpers
+ class << self
+ # Do not create or modify a lockfile (Makes #lock a noop)
+ attr_accessor :no_lock
+ end
+
attr_reader(
:dependencies,
:locked_deps,
:locked_gems,
:platforms,
@@ -273,10 +278,12 @@
def groups
dependencies.map(&:groups).flatten.uniq
end
def lock(file, preserve_unknown_sections = false)
+ return if Definition.no_lock
+
contents = to_lock
# Convert to \r\n if the existing lock has them
# i.e., Windows with `git config core.autocrlf=true`
contents.gsub!(/\n/, "\r\n") if @lockfile_contents.match("\r\n")
@@ -285,11 +292,11 @@
locked_major = @locked_bundler_version.segments.first
current_major = Gem::Version.create(Bundler::VERSION).segments.first
if updating_major = locked_major < current_major
Bundler.ui.warn "Warning: the lockfile is being updated to Bundler #{current_major}, " \
- "after which you will be unable to return to Bundler #{@locked_bundler_version.segments.first}."
+ "after which you will be unable to return to Bundler #{locked_major}."
end
end
preserve_unknown_sections ||= !updating_major && (Bundler.frozen_bundle? || !(unlocking? || @unlocking_bundler))
@@ -370,10 +377,15 @@
added.concat new_deps.map {|d| "* #{pretty_dep(d)}" } if new_deps.any?
deleted.concat deleted_deps.map {|d| "* #{pretty_dep(d)}" } if deleted_deps.any?
both_sources = Hash.new {|h, k| h[k] = [] }
@dependencies.each {|d| both_sources[d.name][0] = d }
- locked_dependencies.each {|d| both_sources[d.name][1] = d }
+
+ locked_dependencies.each do |d|
+ next if !Bundler.feature_flag.bundler_3_mode? && @locked_specs[d.name].empty?
+
+ both_sources[d.name][1] = d
+ end
both_sources.each do |name, (dep, lock_dep)|
next if dep.nil? || lock_dep.nil?
gemfile_source = dep.source || sources.default_source