Improve release process around exported submodules #2141
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR #2090 and #2092 have helped in moving the
smartagent
,timestamp
andoracledb
receivers/processors/extensions into their own go modules, but there is still extra work to make them readily accessible by external code which wants to integrate them into a custom OpenTelemetry Collector build.As described in this PR's RELEASING.md explanation, exported go modules need to also be tagged appropriately in the source repo such that
go get <module>@v0.61.2
(for example) can fetch them directly from github.jparrowsec.cn.The primary changes here are
replace
directives are used to point directly to the in-repo source, for external users, the names of the modules should match the names of the subdirectories.go get
to find the specific submodule within the repo. Specifically, if a module is located inside thepkg/receiver/smartagentreceiver
subdirectory, then external sources can only reference a specific versionx.y.z
of the module if there is also a tagpkg/receiver/smartagentreceiver/vx.y.z
on the repo.I've mostly cribbed the release process for this multimodule versioning and tagging by reusing the multimod tool developed for the
opentelemetry-go
andopentelemetry-collector-contrib
repos.Feel free to change, reuse portions, or discard this PR. There are likely places where I'm not following Splunk standard conventions given I'm an outside contributor.