functions_framework 1.1.0 → 1.3.0

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: 7181bfabab004b16d032f16f2598fb80027422481c9ce5ee3c048f5331422d10
4
- data.tar.gz: 73344235c945308d98a44bb7536bbc32d6fdb5b58ed0379696a09becdf2be016
3
+ metadata.gz: 1c6958234b00d6168c6756c7188b698d84984628d1ff6a1fcd3bbd46fbb6a876
4
+ data.tar.gz: 5ec49e5ea07c8416ac04a336a8581cf71d26c4b2fd1048d4dc35db3e7c497bbc
5
5
  SHA512:
6
- metadata.gz: 4edeb7e9b2fbd5ab9ee3d28f442336363c32ab2faf928b81738b5c82a3c6b16b8e9dd0983417427db4145930eaf12b1f0d709e638999edba01c55c3b5cbdcf97
7
- data.tar.gz: ffe0f772f40ff8d8c1a74e8cf6f2e5adfa663513290f88b4c9ad119dfb91b7b0caa3887337bad1736eb556b8d5312b376606b266602069db32fd75973867fa06
6
+ metadata.gz: 66f952df1cc33a829a48454a49508d56c8b5026e4b145cb0931c04801b85b5f5b6109d8564c54bbf2fa34bc3882d0adc6f944e22af07547de1743b5ac3a824b3
7
+ data.tar.gz: 81406729506f55f2ca5da840245f4323ca705022f877a31e28af22c41e679d5ea92f40dfca523b3e8c2a869225f5f5abe5a29aa5ff12e5e6ff0a6e9e7e0d9bea
data/CHANGELOG.md CHANGED
@@ -1,48 +1,59 @@
1
1
  # Changelog
2
2
 
3
- ## 1.1.0 (2022-01-17)
3
+ ### 1.3.0 (2023-04-05)
4
+
5
+ #### Features
6
+
7
+ * Support for Puma 6 and Rack 3
8
+
9
+ ### 1.2.0 (2022-08-25)
10
+
11
+ * Update minimum Ruby version to 2.6
12
+ * Increase default max thread pool size to 16
13
+
14
+ ### 1.1.0 (2022-01-18)
4
15
 
5
16
  * Increase default max thread pool size to 8.
6
17
  * Return 204 when a GET request is sent to an event function, to support health checks.
7
18
  * Flush stdout and stderr streams at the end of each request.
8
19
  * Format the error backtrace.
9
20
 
10
- ## 1.0.1 (2021-09-10)
21
+ ### 1.0.1 (2021-09-10)
11
22
 
12
23
  * FIXED: Update legacy event conversion to set the correct types for firebase database events
13
24
 
14
- ## 1.0.0 (2021-07-07)
25
+ ### 1.0.0 (2021-07-07)
15
26
 
16
27
  * Bumped the version to 1.0.
17
28
  * Removed the "preview" notices for Google Cloud Functions since the Ruby runtime is now GA.
18
29
 
19
- ## v0.11.0 / 2021-06-28
30
+ ### v0.11.0 / 2021-06-28
20
31
 
21
32
  * UPDATED: Update CloudEvents dependency to 0.5 to get fixes for JSON formatting cases
22
33
  * FIXED: Updated Pub/Sub and Firebase event conversion logic to better align to Eventarc
23
34
 
24
- ## v0.10.0 / 2021-06-01
35
+ ### v0.10.0 / 2021-06-01
25
36
 
26
37
  * ADDED: Support raw pubsub events sent by the pubsub emulator
27
38
  * FIXED: Set proper response content-type charset when a function returns a string (plain text) or hash (JSON)
28
39
  * FIXED: Properly handle conversion of non-ascii characters in legacy event strings
29
40
 
30
- ## v0.9.0 / 2021-03-18
41
+ ### v0.9.0 / 2021-03-18
31
42
 
32
43
  * BREAKING CHANGE: Servers are configured as single-threaded in production by default, matching the current behavior of Google Cloud Functions.
33
44
  * FIXED: Fixed conversion of Firebase events to CloudEvents to conform to the specs used by Cloud Functions and Cloud Run.
34
45
  * FIXED: Fixed an error when reading a global set to a Minitest::Mock. This will make it easier to write tests that use mocks for global resources.
35
46
 
36
- ## v0.8.0 / 2021-03-02
47
+ ### v0.8.0 / 2021-03-02
37
48
 
38
49
  * ADDED: Support for lazily-initialized globals
39
50
 
40
- ## v0.7.1 / 2021-01-26
51
+ ### v0.7.1 / 2021-01-26
41
52
 
42
53
  * DOCS: Fixed several errors in the writing-functions doc samples
