Skip to content
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

Unable to discover pre-release version of gem released months ago #4097

Closed
pboling opened this issue Sep 20, 2023 · 16 comments
Closed

Unable to discover pre-release version of gem released months ago #4097

pboling opened this issue Sep 20, 2023 · 16 comments
Assignees

Comments

@pboling
Copy link
Contributor

pboling commented Sep 20, 2023

Describe the problem as clearly as you can

Screenshot 2023-09-20 at 9 52 15 PM

In a gemspec:

spec.add_development_dependency("gemfury", "0.13.0.beta1")

Or in a Gemfile:

gem "gemfury", "0.13.0.beta1"

NOTE: it makes no difference if ~> is added to loosen the constraint.

Did you try upgrading rubygems & bundler?

Yes.

Post steps to reproduce the problem

Run bundle install, or bundle update.

What were you expecting to happen?

I expected the pre-release gem to be found and installed.

What actually happened?

The extra weird thing is that it clearly is seeing other pre-release versions for the same gem. Just not the one that was released in July.

$ bundle update
Fetching gem metadata from https://rubygems.org/..........
Could not find gem 'gemfury (= 0.13.0.beta1)' in rubygems repository https://rubygems.org/ or installed locally.

The source contains the following gems matching 'gemfury':
  * gemfury-0.1.1
  * gemfury-0.2.0.beta1
  * gemfury-0.2.0.beta2
  * gemfury-0.2.0.beta3
  * gemfury-0.2.0
  * gemfury-0.3.0
  * gemfury-0.3.1
  * gemfury-0.3.2
  * gemfury-0.4.0.beta1
  * gemfury-0.4.0.beta2
  * gemfury-0.4.0
  * gemfury-0.4.1
  * gemfury-0.4.2
  * gemfury-0.4.3.rc
  * gemfury-0.4.3
  * gemfury-0.4.4
  * gemfury-0.4.5
  * gemfury-0.4.6
  * gemfury-0.4.7
  * gemfury-0.4.8
  * gemfury-0.4.9
  * gemfury-0.4.10
  * gemfury-0.4.11
  * gemfury-0.4.12
  * gemfury-0.4.14
  * gemfury-0.4.16
  * gemfury-0.4.17
  * gemfury-0.4.18
  * gemfury-0.4.19
  * gemfury-0.4.20.beta1
  * gemfury-0.4.20.beta3
  * gemfury-0.4.20
  * gemfury-0.4.21
  * gemfury-0.4.22
  * gemfury-0.4.23
  * gemfury-0.4.24.beta1
  * gemfury-0.4.24.beta3
  * gemfury-0.4.24.beta4
  * gemfury-0.4.24.beta5
  * gemfury-0.4.25
  * gemfury-0.4.26.beta1
  * gemfury-0.4.26
  * gemfury-0.5.0.beta1
  * gemfury-0.5.0.beta3
  * gemfury-0.5.0
  * gemfury-0.6.0.rc1
  * gemfury-0.6.0
  * gemfury-0.7.0
  * gemfury-0.8.0.rc1
  * gemfury-0.8.0
  * gemfury-0.9.0.rc1
  * gemfury-0.9.1
  * gemfury-0.10.0.rc1
  * gemfury-0.10.0
  * gemfury-0.11.0.rc1
  * gemfury-0.11.0
  * gemfury-0.12.0.rc1
  * gemfury-0.12.0.rc2
  * gemfury-0.12.0
  * gemfury-0.12.1

If not included with the output of your command, run bundle env and paste the output below

Environment

Bundler       2.4.19
  Platforms   ruby, x86_64-darwin-22
Ruby          3.2.2p53 (2023-03-30 revision e51014f9c05aa65cbf203442d37fef7c12390015) [x86_64-darwin-22]
  Full Path   /Users/pboling/.asdf/installs/ruby/3.2.2/bin/ruby
  Config Dir  /Users/pboling/.asdf/installs/ruby/3.2.2/etc
RubyGems      3.4.19
  Gem Home    /Users/pboling/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0
  Gem Path    /Users/pboling/.gem/ruby/3.2.0:/Users/pboling/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0
  User Home   /Users/pboling
  User Path   /Users/pboling/.gem/ruby/3.2.0
  Bin Dir     /Users/pboling/.asdf/installs/ruby/3.2.2/bin
Tools         
  Git         2.41.0
  RVM         not installed
  rbenv       not installed
  chruby      not installed

Bundler Build Metadata

Built At          2023-08-17
Git SHA           86f98098e3
Released Version  true

Bundler settings

build.libxml-ruby
  Set for the current user (/Users/pboling/.bundle/config): "--with-xml2-config=/usr/local/opt/libxml2/bin/xml2-config --with-xml2-dir=/usr/local/opt/libxml2 --with-xml2-lib=/usr/local/opt/libxml2/lib --with-xml2-include=/usr/local/opt/libxml2/include"
build.mysql2
  Set for the current user (/Users/pboling/.bundle/config): "--with-opt-dir=/usr/local/opt/openssl@1.1"
build.pg
  Set for the current user (/Users/pboling/.bundle/config): "--with-pg-config=/Users/pboling/.asdf/installs/postgres/10.18/bin/pg_config"
gem.changelog
  Set for the current user (/Users/pboling/.bundle/config): true
gem.ci
  Set for the current user (/Users/pboling/.bundle/config): "github"
gem.coc
  Set for the current user (/Users/pboling/.bundle/config): true
gem.fury.io
  Set for the current user (/Users/pboling/.bundle/config): "pfffffffffffffffffffffffft"
gem.linter
  Set for the current user (/Users/pboling/.bundle/config): "rubocop"
gem.mit
  Set for the current user (/Users/pboling/.bundle/config): true
gem.test
  Set for the current user (/Users/pboling/.bundle/config): "rspec"
silence_root_warning
  Set for the current user (/Users/pboling/.bundle/config): true
with
  Set for the current user (/Users/pboling/.bundle/config): [:api, :stats, :admin, :development, :test]

Gemfile

Gemfile

# frozen_string_literal: true

source "https://rubygems.org"

git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }

# Specify your gem's dependencies in vc_ruby.gemspec
gemspec

