Skip to content

feat: add a package comment linter#2712

Merged
JoeWang1127 merged 29 commits intomainfrom
feat/add-pkg-linter
Oct 30, 2025
Merged

feat: add a package comment linter#2712
JoeWang1127 merged 29 commits intomainfrom
feat/add-pkg-linter

Conversation

@JoeWang1127
Copy link
Copy Markdown
Contributor

@JoeWang1127 JoeWang1127 commented Oct 29, 2025

Update TestExportedSymbolsHaveDocs to check that each Go package includes a top-level doc comment.

Fixes #628

@JoeWang1127
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new linter to enforce that every Go package has a package-level comment. The implementation walks through the source files, checks for package comments, and reports any packages that are missing one, while allowing for an ignore list.

The overall approach is solid. I've identified a package (parser) that seems to be missing from the ignore list and will cause the new test to fail. I've also suggested a refactoring to simplify the logic in the new checkPackageComment function for better readability and conciseness.

With these changes, the new linter will be a great addition to maintaining code quality.

@codecov
Copy link
Copy Markdown

codecov bot commented Oct 29, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.69%. Comparing base (331b8e0) to head (a5217ce).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2712   +/-   ##
=======================================
  Coverage   86.69%   86.69%           
=======================================
  Files         118      118           
  Lines        9814     9814           
=======================================
  Hits         8508     8508           
  Misses        921      921           
  Partials      385      385           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@JoeWang1127 JoeWang1127 marked this pull request as ready for review October 29, 2025 21:06
@JoeWang1127 JoeWang1127 requested a review from a team as a code owner October 29, 2025 21:06
@julieqiu
Copy link
Copy Markdown
Member

Fixes #628

Write a commit message per https://github.com/googleapis/librarian/blob/main/CONTRIBUTING.md#commit-messages.

For example, in this case you can write something like:

Update TestExportedSymbolsHaveDocs to check that each Go package includes a top-level doc comment.

@JoeWang1127 JoeWang1127 requested a review from a team October 30, 2025 14:37
@JoeWang1127 JoeWang1127 requested a review from julieqiu October 30, 2025 17:05
ldetmer
ldetmer previously approved these changes Oct 30, 2025
julieqiu
julieqiu previously approved these changes Oct 30, 2025
@JoeWang1127 JoeWang1127 dismissed stale reviews from julieqiu and ldetmer via a5217ce October 30, 2025 18:30
@JoeWang1127 JoeWang1127 enabled auto-merge (squash) October 30, 2025 18:36
@JoeWang1127 JoeWang1127 requested a review from julieqiu October 30, 2025 18:36
@JoeWang1127 JoeWang1127 merged commit 1bd3e32 into main Oct 30, 2025
9 checks passed
@JoeWang1127 JoeWang1127 deleted the feat/add-pkg-linter branch October 30, 2025 19:09
ldetmer added a commit that referenced this pull request Nov 6, 2025
PR created by the Librarian CLI to initialize a release. Merging this PR
will auto trigger a release.

Librarian Version: not available
Language Image:
us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/librarian-release-container:latest
<details><summary>librarian: 1.0.0</summary>

##
[1.0.0](v0.5.0...v1.0.0)
(2025-11-06)

### Features

* Remove `..._gax` dependency (#2713)
([01675b7](01675b72))

* add context to Librarian PRs (#2698)
([0523329](0523329a))

* add a package comment linter (#2712)
([1bd3e32](1bd3e32e))

* generate pom.xml files (#2682)
([50b95f2](50b95f20))

* add test-container test logic (#2656)
([514cf7e](514cf7e5))

* improve rust-publish logging (#2671)
([585ed50](585ed50b))

* write a timing log at the end of update-image (#2771)
([5fc9e3b](5fc9e3b6))

* migrate Java container from sdk-platform-java (#2670)
([69ac47f](69ac47fd))

* switch to original head after running update-image (#2696)
([7a3e404](7a3e404a))

* format bulk commit from other sources in release notes (#2665)
([7c52da2](7c52da2b))

* enable multi-version API generation (#2699)
([86c5250](86c52507))

* release stage to update pom.xml files (#2772)
([be56755](be567550))

* use proto presence info to generate null-safe code (#2726)
([e36fb81](e36fb81a))

* Base messages in google_cloud_protobuf (#2660)
([e607ea6](e607ea63))

### Bug Fixes

* retry Github 503 requests up to 3 times (#2650)
([09468fa](09468faf))

* Changed docs to ConfigurationException (#2697)
([0950c1e](0950c1e3))

* fix the reference to the old &#34;librariangen&#34; folder (#2677)
([09dc53f](09dc53fe))

* run godoclint via golangci-lint (#2751)
([264a6a0](264a6a0e))

* pass context as the first argument (#2769)
([298a3bd](298a3bd8))

* Move HTTP client creation to `_gax` (#2672)
([4968d63](4968d63d))

* deduplicate bulk commits (#2758)
([4dfae9a](4dfae9ae))

* Support additional api paths for an existing library (#2666)
([50046f5](50046f55))

* remove stray TODO (#2748)
([5072f0e](5072f0e0))

* omit status field when empty (#2654)
([572ae4f](572ae4f3))

* use T.Context in tests (#2768)
([7e7cd2d](7e7cd2dd))

* wrap error to provide more context for commitAndPush (#2767)
([a2a41a4](a2a41a4a))

* use t.Fatal in tests for proper failure handling (#2759)
([cdabb28](cdabb287))

* enforce removal before copying library files (#2765)
([d5ac6c8](d5ac6c87))

* change log level to debug (#2798)
([f042d0b](f042d0bd))

* change path to `doc.go` in docgen test (#2700)
([fd6bae4](fd6bae40))

### Documentation

* use consistent library id in flags and examples (#2770)
([87a1005](87a10056))

</details>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

all: add linter check for top-level package comments

4 participants