Method: MyPrecious::PyPackageInfo#recommended_version
- Defined in:
- lib/myprecious/python_packages.rb
#recommended_version ⇒ Object
Version number recommended based on stability criteria
May return nil if no version meets the established criteria
225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 |
# File 'lib/myprecious/python_packages.rb', line 225 def recommended_version return nil if versions_with_release.empty? return @recommended_version if defined? @recommended_version orig_time_horizon = time_horizon = \ Time.now - (MIN_RELEASED_DAYS * ONE_DAY) horizon_versegs = nil versions_with_release.each do |vn, rd| if vn.kind_of?(Version) horizon_versegs = nonpatch_versegs(vn) break end end versions_with_release.each do |ver, released| next if ver.kind_of?(String) || ver.prerelease? return (@recommended_version = current_version) if current_version && current_version >= ver # Reset the time-horizon clock if moving back into previous patch-series if (nonpatch_versegs(ver) <=> horizon_versegs) < 0 time_horizon = orig_time_horizon end if released < time_horizon && version_reqs.all? {|r| r.satisfied_by?(ver, strict: false)} return (@recommended_version = ver) end time_horizon = [time_horizon, released - (MIN_STABLE_DAYS * ONE_DAY)].min end return (@recommended_version = nil) end |