group :development, :test do
  # Projects using vc_ruby can load other gems from the rubocop-lts family to target a specific version of Ruby
  gem "rubocop-lts", "~> 18.2", ">= 18.2.1"  # For Ruby 2.7+

  # Maintenance of the simplecov gem is nearly dead, so we may need to switch at some point:
  # gem "simplecov", github: "pboling/simplecov", branch: "uncover-partial-lines", require: false

  # Can't constrain to pre-release in gemspec for some reason.
  gem "gemfury", "0.13.0.beta1"
end

Gemfile.lock

GIT
  remote: https://github.com/pboling/simplecov-rcov
  revision: 7a54f35d04e2bdb1052be698f00d6c7cc35ea529
  branch: patch-1
  specs:
    simplecov-rcov (0.3.1)
      simplecov (>= 0.4.1)

PATH
  remote: .
  specs:
    vc_ruby (2.3.7)
      ci_reporter_rspec (~> 1.0)
      colorize (~> 0.8)
      pretty_feed (~> 0.2)
      pry-suite (~> 1.2)
      rake (>= 10.0, < 14)
      redcarpet (~> 3.6)
      rspec (>= 2.14, < 4)
      rspec-block_is_expected (~> 1.0, >= 1.0.5)
      rspec-stubbed_env (~> 1.0, >= 1.0.1)
      rspec_junit_formatter (~> 0.6)
      rubocop-gradual (~> 0.3)
      rubocop-lts (>= 18.2.1)
      rubocop-md (~> 1.2)
      rubocop-performance (~> 1.16)
      rubocop-rake (~> 0.6)
      rubocop-rspec (~> 2.22)
      rubocop-shopify (~> 2.14)
      rubocop-thread_safety (~> 0.4)
      simplecov (~> 0.22)
      simplecov-cobertura (~> 2.1)
      simplecov-html (~> 0.12)
      simplecov-json (~> 0.2)
      simplecov-lcov (~> 0.8)
      simplecov-rcov (~> 0.3)
      standard (~> 1.30, >= 1.30.1)
      standard-custom (~> 1.0, >= 1.0.1)
      standard-performance (~> 1.1, >= 1.1.1)
      standard-rubocop-lts (~> 1.0, >= 1.0.8)
      version_gem (>= 1.1.3, < 2)
      yard (~> 0.9, >= 0.9.34)
      yard-junk (~> 0.0)

GEM
  remote: https://rubygems.org/
  specs:
    ast (2.4.2)
    backports (3.24.1)
    builder (3.2.4)
    byebug (11.1.3)
    ci_reporter (2.1.0)
      builder (>= 2.1.2)
      rexml
    ci_reporter_rspec (1.0.0)
      ci_reporter (~> 2.0)
      rspec (>= 2.14, < 4)
    coderay (1.1.3)
    colorize (0.8.1)
    diff-lcs (1.5.0)
    diffy (3.4.2)
    docile (1.4.0)
    gist (6.0.0)
    grit (2.5.0)
      diff-lcs (~> 1.1)
      mime-types (~> 1.15)
      posix-spawn (~> 0.3.6)
    highline (2.1.0)
    interception (0.5)
    json (2.6.3)
    language_server-protocol (3.17.0.3)
    lint_roller (1.1.0)
    method_source (1.0.0)
    mime-types (1.25.1)
    nokogiri (1.15.3-arm64-darwin)
      racc (~> 1.4)
    parallel (1.23.0)
    parser (3.2.2.3)
      ast (~> 2.4.1)
      racc
    posix-spawn (0.3.15)
    pretty_feed (0.2.0)
    pry (0.14.2)
      coderay (~> 1.1)
      method_source (~> 1.0)
    pry-byebug (3.10.1)
      byebug (~> 11.0)
      pry (>= 0.13, < 0.15)
    pry-doc (1.4.0)
      pry (~> 0.11)
      yard (~> 0.9.11)
    pry-docmore (0.1.1)
      pry
      pry-doc
    pry-git (0.2.3)
      diffy
      grit
      pry (>= 0.9.8)
    pry-highlight (0.1.0)
      coderay
      json
      nokogiri
      pry
    pry-macro (1.0.1)
      highline
      pry
    pry-pretty-numeric (0.1.1)
      pry
    pry-rescue (1.5.2)
      interception (>= 0.5)
      pry (>= 0.12.0)
    pry-suite (1.2.0)
      gist
      pry
      pry-byebug
      pry-doc
      pry-docmore
      pry-git
      pry-highlight
      pry-macro
      pry-pretty-numeric
      pry-rescue
    racc (1.7.1)
    rainbow (3.1.1)
    rake (13.0.6)
    redcarpet (3.6.0)
    regexp_parser (2.8.1)
    rexml (3.2.5)
    rspec (3.12.0)
      rspec-core (~> 3.12.0)
      rspec-expectations (~> 3.12.0)
      rspec-mocks (~> 3.12.0)
    rspec-block_is_expected (1.0.5)
    rspec-core (3.12.2)
      rspec-support (~> 3.12.0)
    rspec-expectations (3.12.3)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.12.0)
    rspec-mocks (3.12.5)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.12.0)
    rspec-stubbed_env (1.0.1)
    rspec-support (3.12.1)
    rspec_junit_formatter (0.6.0)
      rspec-core (>= 2, < 4, != 2.12.0)
    rubocop (1.52.1)
      json (~> 2.3)
      parallel (~> 1.10)
      parser (>= 3.2.2.3)
      rainbow (>= 2.2.2, < 4.0)
      regexp_parser (>= 1.8, < 3.0)
      rexml (>= 3.2.5, < 4.0)
      rubocop-ast (>= 1.28.0, < 2.0)
      ruby-progressbar (~> 1.7)
      unicode-display_width (>= 2.4.0, < 3.0)
    rubocop-ast (1.29.0)
      parser (>= 3.2.1.0)
    rubocop-capybara (2.18.0)
      rubocop (~> 1.41)
    rubocop-factory_bot (2.23.1)
      rubocop (~> 1.33)
    rubocop-gradual (0.3.1)
      diff-lcs (>= 1.2.0, < 2.0)
      diffy (~> 3.0)
      parallel (~> 1.10)
      rainbow (>= 2.2.2, < 4.0)
      rubocop (~> 1.0)
    rubocop-lts (18.2.1)
      rubocop-ruby2_7 (>= 2.0.4, < 3)
      standard-rubocop-lts (>= 1.0.3, < 3)
      version_gem (>= 1.1.2, < 3)
    rubocop-md (1.2.0)
      rubocop (>= 1.0)
    rubocop-packaging (0.5.2)
      rubocop (>= 1.33, < 2.0)
    rubocop-performance (1.18.0)
      rubocop (>= 1.7.0, < 2.0)
      rubocop-ast (>= 0.4.0)
    rubocop-rake (0.6.0)
      rubocop (~> 1.0)
    rubocop-rspec (2.22.0)
      rubocop (~> 1.33)
      rubocop-capybara (~> 2.17)
      rubocop-factory_bot (~> 2.22)
    rubocop-ruby2_7 (2.0.6)
      rubocop-gradual (~> 0.3, >= 0.3.1)
      rubocop-md (~> 1.2)
      rubocop-rake (~> 0.6)
      rubocop-shopify (~> 2.14)
      rubocop-thread_safety (~> 0.5, >= 0.5.1)
      standard-rubocop-lts (~> 1.0, >= 1.0.7)
      version_gem (>= 1.1.3, < 3)
    rubocop-shopify (2.14.0)
      rubocop (~> 1.51)
    rubocop-thread_safety (0.5.1)
      rubocop (>= 0.90.0)
    ruby-progressbar (1.13.0)
    simplecov (0.22.0)
      docile (~> 1.1)
      simplecov-html (~> 0.11)
      simplecov_json_formatter (~> 0.1)
    simplecov-cobertura (2.1.0)
      rexml
      simplecov (~> 0.19)
    simplecov-html (0.12.3)
    simplecov-json (0.2.3)
      json
      simplecov
    simplecov-lcov (0.8.0)
    simplecov_json_formatter (0.1.4)
    standard (1.30.1)
      language_server-protocol (~> 3.17.0.2)
      lint_roller (~> 1.0)
      rubocop (~> 1.52.0)
      standard-custom (~> 1.0.0)
      standard-performance (~> 1.1.0)
    standard-custom (1.0.1)
      lint_roller (~> 1.0)
    standard-performance (1.1.1)
      lint_roller (~> 1.1)
      rubocop-performance (~> 1.18.0)
    standard-rubocop-lts (1.0.8)
      standard (>= 1.30.1, < 2)
      standard-custom (>= 1.0.1, < 2)
      standard-performance (>= 1.1.1, < 2)
      version_gem (>= 1.1.3, < 4)
    unicode-display_width (2.4.2)
    version_gem (1.1.3)
    yard (0.9.34)
    yard-junk (0.0.9)
      backports (>= 3.18)
      rainbow
      yard

