All notable changes to this project will be documented in this file.
What's changed
- Add support for Maps
map[]
to the definition of anAnyValue
. (#396 by @MSNev).
What's changed
- Add support log based
event
definitions with abody
of newAnyValue
type. (#297 by @MSNev). - Add
escape_square_brackets
intocomment_formats
markdown configuration. (#379 by @lquerel). - Add
enforce_trailing_dots
into thecomment_formats
configuration. (#378 by @lquerel). - Add support for
indent_type
in both the comment filter and thecomment_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)
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)
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).
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
andcrossterm
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.
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
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 statuses 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.
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 open-telemetry#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 open-telemetry#239
- @haidong made a first contribution in open-telemetry#237
What's Changed
- Add optional variant to requirement_level. by @MadVikingGod in open-telemetry#199
- Add semconv_const filter to support semantic convention namespacing rules. by @lquerel in open-telemetry#200
- Add display_name field. by @joaopgrassi in open-telemetry#202
- Bump regex from 1.10.4 to 1.10.5 by @dependabot in open-telemetry#205
- Bump clap from 4.5.6 to 4.5.7 by @dependabot in open-telemetry#206
- New entry in developer guide to describe the process of adding new fields in the semantic convention registry by @lquerel in open-telemetry#209
- Add Embed option for single attributes by @trisch-me in open-telemetry#212
- Bump include_dir from 0.7.3 to 0.7.4 by @dependabot in open-telemetry#213
- Add support for post-resolution policies by @lquerel in open-telemetry#214
- split_id filter is singular by @bryannaegele in open-telemetry#217
- Add Jinja whitespace control by @joaopgrassi in open-telemetry#224
- @MadVikingGod made their first contribution in open-telemetry#199
- @joaopgrassi made their first contribution in open-telemetry#202
- @trisch-me made their first contribution in open-telemetry#212
- @bryannaegele made their first contribution in open-telemetry#217
Full Changelog: https://github.com/open-telemetry/weaver/compare/v0.4.0...v0.5.0
What's Changed
- First cut at a developer's guide to help onboarding users. by @jsuereth in open-telemetry#166
- Detect and Process Policy Files into SemConv Registry + Generic Diagnostic Reporting by @lquerel in open-telemetry#153
- Bump gix from 0.62.0 to 0.63.0 by @dependabot in open-telemetry#170
- Update opentelemetry rust API by @lquerel in open-telemetry#169
- Bump serde from 1.0.202 to 1.0.203 by @dependabot in open-telemetry#176
- Support for loading templates from the file system or from an embedded representation in the app's binary. by @lquerel in open-telemetry#171
- Add support for List of Array examples. by @jerbly in open-telemetry#177
- Add distribution (binaries + installers) publishing workflows. by @jsuereth in open-telemetry#179
- Generate JSON Schema for both Resolved Telemetry Schema and Resolved Registry by @lquerel in open-telemetry#187
- Update README.md, fix Weaver checker link by @xrmx in open-telemetry#191
- Support command line parameters to add an additional layer of configurability in the documentation/code generator. by @lquerel in open-telemetry#195
- @jerbly made their first contribution in open-telemetry#177
- @xrmx made their first contribution in open-telemetry#191
Full Changelog: https://github.com/open-telemetry/weaver/compare/v0.3.0...v0.4.0
What's Changed
- Additional filters and tests by @lquerel in open-telemetry#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 thetext_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
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 open-telemetry#136
- Markdown snippet generation now uses weaver_forge templating by @jsuereth in open-telemetry#141
- New Jinja filters and predicates for OTel by @lquerel in open-telemetry#143
attribute_sort
filter to weaver_forge by @jsuereth in open-telemetry#144- Expanding collection of filters by @lquerel in open-telemetry#162
- (chore) Removal of Old Tera Templates by @lquerel in open-telemetry#145
- (fix) Expand id parsing by @jsuereth in open-telemetry#152
- (fix) Update weaver to understand deprecated enum values. by @jsuereth in open-telemetry#139
Full Changelog: https://github.com/open-telemetry/weaver/compare/v0.1.0...v0.2.0
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.
- (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
- (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
- (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
- (integration) Create integration test to check parsing and resolution of the official semconv repo.
- (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