xot 0.1.31 → 0.1.32

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2cb1f6146789ec235d8ba43238e68a88be8f5298db1f22f3435db1bf14dd7c2a
4
- data.tar.gz: 2853e920d96950fbb338dcee693f5447dc121d0c9c18f0b1ecc291bd13c79f34
3
+ metadata.gz: 6a7e1bc3f6614364c9e0351687c284d86fb2acdd6e90ed831b176f2f523227d1
4
+ data.tar.gz: 3be0124301e324255f2ab787140524231c42731af1662b5d4e279abec29efc47
5
5
  SHA512:
6
- metadata.gz: f241ce0b846f954fc5f06b7bad24981a73b4b22cc8c804e92436855e6cf54631730736476361819105e718b3d0ba341a4f006cc9814361799cdbd79e262cc6c7
7
- data.tar.gz: f2c7a9ee50a3e0dfc473632c1eec5834e95c560dc43c86981691aa0d4a98c4cc21e1c7905bf2be53be7682303dfd2564593886a7c0348ec80c9562718c1ee9b5
6
+ metadata.gz: 7ea1f3a95375e0de9722cce59ba6ce229948c42c4bac5de353e737a52d8407985eace63de4559843d8bb9ed2cc0f65838cdcd70c0a8abc39e1f955b045d600c0
7
+ data.tar.gz: 3eec5192e6db769cb4b89bd4f7029f4489adaa74ce905802e4d338decd5e38cc7a3e6901f551303fc2f4a603049f80a78cfaf04b92f64851d422604661037ce8
@@ -0,0 +1,59 @@
1
+ name: Release Gem
2
+
3
+ on:
4
+ push:
5
+ tags: ['v[0-9]*']
6
+
7
+ jobs:
8
+ release:
9
+ runs-on: macos-latest
10
+
11
+ steps:
12
+ - name: ruby 3.2
13
+ uses: ruby/setup-ruby@v1
14
+ with:
15
+ ruby-version: 3.2
16
+
17
+ - name: checkout
18
+ uses: actions/checkout@v2
19
+
20
+ - name: setup dependencies
21
+ run: "ruby -I.github/workflows -rutils -e 'setup_dependencies'"
22
+
23
+ - name: test
24
+ run: rake test
25
+
26
+ - name: create gem
27
+ id: gem
28
+ run: |
29
+ rake gem
30
+ echo path=$(ruby -e 'print Dir.glob("*.gem").first') >> $GITHUB_OUTPUT
31
+
32
+ - name: create github release
33
+ id: release
34
+ uses: actions/create-release@v1
35
+ env:
36
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
37
+ with:
38
+ tag_name: ${{ github.ref }}
39
+ release_name: ${{ github.ref }}
40
+
41
+ - name: upload to github release
42
+ uses: actions/upload-release-asset@v1
43
+ env:
44
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
45
+ with:
46
+ upload_url: ${{ steps.release.outputs.upload_url }}
47
+ asset_path: ./${{ steps.gem.outputs.path }}
48
+ asset_name: ${{ steps.gem.outputs.path }}
49
+ asset_content_type: application/zip
50
+
51
+ - name: upload to rubygems
52
+ env:
53
+ GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_AUTH_TOKEN }}
54
+ run: |
55
+ mkdir -p $HOME/.gem
56
+ touch $HOME/.gem/credentials
57
+ chmod 0600 $HOME/.gem/credentials
58
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
59
+ rake upload
@@ -22,11 +22,5 @@ jobs:
22
22
  - name: setup dependencies
23
23
  run: "ruby -I.github/workflows -rutils -e 'setup_dependencies'"
24
24
 
25
- - name: lib
26
- run: rake lib
27
-
28
- - name: ext
29
- run: rake ext
30
-
31
25
  - name: test
32
26
  run: rake test
@@ -1,3 +1,5 @@
1
+ RENAMES = {reflex: 'reflexion'}
2
+
1
3
  def sh(cmd)
2
4
  puts cmd
3
5
  system cmd
@@ -5,8 +7,10 @@ end
5
7
 
6
8
  def setup_dependencies(build: true, only: nil)
