* [chore] Refine generate Make target
* Do not run porto in go-generate
* Update Makefile
---------
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* feat(ci): Add codespell to Makefile and GitHub Actions
This is a followup from
https://github.com/open-telemetry/opentelemetry-go/pull/3980 to add the
automation for checking for code spelling errors to a different PR.
[Codespell][] makes use of the `.codespellrc` file automatically as a config
file for convenience. The configuration file specifies directories and
flags to pass to `codespell`. Codespell also makes use of the
`.codespellignore` file to ignore certain word spellings.
There is a new section in `Makefile` for installing python tooling.
It is similar to how the go tools are installed. It sets up a virtualenv
in `venv `and installs python tooling there if it hasn't been installed
yet.
The new [codespell workflow][] will run in pull requests to annotate
misspelled words. It is set up to only warn the user with annotations in
the pull request if there are typos, but we can fail the pull request as
well if we want to by deleting the [warn_only][] key.
[codespell]: https://github.com/codespell-project/codespell
[codespell workflow]: https://github.com/codespell-project/actions-codespell
[warn_only]: https://github.com/codespell-project/actions-codespell#parameter-only_warn
* Use docker to run python and codespell
Since this is a Go project, having a dependency on python seemed
disconcerting. So, docker is used to create a virtual environment
with a python image and also run the tools that were installed.
* Remove wording on requirement for python
* Apply suggestions from code review
Co-authored-by: Damien Mathieu <42@dmathieu.com>
* Pin versions into requirements.txt
* Pin version in requirements.txt
* Fix typo in license
* Revert typo fix on deleted file
* Update .github/workflows/codespell.yaml
Co-authored-by: Robert Pająk <pellared@hotmail.com>
* Update codespell.yaml
* Update codespell.yaml
---------
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add semconv/v1.19.0
Includes adding semconv/internal/v3/ to support the move of
the semantic convention HTTPUserAgentKey to the new key
UserAgentOriginalKey
* Update CHANGELOG.md
Co-authored-by: Robert Pająk <pellared@hotmail.com>
* format http.go.tmpl using tabs instead of spaces
* update http.go.tmpl to use v3 of semconv/internal
* Generate attribute_group.go
---------
Co-authored-by: Robert Pająk <pellared@hotmail.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Update CHANGELOG and versions.yaml for 1.8.0 release
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update go-build-tools
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare stable-v1 for version v1.8.0
* Prepare experimental-metrics for version v0.31.0
* Prepare bridge for version v0.31.0
* `make go-mod-tidy` should use `-compat=1.17` now
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update CHANGELOG.md
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* No wrap RELEASING Semantic Convention Generation section
* Initial generator
* Update template render
* Add exception and schema templates
* Add semconv/internal http unification
* Add http template
* Add licenses header
* Embed the templates
* Update static version in schema tmpl
* Add semconv-generate target to Makefile
Use this target to generate versions of the semconv packages.
* Generate semconv packages
* Update RELEASING to use make semconv-generate
* Add comments to semconvkit
* Make SemVer a method instead of a field
* Remove semconv/v* from codecov
* Fix lint for semconvkit main.go
* Fix documentation of validateHTTPStatusCode
Co-authored-by: Chester Cheung <cheung.zhy.csu@gmail.com>
* Refactor Makefile
* Update dependabot targets
* Sync github actions config with Makefile ci target
* Update test targets
* Use sed instead of parameter indexing
* Remove dependabot-generate
Address in #2613 instead.
* Update build tools
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update CHANGELOG and versions.yaml
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Prepare stable-v1 for version v1.0.1
* Prepare experimental-metrics for version v0.24.0
* Prepare bridge for version v0.24.0
* Update releasing documentation and create add-tags make target
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* use multimod from the .tools directory
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* precommit
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Split stdout exporter into stdouttrace and stdoutmetric
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Remove unused options from stdouttrace and stdoutmetric exporters
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update stdout exporter references in website docs
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update docs to include correct import paths, properly describe exporter scope
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Remove pointless options to disable signals from what are now single-signal exporters
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Rename exporters/metric/prometheus
* Rename exporters/trace/jaeger
* Rename exporters/trace/zipkin
* Fix dependabot config and make test
* Update README docs
* Deprecate exporters instead of remove them
* Update dependabot with old modules
* Run crosslink
* Add lint override for known deprecated pkg
* Update PR number
* Remove trace export support from exporters/otlp
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update otlp exporter example test to use metric/global package
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update CHANGELOG
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* completely excise exporters/otlp
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Add semantic convention generator
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update semantic conventions from generator
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Use existing internal/tools module
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Fix lint issues, more initialisms
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Update changelog
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* semconvgen: Faas->FaaS
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Fix a few more key names with replacements
* Update replacements from PR feedback
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* rename commonInitialisms to capitalizations, move some capitalizations there
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Regenerate semantic conventions with updated capitalizations and replacements
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Generate semantic conventions from spec v1.3.0
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Cleanup semconv generator util a bit
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* No need to put internal tooling additions in the CHANGELOG
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Fix HTTP semconv tests
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
* Add semconv generation notes to RELEASING.md
Signed-off-by: Anthony J Mirabella <a9@aneurysm9.com>
The echo for the target was copied from other targets that use `dir` as
an iteration variable which is not what this target uses. That means
that the empty variable `dir` is unexpanded and the unhelpful message of
"build /..." is echoed. This updates the iteration variable to match
other targets and fixes the info messaging.
* Add compatibility tests to CI
* Increase timeout to 60s
Some of the aggregator tests are running just over 30 seconds when
testing on Windows. Bump this to allow for it.
* Remove cache setup jobs
Having a unified job setup the cache when none exists so packages are
only downloaded once is ideal, but these steps are taking too long. In
some situations they are doubling the run time. Remove them and prefer
to have multiple downloads when dependencies change.
* Add changes to changelog
* Remove mod-download target from Makefile
Unused now that the cache jobs are removed.
* Add compatibility testing table to changelog
* Add change about precommit to changelog
* Update README
* Correct examples target in lint job
* Vendor Thrift dependency
* Fix build
* Changelog entry
* Ignore third_party for coverage purposes
* Re-run tests
* Re-run tests
* Re-run tests
* Re-run tests
* Relax time comparisons
Fixes#1559.
Some unit tests were flaking in CI because they expected the timestamp
to advance during a test, when it's possible for it to be unchanged
instead. This change switches the offending "<" comparisons to "<=".
* Re-run tests
* Relax more time comparisons
* Re-run tests
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Add a tool to auto-generate replace directives
* Auto-generated changes from previous commit
* Create new modules required for trace release
* otel/metric
* otel/trace
* otel/oteltest
* otel/sdk/export/metric
* otel/sdk/metric
Relates to #1467
* Move metric-related public API out of otel/ pkg
Move GetMeterProvider, Meter and SetMeterProvider to new package
otel/metric/global in the otel/metric module.
This will allow otel/ module to be released as v1.0.
* Include PR references in CHANGELOG
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Check for root dir
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Examples are "leaf" packages, that pull some other packages. So build
the other packages first to get and fix all the errors there, before
building the examples.
Add check for github-actions.
Add missing examples and SDK go.mod
Remove redundant comments.
Change check to be weekly on Sunday to reduce load and churn.
Sort alphanumerically.
Add check to Makefile to ensure if there is a `go.mod` file there is a dependabot entry for that directory.
* Export coverage report to codecov
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
* Use orb and individual coverage files per module
* Run go cover inside module directory to account for local rewrites
Still try to upload using a single file, since orb docs seem to
indicate if you have more than one file, you're going to need to run
the orb multiple times.
* Use correct filename
* Don't do anything silly like appending a file to itself
* Handle subtle differences between FreeBSD and Linux
* Ignore opentelemetry-proto-gen files in exporters/otlp/internal
* Does codecov orb leave current directory in a bad state?
* Copy instead of move
* Ignore generated protobuf code in jaeger exporter module
Co-authored-by: Evan Torrie <evantorrie@users.noreply.github.com>
Co-authored-by: Anthony Mirabella <a9@aneurysm9.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Move proto to OTLP exporter
* Update OTLP exporter import of proto
* Use gogo protobuf
To stop using the deprecated github.com/golang/protobuf and match what
the collector is doing, switch to generating OTLP with the
github.com/gogo/protobuf/proto instead of
github.com/golang/protobuf/proto.
* Clean dependencies
Remove all protobuf dependencies from otel package and all of its
dependencies.
* Update CHANGELOG
* Clean OTLP exporter go mod
Remove submodule beforehand to avoid unneeded direct dependencies.
* Use default ref for GitHub workflow
* Update path that triggers proto gen action
* Correct license-check exclusion for OTLP
* Update commented location of the OTLP and code
* Add protogen workflow
* Move out protobuf generation to Makefile.proto
* Include in Changelog
* Update Makefile.proto
Move file-local mode variable to line by itself.
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
* Bump golangci-lint to 1.25
* Skip the "unused" linter when running golangci-lint in --fix mode
This linter seems to provide bogus fix-up information to
golangci-lint, which results in file corruption instead of fixing the
issue. Since we are going to run the linter again anyway, but without
the --fix mode, skip the "unused" linter explicitly for the first run
- it will still have a chance to report errors on the second run.
Update license header to standard format for source files missed prior.
Add license header to new source files.
Add Makefile check to test all `*.go` and `*.sh` files have a copyright
notice (or comment about them being auto-generated) within the first few
lines.