Go Package Manager (gopm) is a package manager and build tool for Go.

Overview

๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ

In favor of Go Modules Proxy since Go 1.11, this project has been archived and website (gopm.io) will be taken down as of 12/31/2019.

๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ ๐Ÿšจ

Go Package Manager

Gopm (Go Package Manager) is a Go package manage and build tool for Go.

Please see Documentation before you start.

Requirements

  • Go development environment: >= go1.2

Installation

Install from source code

go get -u github.com/gpmgo/gopm

The executable will be produced under $GOPATH/bin in your file system; for global use purpose, we recommend you to add this path into your PATH environment variable.

Features

  • No requirement for installing any version control system tool like git or hg in order to download packages.
  • Download, install or build your packages with specific revisions.
  • When building programs with gopm build or gopm install, everything just happens in its own GOPATH and does not bother anything you've done (unless you told it to).
  • Can put your Go projects anywhere you want (through .gopmfile).

Commands

NAME:
   Gopm - Go Package Manager

USAGE:
   Gopm [global options] command [command options] [arguments...]

COMMANDS:
   list		list all dependencies of current project
   gen		generate a gopmfile for current Go project
   get		fetch remote package(s) and dependencies
   bin		download and link dependencies and build binary
   config	configure gopm settings
   run		link dependencies and go run
   test		link dependencies and go test
   build	link dependencies and go build
   install	link dependencies and go install
   clean	clean all temporary files
   update	check and update gopm resources including itself
   help, h	Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --noterm, -n		disable color output
   --strict, -s		strict mode
   --debug, -d		debug mode
   --help, -h		show help
   --version, -v	print the version

License

This project is under the Apache License, Version 2.0. See the LICENSE file for the full license text.

Issues
  • Change clean cmd. remove localnodes.list if option is 'all'.

    Change clean cmd. remove localnodes.list if option is 'all'.

    this cmd has issue. maybe

    > gopm clean -a
    

    following dir is deleted after exec gopm clean -a.

    • .gopm/temp
    • .gopm/repos

    but following file is not deleted.

    • .gopm/data/localnodes.list

    in this case, go get will be failed, because re- acquisition of dependency is not performed.

    please look this.

    > gopm get -g -v -u
    ใƒปใƒปใƒป
    [GOPM] 15-11-12 11:24:44 [ INFO] Command executed successfully!
    
    > gopm clean -a
    
    > gopm get -g -v -u
    [GOPM] 15-11-12 11:52:15 [ INFO] App Version: 0.8.6.1025 Beta
    [GOPM] 15-11-12 11:52:15 [ INFO] Local repository path: /user/home/.gopm/repos
    [GOPM] 15-11-12 11:52:15 [ INFO] Indicated GOPATH: /user/home/git/myproject
    ใƒปใƒปใƒป
    [GOPM] 15-11-12 11:52:40 [ INFO] Downloading package: github.com/hoge/[email protected]:<UTD>
    [GOPM] 15-11-12 11:52:41 [ INFO] Package(github.com/hoge/test) hasn't been changed
    [GOPM] 15-11-12 11:52:41 [DEBUG] Linking github.com/hoge/test...
    [GOPM] 15-11-12 11:52:41 [ INFO] Got github.com/hoge/[email protected]:<UTD>
    [GOPM] 15-11-12 11:52:41 [ERROR] %!(EXTRA string=Fail to copy to GOPATH:)
    [GOPM] 15-11-12 11:52:41 [FATAL] %!(EXTRA string=   not a directory or does not exist: /user/home/.gopm/repos/github.com/hoge/test)
    
    > cat /user/home/.gopm/data/localnodes.list
    [github.com/hoge/test]
    value = fe6ea2c8e398672518ef204bf0fbd9af858d0e15
    
    > rm /user/home/.gopm/data/localnodes.list
    
    > gopm get -g -v -u
    ใƒปใƒปใƒป
    [GOPM] 15-11-12 11:24:44 [ INFO] Command executed successfully!
    
    opened by tico8 2
  • add new unstable feature  to fit  local project usage

    add new unstable feature to fit local project usage

    there is test under cmd/test/get_test.go

    example:

    Suppose you are under the ~/testproject directory. and mkdir src/test as your own package.your path will be like ~/testproject/src/test. Go to ~/testproject/src/test and touch file main.go with the content bellow:

    package main
    
    import (
            "fmt"
            "github.com/ggaaooppeenngg/TEST"
    )
    
    func main() {
            fmt.Println(TEST.TEST)
    }
    

    Go to ~/testproject, and run command gopm gen -l to generate local .gopmfile like:

    [res]
    include = 
    
    [project]
    localPath = ~/testproject
    
    [deps]
    github.com/ggaaooppeenngg/TEST = 
    

    Then add run command and target for build. and .gopmfile will be like:

    [target]
    path= ~/testproject/test
    [res]
    include = 
    
    [project]
    localPath = ~/testproject
    
    [run]
    cmd = go run ~/testproject/src/test/main.go
    
    [deps]
    github.com/ggaaooppeenngg/TEST = 
    

    cmd is flexable for you can command like revel app and other command rather than go run . Then type gopm get -l, you can find ~/testproject/src/github.com/ggaaooppeenngg/TEST, it means the package has been downloaded depends on .gopmfile.

    Now type gopm run -l See what happens! It prints TEST. You can run gopm run -l anywhere under the local project gopath, it will recursively find the .gopmfile with value project and run . this feature does not work under the windows os.

    codereview:

      It seems that the global var  `isHasGopath` is not used.
      It seems download work is single-thread , why not use goroutine?
    
    opened by ggaaooppeenngg 1