7
9
  gemspec_path = `git ls-files`.lines(chomp: true).find {|l| l =~ /\.gemspec$/}
8
- gemspec = File.read gemspec_path
9
- name = File.basename gemspec_path, '.gemspec'
10
+ return unless gemspec_path
11
+
12
+ gemspec = File.read gemspec_path
13
+ name = File.basename gemspec_path, '.gemspec'
10
14
 
11
15
  exts = File.readlines('Rakefile')
12
16
  .map {|l| l[%r|^\s*require\W+(\w+)/extension\W+$|, 1]}
@@ -15,9 +19,13 @@ def setup_dependencies(build: true, only: nil)
15
19
  exts = exts & [only].flatten.map(&:to_s) if only
16
20
 
17
21
  exts.each do |ext|
18
- ver = gemspec[/add_runtime_dependency.*'#{ext}'.*'\s*~>\s*([\d\.]+)\s*'/, 1]
19
- url = "https://github.com/xord/#{ext}.git"
20
- sh %( git clone --depth 1 --branch v#{ver} #{url} ../#{ext} )
22
+ gem = RENAMES[ext.to_sym].then {|s| s || ext}
23
+ clone = "git clone --depth 1 https://github.com/xord/#{ext}.git ../#{ext}"
24
+ ver = gemspec[/add_runtime_dependency.*['"]#{gem}['"].*['"]\s*~>\s*([\d\.]+)\s*['"]/, 1]
25
+
26
+ # 'rake subtree:push' pushes all subrepos, so cloning by new tag
27
+ # often fails before tagging each new tag
28
+ sh %( #{clone} --branch v#{ver} || #{clone} )
21
29
  sh %( cd ../#{ext} && rake ext )
22
30
  end
23
31
  end
data/ChangeLog.md CHANGED
@@ -1,6 +1,11 @@
1
1
  # xot ChangeLog
2
2
 
3
3
 
4
+ ## [v0.1.32] - 2023-03-01
5
+
6
+ - fix bugs
7
+
8
+
4
9
  ## [v0.1.31] - 2023-02-26
5
10
 
6
11
  - add ChangeLog.md file
data/Rakefile CHANGED
@@ -13,9 +13,8 @@ require 'xot/extension'
13
13
  EXTENSIONS = [Xot]
14
14
  DLNAME = 'tester'
15
15
 
16
+ default_tasks :ext
16
17
  build_native_library
17
18
  build_ruby_extension dlname: DLNAME, liboutput: false
18
19
  test_ruby_extension
19
20
  build_ruby_gem
20
-
21
- task :default => :ext
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.31
1
+ 0.1.32
data/lib/xot/rake/util.rb CHANGED
@@ -84,13 +84,25 @@ module Xot
84
84
  paths
85
85
  end
86
86
 
87
+ def rake_puts(*args)
88
+ $stderr.puts(*args)
89
+ end
90
+
91
+ def verbose_puts(*args)
92
+ rake_puts(*args) if ::Rake.verbose
93
+ end
94
+
95
+ def noverbose_puts(*args)
96
+ rake_puts(*args) unless ::Rake.verbose
97
+ end
98
+
87
99
  def filter_file(path, &block)
88
100
  File.write path, block.call(File.read path)
89
101
  end
90
102
 
91
103
  def cd_sh(dir, cmd)
92
104
  Dir.chdir dir do
93
- $stderr.puts "(in #{Dir.pwd})"
105
+ rake_puts "(in #{Dir.pwd})"
94
106
  sh cmd
95
107
  end
96
108
  end
@@ -242,14 +254,23 @@ module Xot
242
254
  s
243
255
  end
244
256
 
245
- def debug(state)
246
- ENV['DEBUG'] = state.to_s
257
+ def verbose?(state = nil)
258
+ if state != nil
259
+ ::Rake.verbose state
260
+ ENV['VERBOSE'] = (!!state).to_s
261
+ end
262
+ ::Rake.verbose
247
263
  end
248
264
 
249
- def debug?()
265
+ def debug?(state = nil)
266
+ ENV['DEBUG'] = (!!state).to_s if state != nil
250
267
  env :DEBUG, false
251
268
  end
252
269
 
270
+ def actions?()
271
+ env :GITHUB_ACTIONS, false
272
+ end
273
+
253
274
  def win32?()
254
275
  RUBY_PLATFORM =~ /mswin|ming|cygwin/
255
276
  end
data/lib/xot/rake.rb CHANGED
@@ -55,6 +55,24 @@ module Xot
55
55
  env :TESTS_EXCLUDE, []
56
56
  end
57
57
 
58
+ def default_tasks(default = nil)
59
+ verbose? env(:VERBOSE, false)
60
+
61
+ if default
62
+ task :default => default
63
+ else
64
+ task :default
65
+ end
66
+
67
+ task :verbose do
68
+ verbose? true
69
+ end
70
+
71
+ task :debug do
72
+ debug? true
73
+ end
74
+ end
75
+
58
76
  def build_native_library()
59
77
  outname = "lib#{target_name}.a"
60
78
  out = File.join lib_dir, outname
@@ -77,6 +95,7 @@ module Xot
77
95
  file out => srcs.values do
78
96
  next if srcs.values.empty?
79
97
  objs = srcs.values + vendor_srcs_map.values
98
+ noverbose_puts "linking #{out}"
80
99
  sh %( rm -f #{out} )
81
100
  sh %( #{ar} #{arflags} #{out} #{objs.join " "} )
82
101
  end
@@ -95,6 +114,7 @@ module Xot
95
114
  srcs.each do |src, obj|
96
115
  desc "compile #{src}"
97
116
  file obj => [:vendor, depend, src] + erbs.values do
117
+ noverbose_puts "compiling #{src}"
98
118
  sh %( #{cxx} -c #{cppflags} #{cxxflags} -o #{obj} #{src} )
99
119
  end
100
120
  end
@@ -102,9 +122,8 @@ module Xot
102
122
  erbs.each do |erb, to|
103
123
  desc "compile #{erb}"
104
124
  file to => erb do
105
- print "#{erb}: compiling to #{to} ..."
125
+ rake_puts "compiling #{erb} to #{to}"
106
126
  compile_erb erb, to
107
- puts "ok"
108
127
  end
109
128
  end
110
129
 
@@ -177,7 +196,7 @@ module Xot
177
196
  ::Rake::TestTask.new :full do |t|
178
197
  t.libs << lib_dir
179
198
  t.test_files = FileList["#{test_dir}/**/test_*.rb"] - test_alones - test_excludes
180
- t.verbose = true
199
+ t.verbose = ::Rake.verbose
181
200
  end
182
201
 
183
202
  task :alones do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.31
4
+ version: 0.1.32
5
5
  platform: ruby
6
6
  authors:
7
7
  - xordog
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-26 00:00:00.000000000 Z
11
+ date: 2023-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -46,7 +46,7 @@ extensions:
46
46
  - Rakefile
47
47
  extra_rdoc_files: []
48
48
  files:
49
- - ".github/workflows/release.yml"
49
+ - ".github/workflows/release-gem.yml"
50
50
  - ".github/workflows/tag.yml"
51
51
  - ".github/workflows/test.yml"
52
52
  - ".github/workflows/utils.rb"
@@ -1,34 +0,0 @@
1
- name: Release
2
-
3
- on:
4
- push:
5
- tags: ['v[0-9]*']
6
-
7
- jobs:
8
- release:
9
- runs-on: macos-latest
10
-
11
- steps:
12
- - name: ruby 3.2
13
- uses: ruby/setup-ruby@v1
14
- with:
15
- ruby-version: 3.2
16
-
17
- - name: checkout
18
- uses: actions/checkout@v2
19
-
20
- - name: setup dependencies
21
- run: "ruby -I.github/workflows -rutils -e 'setup_dependencies'"
22
-
23
- - name: test
24
- run: rake test
25
-
26
- - name: upload to rubygems
27
- env:
28
- GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_AUTH_TOKEN }}
29
- run: |
30
- mkdir -p $HOME/.gem
31
- touch $HOME/.gem/credentials
32
- chmod 0600 $HOME/.gem/credentials
33
- printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
34
- rake upload