[tor-bugs] #33953 [Applications/Tor Browser]: Provide a way for easily updating Go dependencies of projects
Tor Bug Tracker & Wiki
blackhole at torproject.org
Wed Apr 22 13:44:58 UTC 2020
#33953: Provide a way for easily updating Go dependencies of projects
--------------------------------------+--------------------------
Reporter: gk | Owner: tbb-team
Type: enhancement | Status: new
Priority: Medium | Milestone:
Component: Applications/Tor Browser | Version:
Severity: Normal | Resolution:
Keywords: tbb-rbm | Actual Points:
Parent ID: | Points:
Reviewer: | Sponsor:
--------------------------------------+--------------------------
Comment (by cohosh):
One thing to keep in mind here is that the go module system pulls in a lot
more dependencies than we actually need. This happens regardless of which
of the 3 options above we go with, since they all use the go module logic
to figure out what is needed.
See #33761, where we recently removed a bunch of unnecessary dependencies
from Snowflake. Upon a quick investigation, these extra dependencies come
from at least the following places:
- The dependencies are only needed for running tests
- They are marked with `// indirect` in the `go.mod` file, meaning they
are ''tentative'' dependencies. These could be dependencies of
dependencies that don't have a `go.mod` file, are missing from their
`go.mod` file, or are the result of an up or downgrade (see
[https://github.com/golang/go/wiki/Modules#why-does-go-mod-tidy-record-
indirect-and-test-dependencies-in-my-gomod here]).
- The dependencies are required only for part of the code that's built
with an option build constraint. This is what we ran into with Snowflake,
where the quic dependencies (which are numerous) or only needed for a part
of pion-webrtc that we don't use and isn't built by default.
I think it's worth attempting to exclude go module dependencies that are
not needed. You can see discussion on #33761 and #33745 on why we want to
remove the quic dependencies for Snowflake specifically. However, this
would require extra processing scripts for any of the 3 options above we
decide to go with.
The script for (2) could use some more work in addition to excluding
unnecessary dependencies, like automatically mapping versions to git
hashes, and integration into however we decide to structure the rbm
projects (e.g., boklm's input_files idea).
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/33953#comment:1>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list