43
54
  * DOCS: Updated documentation to note public release of GCF support
44
55
 
45
- ## v0.7.0 / 2020-09-25
56
+ ### v0.7.0 / 2020-09-25
46
57
 
47
58
  * Now requires Ruby 2.5 or later.
48
59
  * BREAKING CHANGE: Renamed "context" hash to "globals" and made it read-only for normal functions.
@@ -56,33 +67,33 @@
56
67
  * DOCS: Expanded documentation on initialization, execution context, and shared resources.
57
68
  * DEPRECATED: The functions-framework executable is deprecated. Use functions-framework-ruby instead.
58
69
 
59
- ## v0.6.0 / 2020-09-17
70
+ ### v0.6.0 / 2020-09-17
60
71
 
61
72
  * ADDED: You can use the --version flag to print the framework version
62
73
  * ADDED: You can use the --verify flag to verify that a given function is defined
63
74
  * ADDED: You can now define blocks that are executed at server startup
64
75
 
65
- ## v0.5.2 / 2020-09-06
76
+ ### v0.5.2 / 2020-09-06
66
77
 
67
78
  * FIXED: Use global $stderr rather than STDERR for logger
68
79
  * DOCS: Fix instructions for deployment to Google Cloud Functions
69
80
 
70
- ## v0.5.1 / 2020-07-20
81
+ ### v0.5.1 / 2020-07-20
71
82
 
72
83
  * Updated some documentation links. No functional changes.
73
84
 
74
- ## v0.5.0 / 2020-07-09
85
+ ### v0.5.0 / 2020-07-09
75
86
 
76
87
  * Removed embedded CloudEvents classes and added the official CloudEvents SDK as a dependency. A `FunctionsFramework::CloudEvents` alias provides backward compatibility.
77
88
 
78
- ## v0.4.1 / 2020-07-08
89
+ ### v0.4.1 / 2020-07-08
79
90
 
80
91
  * Fixed unsupported signal error on Windows.
81
92
  * Fixed several edge case errors in legacy event conversion.
82
93
  * Generated Content-Type headers now properly quote param values if needed.
83
94
  * Minor documentation updates.
84
95
 
85
- ## v0.4.0 / 2020-06-29
96
+ ### v0.4.0 / 2020-06-29
86
97
 
87
98
  * Dropped the legacy and largely unsupported `:event` function type. All event functions should be of type `:cloud_event`.
88
99
  * Define the object context for function execution, and include an extensible context helper.
@@ -93,21 +104,21 @@
93
104
  * Removed redundant `_string` accessors from event classes since raw forms are already available via `[]`.
94
105
  * A variety of corrections to event-related class documentation.
95
106
 
96
- ## v0.3.1 / 2020-06-27
107
+ ### v0.3.1 / 2020-06-27
97
108
 
98
109
  * Fixed crash when using "return" directly in a function block.
99
110
  * Added a more flexible request generation helper in the testing module.
100
111
  * Fixed several typos in the documentation.
101
112
 
102
- ## v0.3.0 / 2020-06-26
113
+ ### v0.3.0 / 2020-06-26
103
114
 
104
115
  * Updated the CloudEvent data format for converted pubsub events to conform to Cloud Run's conversion.
105
116
 
106
- ## v0.2.1 / 2020-06-25
117
+ ### v0.2.1 / 2020-06-25
107
118
 
108
119
  * The `--signature-type` check recognizes the legacy `event` type for `:cloud_event` functions.
109
120
 
110
- ## v0.2.0 / 2020-06-24
121
+ ### v0.2.0 / 2020-06-24
111
122
 
112
123
  Significant changes:
113
124
 
@@ -126,11 +137,11 @@ Minor changes:
126
137
  * Renamed a few undocumented environment variables, and added support for a logging level environment variable. All CLI flags now have associated environment variables.
127
138
  * Several fixes to the example code, and added a new Sinatra example.
128
139
 
129
- ## v0.1.1 / 2020-02-27
140
+ ### v0.1.1 / 2020-02-27
130
141
 
131
142
  * Server returns 404 when receiving a /favicon.ico or /robots.txt request.
132
143
  * Correct a rack constant name in Testing#make_post_request
133
144
 
134
- ## v0.1.0 / 2020-01-30
145
+ ### v0.1.0 / 2020-01-30
135
146
 
136
147
  * Initial release
data/README.md CHANGED
@@ -42,14 +42,14 @@ requiring an HTTP server or complicated request handling logic.
42
42
 
43
43
  ## Supported Ruby versions
44
44
 
45
- This library is supported on Ruby 2.5+.
45
+ This library is supported on Ruby 2.6+.
46
46
 