PLATFORMS
  arm64-darwin-22

DEPENDENCIES
  rubocop-lts (~> 18.2, >= 18.2.1)
  rubocop-packaging (~> 0.5, >= 0.5.2)
  simplecov-rcov!
  vc_ruby!

BUNDLED WITH
   2.4.10

Gemspecs

vc_ruby.gemspec

# frozen_string_literal: true

# Get the GEMFILE_VERSION without *require* "my_gem/version", for code coverage accuracy
# See: https://github.com/simplecov-ruby/simplecov/issues/557#issuecomment-825171399
load "lib/vc_ruby/version.rb"
gem_version = VcRuby::Version::VERSION
VcRuby::Version.send(:remove_const, :VERSION)

Gem::Specification.new do |spec|
  spec.name = "vc_ruby"
  spec.version = gem_version
  spec.authors = ["Peter Boling"]
  spec.email = ["pboling@vitalconnect.com"]

  spec.summary = "Configs to support WI-839"
  spec.description =
    "WI-839 configurations for:" \
      "Rake, " \
      "RSpec, " \
      "RuboCop," \
      "Standard," \
      "RuboCop Shopify," \
      "Other Rubocop Plugins," \
      "Rubocop Gradual," \
      "SimpleCov"
  spec.homepage = "https://bitbucket.org/vitalconnect/#{spec.name}"
  spec.license = "Nonstandard"
  spec.required_ruby_version = ">= 2.7.8"

  spec.metadata["allowed_push_host"] = "https://gem.fury.io/vitalconnect/"

  spec.metadata["homepage_uri"] = spec.homepage
  spec.metadata["source_code_uri"] = "https://bitbucket.org/vitalconnect/#{spec.name}"
  spec.metadata["changelog_uri"] = "https://bitbucket.org/vitalconnect/#{spec.name}/src/main/CHANGELOG.md"

  # Specify which files should be added to the gem when it is released.
  spec.files = Dir[
    # Splats (alphabetical)
    "lib/**/*.rb",
    "lib/**/*.rake",
    "rubocop/**/*.yml",
    "sig/**/*.rbs",
    # Files (alphabetical)
    "CHANGELOG.md",
    "lib/vc_ruby/tasks.rake",
    "railtie.rb",
    "Rakefile",
    "README.md",
    "rubocop.yml",
    "tasks.rb",
  ]

  # Documentation
  spec.add_dependency("redcarpet", "~> 3.6")
  spec.add_dependency("yard", "~> 0.9", ">= 0.9.34")
  spec.add_dependency("yard-junk", "~> 0.0")

  # Testing
  spec.add_dependency("ci_reporter_rspec", "~> 1.0")
  # RSpec - Allow v2.99 so transpec can upgrade test suites from RSpec v2 to v3
  # TODO: Once all projects have been upgraded to RSpec v3+ we can bump this also.
  spec.add_dependency("rspec", ">= 2.14", "< 4")
  spec.add_dependency("rspec-block_is_expected", "~> 1.0", ">= 1.0.5")
  spec.add_dependency("rspec_junit_formatter", "~> 0.6")
  spec.add_dependency("rspec-stubbed_env", "~> 1.0", ">= 1.0.1")

  # linting
  spec.add_dependency("rubocop-gradual", "~> 0.3")
  spec.add_dependency("rubocop-lts", ">= 18.2.1")                   # allows Ruby 2.7+
  spec.add_dependency("rubocop-md", "~> 1.2")
  spec.add_dependency("rubocop-performance", "~> 1.16")
  spec.add_dependency("rubocop-rake", "~> 0.6")
  spec.add_dependency("rubocop-rspec", "~> 2.22")
  spec.add_dependency("rubocop-shopify", "~> 2.14")
  spec.add_dependency("rubocop-thread_safety", "~> 0.4")
  spec.add_dependency("standard", ">= 1.30.1", "~> 1.30")
  spec.add_dependency("standard-custom", ">= 1.0.1", "~> 1.0")
  spec.add_dependency("standard-performance", ">= 1.1.1", "~> 1.1")
  spec.add_dependency("standard-rubocop-lts", ">= 1.0.8", "~> 1.0")

  # Coverage
  spec.add_dependency("simplecov", "~> 0.22")
  spec.add_dependency("simplecov-cobertura", "~> 2.1") # XML for Jenkins
  spec.add_dependency("simplecov-html", "~> 0.12")
  spec.add_dependency("simplecov-json", "~> 0.2") # For CodeClimate
  spec.add_dependency("simplecov-lcov", "~> 0.8")
  spec.add_dependency("simplecov-rcov", "~> 0.3")

  # Debugging Console - IRB Replacement
  spec.add_dependency("pry-suite", "~> 1.2")

  # Logging
  spec.add_dependency("colorize", "~> 0.8")
  spec.add_dependency("pretty_feed", "~> 0.2")

  # Utils
  spec.add_dependency("version_gem", ">= 1.1.3", "< 2")
  # TODO: Once all projects have been upgraded to RSpec v3+ we can bump this also.
  #       Rake v11 removes `last_comment` method which rspec-core (< 3.5) uses.
  spec.add_dependency("rake", ">= 10.0", "< 14")

  spec.add_development_dependency("gemfury", "0.13.0.beta1")

  spec.add_development_dependency("rubocop-packaging", ["~> 0.5", ">= 0.5.2"])
