From now, versions are managed by submodules, CHANGELOG also, it's directory has its own changelog
- [difflib] Add a way to activate/desactivate the colors formatting
- [difflib] Add colors to have a better display in the shell (only for unified diff)
- [difflib] New package to print diff between two content in the shell (git diff style)
- [document] Do not add sensitive information in the log
- [storage] Fix Swift authentication
- [storage] Get swift configuration from the environment
- [tarball] Fix unit: use a buffer of 512kb not MB...
- [tarball] Use
io
package and disable disk cache when creating/extracting tarball archives
-
[io] New package with a configurable io.Copier
io.NewCopier(...opts io.CopierOpt) io.WithBufferSize(int64) io.WithNoDiskCacheRead io.WithNoDiskCacheWrite io.WithNoDiskCache
-
[tarball] New package to manipulate tar and gzipped tarballs
tarball.Create(context.Context, file string, in io.Reader, opts tarball.CreateOpts) error tarball.Extract(context.Context, file string, out io.Writer, opts tarball.ExtractOpts) error tarball.Tar(io.Writer, map[string]tarball.TarFileHeader) error
-
[fs] New package to manipulate the filesystem through a mockable interface
// Mockable interface fs.Fs // Real OS filesystem manipulation fs.NewOsFs() // In-memory empty filesystem fs.NewMemFs()
- [retry] Add WithErrorCallback option to add callbacks when a try fails
- [retry] Add a constructor for RetryCancelError
- [retry] Add ability to get the last error (LastErr) in case of timeout
- [retry] Add a custom error type to cancel a Retry
RetryCancelError
- [retry] Add WithMaxDuration option to set a timeout
- [logger] Add
region_name
field by default ifREGION_NAME
environment variable
- Fix
ValidationErrors
Error
output #109
- Add Retry interface
- Update errgo, pkg/errors, logrus, and unfreeze their version
- Update go-etcd-cron dependency with new etcd deps
- Update deps Related to etcd (new location github.com/coreos/etcd -> go.etcd.io)
- Update deps related to Rollbar/logging/errors
- Add EnsureParanoidIndices method #49
- [S3] Trim left slashes #92
- Add simple object storage package for S3 and swift #89
- Migration from
github.com/satori/go.uuid
to its forkgithub.com/gofrs/uuid
, Reason:
This project was originally forked from the github.com/satori/go.uuid repository after it appeared to be no longer maintained, while exhibiting critical flaws. We have decided to take over this project to ensure it receives regular maintenance for the benefit of the larger Go community.
- [errors] Ability to merge one ValidationErrors in another
b := NewValidationErrorsBuilder()
if doc.Field == "" {
b.Set("field", "is blank")
}
// { errors: { field: ["is blank"] } }
b.Merge(doc.SubDocument.Validate())
// or
// { errors: { subdoc_field: ["is blank"] } }
b.MergeWithPrefix("subdoc", doc.SubDocument.Validate())
return b.Build()
- [paranoid] IsDeleted returns true if DeletedAt is not zero
- [errors] Better handling of ValidationErrors
- [mongo] Remove trailing comma in validation errors
- [influx] Add support for subqueries
- [influx] Always write measurement between double quotes for InfluxDB query builder
- [logger] Rollbar plugin is reading ROLLBAR_ENV first, then GO_ENV
- [mongo] Handle
timeout
parameter in the URL, default at 10s - [mongo] Do not destroy URL when
ssl
ortimeout
parameter is first in the list
- [nsqproducer] Fix Ping() method recursivity issue
- [nsqproducer] Producers have a Ping() method for monitoring
- [mongo] Make BuildSession public and usable with custom URLs
- [httpclient] New library to forward request_id + a few helpers (TLS and authentication)
- [mongo] Fix Iter error, return iterator error no callback one, #56
- [logger-rollbar] Switch rollbar library to use official lib
- [graceful] Fix ListenAndServeTLS to correctly use a tls.Listener
- Add
graceful
package for graceful restart/shutdown of HTTP servers
- Add
SkipLogSet
options to NSQ LB producer env init
- Add
WhereQuery
inmongo/document
- Add ability to choose nsq producing strategy from env NSQ_PRODUCER_STRATEGY 'fallback' or 'random', default is 'fallback'
- New package
nsqlbproducer
to produce among multiple nsqd instances Several strategies:- Random (default)
- Fallback: always produce on the first host of the list, and fallback on other if it fails
-
mongo/document
Add SortFields on all Find/Where methodsExample of usage:
document.Where(ctx, col, query, data, document.SortField("-created_at"))
document.Find(ctx, col, query, id, data, document.SortField("-created_at"))
- Uniformize API for Find/Sort with Unscoped versions and Sort versions
-
Add
mongo/document
package for CRUD operations against the database and base structure to embed in modelstype Model struct { document.Base `bson:",inline"` } type ParanoidModel struct { document.Paranoid `bson:",inline"` }
- Update rollbar plugin configuration, only skip 4 levels of stack
- Change interface of nsqproducer.Producer, add Stop method
- No more reference to go-internal-tools
- Create nsqconsumer.Error to handle when no retry should be done
- New errors.Notef and errors.Wrapf with context to let the error handling system read the context and its logger
- New API of logrus removed
logger.AddHook(hook)
, it is nowlogger.Hooks.Add(hook)
- Fix plugin system, use pointer instead of value for manager
- Add a logger in initialization