Skip to content

Latest commit

 

History

History
604 lines (489 loc) · 43.8 KB

File metadata and controls

604 lines (489 loc) · 43.8 KB

Changelog

All notable changes to this project will be documented in this file.

Unreleased

  • 💥 BREAKING CHANGE 💥 Use schema_url to track registries consistently in lineage / provenance (#1298 by @jsuereth)

[0.22.1] - 2026-03-13

  • Fix: Update release workflow for pnpm migration (use pnpm lockfile instead of npm lockfile). (#1289 by @jerbly)

[0.22.0] - 2026-03-14

  • Add support for git references in the registry url (#182 by @sebasnabas)
  • New feature (#1153) - Live-check now has a /health endpoint that can be used in long-running scenarios to confirm readiness and liveness of the live-check server. (#1193 by @jerbly)
  • New feature (#1100) - Set --output=http to have live-check send its report as the response to /stop. (#1193 by @jerbly)
  • Unified output handling across all registry subcommands. Builtin output formats (json, yaml, jsonl) are now available in registry stats, registry diff, and registry resolve. registry stats also supports --templates for custom text output templates. (#1200 by @jerbly)
  • New feature (#1152) - Live-check with --emit-otlp-logs will now include the attributes from the resource in the emitted log record, this helps to identify the source of the finding in a multi-source environment. (#1206 by @jerbly)
  • New Experimental feature: weaver registry infer command that listens for OTLP telemetry and infers a semantic convention registry file from the received data. Supports spans, metrics, events, and resource attributes. Includes configurable gRPC address/port, admin server for graceful shutdown, and inactivity timeout. (#1138 by @ArthurSens)
  • Fix: Include unit in inferred schema even if empty to prevent live-check failures. (#1284 by @ArthurSens)
  • Use schema_url in registry manifest, dependencies, and resolved schema instead of registry_url. Parse registry name and version from it. (#1202 by @lmolkova)
  • Default to manifest.yaml for registry manifest file, deprecate registry_manifest.yaml and add warning when it's used. (#1202 by @lmolkova)
  • 💥 BREAKING CHANGE 💥 (Fixes #760) - Auto-escaping is now off by default (none) for all templates, regardless of file extension. To opt in, set auto_escape: html or auto_escape: json per template in weaver.yaml. Within a template, {% autoescape false %} blocks can selectively disable escaping for sections. Use |tojson for explicit JSON/YAML value escaping where needed. (#1239 by @jerbly)
  • 💥 BREAKING CHANGE 💥 Replace version: "2" with file_format: definition/2 for v2 definition schema (#1154 by @lmolkova)
  • Add JSON schema for resolved registry v2 (#1261 by @lmolkova)
  • Add weaver registry package command to generate manifest and write resolved schema. (#1254 by @lmolkova)
  • Fix: weaver registry package command not producing output due to warnings. (#1271 by @lmolkova)
  • Update JSON Schema v2 to include file_format (#1262 by @lmolkova)
  • Add JSON schema for PolicyFinding, make context field optional. (#1270 by @lmolkova)
  • Deprecate weaver registry resolve command, please use weaver registry generate or package instead (#1255 by @lmolkova)
  • Support imports for all signal types and public attribute groups in v2 registry. (#1267 by @jsuereth)
  • Support refinements in v2 syntax: metric names, notes, etc. are now copied from the refined group. (#1250 by @jsuereth)
  • Fix stability/ordering issues in v2 publishing; attributes are now sorted and deduplicated consistently. (#1282 by @jsuereth)
  • Fix resolution for dependencies: both v1 and v2 resolution now returns the correct attribute from the right registry when using dependencies. (#1280 by @lmolkova)
  • JQ helper v2 for spans: fixes and improvements. (#1251 by @lmolkova)
  • Fix 404 on template-type attributes in the weaver serve API. (#1240 by @jerbly)
  • New Experimental feature: weaver serve UI migrated to React. (#1147 by @nicolastakashi)
  • New feature: out-of-the-box markdown documentation templates for generating signal documentation (metrics, spans, events, attributes, resources) from a semantic conventions registry. (#1166 by @vesari)

[0.21.2] - 2026-02-03

  • New Experimental feature: weaver serve command to serve a REST API and web UI. (#1076 by @jerbly)
  • Add support for diff schemas in registry json-schema(#1105 by @lmolkova)
  • 💥 BREAKING CHANGE 💥 Upgraded JSON schema generation to 2020-12 version of JSON Schema. (#1125 by @jerbly)
  • New Experimental feature: weaver registry mcp MCP server for a registry with search, get and live_check tools. (#1113 by @jerbly)
  • Fix (#1133) - Live-check: correctly handle --no-stats in report mode. (#1142 by @jerbly)
  • Feature (#1132) - Live-check: builtin output rendering for json, jsonl and yaml. (#1157 by @jerbly)

[0.20.0] - 2025-12-11

  • Add support for V2 schema in weaver diff (#1053 by @jsuereth)
  • Add support for V2 schema in JQ helpers (#1058 by @lmolkova)
  • Add support for V2 schema in weaver_forge (#980 by @jsuereth)
  • Add support for V2 schema in weaver check (#1016 by @jsuereth)
  • Add support for V2 schema in emit (#1019 by @jerbly)
  • Add support for V2 schema in live-check (#1022 by @jerbly)
  • 💥 BREAKING CHANGE 💥 Violation and Advice have been renamed to PolicyFinding. We now use the same structure between all rego policies in weaver. (#1038 by @jsuereth)
  • Add Log support for emit and live-check (#1042 by @jerbly)
  • Add OTLP log emission for policy findings in live-check. Whenever a PolicyFinding is created, a log_record is emitted to your configured OTLP endpoint. (#1045 by @jerbly)
  • Deprecate weaver registry search command. This command is not compatible with V2 schema and will be removed in a future version. Users should search the generated documentation instead. (#1057 by @jerbly)
  • Add support for continuous live-check sessions with --inactivity-timeout=0, --output=none and --no-stats (#1066 by @jerbly)

[0.19.0] - 2025-11-04

  • Add support for attribute_group (public and internal) in schema v2 (#933 by @lmolkova)
  • Live-check report changes (#943 by @lmolkova)
    • 💥 BREAKING CHANGE 💥 value property in Advice is renamed to advice_context
    • Advice now contains signal_type and signal_name properties to simplify post-processing
    • Message format is changed to include all dynamic details about the advice
  • The target and the registry sub-directory are now optional for the weaver registry generate command. (#962 by @lquerel)
  • Deterministic sorting of output (#982 by @kuklyy)
  • Fix panic in update-markdown (#990 by @jsuereth)
  • Cleanup log output (#995 by @lmolkova)

[0.18.0] - 2025-09-17

  • Fail when JQ filters fail (#894 by @lmolkova)
  • Update cargo-dist (#905 by @jerbly)
  • Update OTLP support to 1.7 (#907 by @jerbly)
  • Add debug logs for template config loading (#934 by @lmolkova)
  • Always serialize brief and registry_url (#929 by @jsuereth)
  • Fail when template doesn't match a file (#928 by @lmolkova)

[0.17.1] - 2025-08-15

  • Fix error messages to ignore new version variants (#880 by @jsuereth)

[0.17.0] - 2025-08-08

  • Filter based on deprecation, stability, and annotations in signal JQ helpers (#870 by @lmolkova)
  • Documentation and Repo cleanup (#873 by @lquerel))
  • Support structured deprecation info on enum members. (#823 by @lmolkova)
  • Don't serialize default values and empty arrays when resolving semantic conventions. (#822 by @lmolkova)
  • Add support for registry dependency chain, a->b->c. This pattern is useful when making narrow application registries that depend on a corporate registry based on the OpenTelemetry semantic conventions. Max depth is 10. (#856 by @jerbly)
  • Improve doc usage section (#851 by @tombrk)

[0.16.1] - 2025-07-04

  • Fix github release actions.

[0.16.0] - 2025-07-03

  • Reverts the value_type feature. (#816 by @jerbly)
  • Adds annotations to enum members (#812 by @lmolkova)

[0.15.3] - 2025-06-24

  • Add imports section to semconv spec. Custom registries can now import groups by name or by wildcard. (#769 by @lquerel)
  • Add support for metrics to registry emit (#767 by @jerbly)
  • Adds value_type to metric: int or double. Data-point and exemplar values are live-checked. (#773 by @jerbly)

[0.15.2] - 2025-05-30

  • Improve the quality of error messages emitted by Weaver (#759 by @lquerel)
  • Remove deprecated allow_custom_values from the codebase and YAML files (#758 by @trisch-me) As a result of this change, allow_custom_values will be ignored in registry version 1.26.0, which was the last version to support it.

[0.15.1] - 2025-05-27

  • Add support for metrics in Live Check. (#728 by @jerbly)
  • Fix #750 - Dual registry resolves incorrectly. (#753 by @lquerel)
  • Fail on unstructured deprecated note (behind --future flag) (#737 by @lmolkova)

[0.15.0] - 2025-05-01

  • Add support for attributes of type any. (#707 by @lquerel)
  • Add shell completion functionality. (#682 by @larrys)
  • Add support for remote templates and policies. (#700 by @lquerel)
  • Add Live Check for Spans via OTLP/JSON and loose Attributes via JSON/Text. (#630 by @jerbly)
  • 💥 BREAKING CHANGE 💥 resource groups are now called entity groups. All JQ helper methods have been updated, but any template directly interacting with group.type may be broken. Use entity instead of resource group type in your Jinja templates. (#714 by @jsuereth)
  • 💥 BREAKING CHANGE 💥 - All logging and diagnostics now go to stderr. Override diagnostics with --diagnostic-stdout. (#721 by @jerbly)
  • Support for simplified Template Type Examples format where the key/attribute name is no longer included. (#710 by @jerbly)

[0.14.0] - 2025-04-10

What's changed

  • Add support for 2 semconv registries. (#627 by @lquerel).
  • Add support for annotations on attributes and groups. (#645 by @lquerel).
  • 💥 BREAKING CHANGE 💥 - Upgrade to version 0.4.0 of regorus requires all v0 policies to be modified. Policy upgrade instructions here may help. (#651 by @jerbly).
  • Stability level Deprecated is deprecated. Conventions should be deprecated via deprecated field and should keep the original stability. (#607 by @lmolkova).
  • 💥 BREAKING CHANGE 💥 The constraints feature is no longer supported in semantic conventions yaml schema. The earliest version of semantic convention weaver is able to read has moved to 1.26.0. (#611 by @lmolkova).
  • Make type property required on the semantic convention group (behind --future flag). (#611 by @lmolkova).
  • Exclude attributes declared with code_generation.exclude annotations in semconv_attributes and other JQ attribute helpers. (#662 by @lmolkova)
  • Sort metrics by name in all JQ helpers. (#573 by @lmolkova)

[0.13.2] - 2025-02-13

What's changed

  • Add a note field to all deprecated variants and generate a formatted value when not provided in the semconv files. (#602 by @lquerel).

[0.13.1] - 2025-02-12

What's changed

  • For issue #596 - Fix the Jinja deprecated test to accept the new deprecated format. (#597 by @lquerel).

[0.13.0] - 2025-02-07

What's changed

  • Breaking Change: Introduced a new weaver registry diff command to generate a diff report between two versions of the semantic convention registry. This PR introduces a breaking change in the semantic conventions schema. While the text-based deprecated field is still supported for compatibility reasons, future semantic conventions should use the new deprecated structured format. (#400 by @lquerel).

    • The deprecated field is now a structured field defining the precise reason for deprecation. The semantic conventions must be updated to adopt this new format.
    • The changes related to the deprecated field (i.e., string → struct) also have a potential impact on certain templates that reference the deprecated field as containing text. These templates will need to be updated to use the brief field, which provides a textual explanation of the reasons for the deprecation.
  • Improvement of comment generation: removal of <p> tags that precede @ Javadoc tags. (#574 by @trask).

  • For Issue #564 - Require attributes and event fields to have stability: Added warnings for missing stability on: Attributes, Enum members in attributes, Event AnyValues, Enum members in AnyValues. (#568 by @jerbly).

  • For issue [#569](Add include_stability config into semconv_grouped_attributes): is_experimental returns true by default. (#570 by @jerbly).

  • Added an OTLP receiver to Weaver to prepare for the weaver registry live-check command. (see #548 by @lquerel)

  • Add is_array filter and test for AttributeType. (#540 by @arthurDiff).

  • Refactored CLI registry commands to remove some duplication. Resolving the registry with policy checks is common for generate, resolve and check. (#536 by @jerbly).

    • Added missing after_resolution policy checks to generate and resolve through the common code.
    • Removed the deprecated --registry-git-sub-dir option.
    • Fixed bug in check if --skip-policies was specified then it would not fail for any validation errors.
  • Semantic Conventions Issue #1513 - Make span_kind required in yaml and break down multi-kind span definitions - (#542 by @jerbly).

    • Updated the EBNF and JSON schema to define span_kind as mandatory for span group types. Added a group validity check as a warning.
  • First iteration of the new command: registry emit. Emits a semantic convention registry as example spans to your OTLP receiver. This may be useful in testing/simulation scenarios. (#549 by @jerbly)

  • For issue [#569](Add include*stability config into semconv_grouped_attributes): added stable_only boolean flag as a parameter for semconv_signal, semconv_grouped_attributes, and other semconv*\*JQ semconv helpers. Whenstable_onlyis set totrue, corresponding helper function returns stable conventions only. If the flag is not set or set to false, stability filtering does not apply. It's recommended to use stable_onlyflag instead ofexclude_stability parameter. (#588 by @lmolkova)

[0.12.0] - 2024-12-09

What's changed

  • Issue #502 - Support stability definitions from OTEP 232 - (#504 by @jerbly).
    • Stability enum now has these variants: stable, development, deprecated, alpha, beta, release_candidate
    • unmaintained is not supported yet.
    • experimental is still accepted when parsing but aliased to development.
    • The minijinja test, experimental, now returns true for any variant other than stable.
    • EBNF and JSON schema updated to define the new enum without the experimental variant.
  • Issue #301 - Warn against usage of allow_custom_values. (#514 by @jerbly).
  • Fixed rego typos, attrigute and deprecaded (#517 by @jerbly).
  • Create better HTML comment parser - Allow more semconv snippet headers (#512 by @jsuereth).
  • Add javadoc

    tag after lists (#511 @trask).

  • Javadoc

    tags should only precede paragraphs (#510 by @trask).

  • More consistent newline behavior (#509 by @trask).
  • Add test cases to cover a paragraph after a list (#508 by @trask).

Important note: Our CI/CD pipeline has been updated to use Rust cross-compilation, significantly speeding up the ARM target (see [#506](#506, thanks to @bernot-dev). If you encounter any issues on ARM, please let us know as soon as possible. Thank you!

[0.11.0] - 2024-12-05

What's changed

  • Detect duplicate group ids, group names, and metric names. (#382 by lquerel).
  • Add support for Maps map[] to the definition of an AnyValue. (#396 by @MSNev).
  • Update semconv schema, syntax doc and validity check to correctly define stability as optional for attribute groups. (#467 by @jerbly).
  • Fix issue #405 - Updated the EBNF and JSON schema to define the extends or attributes requirement mandatory for all group types except metric and event. Added a group validity check as a warning. (#494 by @jerbly).
  • Allow adding a description when using opt_in requirement level (#392 by @joaopgrassi)
  • Add warning that issues when using prefix on groups (#407 by @jsuereth)
  • Update comment filter to remove trailing spaces (#453 by @jsuereth)
  • Metrics and Events don't require attributes (#494 by @jerbly)
  • Added an option to follow symbolic links when loading the registry in various parts of the codebase. (#468 by @leo6leo)
  • Provide max line-length in comment filter. (#454 by @jsuereth)

[0.10.0] - 2024-09-23

What's changed

  • Add support log based event definitions with a body of new AnyValue type. (#297 by @MSNev).
  • Add escape_square_brackets into comment_formats markdown configuration. (#379 by @lquerel).
  • Add enforce_trailing_dots into the comment_formats configuration. (#378 by @lquerel).
  • Add support for indent_type in both the comment filter and the comment_formats configuration. (#377 by @lquerel).
  • Add regex_replace filter to support replacing text using regex. (#380 by @lquerel).
  • Bump opentelemetry_sdk from 0.24.1 to 0.25.0 (#369)
  • Bump opentelemetry-stdout from 0.5.0 to 0.25.0 (#368)
  • Bump anyhow from 1.0.88 to 1.0.89 (#370)
  • Bump regorus from 0.2.4 to 0.2.5 (#375)
  • Bump minijinja-contrib from 2.2.0 to 2.3.1 (#376)
  • Bump minijinja from 2.2.0 to 2.3.1 (#371)
  • Bump globset from 0.4.14 to 0.4.15 (#366)

[0.9.2] - 2024-09-09

What's Changed

  • Build X86 + ARM64 image (#346 by jsuereth). The parameter --platform=linux/x86_64 is no longer needed to run this image on MacOS.
  • Update docker guide for home directory (#356 by jsuereth).
  • Fix clippy issues. (#357 by jsuereth).
  • Bump alpine from 3.20.2 to 3.20.3 (#360)
  • Bump anyhow from 1.0.86 to 1.0.87 (#359)
  • Bump serde from 1.0.209 to 1.0.210 (#358)
  • Bump serde_json from 1.0.127 to 1.0.128 (#354)
  • Bump clap from 4.5.16 to 4.5.17 (#351)
  • Bump regorus from 0.2.3 to 0.2.4 (#350)
  • Bump indexmap from 2.4.0 to 2.5.0 (#349)
  • Bump minijinja-contrib from 2.1.2 to 2.2.0 (#347)
  • Bump ratatui from 0.28.0 to 0.28.1 (#341)
  • Bump flate2 from 1.0.32 to 1.0.33 (#342)
  • Bump minijinja from 2.1.2 to 2.2.0 (#343)
  • Bump serde from 1.0.208 to 1.0.209 (#344)
  • Bump serde_json from 1.0.125 to 1.0.127 (#340)

[0.9.1] - 2024-08-22

Fixes

  • Warnings detected in the baseline registry are now ignored and non-fatal errors will not interrupt any command before it completes (#337 by lquerel).

[0.9.0] - 2024-08-19

What's Changed

  • (#309 by lquerel) Configurable Comment Filter to Support Multiple Programming Language Comment Formats. More details in Weaver Force Doc and Weaver Configuration Doc.
  • (#300 by lquerel) Validation for the examples attribute field.
  • (#322, #312, #319, #318, #312, #304 by jsuereth) Many improvements have been made to the creation of the Weaver Docker image, which is now scoring an A on the Scout Docker image score.
    • Add Weaver docker image to dependabot tracking,
    • Add build attestations,
    • Stop using root user the docker image,
    • Use official docker action to build docker image,
    • Update docker to use release build.
  • (#311 by MSNev) Fix unknown.com test reference issue.
  • (#307 by lmolkova) Move semconv schema definition from build tools.
  • (#305 by lquerel) Detect root attribute name duplicates during the resolution process.
  • (#294 by lquerel) Add template-level parameters and file_name per template config.
  • (#327) Bump regorus from 0.2.2 to 0.2.3.
  • (#326, #317, #302) Bump clap from 4.5.13 to 4.5.16.
  • (#325, #313) Bump serde from 1.0.205 to 1.0.208.
  • (#324) Bump alpine from 3.18.3 to 3.20.2.
  • (#323) Bump rust from 1.76.0-alpine3.18 to 1.78.0-alpine3.18.
  • (#320, #315, #287) Bump serde_json from 1.0.122 to 1.0.125.
  • (#316) Bump indexmap from 2.3.0 to 2.4.0.
  • (#314, #308) Bump markdown from 1.0.0-alpha.18 to 1.0.0-alpha.20.
  • (#310) Bump ratatui, textarea and crossterm version in lock-step.
  • (#303, #299, #293) Bump tui-textarea from 0.5.2 to 0.6.1.
  • (#298) Bump ratatui from 0.27.0 to 0.28.0.
  • (#292) Bump flate2 from 1.0.30 to 1.0.31.
  • (#290) Bump regex from 1.10.5 to 1.10.6.
  • (#286) Bump crossterm from 0.27.0 to 0.28.1.

[0.8.0] - 2024-08-01

What's Changed

  • (#257 by lquerel) Infrastructure to support backward-compatibility testing and, more generally, policies applied to multi-version registries.
weaver registry check \
--registry https://github.com/open-telemetry/semantic-conventions.git[model] \
--baseline-registry https://github.com/open-telemetry/semantic-conventions/archive/refs/tags/v1.26.0.zip[model] \
--policy compatibility_check.rego
  • (#284 by MadVikingGod) The --policy flag now accepts directories.
  • (#270 by @lquerel) Follow build tools’ case conversion rules. Numbers are no longer considered word splitters.
  • (#276 by @jsuereth) Remove legacy way of writing templates for semconv.
  • (#274 by @lquerel) Enhance error reporting for invalid JQ expressions.
  • (#275 by @lquerel) The custom JQ filter semconv_grouped_metrics now sorts metrics by their metric_name (issue #268).
  • (#256) Bump gix from 0.63.0 to 0.64.0.
  • (#271) Bump jaq-parse from 1.0.2 to 1.0.3.
  • (#272) Bump jaq-core from 1.5.0 to 1.5.1
  • (#273) Bump toml from 0.8.16 to 0.8.17
  • (#283) Bump minijinja from 2.1.0 to 2.1.1

[0.7.0] - 2024-07-22

What's Changed

  • Add support for new custom semconv JQ filters by @lquerel.
  • Update Weaver Forge documentation and include a step-by-step guide for codegen authors by @lquerel.

The following new filters have been added to the Weaver Forge:

  • semconv_group_attributes_by_root_namespace: Groups the attributes by their root namespace.
  • semconv_attributes($options): Extracts and processes semantic convention attributes based on provided options. $options is an object that can contain:
    • exclude_stability: a list of stability levels to exclude.
    • exclude_deprecated: a boolean to exclude deprecated metrics.
    • exclude_root_namespace: a list of root namespaces to exclude.
  • semconv_attributes: Convenience function to extract all attributes without any filtering options.
  • semconv_grouped_attributes($options): Groups the processed attributes by their root namespace based on provided options. $options is an object that can contain:
    • exclude_stability: a list of stability statuses to exclude.
    • exclude_deprecated: a boolean to exclude deprecated metrics.
    • exclude_root_namespace: a list of root namespaces to exclude.
  • semconv_grouped_attributes: Convenience function to group all attributes by their root namespace without any filtering options.
  • semconv_group_metrics_by_root_namespace: Groups the metrics by their root namespace.
  • semconv_metrics($options): Extracts and processes semantic convention metrics based on provided options. $options is an object that can contain:
    • exclude_stability: a list of stability statuses to exclude.
    • exclude_deprecated: a boolean to exclude deprecated metrics.
    • exclude_root_namespace: a list of root namespaces to exclude.
  • semconv_metrics: Convenience function to extract all metrics without any filtering options.
  • semconv_grouped_metrics($options): Groups the processed metrics by their root namespace based on provided options. $options is an object that can contain:
    • exclude_stability: a list of stability statuses to exclude.
    • exclude_deprecated: a boolean to exclude deprecated metrics.
    • exclude_root_namespace: a list of root namespaces to exclude.
  • semconv_grouped_metrics: Convenience function to group all metrics by their root namespace without any filtering options.

[0.6.0] - 2024-07-16

What's Changed

  • Support for Hierarchical Weaver Config: We have added support for hierarchical configuration in Weaver. This allows more flexible and powerful configuration management. For more details, please refer to the documentation on configuration file loading order and overriding rules. by @lquerel in #231
  • Support for MiniJinja py_compat Extensions: This release includes support for MiniJinja py_compat extensions, enhancing compatibility with Python syntax. For more information, see the documentation. by @lquerel in #239

New Contributors

  • @haidong made a first contribution in #237

[0.5.0] - 2024-07-02

What's Changed

  • Add optional variant to requirement_level. by @MadVikingGod in #199
  • Add semconv_const filter to support semantic convention namespacing rules. by @lquerel in #200
  • Add display_name field. by @joaopgrassi in #202
  • Bump regex from 1.10.4 to 1.10.5 by @dependabot in #205
  • Bump clap from 4.5.6 to 4.5.7 by @dependabot in #206
  • New entry in developer guide to describe the process of adding new fields in the semantic convention registry by @lquerel in #209
  • Add Embed option for single attributes by @trisch-me in #212
  • Bump include_dir from 0.7.3 to 0.7.4 by @dependabot in #213
  • Add support for post-resolution policies by @lquerel in #214
  • split_id filter is singular by @bryannaegele in #217
  • Add Jinja whitespace control by @joaopgrassi in #224

New Contributors

  • @MadVikingGod made their first contribution in #199
  • @joaopgrassi made their first contribution in #202
  • @trisch-me made their first contribution in #212
  • @bryannaegele made their first contribution in #217

Full Changelog: https://github.com/open-telemetry/weaver/compare/v0.4.0...v0.5.0

[0.4.0] - 2024-06-04

What's Changed

  • First cut at a developer's guide to help onboarding users. by @jsuereth in #166
  • Detect and Process Policy Files into SemConv Registry + Generic Diagnostic Reporting by @lquerel in #153
  • Bump gix from 0.62.0 to 0.63.0 by @dependabot in #170
  • Update opentelemetry rust API by @lquerel in #169
  • Bump serde from 1.0.202 to 1.0.203 by @dependabot in #176
  • Support for loading templates from the file system or from an embedded representation in the app's binary. by @lquerel in #171
  • Add support for List of Array examples. by @jerbly in #177
  • Add distribution (binaries + installers) publishing workflows. by @jsuereth in #179
  • Generate JSON Schema for both Resolved Telemetry Schema and Resolved Registry by @lquerel in #187
  • Update README.md, fix Weaver checker link by @xrmx in #191
  • Support command line parameters to add an additional layer of configurability in the documentation/code generator. by @lquerel in #195

New Contributors

  • @jerbly made their first contribution in #177
  • @xrmx made their first contribution in #191

Full Changelog: https://github.com/open-telemetry/weaver/compare/v0.3.0...v0.4.0

[0.3.0] - 2024-05-16

What's Changed

  • Additional filters and tests by @lquerel in #163
    • instantiated_type: Filters a type to return the instantiated type.
    • enum_type: Filters a type to return the enum type or an error if the type is not an enum.
    • capitalize_first: Capitalizes the first letter of a string.
    • map_text introduces a second parameter to define the default value if the name of the text map or the input are not found in the text_maps section (optional parameter).
    • enum: Tests if an attribute has an enum type.
    • simple_type: Tests if a type is a simple type (i.e.: string | string[] | int | int[] | double | double[] | boolean | boolean[]).
    • template_type: Tests if a type is a template type (i.e.: template[]).
    • enum_type: Tests if a type is an enum type.

Full Changelog: https://github.com/open-telemetry/weaver/compare/v0.2.0...v0.3.0

[0.2.0] - 2024-04-26

Updates for Semantic Convention markdown generation, and beginnings of a suite of utilities for code generation.

What's Changed:

  • Working rust codegen example by @lquerel in #136
  • Markdown snippet generation now uses weaver_forge templating by @jsuereth in #141
  • New Jinja filters and predicates for OTel by @lquerel in #143
  • attribute_sort filter to weaver_forge by @jsuereth in #144
  • Expanding collection of filters by @lquerel in #162
  • (chore) Removal of Old Tera Templates by @lquerel in #145
  • (fix) Expand id parsing by @jsuereth in #152
  • (fix) Update weaver to understand deprecated enum values. by @jsuereth in #139

Full Changelog: https://github.com/open-telemetry/weaver/compare/v0.1.0...v0.2.0

[0.1.0] - 2024-04-24

Initial release of OpenTelemetry weaver for usage in semantic-conventions repository.

This is a PREVIEW release, and stability guarantees are loose prior to 1.0.

What's Changed:

  • The Weaver project, initially hosted by F5, has been moved to open-telemetry/weaver. The project's objectives have been redefined into two main phases/focuses: 1) semconv support, 2) application telemetry support.
  • A Jinja-compatible template engine and a snippet-based generator have been completed and tested to support the semantic-convention repository. The template engine can be used for both documentation and code generation.
  • A new policy engine (based on rego) has been added to the project to externalize the declaration of policies and to enhance the management, evolution, and maintainability of semantic conventions and application telemetry schemas. It leverages a set of rules or policies to ensure the coherence and quality of these conventions and schemas over time.
  • A lot of documentation has been added to the entire project to make it easier to consume and contribute.
  • A code coverage process has been implemented with the initial goal of keeping the project above 70% coverage.
  • A process for cleaning up APIs has been initiated in anticipation of publishing the crates on crates.io. The weaver_semconv crate is the first to undergo this process.

[unreleased]

🚀 Features

  • (registry) Improve resolved schema and registry api usability.
  • (registry) Introduce the concept of named registries
  • (stats) Implement registry stats command
  • (resolve) Implement registry resolve command
  • (template) Add a more complex example generating markdown files per group prefix
  • (template) Reimplement template generation based on minijinja + jaq (jq-like filters)
  • (cli) Add quiet mode
  • (generator) Add support for all group types
  • (generator) Add jq-like filter support to make artifact generation more flexible
  • (generator) Complete the weaver registry generate command.
  • (cli) Add update-markdown sub-command and align sub-command args in the registry command.
  • (registry) Improve unit test to check the generated markdown
  • (registry) Add unit test to check the generated markdown
  • (registry) Generate markdown from jinja2 templates
  • (template) Generate markdown files describing a registry
  • (template) Add template syntax configuration
  • (template) Initialize template engine with a root directory to support include clause.
  • (template) Expose template.set_file_name method to dynamically define the file name of the output.
  • (template) Generate registry from templates
  • (resolve) Improve error reporting
  • (resolve) Fix typo
  • (resolve) Implement include constraint
  • (resolve) Check any_of constraints
  • (template) Integrate with minininja
  • (template) Start integration of the case converter
  • (template) Replace tera with minijinja to improve error handling
  • (registry) Refactor registry sub-commands.
  • (registry) Add weaver check registry command
  • (resolver) Simplify semantic convention registry resolution function

🐛 Bug Fixes

  • (resolution) Adjust other unit tests to take into account the fix
  • (resolution) Make resolution process easy to test in unit tests
  • (resolution) Fix resolution order
  • (resolution) Create minimal example reproducing the bug

📚 Documentation

  • (template) Add documentation to describe the template engine.
  • Describe crates layout and add README.md files for every crates in the workspace.
  • Clean up README.md

🧪 Testing

  • (integration) Create integration test to check parsing and resolution of the official semconv repo.

⚙️ Miscellaneous Tasks

  • (coverage) Improve test coverage
  • (coverage) Remove xtask and main command line from the code coverage
  • (coverage) Apply tarpaulin coverage to the entire workspace
  • (install) Add cargo tarpaulin in the list of tools to install
  • (build) Trigger ci.yml workflow for all push and pull request
  • (coverage) Add test code coverage with cargo tarpaulin
  • (clippy) Add more clippy lints
  • (clippy) Fix more clippy issues
  • (clippy) Fix explicit_into_iter_loop clippy issue
  • (git) Make the output dir invisible for git
  • (changelog) Add git cliff configuration
  • (code) Make error enums non-exhaustive
  • (code) Implement #54
  • (code) Fix str_to_string clippy lint issues
  • (code) Implement #54 + new clippy lint rule
  • (build) Fix doc lint issue
  • (build) Fix GH action
  • (build) Add xtask
  • (build) Replace script/check_workspace with cargo xtask validate
  • (build) Define lint rules globally from the cargo workspace
  • (build) Clippy lint rules to remove unwrap and enforce must_use when needed
  • (build) Fix clippy issues
  • (doc) Update README.md to describe check and generate sub-commands
  • (build) Fix clippy issue
  • (build) Fix merge issue.
  • (build) Update cargo lock
  • (compatibility) Align attribute type and examples definitions
  • (compatibility) Align requirement level definition
  • (compatibility) Align stability definition
  • (compatibility) Make resolved registry compatible with official registry syntax
  • (clippy) Fix clippy lint issues
  • (error) Improve compound error management
  • (ci) Fix toolchain version issue
  • (ci) Attempt to fix toolchain version issue
  • (build) Fix ci workflow
  • (build) Fix scripts path
  • (build) Remove allowed-external-types.toml files from the Typos control.
  • (build) Add control procedures for workspace and public API policies
  • (build) Run build and test only with ubuntu target for now.
  • (build) Remove macos target for the build (API rate limit reached, we need to figure out that later).
  • Add cargo lock file.
  • (dep) Bump dependency versions
  • Migrate f5/otel-weaver repo to open-telemetry/weaver repo