end
@simi
Copy link
Member

simi commented Sep 28, 2023

Just for the reference, this is missing from info file at rubygems.org side. I'll take a look if there is anything we can do to fix this.

debug info

content of https://rubygems.org/info/gemfury as in time of writing this comment (missing 0.13.0.beta1)

---
0.1.1 faraday:~> 0.6.1,faraday_middleware:~> 0.6.3,highline:~> 1.6.0,launchy:~> 0.4.0,multi_json:~> 1.0.2,thor:~> 0.14.5|checksum:1c79168f365b3c657a408c535ab84eedb0652281d3ffdac44c21139512a75182
0.2.0.beta1 faraday:~> 0.6.1,faraday_middleware:~> 0.6.3,highline:~> 1.6.0,launchy:~> 0.4.0,multi_json:~> 1.0.2,thor:~> 0.14.5|checksum:1e051a46c1444a3dde11fa671fdc7bc9690b3b99998bf4e4d221eb2dde171893,rubygems:> 1.3.1
0.2.0.beta2 faraday:~> 0.7.4,faraday_middleware:~> 0.7.0,highline:~> 1.6.0,launchy:~> 0.4.0,multi_json:~> 1.0.2,thor:~> 0.14.0|checksum:6355687ddedea25743f7d899bbc7390d21b665a4ab9770f6cf2d3518b6b966a9,rubygems:> 1.3.1
0.2.0.beta3 faraday:~> 0.7.4,faraday_middleware:~> 0.7.0,highline:~> 1.6.0,launchy:~> 0.4.0,multi_json:~> 1.0.2,thor:~> 0.14.0|checksum:9d07d5d0a165abddcb731e2ed74dad24391b1df96ac365907c336608878ddbd5,rubygems:> 1.3.1
0.2.0 faraday:~> 0.7.4,faraday_middleware:~> 0.7.0,highline:~> 1.6.0,launchy:~> 0.4.0,multi_json:~> 1.0.2,thor:~> 0.14.0|checksum:600ae77592f388ff70826ad92186d9dacb9f8a129dc22baf14278ed45e17c382
0.3.0 faraday:~> 0.7.4,faraday_middleware:~> 0.7.0,highline:~> 1.6.0,launchy:~> 0.4.0,multi_json:~> 1.0.2,thor:~> 0.14.0|checksum:81390836ac08d8b531c15f55448b1d12f2a10ddb31bdc83e0b4cce037d2b22d9
0.3.1 faraday:~> 0.7.4,faraday_middleware:~> 0.7.0,highline:~> 1.6.0,launchy:~> 0.4.0,multi_json:~> 1.0.2,thor:~> 0.14.0|checksum:125d278763024f5dd2b35e70c61f9f078022f4cd578c82986154e67d601e1e2a
0.3.2 faraday:~> 0.7.4,faraday_middleware:~> 0.7.0,highline:~> 1.6.0,launchy:~> 0.4.0,multi_json:~> 1.0.2,thor:~> 0.14.0|checksum:c29997f08b321d7008a17dfd2f83be22b136e841c5b2d8e83f531bad986b3902
0.4.0.beta1 faraday:~> 0.7.4,faraday_middleware:~> 0.7.0,highline:~> 1.6.0,launchy:~> 0.4.0,multi_json:~> 1.0.2,thor:~> 0.14.0|checksum:a7642f65af9c997178e39193c36620918294b7a1ba2ae9b9a903e0c6b0de5b5b,rubygems:> 1.3.1
0.4.0.beta2 faraday:~> 0.7.4,faraday_middleware:~> 0.7.0,highline:~> 1.6.0,launchy:~> 0.4.0,multi_json:~> 1.0.2,thor:~> 0.14.0|checksum:ad41842996ba1eac119950046065c216dae265c517c5b996fdeda956e3a9eada,rubygems:> 1.3.1
0.4.0 faraday:~> 0.7.4,faraday_middleware:~> 0.7.0,highline:~> 1.6.0,multi_json:~> 1.0.2,thor:~> 0.14.0|checksum:ec4e1249e35bbcaea580b7ed3d9503ca8bd5920ac8553141510b6f46c93826fe
0.4.1 faraday:~> 0.7.4,faraday_middleware:~> 0.7.0,highline:~> 1.6.0,multi_json:~> 1.0.2,thor:~> 0.14.0|checksum:7d07a4ec87ad05b50f82db793412044fee9772838d705028fa9c1c2ed812e715
0.4.2 faraday:~> 0.7.4,faraday_middleware:~> 0.7.0,highline:~> 1.6.0,multi_json:~> 1.0.2,thor:~> 0.14.0|checksum:271da94283145683f189a38cf7b38c173b25ba9e3bf22d367c709c2e572f47a9
0.4.3.rc faraday:~> 0.7.4,faraday_middleware:~> 0.7.0,highline:~> 1.6.0,multi_json:~> 1.0.2,thor:~> 0.14.0|checksum:3b14cf0886335837181131b49f25a85f4c247e3a8e87eca644833b06984c4ede,rubygems:> 1.3.1
0.4.3 faraday:~> 0.7.4,faraday_middleware:~> 0.7.0,highline:~> 1.6.0,multi_json:~> 1.0.2,thor:~> 0.14.0|checksum:a89530d823bb938046ae582e02a1c580069e24b5033dc9640c1f6f01a504ffa6
0.4.4 faraday:~> 0.7.4,faraday_middleware:~> 0.7.0,highline:~> 1.6.0,multi_json:~> 1.0.2,thor:~> 0.14.0|checksum:ff41bc3b055177fc949136908edbba902c53a839e7f40eb6488af5d1cc29d32a
0.4.5 faraday:~> 0.7.4,faraday_middleware:~> 0.7.0,highline:~> 1.6.0,multi_json:~> 1.0.2,thor:~> 0.14.0|checksum:f537b72c3aa2e6e1b0311fa0527a8801d717a2e80303b869bb9f5246d8bee235
0.4.6 faraday:< 0.9&>= 0.7.4,faraday_middleware:< 0.9&>= 0.7,highline:~> 1.6.0,multi_json:~> 1.0.2,thor:~> 0.14.0|checksum:d442bdb7c32d3a5684a4f82eef34b5fb7aad60224ef92958fca01a42f0fde1af
0.4.7 faraday:< 0.9&>= 0.7.4,faraday_middleware:< 0.9&>= 0.7,highline:~> 1.6.0,multi_json:< 1.3&>= 1.0.2,thor:~> 0.14.0|checksum:bc943eb61096d19c9debe3ffec6e11c805c3bf138b242fffc23ad0f9ee469a29
0.4.8 faraday:< 0.9&>= 0.7.4,faraday_middleware:< 0.9&>= 0.7,highline:~> 1.6.0,multi_json:< 1.4&>= 1.0.2,thor:~> 0.14.0|checksum:c8cd5485fbf77b8c0705f3f9065c93b5813a567e54d6e4dbb4aaf6ca9ac2ed25
0.4.9 faraday:< 0.9&>= 0.7.4,faraday_middleware:< 0.9&>= 0.7,highline:~> 1.6.0,multi_json:< 1.4&>= 1.0.2,thor:< 0.16.0&>= 0.14.0|checksum:46bb87d44d764bd2554b541c151419345dd3fd91040194576c4dba00813975f1
0.4.10 faraday:< 0.9&>= 0.7.4,faraday_middleware:< 0.9&>= 0.7,highline:~> 1.6.0,multi_json:< 1.4&>= 1.0.2,thor:< 1.0&>= 0.14.0|checksum:53f9f6a02cb9aff539fa61920340b017d4dc4b50103bbf05d8c8dad0e0ea75c9
0.4.11 faraday:< 0.9&>= 0.7.4,faraday_middleware:< 0.9&>= 0.7,highline:~> 1.6.0,multi_json:< 1.4&>= 1.0.2,thor:< 1.0&>= 0.14.0|checksum:48b08125fb4af923bc6831835390618b89c07ef52bc2ef9686e0fff51ae8c30b
0.4.12 faraday:< 0.9&>= 0.7.4,faraday_middleware:< 0.9&>= 0.7,highline:~> 1.6.0,multi_json:< 1.4&>= 1.0.2,thor:< 1.0&>= 0.14.0|checksum:78a77a0fb6292aeeb1f02910c76925040348285ef908dd88dfceb64c626eee1a
0.4.14 faraday:< 0.9&>= 0.7.4,faraday_middleware:< 0.10&>= 0.7,highline:~> 1.6.0,multi_json:< 1.7&>= 1.0.2,thor:< 1.0&>= 0.14.0|checksum:aa1762eeb793cffa4ee9141baf57460364d8de7c2cb7887c3109decf9720eb35
0.4.16 faraday:< 0.9&>= 0.7.4,faraday_middleware:< 0.10&>= 0.7,highline:~> 1.6.0,multi_json:~> 1.0,thor:< 1.0&>= 0.14.0|checksum:fe120caac651844c7317ddc9d1d7dfd394d64d2943da6516dd0833933c97b754
0.4.17 faraday:< 0.9&>= 0.7.4,faraday_middleware:< 0.10&>= 0.7,highline:~> 1.6.0,multi_json:~> 1.0,thor:< 1.0&>= 0.14.0|checksum:cfe1eb0c2e678b6459e1fb466a57eb1c3448fb38a3d2fadb008373421d24281d
0.4.18 faraday:< 0.9&>= 0.7.4,faraday_middleware:< 0.10&>= 0.7,highline:~> 1.6.0,multi_json:~> 1.0,thor:< 1.0&>= 0.14.0|checksum:67e490704d848d8ba46762cd73fb8da16341735d7d22d5c6b91f14efbbb162bc
0.4.19 faraday:< 0.9&>= 0.7.4,faraday_middleware:< 0.10&>= 0.7,highline:~> 1.6.0,multi_json:~> 1.0,thor:< 1.0&>= 0.14.0|checksum:315d1c341962bd63dc63106da5d92b99793554b4fe707b7d31471bf0aedbef04
0.4.20.beta1 faraday:< 0.9&>= 0.7.4,faraday_middleware:< 0.10&>= 0.7,highline:~> 1.6.0,multi_json:~> 1.0,thor:< 1.0&>= 0.14.0|checksum:ea2f9bebefa395e0c240ffb77ac835433a4747a164e9d30bd174caffae03ac41,rubygems:> 1.3.1
0.4.20.beta3 faraday:< 0.9&>= 0.7.4,faraday_middleware:< 0.10&>= 0.7,highline:~> 1.6.0,multi_json:~> 1.0,thor:< 1.0&>= 0.14.0|checksum:cb7aae92da6faad6826356001183fb01ee92e12b21c4fae6683639207f5de56a,rubygems:> 1.3.1
0.4.20 faraday:< 0.9&>= 0.7.4,faraday_middleware:< 0.10&>= 0.7,highline:~> 1.6.0,multi_json:~> 1.0,netrc:~> 0.7.7,thor:< 1.0&>= 0.14.0|checksum:720d9e9bc2d604e1c498e97c45385e33acf8daf0175c903fe1febb301dfe52d3
0.4.21 faraday:< 0.9.0.pre&>= 0.7.4,faraday_middleware:< 0.10.0.pre&>= 0.7,highline:~> 1.6.0,multi_json:~> 1.0,netrc:~> 0.7.7,thor:< 1.0.0.pre&>= 0.14.0|checksum:8165958fc54f7e803528799800e9f74fa79bc86521d8c113459fc51109f5d4ab
0.4.22 faraday:< 0.9.0.pre&>= 0.7.4,faraday_middleware:< 0.10.0.pre&>= 0.7,highline:~> 1.6.0,multi_json:~> 1.0,netrc:~> 0.7.7,thor:< 1.0.0.pre&>= 0.14.0|checksum:8c3f0b62a2919d9eefd70323d7d93bc82013d3da2970ab7da75d454256fd2f41
0.4.23 faraday:< 0.9.0.pre&>= 0.7.4,faraday_middleware:< 0.10.0.pre&>= 0.7,highline:~> 1.6.0,multi_json:~> 1.0,netrc:~> 0.7.7,thor:< 1.0.0.pre&>= 0.14.0|checksum:842c6657e2c25d728f3ac743ac8994eb5470f85fd07b08c8fd4f4259eee8e2ec
0.4.24.beta1 faraday:< 0.10.0.pre&>= 0.7.4,highline:~> 1.6.0,multi_json:~> 1.0,netrc:~> 0.7.7,thor:< 1.0.0.pre&>= 0.14.0|checksum:85feec1e52814e76a95bd28b1c0f75db73cc5be7e71c205607cbc342177e3353,rubygems:> 1.3.1
0.4.24.beta3 faraday:< 0.10.0.pre&>= 0.7.4,highline:~> 1.6.0,multi_json:~> 1.0,netrc:~> 0.7.7,thor:< 1.0.0.pre&>= 0.14.0|checksum:7cf708ac5d3e5a55099f1043df67cf9214fc9d2af79b6976a3136450a99aee3f,rubygems:> 1.3.1
0.4.24.beta4 faraday:< 0.10.0.pre&>= 0.7.4,highline:~> 1.6.0,multi_json:~> 1.0,netrc:~> 0.7.7,thor:< 1.0.0.pre&>= 0.14.0|checksum:69ded27b9a9c06aadcd5efc59cf752fcc1c26a7d3370dd163d92f9c47e1038a6,rubygems:> 1.3.1
0.4.24.beta5 faraday:< 0.10.0.pre&>= 0.7.4,highline:~> 1.6.0,multi_json:~> 1.0,netrc:~> 0.7.7,thor:< 1.0.0.pre&>= 0.14.0|checksum:9597812e2955929c4fa70ce4158d4a5587f3ca0a4d15ca273f23e91b209dbc69,rubygems:> 1.3.1
0.4.25 faraday:< 0.10.0.pre&>= 0.9.0,highline:~> 1.6.0,multi_json:~> 1.0,netrc:~> 0.7.7,thor:< 1.0.0.pre&>= 0.14.0|checksum:39b77a565fcec54b28fe7dc6face19b167af3ac95bbdad02baa7058a960215c0
0.4.26.beta1 faraday:< 0.10.0.pre&>= 0.9.0,highline:~> 1.6.0,multi_json:~> 1.0,netrc:~> 0.7.7,thor:< 1.0.0.pre&>= 0.14.0|checksum:82b1b746ed2098d20a3d2f7105f831bfe1c5d41e26de351671b0211210a37bbb,rubygems:> 1.3.1
0.4.26 faraday:< 0.10.0.pre&>= 0.9.0,highline:~> 1.6.0,multi_json:~> 1.0,netrc:~> 0.7.7,thor:< 1.0.0.pre&>= 0.14.0|checksum:5fca930071aed42a153ed6f5f191ce922e5c3a9eb7ae927ddd64f5948da6ee07
0.5.0.beta1 faraday:< 0.10.0.pre&>= 0.9.0,highline:~> 1.6.0,multi_json:~> 1.0,netrc:~> 0.7.7,thor:< 1.0.0.pre&>= 0.14.0|checksum:47baa9f044c71dbc37ab305a121902648dcee123b322932a1d825dd82931119b,rubygems:> 1.3.1
0.5.0.beta3 faraday:< 0.10.0.pre&>= 0.9.0,highline:~> 1.6.0,multi_json:~> 1.10,netrc:~> 0.10.0,thor:< 1.0.0.pre&>= 0.14.0|checksum:56844f7223fbab3494e0dbed6029826eb86277f323f959d49ce9fbac95610016,rubygems:> 1.3.1
0.5.0 faraday:< 0.10.0.pre&>= 0.9.0,highline:~> 1.6.0,multi_json:~> 1.10,netrc:~> 0.10.0,thor:< 1.0.0.pre&>= 0.14.0|checksum:1d8f5d0c1abcfe74a60bd90281c79794f09a9b3bbef59f054d11586ac9b5d2ad
0.6.0.rc1 faraday:< 0.10.0.pre&>= 0.9.0,highline:~> 1.6.0,multi_json:~> 1.10,netrc:~> 0.10.0,thor:< 1.0.0.pre&>= 0.14.0|checksum:a9115965ee5dfe82aeed21fb85580662a6434ff947fabe99372262e86f64b43b,rubygems:> 1.3.1
0.6.0 faraday:< 0.10.0.pre&>= 0.9.0,highline:~> 1.6.0,multi_json:~> 1.10,netrc:~> 0.10.0,thor:< 1.0.0.pre&>= 0.14.0|checksum:fd7cfa6aded06777e2167a72673390cf666e10636635a2c7195c8b86b2d0bc16
0.7.0 faraday:< 0.12.0.pre&>= 0.9.0,highline:~> 1.6,multi_json:~> 1.10,netrc:< 0.12.0.pre&>= 0.10.0,thor:< 1.0.0.pre&>= 0.14.0|checksum:0602ef133460130455e416e3032dca5614067cd052ee8816fae39e17cfefdca9
0.8.0.rc1 faraday:< 0.15.0.pre&>= 0.9.0,highline:~> 1.6,multi_json:~> 1.10,netrc:< 0.12.0.pre&>= 0.10.0,thor:< 1.0.0.pre&>= 0.14.0|checksum:10154efec3940954324828a4af0e333f1bb4dd5305caab91fe9de05af5433e43,rubygems:> 1.3.1
0.8.0 faraday:< 0.15.0.pre&>= 0.9.0,highline:~> 1.6,multi_json:~> 1.10,netrc:< 0.12.0.pre&>= 0.10.0,thor:< 1.0.0.pre&>= 0.14.0|checksum:8b89daf323017fe7cde501fe01827d4b1cfd6d069d60e8ea6a0cfa98a37beed0
0.9.0.rc1 faraday:< 0.16.0.pre&>= 0.9.0,highline:< 2.1.0.pre&>= 1.6.0,multi_json:~> 1.10,netrc:< 0.12.0.pre&>= 0.10.0,thor:< 1.0.0.pre&>= 0.14.0|checksum:8261768e965f5a7908c738dd7db3e3f7e55ea31e26ec02925619ce0bf4c6092c,rubygems:> 1.3.1
0.9.1 faraday:< 0.16.0.pre&>= 0.9.0,highline:< 2.1.0.pre&>= 1.6.0,multi_json:~> 1.10,netrc:< 0.12.0.pre&>= 0.10.0,thor:< 1.0.0.pre&>= 0.14.0|checksum:a8861029914037d39d1f6a5426bac18076beaddb42589bd9ec3b164cbde6a1b0
0.10.0.rc1 faraday:< 0.16.0.pre&>= 0.9.0,highline:< 2.1.0.pre&>= 1.6.0,multi_json:~> 1.10,netrc:< 0.12.0.pre&>= 0.10.0,thor:< 1.0.0.pre&>= 0.14.0|checksum:a7b4a98b3164f0598c1205b6cee867efb055f19c3026afc6ec3c03dd0de8df67,rubygems:> 1.3.1
0.10.0 faraday:< 0.16.0.pre&>= 0.9.0,highline:< 2.1.0.pre&>= 1.6.0,multi_json:~> 1.10,netrc:< 0.12.0.pre&>= 0.10.0,thor:< 1.0.0.pre&>= 0.14.0|checksum:1f089e7f0c60d25bca7f1db67f1ae91510b2ea3c0a18ea958aed7b746f069900
0.11.0.rc1 faraday:< 0.16.0.pre&>= 0.9.0,highline:< 2.1.0.pre&>= 1.6.0,multi_json:~> 1.10,netrc:< 0.12.0.pre&>= 0.10.0,progressbar:>= 1.10.1,thor:< 1.0.0.pre&>= 0.14.0|checksum:58aa8ded2b7ae80eacfcd1365f8c0f1edd7958ac5f7902b8305cce5c04486c0a,rubygems:> 1.3.1
0.11.0 faraday:< 0.16.0.pre&>= 0.9.0,highline:< 2.1.0.pre&>= 1.6.0,multi_json:~> 1.10,netrc:< 0.12.0.pre&>= 0.10.0,progressbar:>= 1.10.1,thor:< 1.0.0.pre&>= 0.14.0|checksum:eb5be7ba921f14295ef99e08b727c1248df9445cc87d3ca51b58d2de71d6feb3
0.12.0.rc1 faraday:< 1.1.0.pre&>= 0.9.0,highline:< 2.1.0.pre&>= 1.6.0,multi_json:~> 1.10,netrc:< 0.12.0.pre&>= 0.10.0,progressbar:< 2.0.0.pre&>= 1.10.1,thor:< 1.1.0.pre&>= 0.14.0|checksum:9e8e77f3db72ed99f7e0ab460c14db1c40fd1b4f899c88b9ff8a143a8bedc174,rubygems:> 1.3.1
0.12.0.rc2 faraday:< 1.1.0.pre&>= 0.9.0,highline:< 2.1.0.pre&>= 1.6.0,multi_json:~> 1.10,netrc:< 0.12.0.pre&>= 0.10.0,progressbar:< 2.0.0.pre&>= 1.10.1,thor:< 1.1.0.pre&>= 0.14.0|checksum:2d0faa88c374d5cf1db6e6cb56674ad77475fe5735b34afd6c20d64848446441,rubygems:> 1.3.1
0.12.0 faraday:< 1.1.0.pre&>= 0.9.0,highline:< 2.1.0.pre&>= 1.6.0,multi_json:~> 1.10,netrc:< 0.12.0.pre&>= 0.10.0,progressbar:< 2.0.0.pre&>= 1.10.1,thor:< 1.1.0.pre&>= 0.14.0|checksum:afd14288a6a5f98c193b3a3aa5b61ed8a009906ab1f14dd4012ed37d4b721a8a
0.12.1 faraday:< 2.0.0.pre&>= 0.9.0,highline:< 2.1.0.pre&>= 1.6.0,multi_json:~> 1.10,netrc:< 0.12.0.pre&>= 0.10.0,progressbar:< 2.0.0.pre&>= 1.10.1,thor:< 1.1.0.pre&>= 0.14.0|checksum:b316ebd064e1152a51c7e63439133ec28ad4dfac30bf6919b5cb481ec853b5d0

and related line in https://rubygems.org/versions file at the same time (including 0.13.0.beta1)

gemfury 0.1.1,0.2.0.beta1,0.2.0.beta2,0.2.0.beta3,0.2.0,0.3.0,0.3.1,0.3.2,0.4.0.beta1,0.4.0.beta2,0.4.0,0.4.1,0.4.2,0.4.3.rc,0.4.3,0.4.4,0.4.5,0.4.6,0.4.7,0.4.8,0.4.9,0.4.10,0.4.11,0.4.12,0.4.14,0.4.16,0.4.17,0.4.18,0.4.19,0.4.20.beta1,0.4.20.beta3,0.4.20,0.4.21,0.4.22,0.4.23,0.4.24.beta1,0.4.24.beta3,0.4.24.beta4,0.4.24.beta5,0.4.25,0.4.26.beta1,0.4.26,0.5.0.beta1,0.5.0.beta3,0.5.0,0.6.0.rc1,0.6.0,0.7.0,0.8.0.rc1,0.8.0,0.9.0.rc1,0.9.1,0.10.0.rc1,0.10.0,0.11.0.rc1,0.11.0,0.12.0.rc1,0.12.0.rc2,0.12.0,0.12.1,0.13.0.beta1 ce95c672275cb5e38b68c52c386a7810

