Skip to content

Releases: nilslice/protolock

better library support, added entry/file level options to lock

26 Mar 20:37
Compare
Choose a tag to compare

For more detail, see the commit log between this and the previous release:
ffb94a9...dd81d42

update dependencies and add RPC options

11 Feb 15:46
ddda343
Compare
Choose a tag to compare

#92 Update emicklei/proto parser lib dependency

#89 Adding support for RPC's to have Custom Options (thanks @evanlknapp!)

New Year, new release!

01 Jan 23:00
1fd7957
Compare
Choose a tag to compare

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

11 Nov 17:59
ae3421d
Compare
Choose a tag to compare

Reported in #65, and fixed in #66 (thanks to the upstream emicklei/proto#96).

Add support for plugins to extend protolock

05 Nov 15:58
Compare
Choose a tag to compare

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

10 Sep 06:13
Compare
Choose a tag to compare

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

16 Aug 05:56
7d8205a
Compare
Choose a tag to compare

Fix to optimize protolock usage on very large repositories of .proto definition files. See #48.

Include support for Enum types in relevant rule funcs

21 Jun 19:15
fea8401
Compare
Choose a tag to compare

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

11 Jun 20:09
Compare
Choose a tag to compare
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

01 Jun 21:07
f7ac0b6
Compare
Choose a tag to compare

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;
}