The Weaver project is a part of the Semantic Conventions (General) SiG. This group meets weekly on Mondays at 8 AM Pacific Time. The meeting is subject to change depending on contributors' availability. Check the OpenTelemetry community calendar for specific dates and for Zoom meeting links. "OTel Semconv" is the name of meeting for this group.
Meeting notes are available as a public Google doc. If you have trouble accessing the doc, please get in touch on Slack.
The meeting is open for all to join. We invite everyone to join our meeting, regardless of your experience level. Whether you're a seasoned OpenTelemetry developer, just starting your journey, or simply curious about the work we do, you're more than welcome to participate!
Additionally, Weaver has its own CNCF slack channel at #otel-weaver.
Run cargo xtask validate
to check the structure of the project.
Run cargo test --all
to run the tests.
Run just
before any push to pre-validate all the steps performed by CI.
TODO - add any special care/comments we want for clean repo.
- If the PR is not ready for review, please put
[WIP]
in the title or mark it as draft. - Make sure CLA is signed and all required CI checks are clear.
- Submit small, focused PRs addressing a single concern/issue.
- Make sure the PR title reflects the contribution.
- Write a summary that helps understand the change.
- Include usage examples in the summary, where applicable.
- Include benchmarks (before/after) in the summary, for contributions that are performance enhancements.
A PR is considered to be ready to merge when:
- It has received approval from at least two Approvers. / Maintainers (of different companies).
- Major feedback is resolved.
Any Maintainer can merge the PR once it is ready to merge. Note, that some PRs may not be merged immediately if the repo is in the process of a release and the maintainers decided to defer the PR to the next release train. Also, maintainers may decide to wait for more than one approval for certain PRs, particularly ones that are affecting multiple areas, or topics that may warrant more discussion.
Before introducing any non-trivial schema changes, we recommend discussing them in the semantic-conventions repo.
Changes affecting semantic conventions schema should be reflected in the formal schema definition and require approval from @open-telemetry/specs-semconv-approvers.
Semantic conventions schema is formally defined in semconv.schema.json, human-readable documentation is available in semconv-syntax.md.
To create a new release for the Weaver project, follow these steps. This process ensures that the release is properly versioned, documented, and published using our CI/CD pipeline.
Before creating a release tag, you need to prepare a Pull Request (PR) with the following updates:
- Update Versions: Bump the version numbers for all crates in the project.
- Update CHANGELOG.md: Add appropriate entries in
CHANGELOG.md
to reflect the new release, detailing the changes, enhancements, and bug fixes.
-
Checkout a new branch:
git checkout -b prepare-release-vX.Y.Z
-
Update the version numbers: Update the
Cargo.toml
files in each crate to reflect the new version. -
Update CHANGELOG.md: Add a new section for the upcoming release version and list all relevant changes.
-
Commit your changes:
git add . git commit -m "Prepare release vX.Y.Z"
-
Push your branch:
git push origin prepare-release-vX.Y.Z
-
Open a Pull Request: Go to the GitHub repository and open a PR from your branch. Request reviews and wait for approval.
Once the PR is reviewed and approved, merge it into the main
branch.
After merging the PR, create a signed tag for the new release.
-
Checkout the
main
branch:git checkout main git pull origin main
-
Create a signed tag:
git tag -s vX.Y.Z -m "Release vX.Y.Z"
Replace
X.Y.Z
with the new version number. You will be prompted to enter your GPG passphrase to sign the tag. -
Push the tag to the upstream repository:
git push upstream vX.Y.Z
After pushing the tag, the GitHub Actions workflow configured in
.github/workflows/release.yml
will
automatically detect the new tag. This workflow uses cargo-dist
to create the release and its artifacts.
-
Check the Actions Tab: Go to the "Actions" tab in the GitHub repository to monitor the CI/CD process. Four workflows should be triggered:
- CI
- Release
- Spelling
- Weaver Docker Generator
-
Ensure All Workflows Complete Successfully: Wait for all four workflows to complete. Each workflow should finish without errors.
Once all workflows are successful:
- Check the Release List: Go to the "Releases" section of the Weaver project on GitHub.
- Update the Release Description: Edit the release description to ensure it is complete and informative. At this time, we do not have an automation for generating a detailed release description, so this step needs to be done manually.
The final step is to announce the new release:
- Post in the Slack Channel: Inform the team and the community about the new release by posting an announcement in the relevant Slack channel. Include a summary of the key changes and a link to the release notes.
The OpenTelemetry Weaver was initially developed in the
github.com/f5/otel-weaver
repository.
For github groups see the codeowners file.
- Laurent Quérel F5 Networks
- Josh Suereth Google LLC
We're seeking approvers.
See the community membership document in OpenTelemetry community repo.