47
47
  Google provides official support for Ruby versions that are actively supported
48
48
  by Ruby Core—that is, Ruby versions that are either in normal maintenance or
49
- in security maintenance, and not end of life. Currently, this means Ruby 2.5
50
- and later. Older versions of Ruby _may_ still work, but are unsupported and not
51
- recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details
52
- about the Ruby support schedule.
49
+ in security maintenance, and not end of life. Older versions of Ruby _may_
50
+ still work, but are unsupported and not recommended. See
51
+ https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby
52
+ support schedule.
53
53
 
54
54
  ## Quickstart
55
55
 
@@ -147,8 +147,8 @@ command may ask you for permission to enable the Cloud Build API for the project
147
147
  if it isn't already enabled.
148
148
 
149
149
  Because you provide your own Docker image when deploying to Cloud Run, you can
150
- use any version of Ruby supported by the Functions Framework, from 2.5 through
151
- 3.0.
150
+ use any version of Ruby supported by the Functions Framework, from 2.6 through
151
+ 3.1.
152
152
 
153
153
  ### Deploying an image to Cloud Run
154
154
 
data/docs/overview.md CHANGED
@@ -46,14 +46,14 @@ requiring an HTTP server or complicated request handling logic.
46
46
 
47
47
  ## Supported Ruby versions
48
48
 
49
- This library is supported on Ruby 2.5+.
49
+ This library is supported on Ruby 2.6+.
50
50
 
51
51
  Google provides official support for Ruby versions that are actively supported
52
52
  by Ruby Core—that is, Ruby versions that are either in normal maintenance or
53
- in security maintenance, and not end of life. Currently, this means Ruby 2.5
54
- and later. Older versions of Ruby _may_ still work, but are unsupported and not
55
- recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details
56
- about the Ruby support schedule.
53
+ in security maintenance, and not end of life. Older versions of Ruby _may_
54
+ still work, but are unsupported and not recommended. See
55
+ https://www.ruby-lang.org/en/downloads/branches/ for details about the Ruby
56
+ support schedule.
57
57
 
58
58
  ## Quickstart
59
59
 
@@ -85,8 +85,8 @@ module FunctionsFramework
85
85
  @source = val
86
86
  end
87
87
  op.on "--signature-type TYPE",
88
- "Asserts that the function has the given signature type." \
89
- " Supported values are 'http' and 'cloudevent'." do |val|
88
+ "Asserts that the function has the given signature type. " \
89
+ "Supported values are 'http' and 'cloudevent'." do |val|
90
90
  @signature_type = val
91
91
  end
92
92
  op.on "-p", "--port PORT", "Set the port to listen to (defaults to 8080)" do |val|
@@ -196,8 +196,8 @@ module FunctionsFramework
196
196
  function = ::FunctionsFramework.global_registry[@target]
197
197
  raise "Undefined function: #{@target.inspect}" if function.nil?
198
198
  unless @signature_type.nil? ||
199
- @signature_type == "http" && function.type == :http ||
200
- ["cloudevent", "event"].include?(@signature_type) && function.type == :cloud_event
199
+ (@signature_type == "http" && function.type == :http) ||
200
+ (["cloudevent", "event"].include?(@signature_type) && function.type == :cloud_event)
201
201
  raise "Function #{@target.inspect} does not match type #{@signature_type}"
202
202
  end
203
203
  function
@@ -82,13 +82,24 @@ module FunctionsFramework
82
82
  def start
83
83
  synchronize do
84
84
  unless running?
85
- @server = ::Puma::Server.new @app
86
- @server.min_threads = @config.min_threads
87
- @server.max_threads = @config.max_threads
88
- @server.leak_stack_on_error = @config.show_error_details?
85
+ # Puma >= 6.0 interprets these settings from options
86
+ options = {
87
+ min_threads: @config.min_threads,
88
+ max_threads: @config.max_threads,
89
+ environment: @config.show_error_details? ? "development" : "production"
90
+ }
91
+ # Puma::Events.stdio for Puma < 6.0; otherwise nil for Puma >= 6.0
92
+ events = ::Puma::Events.stdio if ::Puma::Events.respond_to? :stdio
93
+ @server = ::Puma::Server.new @app, events, options
94
+ if @server.respond_to? :min_threads=
95
+ # Puma < 6.0 sets server attributes for these settings
96
+ @server.min_threads = @config.min_threads
97
+ @server.max_threads = @config.max_threads
98
+ @server.leak_stack_on_error = @config.show_error_details?
99
+ end
89
100
  @server.binder.add_tcp_listener @config.bind_addr, @config.port
