<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tailscale/misc, branch awly/deadcode-deb</title>
<subtitle>The easiest, most secure way to use WireGuard and 2FA</subtitle>
<id>http://git.waynecole.info/tailscale/atom?h=awly%2Fdeadcode-deb</id>
<link rel='self' href='http://git.waynecole.info/tailscale/atom?h=awly%2Fdeadcode-deb'/>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/'/>
<updated>2026-04-22T22:13:09Z</updated>
<entry>
<title>misc/genreadme,tempfork/pkgdoc,tsnet: generate README.md files from godoc</title>
<updated>2026-04-22T22:13:09Z</updated>
<author>
<name>Brad Fitzpatrick</name>
<email>bradfitz@tailscale.com</email>
</author>
<published>2026-04-22T21:08:16Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=a7d8aeb8aebc4bb01066eb6ffa69b9d8fe178b81'/>
<id>urn:sha1:a7d8aeb8aebc4bb01066eb6ffa69b9d8fe178b81</id>
<content type='text'>
Adds a CI check to keep opted-in directories' README.md files in sync
with their package godoc. For now tsnet (and its sub-packages under
tsnet/example) is the only opted-in tree. The list of directories
lives in misc/genreadme/genreadme.go as defaultRoots, so CI and humans
both just run `./tool/go run ./misc/genreadme` with no arguments.

The check piggybacks on the existing go_generate job in test.yml and
fails if any README.md is out of date, pointing the user at the same
command.

Along the way:

 - tempfork/pkgdoc now emits Markdown instead of plain text: headings
   become level-2 with no {#hdr-...} anchors, and [Symbol] doc links
   resolve to pkg.go.dev URLs, including for symbols in the current
   package (which the default Printer would otherwise emit as bare
   #Name fragments with no backing anchor in a README). Parsing no
   longer uses parser.ImportsOnly, so doc.Package knows the package's
   symbols and can resolve [Symbol] links at all.

 - genreadme also emits a pkg.go.dev Go Reference badge at the top of
   a library package's README; suppressed for package main.

 - tsnet/tsnet.go's package godoc is expanded in idiomatic godoc
   syntax — [Type], [Type.Method], reference-style [link]: URL
   definitions — rather than Markdown-flavored [text](url) or
   backtick-quoted identifiers, so that both pkg.go.dev and the
   generated README.md render cleanly from a single source.

Fixes #19431
Fixes #19483
Fixes #19470

Change-Id: I8ca37e9e7b3bd446b8bfa7a91ac548f142688cb1
Co-authored-by: Brad Fitzpatrick &lt;bradfitz@tailscale.com&gt;
Signed-off-by: Walter Poupore &lt;walterp@tailscale.com&gt;
Signed-off-by: Brad Fitzpatrick &lt;bradfitz@tailscale.com&gt;
</content>
</entry>
<entry>
<title>misc/genreadme: port from corp (#19477)</title>
<updated>2026-04-21T19:18:37Z</updated>
<author>
<name>Walter Poupore</name>
<email>walterp@tailscale.com</email>
</author>
<published>2026-04-21T19:18:37Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=04415b81774c117e0fd50112d3bb8389feaba014'/>
<id>urn:sha1:04415b81774c117e0fd50112d3bb8389feaba014</id>
<content type='text'>
also port pkgdoc, into the tempfork folder

git rev from corp at the time this copy was made:

-  e909fc93595414c90ff1339cece7c84500ab3c36

Updates #19470

Change-Id: I3d98d82020a2b336647b795210dcb7065dfa44d7


Change-Id: Ie63141860b76dd2d5ae3ff52f8a4bcdf6106421e

Signed-off-by: Walter Poupore &lt;walterp@tailscale.com&gt;</content>
</entry>
<entry>
<title>misc/git_hook: fix building git_hook in a nested worktree (#19473)</title>
<updated>2026-04-21T15:42:53Z</updated>
<author>
<name>Fernando Serboncini</name>
<email>fserb@tailscale.com</email>
</author>
<published>2026-04-21T15:42:53Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=1669b0d3d48310e970fb55460af34527d7bde602'/>
<id>urn:sha1:1669b0d3d48310e970fb55460af34527d7bde602</id>
<content type='text'>
When the repo is checked out as a nested worktree, a go.work in the
outer tree hijacks module resolution, which makes the rebuild fails
with "main module does not contain package." Set GOWORK=off for the
build since the hook is self-contained.

Bumps HOOK_VERSION so existing installs pick up the fix.

Updates #cleanup

Change-Id: Ibd14849efc26e4e1893c5b8e300caa71573f54bd

Signed-off-by: Fernando Serboncini &lt;fserb@fserb.com.br&gt;</content>
</entry>
<entry>
<title>misc/git_hook: extract shared githook package; auto-rebuild on version bump (#19440)</title>
<updated>2026-04-17T20:24:39Z</updated>
<author>
<name>Fernando Serboncini</name>
<email>fserb@tailscale.com</email>
</author>
<published>2026-04-17T20:24:39Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=514d7d28e799a4ef5d829c4d966c8fff6c3e7cdb'/>
<id>urn:sha1:514d7d28e799a4ef5d829c4d966c8fff6c3e7cdb</id>
<content type='text'>
Pull the hook logic into a reusable githook library package so
tailscale/corp can share it via a thin wrapper main instead of
keeping a forked copy in sync.

The install flow also changes: a wrapper scripts now build the
binary and reinstall the git hooks. Pulling new shared code no
longer requires re-running the installer.

Updates tailscale/corp#39860

Change-Id: I4d606d11c8c883015c190c54e3387a7f9fe4dd32

Signed-off-by: Fernando Serboncini &lt;fserb@tailscale.com&gt;</content>
</entry>
<entry>
<title>misc: add install-git-hooks.go and git hook for Change-Id tracking</title>
<updated>2026-04-08T22:10:53Z</updated>
<author>
<name>Brad Fitzpatrick</name>
<email>bradfitz@tailscale.com</email>
</author>
<published>2026-04-05T02:46:16Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/tailscale/commit/?id=647deed2d987e747d68f026a551ea45285852b89'/>
<id>urn:sha1:647deed2d987e747d68f026a551ea45285852b89</id>
<content type='text'>
Add misc/install-git-hooks.go and misc/git_hook/ to the OSS repo,
adapted from the corp repo. The primary motivation is Change-Id
generation in commit messages, which provides a persistent identifier
for a change across cherry-picks between branches.

The installer uses "git rev-parse --git-common-dir" instead of go-git
to find the hooks directory, avoiding a new direct dependency while
still supporting worktrees.

Hooks included:
- commit-msg: adds Change-Id trailer
- pre-commit: blocks NOCOMMIT / DO NOT SUBMIT markers
- pre-push: blocks local-directory replace directives in go.mod
- post-checkout: warns when the hook binary is outdated

Also update docs/commit-messages.md to reflect that Change-Id is no
longer optional in the OSS repo.

Updates tailscale/corp#39860

Change-Id: I09066b889118840c0ec6995cc03a9cf464740ffa
Signed-off-by: Brad Fitzpatrick &lt;bradfitz@tailscale.com&gt;
</content>
</entry>
</feed>
