Mathias Fredriksson
719c24829a
build(Makefile): use atomic writes for remaining gen targets ( #22670 )
...
Follow-up to #22612 . Running `git status --short` in a loop during `make
-B -j gen` still showed intermediate states for several files. This PR
fixes the remaining ones.
The main issues:
- `generate.sh` ran `gofmt` and `goimports` in-place after moving files
into the source tree. Now it formats in a workdir first and only `mv`s
the final result.
- `protoc` targets wrote directly to the source tree. Wrapped with
`scripts/atomic_protoc.sh` which redirects output to a tmpdir.
- Several generators used hardcoded `/tmp/` paths. On systems where
`/tmp` is tmpfs, `mv` degrades to copy+delete. Switched to a
project-local `_gen/` directory (gitignored, same filesystem).
- `apidoc/.gen` and `cli/index.md` used `cp` for final output. Replaced
with `mv`.
- `manifest.json` was written twice (unformatted, then formatted). Now
`.gen` writes to a staging file and the manifest target does one
formatted atomic write.
- `biome_format.sh` silently skipped files in gitignored dirs. Added
`--vcs-enabled=false`.
Two helpers reduce the Makefile boilerplate: `scripts/atomic_protoc.sh`
(wraps protoc) and an `atomic_write` Make define
(stdout-to-temp-to-target pattern). `.PRECIOUS` now also covers `.pb.go`
and mock files.
Verification: `make -B -j gen` x3 with `git status` polling, no changes.
Refs #22612
2026-03-05 22:32:18 +02:00
..
2026-02-24 13:26:55 +04:00
2025-06-20 13:16:55 -06:00
2026-01-21 19:06:19 +00:00
2026-03-05 09:19:34 +00:00
2026-03-02 16:02:01 +01:00
2024-09-18 21:47:53 +10:00
2026-01-08 15:24:11 +04:00
2026-02-24 16:45:56 +00:00
2025-12-15 13:44:44 -09:00
2026-02-06 09:52:17 -07:00
2026-02-06 10:12:58 +04:00
2026-03-05 16:40:17 +00:00
2026-03-03 13:48:58 +00:00
2025-10-16 01:56:43 +11:00
2026-01-08 15:24:11 +04:00
2026-03-05 22:32:18 +02:00
2026-02-19 09:02:19 +00:00
2026-02-03 17:52:07 +00:00
2026-01-29 13:50:15 +01:00
2026-03-05 20:29:49 +00:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2026-01-15 16:37:05 +00:00
2026-02-23 12:18:44 +01:00
2026-02-28 16:46:51 -05:00
2026-03-05 20:29:49 +00:00
2026-02-23 22:46:17 -06:00
2025-06-20 13:16:55 -06:00
2026-02-23 12:18:44 +01:00
2026-01-08 15:24:11 +04:00
2026-03-05 20:29:49 +00:00
2026-02-23 12:18:44 +01:00
2025-10-15 17:37:37 +00:00
2025-08-16 01:31:00 +10:00
2026-02-19 09:02:19 +00:00
2026-03-05 20:29:49 +00:00
2026-01-30 13:30:06 +01:00
2026-03-03 18:13:00 +00:00
2025-10-23 15:38:49 -05:00
2025-06-17 09:00:32 -08:00
2026-02-27 18:06:54 -05:00
2026-03-04 12:47:39 +00:00
2025-06-20 13:16:55 -06:00
2025-07-08 14:31:05 +00:00
2026-02-19 09:02:19 +00:00
2026-02-26 02:40:45 +11:00
2026-02-27 17:46:37 +00:00
2026-02-24 17:04:42 +00:00
2025-12-14 03:00:03 +00:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2025-08-22 16:32:35 +10:00
2025-06-20 13:16:55 -06:00
2026-02-27 17:46:37 +00:00
2026-01-08 15:24:11 +04:00
2026-02-24 23:46:43 -06:00
2026-01-08 15:24:11 +04:00
2026-02-27 14:26:48 +00:00
2025-03-31 10:55:44 -04:00
2025-12-15 11:26:41 -06:00
2025-11-17 13:24:12 +00:00
2026-02-25 13:14:32 +02:00
2026-03-03 16:34:33 +03:00
2025-09-26 11:56:34 +02:00
2026-02-24 15:27:03 +00:00
2026-02-24 15:27:03 +00:00
2024-08-01 12:07:19 -05:00
2026-01-08 15:24:11 +04:00
2026-01-08 15:24:11 +04:00
2025-10-27 17:14:16 -06:00
2026-02-27 16:50:56 +00:00
2026-03-04 18:42:28 -05:00
2026-03-05 15:34:24 +00:00
2025-06-20 13:16:55 -06:00
2026-01-08 15:24:11 +04:00
2026-03-05 15:34:24 +00:00
2026-01-08 15:24:11 +04:00
2026-01-15 16:37:05 +00:00
2026-01-15 16:37:05 +00:00
2025-06-25 13:03:32 +00:00
2025-04-22 16:21:15 +00:00
2025-06-24 09:14:41 +01:00
2026-01-12 18:19:19 -08:00
2025-12-15 17:41:47 +00:00
2025-09-04 14:28:29 +10:00
2026-01-08 15:24:11 +04:00
2025-12-15 11:26:41 -06:00
2025-05-15 15:32:52 +01:00
2025-06-20 13:16:55 -06:00
2025-06-20 13:16:55 -06:00
2026-01-26 09:24:45 +00:00
2025-08-19 10:41:33 +02:00
2025-08-19 10:41:33 +02:00
2025-06-20 13:16:55 -06:00
2026-03-04 18:01:56 -08:00
2026-03-04 12:54:39 +02:00
2026-01-08 15:24:11 +04:00
2026-02-03 12:48:25 -06:00
2026-02-03 12:48:25 -06:00
2026-02-13 08:19:07 -06:00
2026-01-08 15:24:11 +04:00
2026-01-15 12:41:28 +03:00
2026-01-15 12:41:28 +03:00
2026-01-15 12:41:28 +03:00
2025-07-03 18:33:47 +02:00
2026-02-23 12:18:44 +01:00
2025-10-22 15:18:42 -05:00
2024-07-25 16:07:53 -05:00
2026-02-03 17:52:07 +00:00
2025-07-15 14:55:34 +10:00
2025-07-15 14:55:34 +10:00
2026-02-02 09:03:18 -06:00
2026-02-03 17:52:07 +00:00
2026-02-19 09:02:19 +00:00
2025-07-28 15:02:26 +01:00
2025-08-21 16:03:34 -04:00
2026-02-03 17:52:07 +00:00
2025-06-20 13:16:55 -06:00
2026-03-03 10:19:00 -05:00
2026-02-03 17:52:07 +00:00
2024-07-25 16:07:53 -05:00
2026-01-12 18:19:19 -08:00
2025-09-26 11:43:32 +02:00
2025-09-26 11:43:32 +02:00
2025-06-20 13:16:55 -06:00
2026-01-08 15:24:11 +04:00
2026-02-13 19:44:50 -05:00
2026-02-13 19:44:50 -05:00
2026-03-03 16:50:18 +00:00
2026-03-03 16:50:18 +00:00
2025-06-20 13:16:55 -06:00
2026-02-20 09:01:00 -06:00
2026-02-20 09:01:00 -06:00
2026-02-13 08:19:07 -06:00
2026-02-03 17:52:07 +00:00
2026-03-03 09:49:04 +00:00
2026-03-03 09:49:04 +00:00
2026-01-12 18:19:19 -08:00
2025-06-18 14:07:53 +00:00
2026-01-19 12:36:33 +00:00
2026-02-25 08:45:00 -07:00
2026-03-02 22:52:39 -05:00
2025-12-22 10:21:39 +04:00
2026-02-18 09:44:06 +01:00
2026-02-18 09:44:06 +01:00
2025-06-20 13:16:55 -06:00
2025-09-26 11:56:34 +02:00
2026-02-03 09:45:23 +00:00
2026-02-23 22:46:17 -06:00
2025-12-15 11:26:41 -06:00
2026-01-08 15:24:11 +04:00
2026-03-03 02:04:55 +00:00
2026-02-27 16:50:56 +00:00
2025-04-16 10:37:09 -06:00
2026-01-08 15:24:11 +04:00