serverlessgems 0.1.0 → 0.1.4

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: ee4f7043cd9fb6ace83079a2a82b3aeafb3ca2c9000e73fe6bff8dccd86b21f5
4
- data.tar.gz: 4fc40b94cda06670351b39a401c9cb0eadb94030fd85f2c8d058590a75605f59
3
+ metadata.gz: 801c924a1a3b4c3308e4637a26d849d7423322f579c9985c2197a1ae64b6b98d
4
+ data.tar.gz: d567760d50e0f0c095a4d6ece3bb659a31a351898bb6827266c9bbc0bef0a27a
5
5
  SHA512:
6
- metadata.gz: 76e24348551d21d0d1266c972f11d9782c3d1a9ea36a653c62b25e4404b3a5146562c79e22df2b0ab860c0f4754e17ebf3663e9bbea15c042c673a7160dae826
7
- data.tar.gz: 9f4f5d19b9833cf94da12b410475b44a8b519171d260b5119ab802e1fd246c8fcc6e3ddb504d7d20683a6d1a0aa3d5e8185f6a5657ae0ecde5f6cc88c2bb1869
6
+ metadata.gz: 723634152694aebb484c1693c1cbf49466195b0e84424e72a8f46cce75216211fcf138bd5fd36ac4b75fc3c3dbd79f75703964ebac8b1bfc4704e0fef93b76c4
7
+ data.tar.gz: cceb728e1d0bf62c2ced97d31059ab8ff0c155338c540572bbf70c72238b81365392eea49fcc66e2c0ada09c862d4cd152fd5e77b3375e13282af712ad37e6f8
data/CHANGELOG.md CHANGED
@@ -3,6 +3,18 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  This project *loosely tries* to adhere to [Semantic Versioning](http://semver.org/).
5
5
 
6
+ ## [0.1.4] - 2021-07-15
7
+ - [#3](https://github.com/boltops-tools/serverlessgems/pull/3) gems/registered api
8
+
9
+ ## [0.1.3] - 2021-04-13
10
+ - update jets agree messaging
11
+
12
+ ## [0.1.2] - 2021-01-12
13
+ - [#2](https://github.com/boltops-tools/serverlessgems/pull/2) fix other_compiled_gems Jets.build_root
14
+
15
+ ## [0.1.1] - 2021-01-12
16
+ - [#1](https://github.com/boltops-tools/serverlessgems/pull/1) fix native gem detection
17
+
6
18
  ## [0.1.0]
7
19
  - Initial release
8
20
  - Rename to serverlessgems
@@ -7,19 +7,32 @@ module Jets::Gems
7
7
  # Only prompts if hasnt prompted before and saved a ~/.jets/agree file
8
8
  def prompt
9
9
  return if bypass_prompt
10
- return if File.exist?(@agree_file)
10
+ return if File.exist?(@agree_file) && File.mtime(@agree_file) > Time.parse("2021-04-12")
11
11
 
12
12
  puts <<~EOL
13
- Jets sends data about your gems to serverlessgems.com so that it can build the necessary Lambda layer.
13
+ Jets uses pre-built binary gems from the serverlessgems.com service to
14
+ provide a user-friendly developer experience. The Serverless Gems Service
15
+ rate limits free gem download requests daily. You can upgrade to a paid plan
16
+ for unlimited gem download requests. Open Source projects may also qualify
17
+ for a free unlimited plan. More info:
14
18
 
15
- Reporting gems generally allows Serverless Gems to build new gems within a few minutes.
16
- So if you run into missing gems, you can try deploying again after a few minutes.
17
- Non-reported gems may take several days or longer.
19
+ https://www.serverlessgems.com/rate-limits
18
20
 
19
- Serverless Gems only collects the info it needs to run the service. More info: https://www.serverlessgems.com/privacy
21
+ If you do not want to use Serverless Gems, you can disable the Serverless
22
+ Gems service and provide your own custom Lambda Layer. More info:
20
23
 
24
+ https://rubyonjets.com/docs/serverlessgems/
25
+ https://rubyonjets.com/docs/extras/custom-lambda-layers/
26
+
27
+ Also, reporting gems to Serverless Gems allows it to build new gems typically
28
+ within a few minutes. So if you run into missing gems, you can try deploying
29
+ again after a few minutes. Non-reported gems may take several days or longer.
30
+ Serverless Gems only collects the info it needs to run the service.
31
+ More info: https://www.serverlessgems.com/privacy
21
32
  This message will only appear once on this machine.
22
- You can also automatically skip this message by setting JETS_AGREE=yes or JETS_AGREE=no
33
+
34
+ You can also automatically skip this message by setting:
35
+ JETS_AGREE=yes or JETS_AGREE=no
23
36
 
24
37
  Is it okay to send your gem data to Serverless Gems? (Y/n)?
25
38
  EOL
data/lib/jets/gems/api.rb CHANGED
@@ -18,6 +18,10 @@ module Jets::Gems
18
18
  get("report/missing?gem_name=#{gem_name}&ruby_folder=#{ruby_folder}")
19
19
  end
20
20
 
21
+ def registered_gems
22
+ get("gems/registered")
23
+ end
24
+
21
25
  def ruby_folder
22
26
  Jets::Gems.ruby_folder
23
27
  end
@@ -1,3 +1,7 @@
1
+ # Need 'open-uri' for exist.rb and regsitered.rb which uses
2
+ # rescue SocketError, OpenURI::HTTPError, OpenSSL::SSL::SSLError
3
+ require 'open-uri'
4
+
1
5
  class Jets::Gems::Api
2
6
  module Concern
3
7
  def api
@@ -12,7 +12,7 @@ module Jets::Gems
12
12
  end
13
13
 
14
14
  def run!
15
- puts "Gems source: #{gems_source}" if @options[:show_source]
15
+ puts "Gems source: #{gems_source}" if @options[:verbose]
16
16
  run(exit_early: true)
17
17
  end
18
18
 
@@ -22,9 +22,9 @@ module Jets::Gems
22
22
 
23
23
  # Checks whether the gem is found at the serverlessgems source.
24
24
  def run(exit_early: false)
25
- puts "Checking projects gems for binary Lambda gems..."
25
+ puts "Checking projects gems for binary serverlessgems..."
26
26
  compiled_gems.each do |gem_name|
27
- puts "Checking #{gem_name}..." if @options[:cli]
27
+ puts "Checking #{gem_name}..." if @options[:verbose]
28
28
  exist = Jets::Gems::Exist.new
29
29
  @missing_gems << gem_name unless exist.check(gem_name)
30
30
  end
@@ -131,7 +131,37 @@ EOL
131
131
  # jets deploy
132
132
  # jets gems:check
133
133
  #
134
- gemspec_compiled_gems
134
+ gems = gemspec_compiled_gems
135
+ gems += other_compiled_gems
136
+ gems += registered_compiled_gems
137
+ gems.uniq
138
+ end
139
+ end
140
+
141
+ # note 2.7.0/gems vs 2.7.0/extensions
142
+ #
143
+ # /tmp/jets/demo/stage/opt/ruby/gems/2.7.0/gems/nokogiri-1.11.1-x86_64-darwin/
144
+ # /tmp/jets/demo/stage/opt/ruby/gems/2.7.0/extensions/x86_64-linux/2.7.0/
145
+ #
146
+ # Also the platform is appended to the gem folder now
147
+ #
148
+ # /tmp/jets/demo/stage/opt/ruby/gems/2.7.0/gems/nokogiri-1.11.1-x86_64-darwin
149
+ # /tmp/jets/demo/stage/opt/ruby/gems/2.7.0/gems/nokogiri-1.11.1-x86_64-linux
150
+ #
151
+ def other_compiled_gems
152
+ paths = Dir.glob("#{Jets.build_root}/stage/opt/ruby/gems/#{Jets::Gems.ruby_folder}/gems/*{-darwin,-linux}")
153
+ paths.map { |p| File.basename(p).sub(/-x\d+.*-(darwin|linux)/,'') }
154
+ end
155
+
156
+ def registered_compiled_gems
157
+ registered = Jets::Gems::Registered.new
158
+ registered_gems = registered.all # no version numbers in this list
159
+
160
+ paths = Dir.glob("#{Jets.build_root}/stage/opt/ruby/gems/#{Jets::Gems.ruby_folder}/gems/*")
161
+ project_gems = paths.map { |p| File.basename(p).sub(/-x\d+.*-(darwin|linux)/,'') }
162
+ project_gems.select do |name|
163
+ name_only = name.sub(/-\d+\.\d+\.\d+.*/,'')
164
+ registered_gems.include?(name_only)
135
165
  end
136
166
  end
137
167
 
@@ -189,4 +219,4 @@ EOL
189
219
  output.include?("has been deleted")
190
220
  end
191
221
  end
192
- end
222
+ end
@@ -1,5 +1,3 @@
1
- require 'open-uri'
2
-
3
1
  module Jets::Gems
4
2
  class Exist
5
3
  include Jets::Gems::Api::Concern
@@ -0,0 +1,12 @@
1
+ module Jets::Gems
2
+ class Registered
3
+ include Jets::Gems::Api::Concern
4
+
5
+ def all
6
+ data = api.registered_gems
7
+ data["gems"]
8
+ rescue SocketError, OpenURI::HTTPError, OpenSSL::SSL::SSLError
9
+ []
10
+ end
11
+ end
12
+ end
@@ -1,5 +1,5 @@
1
1
  module Jets
2
2
  module Gems
3
- VERSION = "0.1.0"
3
+ VERSION = "0.1.4"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: serverlessgems
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-06 00:00:00.000000000 Z
11
+ date: 2021-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gems
@@ -122,6 +122,7 @@ files:
122
122
  - lib/jets/gems/exist.rb
123
123
  - lib/jets/gems/extract/base.rb
124
124
  - lib/jets/gems/extract/gem.rb
125
+ - lib/jets/gems/registered.rb
125
126
  - lib/jets/gems/report.rb
126
127
  - lib/jets/gems/version.rb
127
128
  - lib/serverlessgems.rb
@@ -145,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
145
146
  - !ruby/object:Gem::Version
146
147
  version: '0'
147
148
  requirements: []
148
- rubygems_version: 3.1.4
149
+ rubygems_version: 3.2.5
149
150
  signing_key:
150
151
  specification_version: 4
151
152
  summary: Client Library works with Serverless Gems API for Jets Ruby Serverless Framework