

GitHub - psampaz/go-mod-outdated: An easy way to find outdated dependencies of y...
source link: https://github.com/psampaz/go-mod-outdated
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md
go-mod-outdated
An easy way to find outdated dependencies of your Go projects.
go-mod-outdated provides a table view of the go list -u -m -json all command which lists all dependencies of a Go project and their available minor and patch updates. It also provides a way to filter indirect dependencies and dependencies without updates.
In short it turns this:
{
"Path": "github.com/BurntSushi/locker",
"Version": "v0.0.0-20171006230638-a6e239ea1c69",
"Time": "2017-10-06T23:06:38Z",
"GoMod": "/home/mojo/go/pkg/mod/cache/download/github.com/!burnt!sushi/locker/@v/v0.0.0-20171006230638-a6e239ea1c69.mod"
}
{
"Path": "github.com/BurntSushi/toml",
"Version": "v0.0.0-20170626110600-a368813c5e64",
"Time": "2017-06-26T11:06:00Z",
"Update": {
"Path": "github.com/BurntSushi/toml",
"Version": "v0.3.1",
"Time": "2018-08-15T10:47:33Z"
},
"GoMod": "/home/mojo/go/pkg/mod/cache/download/github.com/!burnt!sushi/toml/@v/v0.0.0-20170626110600-a368813c5e64.mod"
}
into this
+-------------------------------------------+--------------------------------------+------------------------------------+--------+
| MODULE | VERSION | NEW VERSION | DIRECT |
+-------------------------------------------+--------------------------------------+------------------------------------+--------+
| github.com/BurntSushi/locker | v0.0.0-20171006230638-a6e239ea1c69 | | true |
| github.com/BurntSushi/toml | v0.0.0-20170626110600-a368813c5e64 | v0.3.1 | true |
+-------------------------------------------+--------------------------------------+------------------------------------+--------+
Installation
go get -u github.com/psampaz/go-mod-outdated
Usage
In the folder where your go.mod lives run
go list -u -m -json all | go-mod-outdated
to see all modules in table view.
If you want to see only the modules with updates run
go list -u -m -json all | go-mod-outdated -update
If you want to see only the direct depedencies run
go list -u -m -json all | go-mod-outdated -direct
If you want to see only the direct depedencies that have updates run
go list -u -m -json all | go-mod-outdated -update -direct
Real Example
The following example is based on Hugo's go.mod (v0.53) (https://raw.githubusercontent.com/gohugoio/hugo/v0.53/go.mod)
Json output of go list -u -m json all command
$ go list -u -m -json all
{
"Path": "github.com/gohugoio/hugo",
"Main": true,
"Dir": "/home/mojo/Code/go/hugo",
"GoMod": "/home/mojo/Code/go/hugo/go.mod"
}
{
"Path": "github.com/BurntSushi/locker",
"Version": "v0.0.0-20171006230638-a6e239ea1c69",
"Time": "2017-10-06T23:06:38Z",
"GoMod": "/home/mojo/go/pkg/mod/cache/download/github.com/!burnt!sushi/locker/@v/v0.0.0-20171006230638-a6e239ea1c69.mod"
}
{
"Path": "github.com/BurntSushi/toml",
"Version": "v0.0.0-20170626110600-a368813c5e64",
"Time": "2017-06-26T11:06:00Z",
"Update": {
"Path": "github.com/BurntSushi/toml",
"Version": "v0.3.1",
"Time": "2018-08-15T10:47:33Z"
},
"GoMod": "/home/mojo/go/pkg/mod/cache/download/github.com/!burnt!sushi/toml/@v/v0.0.0-20170626110600-a368813c5e64.mod"
}
{
"Path": "github.com/PuerkitoBio/purell",
"Version": "v1.1.0",
"Time": "2016-11-15T02:49:42Z",
"Update": {
"Path": "github.com/PuerkitoBio/purell",
"Version": "v1.1.1",
"Time": "2019-02-16T21:19:35Z"
},
"GoMod": "/home/mojo/go/pkg/mod/cache/download/github.com/!puerkito!bio/purell/@v/v1.1.0.mod"
}
.....
.....
.....
.....
{
"Path": "golang.org/x/sys",
"Version": "v0.0.0-20181206074257-70b957f3b65e",
"Time": "2018-12-06T07:42:57Z",
"Update": {
"Path": "golang.org/x/sys",
"Version": "v0.0.0-20190418153312-f0ce4c0180be",
"Time": "2019-04-18T15:33:12Z"
},
"Indirect": true,
"GoMod": "/home/mojo/go/pkg/mod/cache/download/golang.org/x/sys/@v/v0.0.0-20181206074257-70b957f3b65e.mod"
}
{
"Path": "golang.org/x/text",
"Version": "v0.3.0",
"Time": "2017-12-14T13:08:43Z",
"GoMod": "/home/mojo/go/pkg/mod/cache/download/golang.org/x/text/@v/v0.3.0.mod"
}
{
"Path": "gopkg.in/check.v1",
"Version": "v1.0.0-20180628173108-788fd7840127",
"Time": "2018-06-28T17:31:08Z",
"Indirect": true,
"GoMod": "/home/mojo/go/pkg/mod/cache/download/gopkg.in/check.v1/@v/v1.0.0-20180628173108-788fd7840127.mod"
}
{
"Path": "gopkg.in/yaml.v2",
"Version": "v2.2.2",
"Time": "2018-11-15T11:05:04Z",
"GoMod": "/home/mojo/go/pkg/mod/cache/download/gopkg.in/yaml.v2/@v/v2.2.2.mod"
}
Table view of go list -u -m -json all command using go-mod-outdated
$ go list -u -m -json all | go-mod-outdated
+-------------------------------------------+--------------------------------------+------------------------------------+--------+
| MODULE | VERSION | NEW VERSION | DIRECT |
+-------------------------------------------+--------------------------------------+------------------------------------+--------+
| github.com/BurntSushi/locker | v0.0.0-20171006230638-a6e239ea1c69 | | true |
| github.com/BurntSushi/toml | v0.0.0-20170626110600-a368813c5e64 | v0.3.1 | true |
| github.com/PuerkitoBio/purell | v1.1.0 | v1.1.1 | true |
| github.com/PuerkitoBio/urlesc | v0.0.0-20170810143723-de5bf2ad4578 | | false |
| github.com/alecthomas/assert | v0.0.0-20170929043011-405dbfeb8e38 | | true |
| github.com/alecthomas/chroma | v0.6.0 | v0.6.3 | true |
| github.com/alecthomas/colour | v0.0.0-20160524082231-60882d9e2721 | | false |
| github.com/alecthomas/repr | v0.0.0-20180818092828-117648cd9897 | v0.0.0-20181024024818-d37bc2a10ba1 | false |
| github.com/armon/consul-api | v0.0.0-20180202201655-eb2c6b5be1b6 | | false |
| github.com/bep/debounce | v1.1.0 | v1.2.0 | true |
| github.com/bep/gitmap | v1.0.0 | | true |
| github.com/bep/go-tocss | v0.6.0 | | true |
| github.com/chaseadamsio/goorgeous | v1.1.0 | | true |
| github.com/cheekybits/is | v0.0.0-20150225183255-68e9c0620927 | | false |
| github.com/coreos/etcd | v3.3.10+incompatible | v3.3.12+incompatible | false |
| github.com/coreos/go-etcd | v2.0.0+incompatible | | false |
| github.com/coreos/go-semver | v0.2.0 | v0.3.0 | false |
| github.com/cpuguy83/go-md2man | v1.0.8 | v1.0.10 | false |
| github.com/danwakefield/fnmatch | v0.0.0-20160403171240-cbb64ac3d964 | | false |
| github.com/davecgh/go-spew | v1.1.1 | | false |
| github.com/disintegration/imaging | v1.5.0 | v1.6.0 | true |
| github.com/dlclark/regexp2 | v1.1.6 | | false |
| github.com/dustin/go-humanize | v1.0.0 | | false |
| github.com/eknkc/amber | v0.0.0-20171010120322-cdade1c07385 | | true |
| github.com/fortytw2/leaktest | v1.2.0 | v1.3.0 | true |
| github.com/fsnotify/fsnotify | v1.4.7 | | true |
| github.com/gobwas/glob | v0.2.3 | | true |
| github.com/gorilla/websocket | v1.4.0 | | true |
| github.com/hashicorp/go-immutable-radix | v1.0.0 | | true |
| github.com/hashicorp/go-uuid | v1.0.0 | v1.0.1 | false |
| github.com/hashicorp/golang-lru | v0.5.0 | v0.5.1 | false |
| github.com/hashicorp/hcl | v1.0.0 | | false |
| github.com/inconshreveable/mousetrap | v1.0.0 | | false |
| github.com/jdkato/prose | v1.1.0 | | true |
| github.com/kr/pretty | v0.1.0 | | false |
| github.com/kr/pty | v1.1.1 | v1.1.4 | false |
| github.com/kr/text | v0.1.0 | | false |
| github.com/kyokomi/emoji | v1.5.1 | v2.1.0+incompatible | true |
| github.com/magefile/mage | v1.4.0 | v1.8.0 | true |
| github.com/magiconair/properties | v1.8.0 | | false |
| github.com/markbates/inflect | v1.0.0 | v1.0.4 | true |
| github.com/matryer/try | v0.0.0-20161228173917-9ac251b645a2 | | false |
| github.com/mattn/go-isatty | v0.0.4 | v0.0.7 | true |
| github.com/mattn/go-runewidth | v0.0.3 | v0.0.4 | false |
| github.com/miekg/mmark | v1.3.6 | | true |
| github.com/mitchellh/hashstructure | v1.0.0 | | true |
| github.com/mitchellh/mapstructure | v1.1.2 | | true |
| github.com/muesli/smartcrop | v0.0.0-20180228075044-f6ebaa786a12 | v0.2.0 | true |
| github.com/nfnt/resize | v0.0.0-20180221191011-83c6a9932646 | | false |
| github.com/nicksnyder/go-i18n | v1.10.0 | | true |
| github.com/olekukonko/tablewriter | v0.0.0-20180506121414-d4647c9c7a84 | v0.0.1 | true |
| github.com/pelletier/go-toml | v1.2.0 | v1.3.0 | false |
| github.com/pkg/errors | v0.8.0 | v0.8.1 | true |
| github.com/pmezard/go-difflib | v1.0.0 | | false |
| github.com/russross/blackfriday | v0.0.0-20180804101149-46c73eb196ba | v2.0.0+incompatible | true |
| github.com/sanity-io/litter | v1.1.0 | | true |
| github.com/sergi/go-diff | v1.0.0 | | false |
| github.com/shurcooL/sanitized_anchor_name | v0.0.0-20170918181015-86672fcb3f95 | v1.0.0 | false |
| github.com/spf13/afero | v1.2.0 | v1.2.2 | true |
| github.com/spf13/cast | v1.3.0 | | true |
| github.com/spf13/cobra | v0.0.3 | | true |
| github.com/spf13/fsync | v0.0.0-20170320142552-12a01e648f05 | | true |
| github.com/spf13/jwalterweatherman | v1.0.1-0.20181028145347-94f6ae3ed3bc | v1.1.0 | true |
| github.com/spf13/nitro | v0.0.0-20131003134307-24d7ef30a12d | | true |
| github.com/spf13/pflag | v1.0.3 | | true |
| github.com/spf13/viper | v1.3.1 | v1.3.2 | true |
| github.com/stretchr/testify | v1.2.3-0.20181014000028-04af85275a5c | v1.3.0 | true |
| github.com/tdewolff/minify/v2 | v2.3.7 | v2.4.0 | true |
| github.com/tdewolff/parse/v2 | v2.3.5 | v2.3.6 | false |
| github.com/tdewolff/test | v1.0.0 | | false |
| github.com/ugorji/go/codec | v0.0.0-20181204163529-d75b2dcb6bc8 | | false |
| github.com/wellington/go-libsass | v0.9.3-0.20181113175235-c63644206701 | v0.9.2 | false |
| github.com/xordataexchange/crypt | v0.0.3-0.20170626215501-b2862e3d0a77 | v0.0.2 | false |
| github.com/yosssi/ace | v0.0.5 | | true |
| golang.org/x/crypto | v0.0.0-20181203042331-505ab145d0a9 | v0.0.0-20190418165655-df01cb2cc480 | false |
| golang.org/x/image | v0.0.0-20180708004352-c73c2afc3b81 | v0.0.0-20190417020941-4e30a6eb7d9a | true |
| golang.org/x/net | v0.0.0-20180906233101-161cd47e91fd | v0.0.0-20190415214537-1da14a5a36f2 | false |
| golang.org/x/sync | v0.0.0-20180314180146-1d60e4601c6f | v0.0.0-20190412183630-56d357773e84 | true |
| golang.org/x/sys | v0.0.0-20181206074257-70b957f3b65e | v0.0.0-20190418153312-f0ce4c0180be | false |
| golang.org/x/text | v0.3.0 | | true |
| gopkg.in/check.v1 | v1.0.0-20180628173108-788fd7840127 | | false |
| gopkg.in/yaml.v2 | v2.2.2 | | true |
+-------------------------------------------+--------------------------------------+------------------------------------+--------+
Table view of go list -u -m -json all command using go-mod-outdated (only dependencies with updates)
$ go list -u -m -json all | go-mod-outdated -update
+-------------------------------------------+--------------------------------------+------------------------------------+--------+
| MODULE | VERSION | NEW VERSION | DIRECT |
+-------------------------------------------+--------------------------------------+------------------------------------+--------+
| github.com/BurntSushi/toml | v0.0.0-20170626110600-a368813c5e64 | v0.3.1 | true |
| github.com/PuerkitoBio/purell | v1.1.0 | v1.1.1 | true |
| github.com/alecthomas/chroma | v0.6.0 | v0.6.3 | true |
| github.com/alecthomas/repr | v0.0.0-20180818092828-117648cd9897 | v0.0.0-20181024024818-d37bc2a10ba1 | false |
| github.com/bep/debounce | v1.1.0 | v1.2.0 | true |
| github.com/coreos/etcd | v3.3.10+incompatible | v3.3.12+incompatible | false |
| github.com/coreos/go-semver | v0.2.0 | v0.3.0 | false |
| github.com/cpuguy83/go-md2man | v1.0.8 | v1.0.10 | false |
| github.com/disintegration/imaging | v1.5.0 | v1.6.0 | true |
| github.com/fortytw2/leaktest | v1.2.0 | v1.3.0 | true |
| github.com/hashicorp/go-uuid | v1.0.0 | v1.0.1 | false |
| github.com/hashicorp/golang-lru | v0.5.0 | v0.5.1 | false |
| github.com/kr/pty | v1.1.1 | v1.1.4 | false |
| github.com/kyokomi/emoji | v1.5.1 | v2.1.0+incompatible | true |
| github.com/magefile/mage | v1.4.0 | v1.8.0 | true |
| github.com/markbates/inflect | v1.0.0 | v1.0.4 | true |
| github.com/mattn/go-isatty | v0.0.4 | v0.0.7 | true |
| github.com/mattn/go-runewidth | v0.0.3 | v0.0.4 | false |
| github.com/muesli/smartcrop | v0.0.0-20180228075044-f6ebaa786a12 | v0.2.0 | true |
| github.com/olekukonko/tablewriter | v0.0.0-20180506121414-d4647c9c7a84 | v0.0.1 | true |
| github.com/pelletier/go-toml | v1.2.0 | v1.3.0 | false |
| github.com/pkg/errors | v0.8.0 | v0.8.1 | true |
| github.com/russross/blackfriday | v0.0.0-20180804101149-46c73eb196ba | v2.0.0+incompatible | true |
| github.com/shurcooL/sanitized_anchor_name | v0.0.0-20170918181015-86672fcb3f95 | v1.0.0 | false |
| github.com/spf13/afero | v1.2.0 | v1.2.2 | true |
| github.com/spf13/jwalterweatherman | v1.0.1-0.20181028145347-94f6ae3ed3bc | v1.1.0 | true |
| github.com/spf13/viper | v1.3.1 | v1.3.2 | true |
| github.com/stretchr/testify | v1.2.3-0.20181014000028-04af85275a5c | v1.3.0 | true |
| github.com/tdewolff/minify/v2 | v2.3.7 | v2.4.0 | true |
| github.com/tdewolff/parse/v2 | v2.3.5 | v2.3.6 | false |
| github.com/wellington/go-libsass | v0.9.3-0.20181113175235-c63644206701 | v0.9.2 | false |
| github.com/xordataexchange/crypt | v0.0.3-0.20170626215501-b2862e3d0a77 | v0.0.2 | false |
| golang.org/x/crypto | v0.0.0-20181203042331-505ab145d0a9 | v0.0.0-20190418165655-df01cb2cc480 | false |
| golang.org/x/image | v0.0.0-20180708004352-c73c2afc3b81 | v0.0.0-20190417020941-4e30a6eb7d9a | true |
| golang.org/x/net | v0.0.0-20180906233101-161cd47e91fd | v0.0.0-20190415214537-1da14a5a36f2 | false |
| golang.org/x/sync | v0.0.0-20180314180146-1d60e4601c6f | v0.0.0-20190412183630-56d357773e84 | true |
| golang.org/x/sys | v0.0.0-20181206074257-70b957f3b65e | v0.0.0-20190418153312-f0ce4c0180be | false |
+-------------------------------------------+--------------------------------------+------------------------------------+--------+
Table view of go list -u -m -json all command using go-mod-outdated (only direct dependencies with updates)
$ go list -u -m -json all | go-mod-outdated -update -direct
+------------------------------------+--------------------------------------+------------------------------------+--------+
| MODULE | VERSION | NEW VERSION | DIRECT |
+------------------------------------+--------------------------------------+------------------------------------+--------+
| github.com/BurntSushi/toml | v0.0.0-20170626110600-a368813c5e64 | v0.3.1 | true |
| github.com/PuerkitoBio/purell | v1.1.0 | v1.1.1 | true |
| github.com/alecthomas/chroma | v0.6.0 | v0.6.3 | true |
| github.com/bep/debounce | v1.1.0 | v1.2.0 | true |
| github.com/disintegration/imaging | v1.5.0 | v1.6.0 | true |
| github.com/fortytw2/leaktest | v1.2.0 | v1.3.0 | true |
| github.com/kyokomi/emoji | v1.5.1 | v2.1.0+incompatible | true |
| github.com/magefile/mage | v1.4.0 | v1.8.0 | true |
| github.com/markbates/inflect | v1.0.0 | v1.0.4 | true |
| github.com/mattn/go-isatty | v0.0.4 | v0.0.7 | true |
| github.com/muesli/smartcrop | v0.0.0-20180228075044-f6ebaa786a12 | v0.2.0 | true |
| github.com/olekukonko/tablewriter | v0.0.0-20180506121414-d4647c9c7a84 | v0.0.1 | true |
| github.com/pkg/errors | v0.8.0 | v0.8.1 | true |
| github.com/russross/blackfriday | v0.0.0-20180804101149-46c73eb196ba | v2.0.0+incompatible | true |
| github.com/spf13/afero | v1.2.0 | v1.2.2 | true |
| github.com/spf13/jwalterweatherman | v1.0.1-0.20181028145347-94f6ae3ed3bc | v1.1.0 | true |
| github.com/spf13/viper | v1.3.1 | v1.3.2 | true |
| github.com/stretchr/testify | v1.2.3-0.20181014000028-04af85275a5c | v1.3.0 | true |
| github.com/tdewolff/minify/v2 | v2.3.7 | v2.4.0 | true |
| golang.org/x/image | v0.0.0-20180708004352-c73c2afc3b81 | v0.0.0-20190417020941-4e30a6eb7d9a | true |
| golang.org/x/sync | v0.0.0-20180314180146-1d60e4601c6f | v0.0.0-20190412183630-56d357773e84 | true |
+------------------------------------+--------------------------------------+------------------------------------+--------+
Recommend
-
60
GitHub is where people build software. More than 27 million people use GitHub to discover, fork, and contribute to over 80 million projects.
-
65
dotnet-outdated A .NET Core global tool to display outdated NuGet packages in a project Installation Download and install the .NET Core 2.1...
-
53
README.md
-
42
go-mod-outdated An easy way to find outdated dependencies of your Go projects. go-mod-outdated provides a table view of the go list -u -m -json all command which lists all dependen...
-
14
The Curious Case of std::in_place [Outdated] Oct 30, 2016 UPDATE: This post is no longer relevant to the C++ standard as of proposal paper
-
8
Script to show if running kernel is outdated
-
6
SmartData Collective > Business Intelligence > 4 Tips for Manage Outdated Systems In an Enterprise ...
-
5
Feature How to reboot a broken or outdated security strategy CISOs talk about how they identify when they need a new security strategy and the process of...
-
7
How to tell mod_perl2 to find my Perl modules? advertisements I just installed my system with Oracle 64-bit Linux5.4 running Apache Server ver...
-
7
Remove unused brew dependencies and delete outdated downloads Published: 2022.01.02 | 2 minutes read You’re reading it, so I assume you know what the brew is and most likely, you use it. If you don’t, check out my
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK