cmd/go: [modules + integration] go mod pack, pack sources as module files #31302
Labels
modules
NeedsInvestigation
Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Milestone
This report is part of a series, filled at the request of @mdempsky, focused at making Go modules integrator-friendly.
Please do not close or mark it as duplicate before making sure you’ve read and understood the general context. A lot of work went into identifying problems points precisely.
Needed feature
Go needs an official
go mod pack
command that processes a set of unpacked Go modules and generates the corresponding packed module files for reuse (as specified in goproxy.)This is different from issue #27858, because issue #27858 wants to put the generated files in the module cache, mixing them with modules of other provenance, and forbidding result reuse by anyone but the current user.
Constrains
go.mod
filesystem paths (as produced bygo mod discover
in issue cmd/go: [modules + integration] go mod discover, discover a set of unpacked modules within a directory #31299), one or several directory paths (similar to the directory paths defined in issue cmd/go: [modules + integration] go mod discover, discover a set of unpacked modules within a directory #31299), or a mix of bothdestination
should be any binary directory path the user specifiesprefix
flag should allow pre-pending a path to the destination:destination
, actually work onfilepath.Join(prefix, destination)
canonical_path
, using a/prefix/canonical_path
staging directorydestination
prefix
, since the command is pretending to write directly intodestination
go mod build
(cmd/go: [modules + integration] go mod build, build all the binaries provided by a module #31323) and should use the same conventionsinfo
files discovered next to the correspondingmod
filesinfo
files are not present, or to override them (both strategies could arguably be valid)mod
files by default, removing unneeded requires (but see also cmd/go: [modules + integration] tidy a specific module descriptor #31318)list
index files (but see also cmd/go: [modules + integration] go mod index, reindex a goproxy directory #31303 that is more general and is needed anyway)Motivation
Creating and managing a baseline of third-party code in a go module world requires the ability to generate the go module files that will serve as baseline blocks in separate CI/CD runs.
The text was updated successfully, but these errors were encountered: