Releases: nilslice/protolock
better library support, added entry/file level options to lock
For more detail, see the commit log between this and the previous release:
ffb94a9...dd81d42
update dependencies and add RPC options
#92 Update emicklei/proto parser lib dependency
#89 Adding support for RPC's to have Custom Options (thanks @evanlknapp!)
New Year, new release!
Happy New Year!
Over the past ~month, there have been several contributions from folks using protolock
, significantly improving the tool and plugin usage.
What's New:
- Support for custom location of proto files and lock file location using
--protoroot
and--lockdir
flags. (@btc) - Support for field options in messages, maps, enums. (@aroch)
- Support for nested message field options. (@aroch)
- Update dependency: https://github.com/emicklei/proto to v1.6.7 (@aroch)
- Consistent, sorted order of warning/conflict output. (@aroch)
- Alignment of built-in & plugin rule commit behavior. (@aroch)
Many, many thanks to everyone for continued help with commits, bug reports/issues, and sharing use cases.
Proto parser update supporting single-quoted names
Reported in #65, and fixed in #66 (thanks to the upstream emicklei/proto#96).
Add support for plugins to extend protolock
With support for plugins, you can define your own custom rule functions and check for various changes between your proto.lock
set of .proto files, and whatever is updated in your tree.
See the wiki for more information about creating and using plugins
Big thanks to both @rwong and @milton0825 on help with testing and designing the plugin feature.
Additionally, thanks to @milton0825, your protos imports and message options will now be preserved in the proto.lock
file and can be interpreted in user defined plugins.
Add support for Go modules + deterministic lock file order
Go version 1.11 introduces native (experimental) support for a package management system called, "modules". See more about it here. This release contains the basics needed to comply with the modules system.
Additionally, this release contains an enhancement for maintaining the output order of the entries a proto.lock
file, making it easier to work with version control. Thanks to @wikiwong for contributing this feature.
Reduce file count opened by protolock process
Fix to optimize protolock
usage on very large repositories of .proto
definition files. See #48.
Include support for Enum types in relevant rule funcs
Enum support was added in the following rules:
NoUsingReservedFields
NoRemovingReservedFields
NoRemovingFieldsWithoutReserve
NoChangingFieldIDs
NoChangingFieldNames
Other existing rule funcs have no concern with Enum types.
Thank you to @wikiwong for contributing to this effort and to the proto parser itself to support Enums.
Include --ignore docs in CLI usage
Usage:
protolock <command> [options]
Commands:
-h, --help, help display the usage information for protolock
init initialize a proto.lock file from current tree
status check for breaking changes and report conflicts
commit overwrite proto.lock file with current tree
Options:
--strict [true] enable strict mode and enforce all built-in rules
--debug [false] enable debug mode and output debug messages
--ignore comma-separated list of filepaths to ignore
Simplified --ignore implementation
Improvement on #3, via #29, #30, and #31.
All checks passed visibly at #32.
Thanks to @noel-yap for contributing this feature and @sargun for a code review!
To use, pass the --ignore
flag to the CLI along with a comma-separated list of paths.
i.e. protolock init --ignore=build,lib,vendor/protos
This example will ignore any proto included in the build
, lib
, or vendor/protos
paths.
note: make sure to --ignore
the same paths/files in successive invocations of protolock status
and protolock commit
.
For more granular support, use a comment hint:
// @protolock:skip
message Foo {
string bar = 1;
int64 baz = 42;
}