Skip to content

Releases: mozilla/glean

v30.0.0

13 May 09:45
Compare
Choose a tag to compare

Full changelog

  • General:
    • We completely replaced how the upload mechanism works.
      glean-core (the Rust part) now controls all upload and coordinates the platform side with its own internals.
      All language bindings implement ping uploading around a common API and protocol.
      There is no change for users of Glean, the language bindings for Android and iOS have been adopted to the new mechanism already.
    • Expose RecordedEvent and DistributionData types to Rust consumers (#876)
    • Log crate version at initialize (#873)
  • Android:
    • Refactor the ping uploader to use the new upload mechanism.
  • iOS:
    • Refactor the ping uploader to use the new upload mechanism.

v29.1.0

11 May 10:15
Compare
Choose a tag to compare

Full changelog

  • General:
    • The version of glean_parser has been upgraded to v1.20.4
      • BUGFIX: yamllint errors are now reported using the correct file name.
    • The minimum and maximum values of a timing distribution can now be controlled by the time_unit parameter. See bug 1630997 for more details.

v29.0.0

05 May 12:15
Compare
Choose a tag to compare

Full changelog

  • General:
    • The version of glean_parser has been upgraded to v1.20.2 (#827):
      • Breaking change: glinter errors found during code generation will now return an error code.
      • glean_parser now produces a linter warning when user lifetime metrics are set to expire. See bug 1604854 for additional context.
  • Android
    • The PingType.submit() can now be called without a null by Java consumers (#853).
  • Python:
    • BUGFIX: Fixed a race condition in the atexit handler, that would have resulted in the message "No database found" (#854).
    • The Glean FFI header is now parsed at build time rather than runtime. Relevant for packaging in PyInstaller, the wheel no longer includes glean.h and adds _glean_ffi.py (#852).
    • The minimum versions of many secondary dependencies have been lowered to make the Glean SDK compatible with more environments.
    • Dependencies that depend on the version of Python being used are now specified using the Declaring platform specific dependencies syntax in setuptools. This means that more recent versions of dependencies are likely to be installed on Python 3.6 and later, and unnecessary backport libraries won't be installed on more recent Python versions.
  • iOS:
    • Glean for iOS is now being built with Xcode 11.4.1 (#856)

v28.0.0

23 Apr 17:30
Compare
Choose a tag to compare
  • General:
    • The baseline ping is now sent when the application goes to foreground, in addition to background and dirty-startup.
  • Python:
    • BUGFIX: The ping uploader will no longer display a trace back when the upload fails due to a failed DNS lookup, network outage, or related issues that prevent communication with the telemetry endpoint.
    • The dependency on inflection has been removed.
    • The Python bindings now use subprocess rather than multiprocessing to perform ping uploading in a separate process. This should be more compatible on all of the platforms Glean supports.

v27.1.0

09 Apr 15:03
Compare
Choose a tag to compare

Full changelog

  • General:
    • BUGFIX: baseline pings sent at startup with the dirty_startup reason will now include application lifetime metrics (#810)
  • iOS:
    • Breaking change: Change Glean iOS to use Application Support directory #815. No migration code is included. This will reset collected data if integrated without migration. Please contact the Glean SDK team if this affects you.
  • Python
    • BUGFIX: Fixed a race condition between uploading pings and deleting the temporary directory on shutdown of the process.

v27.0.0

08 Apr 09:25
Compare
Choose a tag to compare
  • General:
    • Glean will now detect when the upload enabled flag changes outside of the application, for example due to a change in a config file. This means that if upload is disabled while the application wasn't running (e.g. between the runs of a Python command using the Glean SDK), the database is correctly cleared and a deletion request ping is sent. See #791.
    • The events ping now includes a reason code: startup, background or max_capacity.
  • iOS:
    • BUGFIX: A bug where the metrics ping is sent immediately at startup on the last day of the month has been fixed.
    • Glean for iOS is now being built with Xcode 11.4.0
    • The measure convenience function on timing distributions and time spans will now cancel the timing if the measured function throws, then rethrow the exception (#808)
    • Broken doc generation has been fixed (#805).
  • Kotlin
    • The measure convenience function on timing distributions and time spans will now cancel the timing if the measured function throws, then rethrow the exception (#808)
  • Python:
    • Glean will now wait at application exit for up to one second to let its worker thread complete.
    • Ping uploading now happens in a separate child process by default. This can be disabled with the allow_multiprocessing configuration option.

v26.0.0

27 Mar 16:42
Compare
Choose a tag to compare
  • General:
    • The version of glean_parser has been updated to 1.19.0:
      • Breaking change: The regular expression used to validate labels is
        stricter and more correct.
      • Add more information about pings to markdown documentation:
        • State whether the ping includes client id;
        • Add list of data review links;
        • Add list of related bugs links.
      • glean_parser now makes it easier to write external translation functions for
        different language targets.
      • BUGFIX: glean_parser now works on 32-bit Windows.
  • Android:
    • gradlew clean will no longer remove the Miniconda installation in
      ~/.gradle/glean. Therefore clean can be used without reinstalling
      Miniconda afterward every time.
  • Python:
    • Breaking Change: The glean.util and glean.hardware modules, which
      were unintentionally public, have been made private.
    • Most Glean work and I/O is now done on its own worker thread. This brings the parallelism Python in line with the other platforms.
    • The timing distribution, memory distribution, string list, labeled boolean and labeled string metric types are now supported in Python (#762, #763, #765, #766)

v25.1.0

26 Feb 15:47
Compare
Choose a tag to compare

Full changelog

  • Python:
    • The Boolean, Datetime and Timespan metric types are now supported in Python (#731, #732, #737)
    • Make public, document and test the debugging features (#733)

v25.0.0

17 Feb 10:50
Compare
Choose a tag to compare

Full changelog

  • General:
    • ping_type is not included in the ping_info any more (#653), the pipeline takes the value from the submission URL.
    • The version of glean_parser has been upgraded to 1.18.2:
      • Breaking Change (Java API) Have the metrics names in Java match the names in Kotlin.
        See Bug 1588060.
      • The reasons a ping are sent are now included in the generated markdown documentation.
  • Android:
    • The Glean.initialize method runs mostly off the main thread (#672).
    • Labels in labeled metrics now have a correct, and slightly stricter, regular expression.
      See label format for more information.
  • iOS:
    • The baseline ping will now include reason codes that indicate why it was
      submitted. If an unclean shutdown is detected (e.g. due to force-close), this
      ping will be sent at startup with reason: dirty_startup.
    • Per Bug 1614785, the
      clearing of application lifetime metrics now occurs after the metrics ping is
      sent in order to preserve values meant to be included in the startup metrics
      ping.
    • initialize() now performs most of its work in a background thread.
  • Python:
    • When the pre-init task queue overruns, this is now recorded in the metric
      glean.error.preinit_tasks_overflow.
    • glinter warnings are printed to stderr when loading metrics.yaml and
      pings.yaml files.

v24.2.0

11 Feb 18:28
Compare
Choose a tag to compare

Full changelog

  • General:
    • Add locale to client_info section.
    • Deprecation Warning Since locale is now in the client_info section, the one
      in the baseline ping (glean.baseline.locale)
      is redundant and will be removed by the end of the quarter.
    • Drop the Glean handle and move state into glean-core (#664)
    • If an experiment includes no extra fields, it will no longer include {"extra": null} in the JSON payload.
    • Support for ping reason codes was added.
    • The metrics ping will now include reason codes that indicate why it was
      submitted.
    • The version of glean_parser has been upgraded to 1.17.3
  • Android:
    • Collections performed before initialization (preinit tasks) are now dispatched off
      the main thread during initialization.
    • The baseline ping will now include reason codes that indicate why it was
      submitted. If an unclean shutdown is detected (e.g. due to force-close), this
      ping will be sent at startup with reason: dirty_startup.
  • iOS:
    • Collections performed before initialization (preinit tasks) are now dispatched off
      the main thread and not awaited during initialization.
    • Added recording of glean.error.preinit_tasks_overflow to report when
      the preinit task queue overruns, leading to data loss. See bug
      1609734