2.4.0 (2026-09-09)
- Respect google.api.resource singular annotation in batch method rules (#1629) (a77b0b9)
- rules: evaluate method synonyms on word boundaries (#1643) (0fb5eb7)
2.3.1 (2026-03-17)
- AIP-191: amend logic java_outer_classname for edition >= 2024 (#1613) (dc57c9d)
- AIP-191: skip java_multiple_files for edition >= 2024 (#1608) (75338d8)
2.3.0 (2026-02-10)
2.2.0 (2026-01-22)
- AIP-123: ignore proto2 optional name (#1590) (d89b3f6)
- AIP-136: allow Expunge to use http delete (#1584) (95f20bd)
- AIP-143: ignore standard code names for resources (#1596) (a89f537)
- AIP-192: limit spaces matched for header detection (#1593) (dc2e75b)
2.1.0 (2025-12-10)
- AIP-134: check word boundaries in synonyms rule (#1564) (f10744f)
- AIP-123: prevent panic in getParentIDVariable with single-variable patterns (#1565) (a09770e)
- AIP-133: avoid returning an error when return type is a message (#1578) (3222ce4)
- AIP-136: Allow SetIamPolicy method (#1559) (7afac03)
- AIP-216: avoid linting state-like fields in response message (#1582) (1760e49)
- lint: allow deprecation rule on deprecated descriptor (#1570) (f89a1b8)
- make Batch naming resource plural aware (#1573) (c820a1c)
- AIP-133: remove declarative-friendly requirement from spec (#1581) (6a388a4)
- AIP-158: clarify response plural first docs (#1571) (98a8702)
- fix missing "-" on disable rule command and config command (#1557) (28f0707)
2.0.0 (2025-10-22)
- lint: migrate to protobuf-go
- locations: migrate to protobuf-go
- internal: migrate to protobuf-go
- rules: migrate to protobuf-go
- cli: migrate to protobuf-go
- refactor api-linter framework with google.golang.org/protobuf (#1513)
- AIP-133: allow view field in create request (42e6805)
- AIP-134: allow view field in update request (42e6805)
- AIP-135: allow view field in delete request (42e6805)
- cli: migrate to protobuf-go (42e6805)
- internal: migrate to protobuf-go (42e6805)
- lint: migrate to protobuf-go (42e6805)
- locations: migrate to protobuf-go (42e6805)
- refactor api-linter framework with google.golang.org/protobuf (#1513) (42e6805)
- rules: migrate to protobuf-go (42e6805)
- cli: allow disabling all rules and then enabling a single rule, or multiple rules (42e6805)
- cli: resolve import path resolution (#1545) (42e6805)
- lint: linter config on windows (#1551) (42e6805)
1.72.0 (2025-10-16)
1.71.0 (2025-08-26)
- AIP-160: Validate filter field name. (#1523) (73e4f83)
- AIP-160: Validate filter field type (#1524) (f182a25)
1.70.2 (2025-08-06)
1.70.1 (2025-07-21)
1.70.0 (2025-07-16)
- AIP-142: add relative time segments comment rule (5fab299)
- AIP-142: add time_offset type rule (#1506) (945cff3)
- integration-tests: add test harness for cli invocation (#1493) (35be28f)
- AIP-136: support response msg lint with resource singular aligned field name (#1499) (8dec010)
- AIP-158: clarify pluralized response field finding (#1498) (f0b7895)
- AIP-203: field-behavior-required ignore imported request types (#1504) (bb82f00), refs #1503
- cli: unexpected lint warning when providing multiple files (#1496) (7ecaa42), refs #1465
1.69.2 (2025-02-20)
- AIP-133/AIP-134: handle qualified lro response type name comparison (#1475) (5e8fe24)
- cli: only call ResolveFilenames with ProtoImportPaths if specified (#1478) (6a0ddc6)
1.69.1 (2025-02-14)
1.69.0 (2025-02-11)
- cli: exclude cwd from input path resolution (#1466) (a14ed3d)
- rules: fix HasParent check and utilify it (#1468) (6ac3b57)
1.68.0 (2025-01-14)
- AIP-123: resource type name matches message (#1452) (8f3e2ac)
- deps: update to min version to Go 1.22 (#1457) (f34f16b)
1.67.6 (2024-11-08)
1.67.5 (2024-11-05)
1.67.4 (2024-10-22)
1.67.3 (2024-09-23)
- AIP-132: refine List request response regex (#1420) (5cc4d27)
- AIP-136: ignore revision methods (#1432) (a6ba5f3)
- AIP-162: handle LRO in response name rules (#1431) (8bca1dd)
- internal/utils: refine Get, Create, Update, Delete request regex (#1422) (487328c)
- locations: make source info access concurrent safe (#1433) (223aa5b)
- AIP-132: fix incorrect field for AIP-217 (#1423) (6a52a68)
- AIP-134: change mandated to recommended (#1426) (338b6a9)
1.67.2 (2024-08-14)
- AIP-123: multiword singleton reduction (#1417) (7868552)
- AIP-135: allow required etag in Delete (#1414) (aa9587b), refs #1395
- AIP-235: allow hosting allow_missing (#1416) (6bfbcdf), refs #1404
- exit rule if response type cannot be resolved (#1415) (6874dab), refs #1399
1.67.1 (2024-07-31)
1.67.0 (2024-07-26)
- AIP-123: enforce singular as ID segment (#1403) (088ec19)
- AIP-123: resource collection matches plural (#1408) (9025d3d)
- AIP-134: update_mask must be OPTIONAL (#1394) (9fc0d05)
- AIP-217: add various rules for return_partial_success support (#1406) (cf4ba12)
1.66.2 (2024-06-04)
1.66.1 (2024-05-23)
1.66.0 (2024-05-17)
1.65.2 (2024-04-22)
1.65.1 (2024-04-15)
- ci: build binaries with CGO_ENABLED=0 (#1371) (f776eca)
- ignore proto3_optional fields in oneof check (#1370) (0d6e074), refs #1323
1.65.0 (2024-04-12)
1.64.0 (2024-03-04)
1.63.6 (2024-02-20)
1.63.5 (2024-02-16)
1.63.4 (2024-02-16)
1.63.3 (2024-01-25)
1.63.2 (2024-01-22)
1.63.1 (2024-01-08)
1.63.0 (2024-01-08)
1.62.0 (2024-01-02)
1.61.0 (2024-01-02)
1.60.0 (2023-12-15)
1.59.2 (2023-11-13)
1.59.1 (2023-11-01)
1.59.0 (2023-10-18)
- AIP-148: add uid-format rule (#1270) (79cd201)
- AIP-148: lint IP Address field format (#1271) (cb30ca8)
- AIP-155: enforce format uuid4 guidance (#1272) (2f2e34b)
1.58.1 (2023-10-05)
1.58.0 (2023-10-03)
1.57.1 (2023-09-12)
- AIP-121: ignore standard method lookalikes (#1250) (34aa3c8)
- AIP-121: ignore streaming lookalikes (#1252) (e723668)
1.57.0 (2023-09-11)
- AIP-121: lint for mutable reference cycles (#1238) (a3895eb), refs #1109
- AIP-122: disallow embedded resource (#1245) (e3bbdb3)
- AIP-203: add resource name IDENTIFIER enforcement (#1241) (7d9daab)
- AIP-203: disallow IDENTIFIER on non-name (#1244) (1022df2)
1.56.1 (2023-08-14)
- AIP-121: strict check of resource type (#1235) (3764f3c)
- AIP-192: enforce deprecated comment on all non-file descriptors (#1233) (efaced9)