90
- @config.logger.info "FunctionsFramework: Serving function #{@function.name.inspect}" \
91
- " on port #{@config.port}..."
101
+ @config.logger.info "FunctionsFramework: Serving function #{@function.name.inspect} " \
102
+ "on port #{@config.port}..."
92
103
  @server.run true
93
104
  end
94
105
  end
@@ -306,7 +317,7 @@ module FunctionsFramework
306
317
  # @return [Integer]
307
318
  #
308
319
  def max_threads
309
- @max_threads || 8
320
+ @max_threads || 16
310
321
  end
311
322
 
312
323
  ##
@@ -377,8 +388,8 @@ module FunctionsFramework
377
388
  content_type = "#{content_type}; charset=#{string.encoding.name.downcase}"
378
389
  end
379
390
  headers = {
380
- "Content-Type" => content_type,
381
- "Content-Length" => string.bytesize
391
+ "content-type" => content_type,
392
+ "content-length" => string.bytesize
382
393
  }
383
394
  [status, headers, [string]]
384
395
  end
@@ -367,8 +367,8 @@ module FunctionsFramework
367
367
  ::Rack::QUERY_STRING => url.query,
368
368
  ::Rack::SERVER_NAME => url.host,
369
369
  ::Rack::SERVER_PORT => url.port,
370
+ ::Rack::SERVER_PROTOCOL => "HTTP/1.1",
370
371
  ::Rack::RACK_URL_SCHEME => url.scheme,
371
- ::Rack::RACK_VERSION => ::Rack::VERSION,
372
372
  ::Rack::RACK_LOGGER => ::FunctionsFramework.logger,
373
373
  ::Rack::RACK_INPUT => ::StringIO.new,
374
374
  ::Rack::RACK_ERRORS => ::StringIO.new
@@ -17,5 +17,5 @@ module FunctionsFramework
17
17
  # Version of the Ruby Functions Framework
18
18
  # @return [String]
19
19
  #
20
- VERSION = "1.1.0".freeze
20
+ VERSION = "1.3.0".freeze
21
21
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: functions_framework
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Azuma
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-19 00:00:00.000000000 Z
11
+ date: 2023-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cloud_events
@@ -39,7 +39,7 @@ dependencies:
39
39
  version: 4.3.0
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: 6.a
42
+ version: 7.a
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -49,21 +49,27 @@ dependencies:
49
49
  version: 4.3.0
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: 6.a
52
+ version: 7.a
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: rack
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - "~>"
57
+ - - ">="
58
58
  - !ruby/object:Gem::Version
59
59
  version: '2.1'
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: 4.a
60
63
  type: :runtime
61
64
  prerelease: false
62
65
  version_requirements: !ruby/object:Gem::Requirement
63
66
  requirements:
64
- - - "~>"
67
+ - - ">="
65
68
  - !ruby/object:Gem::Version
66
69
  version: '2.1'
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: 4.a
67
73
  description: The Functions Framework is an open source framework for writing lightweight,
68
74
  portable Ruby functions that run in a serverless environment. Functions written
69
75
  to this Framework will run on Google Cloud Functions, Google Cloud Run, or any other
@@ -100,10 +106,10 @@ homepage: https://github.com/GoogleCloudPlatform/functions-framework-ruby
100
106
  licenses:
101
107
  - Apache-2.0
102
108
  metadata:
103
- changelog_uri: https://googlecloudplatform.github.io/functions-framework-ruby/v1.1.0/file.CHANGELOG.html
109
+ changelog_uri: https://googlecloudplatform.github.io/functions-framework-ruby/v1.3.0/file.CHANGELOG.html
104
110
  source_code_uri: https://github.com/GoogleCloudPlatform/functions-framework-ruby
105
111
  bug_tracker_uri: https://github.com/GoogleCloudPlatform/functions-framework-ruby/issues
106
- documentation_uri: https://googlecloudplatform.github.io/functions-framework-ruby/v1.1.0
112
+ documentation_uri: https://googlecloudplatform.github.io/functions-framework-ruby/v1.3.0
107
113
  post_install_message:
108
114
  rdoc_options: []
109
115
  require_paths:
@@ -112,14 +118,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
112
118
  requirements:
113
119
  - - ">="
114
120
  - !ruby/object:Gem::Version
115
- version: 2.5.0
121
+ version: 2.6.0
116
122
  required_rubygems_version: !ruby/object:Gem::Requirement
117
123
  requirements:
118
124
  - - ">="
119
125
  - !ruby/object:Gem::Version
120
126
  version: '0'
121
127
  requirements: []
122
- rubygems_version: 3.3.5
128
+ rubygems_version: 3.4.2
123
129
  signing_key:
124
130
  specification_version: 4
125
131
  summary: Functions Framework for Ruby