sugarjar 1.1.0 → 1.1.2
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 +4 -4
- data/README.md +31 -15
- data/bin/sj +33 -9
- data/extras/sugarjar_completion.bash +42 -0
- data/lib/sugarjar/commands.rb +110 -21
- data/lib/sugarjar/config.rb +2 -0
- data/lib/sugarjar/util.rb +2 -0
- data/lib/sugarjar/version.rb +1 -1
- data/sugarjar.gemspec +4 -2
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4263a42ebb922645e2e0735c3ca33ad94df880fb01f881b2cacb602d733c533e
|
4
|
+
data.tar.gz: 616fb99c535c491324c1dcc4906b37c8cb424566b62dc64377c61b9a5ef5fd49
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1d918daf7096d1889bf72ee0eca74ef473234ed1ed46e4275418028e9a32c9284b4412ff202a932a3cc43c777bbf55d1455ce8fd8805c965184e4d2bc740e527
|
7
|
+
data.tar.gz: 0657a6629d97623d40f68d0ffe7a3e0522c951d9b22dc0c7b4b918d78eb27b026ab68d347b1c2fa68661536eceef9cbf3de3ee82b4ea4381da2675f1d34b3f2d
|
data/README.md
CHANGED
@@ -5,14 +5,13 @@
|
|
5
5
|
[](https://github.com/jaymzh/sugarjar/actions?query=workflow%3A%22DCO+Check%22)
|
6
6
|
|
7
7
|
> [!IMPORTANT]
|
8
|
-
>
|
9
|
-
>
|
10
|
-
>
|
11
|
-
>
|
12
|
-
>
|
13
|
-
>
|
14
|
-
>
|
15
|
-
> and for those who may not yet be ready for the transition to Sapling.
|
8
|
+
> As this was meant to replace arc/jf, which has now been open-sourced as
|
9
|
+
> [Sapling](https://sapling-scm.com/), I highly recommend taking a look at that!
|
10
|
+
>
|
11
|
+
> Sapling is a great tool and solves a variety of problems SugarJar will never
|
12
|
+
> be able to. However, it is a bigger workflow change, so existing SJ users
|
13
|
+
> may choose to stick with this. Similarly some workflows may not be suitable
|
14
|
+
> for Sapling. I still plan to maintain and develop SugarJar for the time being.
|
16
15
|
|
17
16
|
Welcome to SugarJar - a git/github helper. It needs one of the GitHub CLI's:
|
18
17
|
either [gh](https://cli.github.com/) or the older [hub](https://hub.github.com/).
|
@@ -33,18 +32,29 @@ If you don't, there's a ton of useful stuff for everyone!
|
|
33
32
|
Sugarjar is packaged in a variety of Linux distributions - see if it's on the
|
34
33
|
list here, and if so, use your package manager (or `gem`) to install it:
|
35
34
|
|
36
|
-
[](https://repology.org/project/sugarjar/versions)
|
35
|
+
[](https://repology.org/project/sugarjar/versions)
|
37
36
|
|
38
|
-
|
37
|
+
If you are using a Linux distribution version that is end-of-life'd, click the
|
38
|
+
above image, it'll take you to a page that lists unsupported distro versions
|
39
|
+
as well (they'll have older SugarJar, but they'll probably still have some
|
40
|
+
version).
|
41
|
+
|
42
|
+
Ubuntu users, Ubuntu versions prior to 24.x cannot be updated, so if you're on
|
43
|
+
an older Ubuntu please use [this
|
44
|
+
PPA](https://launchpad.net/~michel-slm/+archive/ubuntu/sugarjar) from our
|
45
|
+
Ubuntu package maintainer.
|
46
|
+
|
47
|
+
For MacOS users, we recommend using Homebrew - SugarJar is now in Homebrew Core.
|
48
|
+
|
49
|
+
NOTE: If you previously used our custom Homebrew tap, you should remove and
|
50
|
+
untap it:
|
39
51
|
|
40
52
|
```shell
|
41
|
-
homebrew
|
42
|
-
homebrew
|
53
|
+
homebrew uninstall sugarjar
|
54
|
+
homebrew untap jaymzh/sugarjar
|
43
55
|
```
|
44
56
|
|
45
|
-
|
46
|
-
PR](https://github.com/Homebrew/homebrew-core/pull/157910) and tell the
|
47
|
-
Homebrew folks you'd like to see it in core.
|
57
|
+
Then you can install the core version (`brew install sugarjar`).
|
48
58
|
|
49
59
|
Finally, if none of those work for you, you can clone this repo and run it
|
50
60
|
directly from there.
|
@@ -410,3 +420,9 @@ will allow me to make sure it shows up in the Repology badge above.
|
|
410
420
|
Since it's Ruby, it should work across all platforms, however, it's developed
|
411
421
|
and primarily tested on Linux as well as regularly used on Mac. I've not tested
|
412
422
|
it on Windows, but I'll happily accept patches for Windows compatibility.
|
423
|
+
|
424
|
+
**How do I get tab-completion?**
|
425
|
+
|
426
|
+
If the package for your OS/distro didn't set it up manually, you should find
|
427
|
+
that `sugarjar_completion.bash` is included in the package, and you can simply
|
428
|
+
source that in your dotfiles, assuming you are using bash.
|
data/bin/sj
CHANGED
@@ -91,6 +91,24 @@ parser = OptionParser.new do |opts|
|
|
91
91
|
options['log_level'] = level
|
92
92
|
end
|
93
93
|
|
94
|
+
opts.on(
|
95
|
+
'--[no-]pr-autofill',
|
96
|
+
'When creating a PR, auto fill the title & description from the commit ' +
|
97
|
+
'if there is a single commit and if we are using "gh". [default: true]',
|
98
|
+
) do |autofill|
|
99
|
+
options['pr_autofill'] = autofill
|
100
|
+
end
|
101
|
+
|
102
|
+
opts.on(
|
103
|
+
'--[no-]pr-autostack',
|
104
|
+
'When creating a PR, if this is a subfeature, should we make it a ' +
|
105
|
+
'PR on the PR for the parent feature. If not specified, we prompt ' +
|
106
|
+
'when this happens, when true always do this, when false never do ' +
|
107
|
+
'this. Only applicable when usiing "gh".',
|
108
|
+
) do |autostack|
|
109
|
+
options['pr_autostack'] = autostack
|
110
|
+
end
|
111
|
+
|
94
112
|
opts.on('--[no-]use-color', 'Enable color. [default: true]') do |color|
|
95
113
|
options['color'] = color
|
96
114
|
end
|
@@ -112,10 +130,10 @@ COMMANDS:
|
|
112
130
|
Same as "amend" but without changing the message. Alias for
|
113
131
|
"git commit --amend --no-edit".
|
114
132
|
|
115
|
-
bclean
|
116
|
-
If safe, delete the current branch
|
117
|
-
bclean can handle squash-merged branches.
|
118
|
-
a smarter "git branch -d".
|
133
|
+
bclean [<branch>]
|
134
|
+
If safe, delete the current branch (or the specified branch).
|
135
|
+
Unlike "git branch -d", bclean can handle squash-merged branches.
|
136
|
+
Think of it as a smarter "git branch -d".
|
119
137
|
|
120
138
|
bcleanall
|
121
139
|
Walk all branches, and try to delete them if it's safe. See
|
@@ -127,7 +145,7 @@ COMMANDS:
|
|
127
145
|
br
|
128
146
|
Verbose branch list. An alias for "git branch -v".
|
129
147
|
|
130
|
-
feature
|
148
|
+
feature, f <branch_name>
|
131
149
|
Create a "feature" branch. It's morally equivalent to
|
132
150
|
"git checkout -b" except it defaults to creating it based on
|
133
151
|
some form of 'master' instead of your current branch. In order
|
@@ -177,11 +195,17 @@ COMMANDS:
|
|
177
195
|
A smart wrapper to "git push" that runs whatever is defined in
|
178
196
|
"on_push" in .sugarjar.yml, and only pushes if they succeed.
|
179
197
|
|
198
|
+
subfeature, sf <feature>
|
199
|
+
An alias for 'sj feature <feature> <current_branch>'
|
200
|
+
|
180
201
|
unit
|
181
202
|
Run any unitests configured in .sugarjar.yaml.
|
182
203
|
|
183
|
-
up
|
184
|
-
Rebase the current branch
|
204
|
+
up [<branch>]
|
205
|
+
Rebase the current branch (or specified branch) intelligently.
|
206
|
+
In most causes this will check for a main (or master) branch on
|
207
|
+
upstream, then origin. If a branch explicitly tracks something
|
208
|
+
else, then that will be used, instead.
|
185
209
|
|
186
210
|
upall
|
187
211
|
Same as "up", but for all branches.
|
@@ -190,9 +214,9 @@ COMMANDS:
|
|
190
214
|
Print the version of sugarjar, and then run 'hub version'
|
191
215
|
to show the hub and git versions.
|
192
216
|
|
193
|
-
Be sure to checkout Sapling (https://sapling-scm.com/)!
|
217
|
+
Be sure to checkout Sapling (https://sapling-scm.com/)! SugarJar was written as
|
194
218
|
a stop-gap to get Sapling features before it was open-sourced, and as such
|
195
|
-
|
219
|
+
Sapling may serve your needs even better.
|
196
220
|
COMMANDS
|
197
221
|
|
198
222
|
# rubocop:enable Layout/HeredocIndentation
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# bash completion for sugarjar
|
2
|
+
|
3
|
+
SJCONFIG="$HOME/.config/sugarjar/config.yaml"
|
4
|
+
|
5
|
+
_sugarjar_completions()
|
6
|
+
{
|
7
|
+
if [ "${#COMP_WORDS[@]}" -eq 2 ]; then
|
8
|
+
return
|
9
|
+
fi
|
10
|
+
|
11
|
+
local -a suggestions
|
12
|
+
|
13
|
+
# grap the feature_prefix if we have one so that we
|
14
|
+
# can let the user ignore that part. If we have `yq`
|
15
|
+
# we'll use it as that's going to be always 100%
|
16
|
+
# reliable, but if we don't, do our best with shell
|
17
|
+
# utils
|
18
|
+
local prefix=''
|
19
|
+
if [ -e "$SJCONFIG" ]; then
|
20
|
+
if type yq &>/dev/null; then
|
21
|
+
prefix=$(yq .feature_prefix $SJCONFIG)
|
22
|
+
else
|
23
|
+
# the xargs removes extra spaces
|
24
|
+
prefix=$(grep feature_prefix $SJCONFIG | cut -f2 -d: | xargs)
|
25
|
+
fi
|
26
|
+
fi
|
27
|
+
|
28
|
+
case "${COMP_WORDS[1]}" in
|
29
|
+
co|checkout|bclean)
|
30
|
+
local branches=$(git branch | sed -e 's/* //g' | xargs)
|
31
|
+
if [ -n "$prefix" ]; then
|
32
|
+
local branches=$(echo $branches | sed -e "s!$prefix!!g")
|
33
|
+
fi
|
34
|
+
suggestions=($(compgen -W "$branches" -- "${COMP_WORDS[2]}"))
|
35
|
+
COMPREPLY=("${suggestions[@]}")
|
36
|
+
;;
|
37
|
+
*)
|
38
|
+
return
|
39
|
+
esac
|
40
|
+
}
|
41
|
+
|
42
|
+
complete -F _sugarjar_completions sj
|
data/lib/sugarjar/commands.rb
CHANGED
@@ -23,6 +23,8 @@ class SugarJar
|
|
23
23
|
@repo_config = SugarJar::RepoConfig.config
|
24
24
|
SugarJar::Log.debug("Repoconfig: #{@repo_config}")
|
25
25
|
@color = options['color']
|
26
|
+
@pr_autofill = options['pr_autofill']
|
27
|
+
@pr_autostack = options['pr_autostack']
|
26
28
|
@feature_prefix = options['feature_prefix']
|
27
29
|
@checks = {}
|
28
30
|
@main_branch = nil
|
@@ -43,19 +45,31 @@ class SugarJar
|
|
43
45
|
name = fprefix(name)
|
44
46
|
die("#{name} already exists!") if all_local_branches.include?(name)
|
45
47
|
base ||= most_main
|
46
|
-
|
47
|
-
|
48
|
+
# If our base is a local branch, don't try to parse it for a remote name
|
49
|
+
unless all_local_branches.include?(base)
|
50
|
+
base_pieces = base.split('/')
|
51
|
+
git('fetch', base_pieces[0]) if base_pieces.length > 1
|
52
|
+
end
|
48
53
|
git('checkout', '-b', name, base)
|
54
|
+
git('branch', '-u', base)
|
49
55
|
SugarJar::Log.info(
|
50
56
|
"Created feature branch #{color(name, :green)} based on " +
|
51
57
|
color(base, :green),
|
52
58
|
)
|
53
59
|
end
|
60
|
+
alias f feature
|
61
|
+
|
62
|
+
def subfeature(name)
|
63
|
+
assert_in_repo
|
64
|
+
SugarJar::Log.debug("Subfature: #{name}")
|
65
|
+
feature(name, current_branch)
|
66
|
+
end
|
67
|
+
alias sf subfeature
|
54
68
|
|
55
69
|
def bclean(name = nil)
|
56
70
|
assert_in_repo
|
57
71
|
name ||= current_branch
|
58
|
-
name = fprefix(name)
|
72
|
+
name = fprefix(name)
|
59
73
|
if clean_branch(name)
|
60
74
|
SugarJar::Log.info("#{name}: #{color('reaped', :green)}")
|
61
75
|
else
|
@@ -100,7 +114,7 @@ class SugarJar
|
|
100
114
|
# and then add any featureprefix, and if _that_ is a branch
|
101
115
|
# name, replace the last arguement with that
|
102
116
|
name = args.last
|
103
|
-
bname = fprefix(name)
|
117
|
+
bname = fprefix(name)
|
104
118
|
if all_local_branches.include?(bname)
|
105
119
|
SugarJar::Log.debug("Featurepefixing #{name} -> #{bname}")
|
106
120
|
args[-1] = bname
|
@@ -133,17 +147,25 @@ class SugarJar
|
|
133
147
|
|
134
148
|
alias sl smartlog
|
135
149
|
|
136
|
-
def up
|
150
|
+
def up(branch = nil)
|
137
151
|
assert_in_repo
|
152
|
+
branch ||= current_branch
|
153
|
+
branch = fprefix(branch)
|
138
154
|
# get a copy of our current branch, if rebase fails, we won't
|
139
155
|
# be able to determine it without backing out
|
140
156
|
curr = current_branch
|
157
|
+
git('checkout', branch)
|
141
158
|
result = gitup
|
142
159
|
if result['so'].error?
|
160
|
+
backout = ''
|
161
|
+
if rebase_in_progress?
|
162
|
+
backout = ' You can get out of this with a `git rebase --abort`.'
|
163
|
+
end
|
164
|
+
|
143
165
|
die(
|
144
166
|
"#{color(curr, :red)}: Failed to rebase on " +
|
145
|
-
"#{result['base']}. Leaving the repo as-is
|
146
|
-
'
|
167
|
+
"#{result['base']}. Leaving the repo as-is.#{backout} " +
|
168
|
+
'Output from failed rebase is: ' +
|
147
169
|
"\nSTDOUT:\n#{result['so'].stdout.lines.map { |x| "\t#{x}" }.join}" +
|
148
170
|
"\nSTDERR:\n#{result['so'].stderr.lines.map { |x| "\t#{x}" }.join}",
|
149
171
|
)
|
@@ -151,6 +173,8 @@ class SugarJar
|
|
151
173
|
SugarJar::Log.info(
|
152
174
|
"#{color(current_branch, :green)} rebased on #{result['base']}",
|
153
175
|
)
|
176
|
+
# go back to where we were if we rebased a different branch
|
177
|
+
git('checkout', curr) if branch != curr
|
154
178
|
end
|
155
179
|
end
|
156
180
|
|
@@ -179,7 +203,7 @@ class SugarJar
|
|
179
203
|
"#{color(branch, :red)} failed rebase. Reverting attempt and " +
|
180
204
|
'moving to next branch. Try `sj up` manually on that branch.',
|
181
205
|
)
|
182
|
-
git('rebase', '--abort')
|
206
|
+
git('rebase', '--abort') if rebase_in_progress?
|
183
207
|
else
|
184
208
|
SugarJar::Log.info(
|
185
209
|
"#{color(branch, :green)} rebased on " +
|
@@ -297,6 +321,7 @@ class SugarJar
|
|
297
321
|
def smartpullrequest(*args)
|
298
322
|
assert_in_repo
|
299
323
|
assert_common_main_branch
|
324
|
+
|
300
325
|
if dirty?
|
301
326
|
SugarJar::Log.warn(
|
302
327
|
'Your repo is dirty, so I am not going to create a pull request. ' +
|
@@ -304,9 +329,38 @@ class SugarJar
|
|
304
329
|
)
|
305
330
|
exit(1)
|
306
331
|
end
|
332
|
+
|
307
333
|
if gh?
|
334
|
+
curr = current_branch
|
335
|
+
base = tracked_branch
|
336
|
+
if @pr_autofill
|
337
|
+
num_commits = git(
|
338
|
+
'rev-list', '--count', curr, "^#{base}"
|
339
|
+
).stdout.strip.to_i
|
340
|
+
if num_commits > 1
|
341
|
+
SugarJar::Log.debug(
|
342
|
+
"Not using --fill because there are #{num_commits} commits",
|
343
|
+
)
|
344
|
+
else
|
345
|
+
SugarJar::Log.info('Autofilling in PR from commit message')
|
346
|
+
args.unshift('--fill')
|
347
|
+
end
|
348
|
+
end
|
349
|
+
if subfeature?(base)
|
350
|
+
# nil is prompt, true is always, false is never
|
351
|
+
if @pr_autostack.nil?
|
352
|
+
$stdout.print(
|
353
|
+
'It looks like this is a subfeature, would you like to base ' +
|
354
|
+
"this PR on #{base}? [y/n] ",
|
355
|
+
)
|
356
|
+
ans = $stdin.gets.strip
|
357
|
+
args += ['--base', base] if %w{Y y}.include?(ans)
|
358
|
+
elsif @pr_autostack
|
359
|
+
args += ['--base', base]
|
360
|
+
end
|
361
|
+
end
|
308
362
|
SugarJar::Log.trace("Running: gh pr create #{args.join(' ')}")
|
309
|
-
system(which('gh'), 'pr', 'create',
|
363
|
+
system(which('gh'), 'pr', 'create', *args)
|
310
364
|
else
|
311
365
|
SugarJar::Log.trace("Running: hub pull-request #{args.join(' ')}")
|
312
366
|
system(which('hub'), 'pull-request', *args)
|
@@ -336,7 +390,7 @@ class SugarJar
|
|
336
390
|
|
337
391
|
src = "origin/#{current_branch}"
|
338
392
|
fetch('origin')
|
339
|
-
diff = git('diff', src).stdout
|
393
|
+
diff = git('diff', "..#{src}").stdout
|
340
394
|
return unless diff && !diff.empty?
|
341
395
|
|
342
396
|
puts "Will merge the following suggestions:\n\n#{diff}"
|
@@ -364,6 +418,9 @@ class SugarJar
|
|
364
418
|
def fprefix(name)
|
365
419
|
return name unless @feature_prefix
|
366
420
|
|
421
|
+
return name if name.start_with?(@feature_prefix)
|
422
|
+
return name if all_local_branches.include?(name)
|
423
|
+
|
367
424
|
newname = "#{@feature_prefix}#{name}"
|
368
425
|
SugarJar::Log.debug(
|
369
426
|
"Munging feature name: #{name} -> #{newname} due to feature prefix",
|
@@ -707,11 +764,15 @@ class SugarJar
|
|
707
764
|
end
|
708
765
|
|
709
766
|
def all_local_branches
|
710
|
-
|
711
|
-
|
712
|
-
|
767
|
+
git(
|
768
|
+
'branch', '--format', '%(refname)'
|
769
|
+
).stdout.lines.map do |line|
|
770
|
+
branch_from_ref(line.strip)
|
713
771
|
end
|
714
|
-
|
772
|
+
end
|
773
|
+
|
774
|
+
def all_remotes
|
775
|
+
git('remote').stdout.lines.map(&:strip)
|
715
776
|
end
|
716
777
|
|
717
778
|
def safe_to_clean(branch)
|
@@ -789,14 +850,28 @@ class SugarJar
|
|
789
850
|
SugarJar::Log.debug('Fetching upstream')
|
790
851
|
fetch_upstream
|
791
852
|
curr = current_branch
|
792
|
-
|
853
|
+
# this isn't a hash, it's a named param, silly rubocop
|
854
|
+
# rubocop:disable Style/HashSyntax
|
855
|
+
base = tracked_branch(fallback: false)
|
856
|
+
# rubocop:enable Style/HashSyntax
|
857
|
+
unless base
|
858
|
+
SugarJar::Log.info(
|
859
|
+
'The brach we were tracking is gone, resetting tracking to ' +
|
860
|
+
most_main,
|
861
|
+
)
|
862
|
+
git('branch', '-u', most_main)
|
863
|
+
base = most_main
|
864
|
+
end
|
865
|
+
# If this is a subfeature based on a local branch which has since
|
866
|
+
# been deleted, 'tracked branch' will automatically return <most_main>
|
867
|
+
# so we don't need any special handling for that
|
793
868
|
if !MAIN_BRANCHES.include?(curr) && base == "origin/#{curr}"
|
794
869
|
SugarJar::Log.warn(
|
795
870
|
"This branch is tracking origin/#{curr}, which is probably your " +
|
796
871
|
'downstream (where you push _to_) as opposed to your upstream ' +
|
797
872
|
'(where you pull _from_). This means that "sj up" is probably ' +
|
798
873
|
'rebasing on the wrong thing and doing nothing. You probably want ' +
|
799
|
-
|
874
|
+
"to do a 'git branch -u #{most_main}'.",
|
800
875
|
)
|
801
876
|
end
|
802
877
|
SugarJar::Log.debug('Rebasing')
|
@@ -807,12 +882,28 @@ class SugarJar
|
|
807
882
|
}
|
808
883
|
end
|
809
884
|
|
810
|
-
|
885
|
+
# determine if this branch is based on another local branch (i.e. is a
|
886
|
+
# subfeature). Used to figure out of we should stack the PR
|
887
|
+
def subfeature?(base)
|
888
|
+
all_local_branches.reject { |x| x == most_main }.include?(base)
|
889
|
+
end
|
890
|
+
|
891
|
+
def rebase_in_progress?
|
892
|
+
# for rebase without -i
|
893
|
+
rebase_file = git('rev-parse', '--git-path', 'rebase-apply').stdout.strip
|
894
|
+
# for rebase -i
|
895
|
+
rebase_merge_file = git('rev-parse', '--git-path', 'rebase-merge').
|
896
|
+
stdout.strip
|
897
|
+
File.exist?(rebase_file) || File.exist?(rebase_merge_file)
|
898
|
+
end
|
899
|
+
|
900
|
+
def tracked_branch(fallback: true)
|
811
901
|
s = git_nofail(
|
812
902
|
'rev-parse', '--abbrev-ref', '--symbolic-full-name', '@{u}'
|
813
903
|
)
|
814
904
|
if s.error?
|
815
|
-
most_main
|
905
|
+
fallback ? most_main : nil
|
906
|
+
|
816
907
|
else
|
817
908
|
s.stdout.strip
|
818
909
|
end
|
@@ -830,9 +921,7 @@ class SugarJar
|
|
830
921
|
def upstream
|
831
922
|
return @remote if @remote
|
832
923
|
|
833
|
-
|
834
|
-
|
835
|
-
remotes = s.stdout.lines.map(&:strip)
|
924
|
+
remotes = all_remotes
|
836
925
|
SugarJar::Log.debug("remotes is #{remotes}")
|
837
926
|
if remotes.empty?
|
838
927
|
@remote = nil
|
data/lib/sugarjar/config.rb
CHANGED
data/lib/sugarjar/util.rb
CHANGED
data/lib/sugarjar/version.rb
CHANGED
data/sugarjar.gemspec
CHANGED
@@ -8,14 +8,16 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.email = ['phil@ipom.com']
|
9
9
|
spec.license = 'Apache-2.0'
|
10
10
|
spec.homepage = 'https://github.com/jaymzh/sugarjar'
|
11
|
-
|
11
|
+
# We'll support 3.0 until 2024-03-31 when it goes EOL
|
12
|
+
# https://www.ruby-lang.org/en/downloads/branches/
|
13
|
+
spec.required_ruby_version = '>= 3.0'
|
12
14
|
docs = %w{README.md LICENSE Gemfile sugarjar.gemspec}
|
13
15
|
spec.extra_rdoc_files = docs
|
14
16
|
spec.executables << 'sj'
|
15
17
|
spec.files =
|
16
18
|
Dir.glob('lib/sugarjar/*.rb') +
|
17
19
|
Dir.glob('bin/*') +
|
18
|
-
|
20
|
+
Dir.glob('extras/*')
|
19
21
|
|
20
22
|
spec.add_dependency 'deep_merge'
|
21
23
|
spec.add_dependency 'mixlib-log'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sugarjar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Phil Dibowitz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: deep_merge
|
@@ -82,6 +82,7 @@ files:
|
|
82
82
|
- LICENSE
|
83
83
|
- README.md
|
84
84
|
- bin/sj
|
85
|
+
- extras/sugarjar_completion.bash
|
85
86
|
- lib/sugarjar/commands.rb
|
86
87
|
- lib/sugarjar/config.rb
|
87
88
|
- lib/sugarjar/log.rb
|
@@ -106,7 +107,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
106
107
|
requirements:
|
107
108
|
- - ">="
|
108
109
|
- !ruby/object:Gem::Version
|
109
|
-
version: '3.
|
110
|
+
version: '3.0'
|
110
111
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
112
|
requirements:
|
112
113
|
- - ">="
|