migrate to go mod to maintain 3rd party libs #1955
Merged
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.
Historically golang projects tend to maintain a copy of 3rd party libraries under the source tree. The situation has changed since go1.11+,
go mod
is officially designed for tracking the use of 3rd party libraries.It's now time to migrate the
external
dir togo mod
, so that we are updated to security fixes. (eg, #1950 is an upstream fix that they committed months ago.)Here I managed to migrate the
utls
andwebsocket
. But I left some untouched for they are dependencies of thequic-go
lib which is still under heavy development. Migrate to their latest version would bring breaking change that different version of client and server won't be able to communicate. As documented, the plan is that we will remove the wholeexternal
directory whenquic-go
is tested to be mature enough in production.