jekyll-l10n 1.6.0 → 1.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a3b778612621ba8532ed88057a833cebfb615d4e7dfeb09befb9f58249896a5b
4
- data.tar.gz: 399997d1222baaeeea243b1cc61638b169e797d72da8cc543c3949f8b63b5f4b
3
+ metadata.gz: a4179df36327cd3a6fe0358b76a0cb5c28ad1dd5ee125f21cd9f4f76828595da
4
+ data.tar.gz: fe68489182fa03670d02e537366dfb25f4c85d12f233cf1f785d5cf2a8b36dac
5
5
  SHA512:
6
- metadata.gz: 122a6388d40c31898704cf3f91b96ef226d30fd9a8b706e7a68d0639bab07042d2707809ecd5076b2d84c79384824cca7964582bd4f931f4a26c95cedd4c567f
7
- data.tar.gz: 6de61435ff7b179e62e1c7b3dbf705f6a8059a8b5b3f7158f9e2542145ddf3f391493b0a3e2dcff729c142d500658a0ce98815f514449aa27edfbcde4fe73566
6
+ metadata.gz: 6b515e127e15f959b74cc35cd12dbdd1960c0e3054fb7c31ac3a5046cffdabbf9db9c1ffe8bd50f17d8006e1c5ed797d53061d4dd368b60d5705cf8fb7aa9499
7
+ data.tar.gz: 002d73f80ff7bb1ca6f2133f3d39cbc3f6ed82d2a7997b300261f1514c99aea05d30a18f9cdfa1ebe748a57f2d932cafbf2e9a79f466dbb92d18007b801e11c4
@@ -231,20 +231,38 @@ module Jekyll
231
231
  # 5-second schedule; outer spans that close last (post_write, generate) are
232
232
  # silently dropped when the process exits before the next flush. Simple exports
233
233
  # each span synchronously the moment it closes, guaranteeing no span loss.
234
+ #
235
+ # jekyll-theme-centos loads several instrumented plugins in one process,
236
+ # and OpenTelemetry::SDK.configure unconditionally overwrites the global
237
+ # tracer_provider on every call — so only the first plugin to reach this
238
+ # method (see sdk_already_configured?) actually configures the SDK; every
239
+ # later plugin's call becomes a no-op and reuses that provider. The
240
+ # at_exit and post_write hooks below are therefore registered once, by
241
+ # whichever plugin wins, and cover every plugin's spans, not just this one's.
234
242
  def self.setup_sdk!
243
+ return if sdk_already_configured?
244
+
235
245
  # :nocov:
236
246
  require 'opentelemetry/sdk'
237
247
  require 'opentelemetry/exporter/otlp'
238
248
  exporter = OpenTelemetry::Exporter::OTLP::Exporter.new
239
249
  processor = OpenTelemetry::SDK::Trace::Export::SimpleSpanProcessor.new(exporter)
240
- OpenTelemetry::SDK.configure do |c|
241
- c.add_span_processor(processor)
242
- end
250
+ OpenTelemetry::SDK.configure { |c| c.add_span_processor(processor) }
251
+
252
+ at_exit { OpenTelemetry.tracer_provider&.shutdown }
253
+ Jekyll::Hooks.register(:site, :post_write, priority: 0) { OpenTelemetry.tracer_provider&.force_flush }
243
254
  rescue LoadError
244
255
  nil
245
256
  # :nocov:
246
257
  end
247
258
 
259
+ # True when some plugin (this one or another) already installed a real
260
+ # SDK-backed tracer_provider, in which case setup_sdk! must not run again.
261
+ def self.sdk_already_configured?
262
+ defined?(OpenTelemetry::SDK::Trace::TracerProvider) &&
263
+ OpenTelemetry.tracer_provider.is_a?(OpenTelemetry::SDK::Trace::TracerProvider)
264
+ end
265
+
248
266
  # Resolves a dot-separated class name to a constant; returns nil on NameError.
249
267
  def self.resolve_class(name)
250
268
  name.split('::').reduce(Object) { |m, c| m.const_get(c) }
@@ -280,7 +298,7 @@ module Jekyll
280
298
  end
281
299
  end
282
300
 
283
- private_class_method :build_wrapper_module, :prepend_wrappers, :setup_sdk!
301
+ private_class_method :build_wrapper_module, :prepend_wrappers, :setup_sdk!, :sdk_already_configured?
284
302
 
285
303
  # No-op tracer used when opentelemetry-api is not loaded.
286
304
  class NoopTracer
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-l10n
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alain Reguera Delgado
@@ -304,7 +304,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
304
304
  - !ruby/object:Gem::Version
305
305
  version: '0'
306
306
  requirements: []
307
- rubygems_version: 4.0.10
307
+ rubygems_version: 3.6.9
308
308
  specification_version: 4
309
309
  summary: Jekyll plugin for jekyll site localization.
310
310
  test_files: []