Releases(0.7.2)
Owner
Go Package Manager
Go Package Manager
GoFish is a cross-platform systems package manager, bringing the ease of use of Homebrew to Linux and Windows.

GoFish is a cross-platform systems package manager, bringing the ease of use of Homebrew to Linux and Windows.

Fishworks 813 Aug 5, 2022
gPac - a linux package manager

gPac is a useless package manager. It is included in the gSuite, which is a suite of tools written in GO. gPac is a KISS - like package manager.

Luis 4 Mar 13, 2022
Package manager for future projects

PCKGER is a package manager for my next project but when it will be able to build binaries and move libs it will be used like a normal package manager

null 0 Dec 20, 2021
gobin is a package manager for /go/bin

gobin gobin is a package manager for /go/bin Features List installed packages. Check for updates. Install packages (like go install). Uninstall packag

Andrey Burov 18 Feb 19, 2022
๐Ÿ“ฆ An independent package manager for compiled binaries.

stew An independent package manager for compiled binaries. Features Easily distribute binaries across teams and private repositories. Get the latest r

Marwan Hawari 98 Jul 27, 2022
A Maven plugin allows to build Go applications with maven

Changelog 2.3.7 (SNAPSHOT) fixed #80 (thanks fmazoyer) 2.3.6 (19-dec-2020) improved restoration of go.mod and go.sum state after build refactoring and

Igor Maznitsa 143 Jul 2, 2022
Go Manager - bundle for go

gom - Go Manager Why The go get command is useful. But we want to fix the problem where package versions are different from the latest update. Are you

mattn 1.4k Jul 27, 2022
A simple dependency manager for Go (golang), inspired by Bundler.

Goop A dependency manager for Go (golang), inspired by Bundler. It is different from other dependency managers in that it does not force you to mess w

Peter Jihoon Kim 776 Jul 27, 2022
Barebones dependency manager for Go.

Go Package Manager Go Package Manager (or gpm, for short) is a tool that helps achieve reproducible builds for Go applications by specifying the revis

pote 1.2k Jul 27, 2022
Barebones dependency manager for Go.

Johnny Deps Johnny Deps is a small tool from VividCortex that provides minimalistic dependency versioning for Go repositories using Git. Its primary p

VividCortex 212 Apr 5, 2022
Golang Version Manager

g ๆณจๆ„๏ผšmasterๅˆ†ๆ”ฏๅฏ่ƒฝๅค„ไบŽๅผ€ๅ‘ไน‹ไธญๅนถ้ž็จณๅฎš็‰ˆๆœฌ๏ผŒ่ฏท้€š่ฟ‡tagไธ‹่ฝฝ็จณๅฎš็‰ˆๆœฌ็š„ๆบไปฃ็ ๏ผŒๆˆ–้€š่ฟ‡releaseไธ‹่ฝฝๅทฒ็ผ–่ฏ‘็š„ไบŒ่ฟ›ๅˆถๅฏๆ‰ง่กŒๆ–‡ไปถใ€‚ gๆ˜ฏไธ€ไธชLinuxใ€macOSใ€Windowsไธ‹็š„ๅ‘ฝไปค่กŒๅทฅๅ…ท๏ผŒๅฏไปฅๆไพ›ไธ€ไธชไพฟๆท็š„ๅคš็‰ˆๆœฌgo็Žฏๅขƒ็š„็ฎก็†ๅ’Œๅˆ‡ๆขใ€‚ ็‰นๆ€ง ๆ”ฏๆŒๅˆ—ๅ‡บๅฏไพ›ๅฎ‰่ฃ…็š„go็‰ˆๆœฌๅท ๆ”ฏๆŒๅˆ—ๅ‡บๅทฒๅฎ‰

voidint 729 Aug 1, 2022
Package core is a service container that elegantly bootstrap and coordinate twelve-factor apps in Go.

Package core is a service container that elegantly bootstrap and coordinate twelve-factor apps in Go. Background The twelve-factor methodology has pro

DoNews 55 Jul 17, 2022
Go dependency management tool experiment (deprecated)

Dep dep is a dependency management tool for Go. It requires Go 1.9 or newer to compile. NOTE: Dep was an official experiment to implement a package ma

Go 13k Aug 5, 2022
dependency tool for go

Godep - Archived Please use dep or another tool instead. The rest of this readme is preserved for those that may still need its contents. godep helps

null 5.6k Jul 27, 2022
Go tool for major version upgrades

GOMAJOR $ gomajor help GoMajor is a tool for major version upgrades Usage: gomajor <command> [arguments] The commands are: get upgrad

Ilia Choly 67 Jul 29, 2022
Spaghetti: a dependency analysis tool for Go packages

Spaghetti is an interactive web-based tool to help you understand the dependencies of a Go program, and to explore and evaluate various possible efforts to eliminate dependencies.

Alan Donovan 711 Jul 29, 2022
Package Management for Golang

Glide: Vendor Package Management for Golang Are you used to tools such as Cargo, npm, Composer, Nuget, Pip, Maven, Bundler, or other modern package ma

null 8.2k Jul 27, 2022
GoLobby DotEnv is a lightweight package for loading dot env (.env) files into structs for Go projects

DotEnv GoLobby DotEnv is a lightweight package for loading dot env (.env) files into structs for Go projects Documentation Supported Versions It requi

GoLobby 14 Aug 3, 2022
Create and manage Isolated Virtual Environments for Go

VenGO Create and manage Isolated Virtual Environments for Golang. Motivation Why a tool to generate and manage virtual environments in Go?. Well, some

Oscar Campos 123 Aug 2, 2022