diff options
author | Zeger-Jan van de Weg <git@zjvandeweg.nl> | 2018-07-30 16:10:29 +0300 |
---|---|---|
committer | Zeger-Jan van de Weg <git@zjvandeweg.nl> | 2018-07-31 09:53:38 +0300 |
commit | 108e3ddb13b550a7ee2ff44a4c43ea0bc06e69bd (patch) | |
tree | 93bb8436c3228b93d5ff1b5b9617d2559bb88f16 | |
parent | 1edc945c27e9368a2e73565d70fdf827ab7274c6 (diff) |
Stop vendoring Gitlab::VersionInfo
Not residing in `Gitlab::Git`, and doesn't often see changes. This
change blacklists it from updating when vendoring, and moving it out of
the vendor directory.
Part of: https://gitlab.com/gitlab-org/gitaly/issues/1279
-rwxr-xr-x | _support/vendor-gitlab-git | 2 | ||||
-rw-r--r-- | changelogs/unreleased/zj-stop-vendor-version-info.yml | 5 | ||||
-rw-r--r-- | ruby/lib/gitlab/git.rb | 2 | ||||
-rw-r--r-- | ruby/lib/gitlab/version_info.rb (renamed from ruby/vendor/gitlab_git/lib/gitlab/version_info.rb) | 0 | ||||
-rw-r--r-- | ruby/spec/lib/gitlab/version_info_spec.rb | 66 |
5 files changed, 73 insertions, 2 deletions
diff --git a/_support/vendor-gitlab-git b/_support/vendor-gitlab-git index 46fd5b38a..19f9a6666 100755 --- a/_support/vendor-gitlab-git +++ b/_support/vendor-gitlab-git @@ -6,7 +6,6 @@ FILE_LIST = %w[ lib/gitlab/git lib/gitlab/encoding_helper.rb lib/gitlab/utils/strong_memoize.rb - lib/gitlab/version_info.rb ].freeze # We have (already) stopped vendoring these files. @@ -33,6 +32,7 @@ EXCLUDE = %w[ lib/gitlab/git/wiki_file.rb lib/gitlab/git/wiki_page.rb lib/gitlab/git/wiki_page_version.rb + lib/gitlab/version_info.rb ].freeze REMOTE = 'https://gitlab.com/gitlab-org/gitlab-ce'.freeze diff --git a/changelogs/unreleased/zj-stop-vendor-version-info.yml b/changelogs/unreleased/zj-stop-vendor-version-info.yml new file mode 100644 index 000000000..70c4b900c --- /dev/null +++ b/changelogs/unreleased/zj-stop-vendor-version-info.yml @@ -0,0 +1,5 @@ +--- +title: Stop vendoring Gitlab::VersionInfo +merge_request: 840 +author: +type: changed diff --git a/ruby/lib/gitlab/git.rb b/ruby/lib/gitlab/git.rb index d2c097a70..bc72f5ca4 100644 --- a/ruby/lib/gitlab/git.rb +++ b/ruby/lib/gitlab/git.rb @@ -18,6 +18,7 @@ require_relative 'git_logger.rb' require_relative 'rails_logger.rb' require_relative 'gollum.rb' require_relative 'config.rb' +require_relative 'version_info' def require_dependency(_arg) # no-op @@ -28,7 +29,6 @@ vendor_gitlab_git = '../../vendor/gitlab_git/' # Some later requires are order-sensitive. Manually require whatever we need. require_relative File.join(vendor_gitlab_git, 'lib/gitlab/encoding_helper.rb') require_relative File.join(vendor_gitlab_git, 'lib/gitlab/utils/strong_memoize.rb') -require_relative File.join(vendor_gitlab_git, 'lib/gitlab/version_info.rb') require_relative File.join(vendor_gitlab_git, 'lib/gitlab/git.rb') require_relative File.join(vendor_gitlab_git, 'lib/gitlab/git/popen.rb') require_relative File.join(vendor_gitlab_git, 'lib/gitlab/git/ref.rb') diff --git a/ruby/vendor/gitlab_git/lib/gitlab/version_info.rb b/ruby/lib/gitlab/version_info.rb index 6ee41e85c..6ee41e85c 100644 --- a/ruby/vendor/gitlab_git/lib/gitlab/version_info.rb +++ b/ruby/lib/gitlab/version_info.rb diff --git a/ruby/spec/lib/gitlab/version_info_spec.rb b/ruby/spec/lib/gitlab/version_info_spec.rb new file mode 100644 index 000000000..923b4a7db --- /dev/null +++ b/ruby/spec/lib/gitlab/version_info_spec.rb @@ -0,0 +1,66 @@ +require 'spec_helper' + +describe Gitlab::VersionInfo do + let(:unknown) { described_class.new } + let(:v0_0_1) { described_class.new(0, 0, 1)} + let(:v0_1_0) { described_class.new(0, 1, 0) } + let(:v1_0_0) { described_class.new(1, 0, 0) } + let(:v1_0_1) { described_class.new(1, 0, 1) } + let(:v1_1_0) { described_class.new(1, 1, 0) } + let(:v2_0_0) { described_class.new(2, 0, 0) } + + context '>' do + it { expect(v2_0_0).to be > v1_1_0 } + it { expect(v1_1_0).to be > v1_0_1 } + it { expect(v1_0_1).to be > v1_0_0 } + it { expect(v1_0_0).to be > v0_1_0 } + it { expect(v0_1_0).to be > v0_0_1 } + end + + context '>=' do + it { expect(v2_0_0).to be >= described_class.new(2, 0, 0) } + it { expect(v2_0_0).to be >= v1_1_0 } + end + + context '<' do + it { expect(v0_0_1).to be < v0_1_0 } + it { expect(v0_1_0).to be < v1_0_0 } + it { expect(v1_0_0).to be < v1_0_1 } + it { expect(v1_0_1).to be < v1_1_0 } + it { expect(v1_1_0).to be < v2_0_0 } + end + + context '<=' do + it { expect(v0_0_1).to be <= described_class.new(0, 0, 1) } + it { expect(v0_0_1).to be <= v0_1_0 } + end + + context '==' do + it { expect(v0_0_1).to eq(described_class.new(0, 0, 1)) } + it { expect(v0_1_0).to eq(described_class.new(0, 1, 0)) } + it { expect(v1_0_0).to eq(described_class.new(1, 0, 0)) } + end + + context '!=' do + it { expect(v0_0_1).not_to eq(v0_1_0) } + end + + context 'unknown' do + it { expect(unknown).not_to be v0_0_1 } + it { expect(unknown).not_to be described_class.new } + it { expect {unknown > v0_0_1}.to raise_error(ArgumentError) } + it { expect {unknown < v0_0_1}.to raise_error(ArgumentError) } + end + + context 'parse' do + it { expect(described_class.parse("1.0.0")).to eq(v1_0_0) } + it { expect(described_class.parse("1.0.0.1")).to eq(v1_0_0) } + it { expect(described_class.parse("git 1.0.0b1")).to eq(v1_0_0) } + it { expect(described_class.parse("git 1.0b1")).not_to be_valid } + end + + context 'to_s' do + it { expect(v1_0_0.to_s).to eq("1.0.0") } + it { expect(unknown.to_s).to eq("Unknown") } + end +end |