@simi simi transferred this issue from rubygems/rubygems Sep 28, 2023
@simi
Copy link
Member

simi commented Sep 28, 2023

For now, I have updated info file manually (using admin panel), can you check this is fixed @pboling? Locally I can install this gem version successfully now.

@simi simi self-assigned this Sep 28, 2023
@pboling
Copy link
Contributor Author

pboling commented Oct 4, 2023

Yep, works now. Thanks @simi - hope the root cause can be determined and addressed! Manual processes suck!

@halfbyte
Copy link

halfbyte commented Nov 2, 2023

I think I have a similar case here:

middleman 4.5.1 turns up on the website, is returned when querying the normal API:

curl https://rubygems.org/api/v1/versions/middleman.json

...but is missing from the index:

curl https://index.rubygems.org/info/middleman

@evman182
Copy link

evman182 commented Jan 8, 2024

@simi I'm seeing a similar issue with temporal_tables. It's not in the versions file, so it seems like there's no way for bundler to find it if the metadata for the gem has already been cached.

@simi
Copy link
Member

simi commented Jan 8, 2024

@simi I'm seeing a similar issue with temporal_tables. It's not in the versions file, so it seems like there's no way for bundler to find it if the metadata for the gem has already been cached.

let me take a look 👀

@simi
Copy link
Member

simi commented Jan 8, 2024

@evman182 I did quick check and it is present now. There was no action taken from rubygems.org. Full indexing can take a minute or two after pushing the gem. Can you confirm everything is ok?

@evman182
Copy link

evman182 commented Jan 8, 2024

@simi No, I still do not see the v3 pre-release at https://rubygems.org/versions. This may be moreso a bug with bundler if the expectation is that bundler should fallback to fetching the gem info directly if it can't find the version in the compact index. Let me know if I should open a bug with bundler

@simi
Copy link
Member

simi commented Jan 8, 2024

@evman182 How do you check?

[retro@retro  ~]❤ curl "https://rubygems.org/versions" | grep "temporal_tables 3.0.0"                                                                                                         
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                                                                                               
                                 Dload  Upload   Total   Spent    Left  Speed                                                                                                                 
100 18.2M  100 18.2M    0     0  5719k      0  0:00:03  0:00:03 --:--:-- 5721k                                                                                                                
temporal_tables 3.0.0.pre.rc.1 9ae3399947223af03c118646e5817fb2  
$ ruby -r bundler/inline -e "gemfile(true) { source 'https://rubygems.org'; gem 'temporal_tables', '3.0.0.pre.rc.1' }"
# ...
Fetching temporal_tables 3.0.0.pre.rc.1                                                                                                                                                       
Installing temporal_tables 3.0.0.pre.rc.1  

