Getting started on Gemfury with Go Modules

Creating a Go module

To get started, create a new directory and initialize your module with go mod init:

$ mkdir gorepo && cd gorepo
$ go mod init

This command will create an initial go.mod file to describe your project. The file will contain the project’s name and other module dependencies. Be sure to commit go.mod and the related go.sum checksum file into your project’s Git repo.

You may now structure your module as a single root package, and/or multiple packages in a subdirectory structure:

├── go.mod
├── go.sum
├── root.go
├── pkg1/
│   ├── lib.go
│   └── lib_test.go
└── pkg2/
    └── code.go

With the implementation in place, you can now push it to Gemfury.

Prior to Go Modules, dependencies could only be downloaded using source control tools (Git, Bazaar, Subversion & Mercurial), and module names had to correspond to the location of the package. With Go 1.13’s modules proxy support, it is no longer required for a package to be fetchable at the URL location. However, we still recommend URL-like module names.