4 ms·
A perfectly maintained package would look like this: - uses proper stable versioning (e.g. gopkg.in), making sure not to introduce breaking changes in the same
by dchest 12y ago
A perfectly maintained package would look like this:
- uses proper stable versioning (e.g. gopkg.in), making sure not to introduce breaking changes in the same major version
- backports critical/security fixes into previous stable versions
- has their code reviewed by a third party
- provides notifications for critical fixes/security advisories
- provides support for package users
Not all packages are perfectly maintained, though (even my personal packages are not). Consider this sample of third-party packages from one of my project:
github.com/boltdb/bolt
github.com/dchest/cache
github.com/dchest/conf
github.com/dchest/validator
github.com/hashicorp/logutils
github.com/justinas/nosurf
github.com/stretchr/graceful
github.com/stretchr/pat/stop
golang.org/x/crypto/bcrypt
golang.org/x/crypto/blowfish
golang.org/x/net/netutil
If I'm having a production app running that uses these packages, I have to track all of them, making sure I don't miss some critical bug fix. StableLib will do this for you: just subscribe and you'll get notified of updates, and you will receive backported fixes, so that you can update without worrying of breaking our apps.