@evman182
Copy link

evman182 commented Jan 8, 2024

I see the line your grep found now, but why is the pre-release version on it's own line, separate from the rest of the versions? It seems like new versions are being appended to the index, instead of to their existing lines

@simi
Copy link
Member

simi commented Jan 8, 2024

I see the line your grep found now, but why is the pre-release version on it's own line, separate from the rest of the versions? It seems like new versions are being appended to the index, instead of to their existing lines

That's how compact index works for friendly HTTP caching purpose. It is append list (so "partial" HTTP ranged request can get file in sync without downloading whole content) and it is squashed once per month to keep it manageable long.

@evman182
Copy link

evman182 commented Jan 8, 2024

The checksum on the newly appended line is not correct. It's the same as the old one, and doesn't match the checksum of https://index.rubygems.org/info/temporal_tables

@evman182
Copy link

evman182 commented Jan 8, 2024

I see similar situations for other gems in the versions file. Idk if this is a new bug with compact_index or something, but I see multiple cases where the first time a gem had a version appended to the versions file, the checksum is the same as the one that was generated on 1/1/2024

@simi
Copy link
Member

simi commented Jan 8, 2024

@evman182 versions file doesn't include gem checksum, but something called info checksum. Everything seems ok. Sadly there is not a much documentation for those rubygems.org internals currently. Something is at https://github.com/rubygems/compact_index and older version is explained at https://andre.arko.net/2014/03/28/the-new-rubygems-index-format/.

Anyway, next to those internals, do you still face any troubles running bundle or gem commands?

@evman182
Copy link

evman182 commented Jan 8, 2024

cc: @segiddins as I think this is related to your PR: #4255. I can open a new issue if you want since it appears to be unrelated to the issue I've been commenting on

Yes I am still seeing issues. I really think there's a bug with rubygems.org related to this
https://github.com/rubygems/rubygems.org/pull/4255/files#diff-61977d248b654178763e77a2fddc09152a20b85b1aecfc8222ef4233564593fcL269

and this, which is used to gather all the versions to generate the "info checksum":

.where("rubygems.name = ? AND versions.indexed = true", @rubygem_name)

and that the query is looking for indexed = true, but with the changes in the above PR that I linked to, that indexed value isn't being set until later.

If you look at this code block, that indexed attribute use to be set true on line 164, but now it's not set until the AfterVersionWriteJob executes. However, the query looking for index=true executes on line 182:

rubygem.update_attributes_from_gem_specification!(version, spec)
if rubygem.unowned?
case owner
when User
rubygem.create_ownership(owner)
else
pending_publisher = find_pending_trusted_publisher
return notify_unauthorized if pending_publisher.blank?
rubygem.transaction do
logger.info { "Reifying pending publisher" }
rubygem.create_ownership(pending_publisher.user)
owner.rubygem_trusted_publishers.create!(rubygem: rubygem)
end
end
end
set_info_checksum

@segiddins
Copy link
Member

@evman182 mind opening a new issue? I should be able to look into it tomorrow

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

No branches or pull requests

5 participants