microsoft / microsoft/go

Ensure per-package blank imports for vendoring are easy to maintain

Open
#1,499 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Area-Patching
Dominant language
Go
Stars
431
Forks
44
Avg merge
21h 18m
Merged PRs (30d)
30

Description

https://github.com/microsoft/go/blob/dddedbf8e98847d29c2b480592e92449257e46f4/patches/0002-Vendor-crypto-backends.patch#L210-L223

It looks like we have to import each package to make sure go mod vendor picks it up, but I don't see this documented. (I'm also not 100% I have the reason right, didn't get a chance to poke around locally.)

If that's right, it's a little concerning that the vendoring patch has to "predict" what packages will be used by later patches--not a practical concern most likely (we have very few, pretty consistent, packages), but I want to understand better how a mistake is detected and make sure this is as maintainable and documented as necessary.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading lines 210-223 of patches/0002-Vendor-crypto-backends.patch and investigate why each package needs a blank import for go mod vendor. Trace how later patches use those packages and how a mistaken omission would be detected. Done means the vendoring behavior and required maintenance procedure are documented clearly, with any practical detection or validation described.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
build-system, tooling
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.