# Changelog

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [v0.3.0]

### Added
- [#37](https://github.com/alta/protopatch/pull/32): new file-level `go.lint` option. When specified, `protoc-gen-go-patch` will attempt to fix generated Go names to their idiomatic equivalents, e.g. `Id` → `ID`, `Url` → `URL`, etc. It will also eliminate stutter from enum values, e.g. `Foo_FOO_UNKNOWN` → `FooUnknown`. Thanks to [@Green7](https://github.com/Green7) for the initial implementation in [#22](https://github.com/alta/protopatch/pull/22).
- File-level `(go.lint).initialisms` option to specify your own initialisms for `go.lint`. Example: `(go.lint).initialisms = 'RGB'; // Lints RgbColor to RGBColor`. You may specify as many custom initialisms as needed. They will only affect identifiers declared in that file.

### Fixed
- Enum values nested under renamed messages will now be correctly renamed.

## [v0.2.0] — 2020-12-28

### Breaking Changes
- Renamed the `stringer_name` option to `stringer` to match the Go [`fmt.Stringer`](https://golang.org/pkg/fmt/#Stringer) interface. For backwards compatibility, `stringer_name` will be supported for at least 6 months.

### Added
- Struct tags, including defaults generated by `protoc-gen-go` can be replaced. The struct tag code was overhauled using the terrific [`structtag`](https://github.com/fatih/structtag) package by [@fatih](https://github.com/fatih). Thanks to [@liov](https://github.com/liov) for the initial prototype in [#15](https://github.com/alta/protopatch/pull/15).
- Updated docs, examples, and tests to use concise option syntax instead of `{}` delimited options.
- Rudimentary tests for `proto2` extension patching.

### Fixed
- [#21](https://github.com/alta/protopatch/issues/21) — It is now possible to patch output of other plugins like [`protoc-gen-validate`](https://github.com/envoyproxy/protoc-gen-validate).

## [v0.1.0] — 2020-12-23

### Known Issues
- [#21](https://github.com/alta/protopatch/issues/21) — Running `protoc` plugins other than `go` breaks on missing symbols.
- [#15](https://github.com/alta/protopatch/pull/15) — It’s not currently possible to mix or replace existing generated struct tags.

[Unreleased]: <https://github.com/alta/protopatch/compare/v0.3.0...HEAD>
[v0.3.0]: <https://github.com/alta/protopatch/compare/v0.2.0...v0.3.0>
[v0.2.0]: <https://github.com/alta/protopatch/compare/v0.1.0...v0.2.0>
[v0.1.0]: <https://github.com/alta/protopatch/tree/v0.1.0>
