rubygems-tasks 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.github/workflows/ruby.yml +27 -0
- data/.gitignore +4 -3
- data/.travis.yml +9 -0
- data/ChangeLog.md +13 -0
- data/Gemfile +10 -0
- data/LICENSE.txt +1 -1
- data/README.md +23 -12
- data/Rakefile +7 -66
- data/gemspec.yml +16 -4
- data/lib/rubygems/tasks/build/gem.rb +0 -2
- data/lib/rubygems/tasks/build/tar.rb +0 -2
- data/lib/rubygems/tasks/build/task.rb +9 -14
- data/lib/rubygems/tasks/console.rb +1 -4
- data/lib/rubygems/tasks/install.rb +1 -1
- data/lib/rubygems/tasks/project.rb +3 -3
- data/lib/rubygems/tasks/push.rb +2 -2
- data/lib/rubygems/tasks/sign/checksum.rb +3 -2
- data/lib/rubygems/tasks/sign/pgp.rb +1 -1
- data/lib/rubygems/tasks/sign/task.rb +13 -17
- data/lib/rubygems/tasks/task.rb +14 -8
- data/lib/rubygems/tasks.rb +140 -2
- data/rubygems-tasks.gemspec +39 -87
- data/spec/console_spec.rb +43 -20
- data/spec/install_spec.rb +5 -1
- data/spec/project_spec.rb +30 -27
- data/spec/projects/bundler-project/.gitignore +17 -0
- data/spec/projects/bundler-project/Gemfile +4 -0
- data/spec/projects/bundler-project/LICENSE +22 -0
- data/spec/projects/bundler-project/README.md +29 -0
- data/spec/projects/bundler-project/Rakefile +2 -0
- data/spec/projects/bundler-project/bundler-project.gemspec +19 -0
- data/spec/projects/bundler-project/lib/bundler-project/version.rb +5 -0
- data/spec/projects/bundler-project/lib/bundler-project.rb +7 -0
- data/spec/projects/rubygems-multi-project/.gitignore +17 -0
- data/spec/projects/rubygems-multi-project/LICENSE.txt +22 -0
- data/spec/projects/rubygems-multi-project/README.md +21 -0
- data/spec/projects/rubygems-multi-project/lib/rubygems/project/version.rb +5 -0
- data/spec/projects/rubygems-multi-project/rubygems-project-lite.gemspec +19 -0
- data/spec/projects/rubygems-multi-project/rubygems-project.gemspec +19 -0
- data/spec/projects/rubygems-project/.gitignore +17 -0
- data/spec/projects/rubygems-project/LICENSE.txt +22 -0
- data/spec/projects/rubygems-project/README.md +21 -0
- data/spec/projects/rubygems-project/lib/rubygems/project/version.rb +5 -0
- data/spec/projects/rubygems-project/rubygems-project.gemspec +19 -0
- data/spec/push_spec.rb +2 -2
- data/spec/rake_context.rb +1 -3
- data/spec/scm/push_spec.rb +7 -7
- data/spec/scm/status_spec.rb +6 -6
- data/spec/scm/tag_spec.rb +18 -18
- data/spec/sign/pgp_spec.rb +1 -1
- data/spec/spec_helper.rb +25 -8
- data/spec/tasks_spec.rb +171 -55
- metadata +99 -87
- data/lib/rubygems/tasks/tasks.rb +0 -147
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: be886af586a0508f6dbe548247677067920db2f38b4590c4cd54f3b96b0449ee
|
4
|
+
data.tar.gz: 7d3c7deb140448cfebfba8ebbf184eccfe4bc167823f2088192c5e4f0f69acc3
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a5906ece048555085e8ec9b5959f262c3d642ee28d8001f8f42221ce53a1c76e39ce41a5e18cdafae1c8ed67fa1ef97b009a28f66b0223c117efba4d78e44f7c
|
7
|
+
data.tar.gz: '038f3abd105da7c5705632c4e65dc3d268567da424bb5e74411b667b93a940a3ff563a801e2ddee32959d7514e4ba821b39e8db0797fce7819814cd8498b2b9a'
|
@@ -0,0 +1,27 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on: [ push, pull_request ]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
tests:
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
strategy:
|
9
|
+
fail-fast: false
|
10
|
+
matrix:
|
11
|
+
ruby:
|
12
|
+
- 3.0
|
13
|
+
- 3.1
|
14
|
+
- 3.2
|
15
|
+
- jruby
|
16
|
+
- truffleruby
|
17
|
+
name: Ruby ${{ matrix.ruby }}
|
18
|
+
steps:
|
19
|
+
- uses: actions/checkout@v2
|
20
|
+
- name: Set up Ruby
|
21
|
+
uses: ruby/setup-ruby@v1
|
22
|
+
with:
|
23
|
+
ruby-version: ${{ matrix.ruby }}
|
24
|
+
- name: Install dependencies
|
25
|
+
run: bundle install --jobs 4 --retry 3
|
26
|
+
- name: Run tests
|
27
|
+
run: bundle exec rake test
|
data/.gitignore
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
/Gemfile.lock
|
2
|
+
/doc/
|
3
|
+
/pkg/
|
4
|
+
/vendor/bundle
|
data/.travis.yml
ADDED
data/ChangeLog.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
### 0.2.6 / 2023-09-07
|
2
|
+
|
3
|
+
* Fixed `rake install` so that it runs `gem install -q pkg/...` outside of the
|
4
|
+
Bundler environment, if currently running under Bundler.
|
5
|
+
|
6
|
+
### 0.2.5 / 2020-03-02
|
7
|
+
|
8
|
+
* Require Ruby >= 2.0.0.
|
9
|
+
* Added irb as a dependencies.
|
10
|
+
* Fixed issue where `file` tasks were defined in namespaces resulting in task
|
11
|
+
names such as `namespace:path/to/file` instead of simply `path/to/file`.
|
12
|
+
* Set gemspec license to MIT.
|
13
|
+
|
1
14
|
### 0.2.4 / 2013-04-8
|
2
15
|
|
3
16
|
* Use the new `Gem::Package` class when running under Ruby 2.0.0.
|
data/Gemfile
ADDED
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# rubygems-tasks
|
2
2
|
|
3
|
+
[](https://github.com/postmodern/rubygems-tasks/actions/workflows/ruby.yml)
|
4
|
+
[](https://codeclimate.com/github/postmodern/rubygems-tasks)
|
5
|
+
|
3
6
|
* [Source](https://github.com/postmodern/rubygems-tasks)
|
4
7
|
* [Issues](https://github.com/postmodern/rubygems-tasks/issues)
|
5
8
|
* [Email](mailto:postmodern.mod3 at gmail.com)
|
@@ -33,7 +36,7 @@ This is what rubygems-tasks seeks to provide.
|
|
33
36
|
* Provides tasks to build, install and push gems to [rubygems.org].
|
34
37
|
* Loads all project metadata from the `.gemspec` file.
|
35
38
|
* Supports loading multiple `.gemspec` files.
|
36
|
-
* Supports pushing gems to alternate [
|
39
|
+
* Supports pushing gems to alternate [gem server]s.
|
37
40
|
* Supports optionally building `.tar.gz` and `.zip` archives.
|
38
41
|
* `build:tar`
|
39
42
|
* `build:zip`
|
@@ -55,6 +58,11 @@ This is what rubygems-tasks seeks to provide.
|
|
55
58
|
* **Does not** inject dependencies into gems.
|
56
59
|
* **Zero** dependencies.
|
57
60
|
|
61
|
+
## Requirements
|
62
|
+
|
63
|
+
* [ruby] >= 2.0.0
|
64
|
+
* [rake]
|
65
|
+
|
58
66
|
## Install
|
59
67
|
|
60
68
|
$ gem install rubygems-tasks
|
@@ -67,7 +75,7 @@ Specifying an alternate Ruby Console to run:
|
|
67
75
|
tasks.console.command = 'pry'
|
68
76
|
end
|
69
77
|
|
70
|
-
Enable pushing gems to an in-house [
|
78
|
+
Enable pushing gems to an in-house [gem server]:
|
71
79
|
|
72
80
|
Gem::Tasks.new do |tasks|
|
73
81
|
tasks.push.host = 'gems.company.com'
|
@@ -75,23 +83,23 @@ Enable pushing gems to an in-house [Gemcutter] server:
|
|
75
83
|
|
76
84
|
Disable the `push` task:
|
77
85
|
|
78
|
-
Gem::Tasks.new(:
|
86
|
+
Gem::Tasks.new(push: false)
|
79
87
|
|
80
88
|
Enable building `.tar.gz` and `.zip` archives:
|
81
89
|
|
82
|
-
Gem::Tasks.new(:
|
90
|
+
Gem::Tasks.new(build: {tar: true, zip: true})
|
83
91
|
|
84
92
|
Enable Checksums and PGP signatures for built packages:
|
85
93
|
|
86
|
-
Gem::Tasks.new(:
|
94
|
+
Gem::Tasks.new(sign: {checksum: true, pgp: true})
|
87
95
|
|
88
96
|
Selectively defining tasks:
|
89
97
|
|
90
|
-
Gem::Build::Tar.new
|
91
|
-
Gem::SCM::Status.new
|
92
|
-
Gem::SCM::Tag.new(:
|
93
|
-
Gem::Sign::Checksum.new
|
94
|
-
Gem::Console.new
|
98
|
+
Gem::Tasks::Build::Tar.new
|
99
|
+
Gem::Tasks::SCM::Status.new
|
100
|
+
Gem::Tasks::SCM::Tag.new(format: 'REL-%s')
|
101
|
+
Gem::Tasks::Sign::Checksum.new
|
102
|
+
Gem::Tasks::Console.new
|
95
103
|
|
96
104
|
## Synopsis
|
97
105
|
|
@@ -102,7 +110,7 @@ Selectively defining tasks:
|
|
102
110
|
|
103
111
|
## Copyright
|
104
112
|
|
105
|
-
Copyright (c) 2011-
|
113
|
+
Copyright (c) 2011-2020 Hal Brodigan
|
106
114
|
|
107
115
|
See {file:LICENSE.txt} for details.
|
108
116
|
|
@@ -114,4 +122,7 @@ See {file:LICENSE.txt} for details.
|
|
114
122
|
[Hoe]: https://github.com/seattlerb/hoe#readme
|
115
123
|
|
116
124
|
[rubygems.org]: https://rubygems.org/
|
117
|
-
[
|
125
|
+
[gem server]: https://github.com/rubygems/rubygems.org#readme
|
126
|
+
|
127
|
+
[ruby]: https://www.ruby-lang.org/
|
128
|
+
[rake]: https://rubygems.org/gems/rake
|
data/Rakefile
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'rubygems'
|
2
|
+
|
2
3
|
require 'rake'
|
3
4
|
|
4
5
|
lib_dir = File.expand_path('lib',File.dirname(__FILE__))
|
@@ -6,74 +7,14 @@ $LOAD_PATH << lib_dir unless $LOAD_PATH.include?(lib_dir)
|
|
6
7
|
|
7
8
|
require 'rubygems/tasks'
|
8
9
|
Gem::Tasks.new(
|
9
|
-
:
|
10
|
-
:
|
10
|
+
build: {gem: true, tar: true},
|
11
|
+
sign: {checksum: true, pgp: true}
|
11
12
|
)
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
require 'rspec/core/rake_task'
|
16
|
-
|
17
|
-
RSpec::Core::RakeTask.new
|
18
|
-
rescue LoadError
|
19
|
-
task :spec do
|
20
|
-
abort "Please run `gem install rspec` to install RSpec."
|
21
|
-
end
|
22
|
-
end
|
14
|
+
require 'rspec/core/rake_task'
|
15
|
+
RSpec::Core::RakeTask.new
|
23
16
|
task :test => :spec
|
24
17
|
task :default => :spec
|
25
18
|
|
26
|
-
|
27
|
-
|
28
|
-
require 'yard'
|
29
|
-
|
30
|
-
YARD::Rake::YardocTask.new
|
31
|
-
rescue LoadError => e
|
32
|
-
task :yard do
|
33
|
-
abort 'Please run `gem install yard` to install YARD.'
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
require 'net/https'
|
38
|
-
require 'uri'
|
39
|
-
|
40
|
-
DOWNLOAD_URI = 'http://cloud.github.com/downloads/postmodern/rubygems-tasks/'
|
41
|
-
PROJECTS_DIR = File.join('data','projects')
|
42
|
-
PROJECTS = %w[rubygems-project rubygems-multi-project bundler-project]
|
43
|
-
|
44
|
-
directory PROJECTS_DIR
|
45
|
-
|
46
|
-
PROJECTS.each do |project|
|
47
|
-
project_file = "#{project}.tar.gz"
|
48
|
-
project_path = File.join(PROJECTS_DIR,project_file)
|
49
|
-
project_dir = File.join(PROJECTS_DIR,project)
|
50
|
-
|
51
|
-
file project_path => PROJECTS_DIR do
|
52
|
-
Net::HTTP.get_response(URI(DOWNLOAD_URI + project_file)) do |response|
|
53
|
-
size, total = 0, response.header['Content-Length'].to_i
|
54
|
-
|
55
|
-
puts ">>> Downloading to #{project_file} to #{project_path} ..."
|
56
|
-
|
57
|
-
File.open(project_path,"wb") do |file|
|
58
|
-
response.read_body do |chunk|
|
59
|
-
file.write(chunk)
|
60
|
-
|
61
|
-
size += chunk.size
|
62
|
-
printf "\r>>> [%d / %d] %d%% ...", size, total, ((size * 100) / total)
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
puts
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
task project_dir => project_path do
|
71
|
-
unless File.directory?(project_dir)
|
72
|
-
sh 'tar', 'xzf', project_path, '-C', PROJECTS_DIR
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
task 'data:projects' => project_dir
|
77
|
-
end
|
78
|
-
|
79
|
-
task :spec => 'data:projects'
|
19
|
+
require 'yard'
|
20
|
+
YARD::Rake::YardocTask.new
|
data/gemspec.yml
CHANGED
@@ -1,14 +1,26 @@
|
|
1
1
|
name: rubygems-tasks
|
2
|
-
version: 0.2.
|
2
|
+
version: 0.2.6
|
3
3
|
summary: Rake tasks for managing and releasing Ruby Gems.
|
4
|
-
description:
|
4
|
+
description: |
|
5
5
|
Agnostic and unobtrusive Rake tasks for managing and releasing Ruby Gems.
|
6
6
|
|
7
7
|
authors: Postmodern
|
8
|
+
license: MIT
|
8
9
|
email: postmodern.mod3@gmail.com
|
9
10
|
homepage: https://github.com/postmodern/rubygems-tasks#readme
|
10
11
|
has_yard: true
|
11
12
|
|
13
|
+
metadata:
|
14
|
+
documentation_uri: https://rubydoc.info/gems/rubygems-tasks
|
15
|
+
source_code_uri: https://github.com/postmodern/rubygems-tasks
|
16
|
+
bug_tracker_uri: https://github.com/postmodern/rubygems-tasks/issues
|
17
|
+
changelog_uri: https://github.com/postmodern/rubygems-tasks/blob/master/ChangeLog.md
|
18
|
+
|
19
|
+
required_ruby_version: ">= 2.0.0"
|
20
|
+
|
21
|
+
dependencies:
|
22
|
+
rake: ">= 10.0.0"
|
23
|
+
irb: ~> 1.0
|
24
|
+
|
12
25
|
development_dependencies:
|
13
|
-
|
14
|
-
yard: ~> 0.7
|
26
|
+
bundler: ~> 2.0
|
@@ -34,25 +34,20 @@ module Gem
|
|
34
34
|
task :validate
|
35
35
|
|
36
36
|
@project.builds.each do |build,packages|
|
37
|
-
|
38
|
-
|
39
|
-
gemspec = @project.gemspecs[build]
|
40
|
-
path = packages[extname]
|
37
|
+
gemspec = @project.gemspecs[build]
|
38
|
+
path = packages[extname]
|
41
39
|
|
42
|
-
|
43
|
-
|
44
|
-
|
40
|
+
# define file tasks, so the packages are not needless re-built
|
41
|
+
file(path => [Project::PKG_DIR, *gemspec.files]) do
|
42
|
+
invoke :validate
|
45
43
|
|
46
|
-
|
44
|
+
status "Building #{File.basename(path)} ..."
|
47
45
|
|
48
|
-
|
49
|
-
end
|
50
|
-
|
51
|
-
task build => path
|
52
|
-
end
|
46
|
+
build(path,gemspec)
|
53
47
|
end
|
54
48
|
|
55
|
-
task "build:#{
|
49
|
+
task "build:#{name}:#{build}" => path
|
50
|
+
task "build:#{build}" => "build:#{name}:#{build}"
|
56
51
|
end
|
57
52
|
|
58
53
|
gemspec_tasks "build:#{name}"
|
@@ -77,11 +77,8 @@ module Gem
|
|
77
77
|
# add -I options for lib/ or ext/ directories
|
78
78
|
arguments.push(*require_paths.map { |dir| "-I#{dir}" })
|
79
79
|
|
80
|
-
# add a -rrubygems to explicitly load rubygems on Ruby 1.8
|
81
|
-
arguments.push('-rrubygems') if RUBY_VERSION < '1.9'
|
82
|
-
|
83
80
|
# add an -r option to require the library
|
84
|
-
arguments.push(
|
81
|
+
arguments.push("-r#{require_file}")
|
85
82
|
|
86
83
|
# push on additional options
|
87
84
|
arguments.push(*@options)
|
data/lib/rubygems/tasks/push.rb
CHANGED
@@ -7,7 +7,7 @@ module Gem
|
|
7
7
|
#
|
8
8
|
class Push < Task
|
9
9
|
|
10
|
-
# The
|
10
|
+
# The rubygems host to push gems to.
|
11
11
|
attr_accessor :host
|
12
12
|
|
13
13
|
#
|
@@ -17,7 +17,7 @@ module Gem
|
|
17
17
|
# Additional options.
|
18
18
|
#
|
19
19
|
# @option options [String] :host
|
20
|
-
# The
|
20
|
+
# The rubygems host to push gems to.
|
21
21
|
#
|
22
22
|
def initialize(options={})
|
23
23
|
super()
|
@@ -7,28 +7,13 @@ module Gem
|
|
7
7
|
module Sign
|
8
8
|
class Task < Tasks::Task
|
9
9
|
|
10
|
-
#
|
11
|
-
# Signs a package.
|
12
|
-
#
|
13
|
-
# @param [String] path
|
14
|
-
# The path to the package.
|
15
|
-
#
|
16
|
-
# @abstract
|
17
|
-
#
|
18
|
-
def sign(path)
|
19
|
-
end
|
20
|
-
|
21
|
-
protected
|
22
|
-
|
23
10
|
#
|
24
11
|
# Defines signing tasks for the various packages.
|
25
12
|
#
|
26
13
|
# @param [Symbol] name
|
27
14
|
# The name for the `sign:` task.
|
28
15
|
#
|
29
|
-
|
30
|
-
#
|
31
|
-
def sign_task(name)
|
16
|
+
def define(name)
|
32
17
|
@project.builds.each do |build,packages|
|
33
18
|
packages.each do |format,path|
|
34
19
|
namespace :sign do
|
@@ -42,7 +27,7 @@ module Gem
|
|
42
27
|
end
|
43
28
|
end
|
44
29
|
|
45
|
-
|
30
|
+
namespaced_tasks "sign:#{name}:#{build}", packages.keys
|
46
31
|
|
47
32
|
task "sign:#{name}" => "sign:#{name}:#{build}"
|
48
33
|
task "sign:#{build}" => "sign:#{name}:#{build}"
|
@@ -52,6 +37,17 @@ module Gem
|
|
52
37
|
end
|
53
38
|
end
|
54
39
|
|
40
|
+
#
|
41
|
+
# Signs a package.
|
42
|
+
#
|
43
|
+
# @param [String] path
|
44
|
+
# The path to the package.
|
45
|
+
#
|
46
|
+
# @abstract
|
47
|
+
#
|
48
|
+
def sign(path)
|
49
|
+
end
|
50
|
+
|
55
51
|
end
|
56
52
|
end
|
57
53
|
end
|
data/lib/rubygems/tasks/task.rb
CHANGED
@@ -67,7 +67,13 @@ module Gem
|
|
67
67
|
# @api semipublic
|
68
68
|
#
|
69
69
|
def gem(command,*arguments)
|
70
|
-
|
70
|
+
if defined?(Bundler)
|
71
|
+
Bundler.with_original_env do
|
72
|
+
run 'gem', command, *arguments
|
73
|
+
end
|
74
|
+
else
|
75
|
+
run 'gem', command, *arguments
|
76
|
+
end
|
71
77
|
end
|
72
78
|
|
73
79
|
#
|
@@ -124,28 +130,28 @@ module Gem
|
|
124
130
|
# @param [String] prefix
|
125
131
|
# The namespace of the sub-tasks to call.
|
126
132
|
#
|
127
|
-
# @param [Array<Symbol>]
|
133
|
+
# @param [Array<Symbol>] subtasks
|
128
134
|
# The names of the sub-tasks.
|
129
135
|
#
|
130
136
|
# @example
|
131
|
-
#
|
137
|
+
# namespaced_tasks 'pkg:tar', @project.gemspecs.keys
|
132
138
|
#
|
133
139
|
# @api semipublic
|
134
140
|
#
|
135
|
-
def
|
136
|
-
task prefix =>
|
141
|
+
def namespaced_tasks(prefix,subtasks)
|
142
|
+
task prefix => subtasks.map { |subtask| "#{prefix}:#{subtask}" }
|
137
143
|
end
|
138
144
|
|
139
145
|
#
|
140
146
|
# Defines a task that will execute tasks for each gemspec.
|
141
147
|
#
|
142
|
-
# @param [Symbol, String]
|
148
|
+
# @param [Symbol, String] prefix
|
143
149
|
# The name for the task.
|
144
150
|
#
|
145
151
|
# @api semipublic
|
146
152
|
#
|
147
|
-
def gemspec_tasks(
|
148
|
-
|
153
|
+
def gemspec_tasks(prefix)
|
154
|
+
namespaced_tasks prefix, @project.gemspecs.keys
|
149
155
|
end
|
150
156
|
|
151
157
|
end
|