* [PATCH] .gitignore: ignore temporary files from 'bear' @ 2025-08-27 8:59 Brendan Jackman 2025-08-29 23:38 ` Nathan Chancellor 0 siblings, 1 reply; 4+ messages in thread From: Brendan Jackman @ 2025-08-27 8:59 UTC (permalink / raw) To: Nick Desaulniers, Nathan Chancellor, Bill Wendling Cc: linux-kernel, Justin Stitt, llvm, Brendan Jackman Bear [0] is a tool for generating compile_commands.json. For Kbuild, Bear is not useful, since Kbuild already generates the necessary info and that can be converted to compile_commands.json by gen_compile_commads.py. However, for code in tools/, it's handy. For example, this command updates compile_commands.json so that clangd code navigation will also work for the VMA unit tests: bear --append -- make -C tools/testing/vma -j Bear generates some temporary files. These are usually deleted again but having them show up ephemerally confuses tools that trigger recompilation on source code changes. Ignore them in Git so that these tools can tell they aren't source code. [0]: https://github.com/rizsotto/Bear Signed-off-by: Brendan Jackman <jackmanb@google.com> --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 929054df5212d68a32a1f5ee2b267389fcd1c8db..b07c8c8383bd791e903ce985c14c231cb6928411 100644 --- a/.gitignore +++ b/.gitignore @@ -53,6 +53,7 @@ *.tar *.xz *.zst +*.tmp Module.symvers dtbs-list modules.order @@ -177,6 +178,9 @@ x509.genkey # Clang's compilation database file /compile_commands.json +# Temporary files created by 'bear', a tool used for generating +# compile_commands.json for non-Kbuild code. +*.events.json # Documentation toolchain sphinx_*/ --- base-commit: fab1beda7597fac1cecc01707d55eadb6bbe773c change-id: 20250827-master-23458abb102d Best regards, -- Brendan Jackman <jackmanb@google.com> ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] .gitignore: ignore temporary files from 'bear' 2025-08-27 8:59 [PATCH] .gitignore: ignore temporary files from 'bear' Brendan Jackman @ 2025-08-29 23:38 ` Nathan Chancellor 2025-08-30 19:25 ` Nicolas Schier 0 siblings, 1 reply; 4+ messages in thread From: Nathan Chancellor @ 2025-08-29 23:38 UTC (permalink / raw) To: Brendan Jackman Cc: Nick Desaulniers, Bill Wendling, linux-kernel, Justin Stitt, llvm, linux-kbuild, Nicolas Schier Hi Brendan, On Wed, Aug 27, 2025 at 08:59:43AM +0000, Brendan Jackman wrote: > Bear [0] is a tool for generating compile_commands.json. For Kbuild, > Bear is not useful, since Kbuild already generates the necessary info > and that can be converted to compile_commands.json by > gen_compile_commads.py. > > However, for code in tools/, it's handy. For example, this command > updates compile_commands.json so that clangd code navigation will also > work for the VMA unit tests: > > bear --append -- make -C tools/testing/vma -j > > Bear generates some temporary files. These are usually deleted again > but having them show up ephemerally confuses tools that trigger > recompilation on source code changes. Ignore them in Git so that these > tools can tell they aren't source code. > > [0]: https://github.com/rizsotto/Bear > > Signed-off-by: Brendan Jackman <jackmanb@google.com> We can likely take this via the Kbuild tree. I do wonder if this would be better in a tools/.gitignore file since bear is really only of use there but I am not sure it matters much. > --- > .gitignore | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/.gitignore b/.gitignore > index 929054df5212d68a32a1f5ee2b267389fcd1c8db..b07c8c8383bd791e903ce985c14c231cb6928411 100644 > --- a/.gitignore > +++ b/.gitignore > @@ -53,6 +53,7 @@ > *.tar > *.xz > *.zst > +*.tmp Please keep the globs alphabetized. > Module.symvers > dtbs-list > modules.order > @@ -177,6 +178,9 @@ x509.genkey > > # Clang's compilation database file > /compile_commands.json > +# Temporary files created by 'bear', a tool used for generating > +# compile_commands.json for non-Kbuild code. > +*.events.json Please rebase this on kbuild-next, as '/' is no longer present in the compile_commands.json line: https://git.kernel.org/kbuild/l/kbuild-next The comment feels a little lengthy compared to the rest of the file but I am not sure it can really be slimmed down... I am guessing the pattern cannot be made more specific, as I do wonder if anyone would introduce files with this pattern but that is why we have the check in scripts/misc-check, so it is probably not that big of a deal. > > # Documentation toolchain > sphinx_*/ > > --- > base-commit: fab1beda7597fac1cecc01707d55eadb6bbe773c > change-id: 20250827-master-23458abb102d > > Best regards, > -- > Brendan Jackman <jackmanb@google.com> > > ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] .gitignore: ignore temporary files from 'bear' 2025-08-29 23:38 ` Nathan Chancellor @ 2025-08-30 19:25 ` Nicolas Schier 2025-09-01 11:29 ` Brendan Jackman 0 siblings, 1 reply; 4+ messages in thread From: Nicolas Schier @ 2025-08-30 19:25 UTC (permalink / raw) To: Nathan Chancellor Cc: Brendan Jackman, Nick Desaulniers, Bill Wendling, linux-kernel, Justin Stitt, llvm, linux-kbuild On Fri, Aug 29, 2025 at 04:38:24PM -0700, Nathan Chancellor wrote: > Hi Brendan, > > On Wed, Aug 27, 2025 at 08:59:43AM +0000, Brendan Jackman wrote: > > Bear [0] is a tool for generating compile_commands.json. For Kbuild, > > Bear is not useful, since Kbuild already generates the necessary info > > and that can be converted to compile_commands.json by > > gen_compile_commads.py. > > > > However, for code in tools/, it's handy. For example, this command > > updates compile_commands.json so that clangd code navigation will also > > work for the VMA unit tests: > > > > bear --append -- make -C tools/testing/vma -j > > > > Bear generates some temporary files. These are usually deleted again > > but having them show up ephemerally confuses tools that trigger > > recompilation on source code changes. Ignore them in Git so that these > > tools can tell they aren't source code. > > > > [0]: https://github.com/rizsotto/Bear > > > > Signed-off-by: Brendan Jackman <jackmanb@google.com> > > We can likely take this via the Kbuild tree. I do wonder if this would > be better in a tools/.gitignore file since bear is really only of use > there but I am not sure it matters much. yeah, please consider using tools/.gitignore. Please have a look at this thread about ignoring files from "external" tools: https://lore.kernel.org/lkml/CAHk-=wiJHMje8cpiTajqrLrM23wZK0SWetuK1Bd67c0OGM_BzQ@mail.gmail.com/ If using tools/.gitignore is not possible, I think the best way for ignoring files that are not natively related to kernel build tools is to update the local ~/.config/git/ignore, as suggested in https://lore.kernel.org/lkml/CAK7LNAQas0cK7pgi72tYC3yU=ZkQxnr41YYW1mXd-sWiHtG+UA@mail.gmail.com/ compare to: https://docs.github.com/en/get-started/git-basics/ignoring-files#configuring-ignored-files-for-all-repositories-on-your-computer Kind regards, Nicolas ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] .gitignore: ignore temporary files from 'bear' 2025-08-30 19:25 ` Nicolas Schier @ 2025-09-01 11:29 ` Brendan Jackman 0 siblings, 0 replies; 4+ messages in thread From: Brendan Jackman @ 2025-09-01 11:29 UTC (permalink / raw) To: Nicolas Schier, Nathan Chancellor Cc: Nick Desaulniers, Bill Wendling, linux-kernel, Justin Stitt, llvm, linux-kbuild On Sat Aug 30, 2025 at 7:25 PM UTC, Nicolas Schier wrote: > On Fri, Aug 29, 2025 at 04:38:24PM -0700, Nathan Chancellor wrote: >> Hi Brendan, >> >> On Wed, Aug 27, 2025 at 08:59:43AM +0000, Brendan Jackman wrote: >> > Bear [0] is a tool for generating compile_commands.json. For Kbuild, >> > Bear is not useful, since Kbuild already generates the necessary info >> > and that can be converted to compile_commands.json by >> > gen_compile_commads.py. >> > >> > However, for code in tools/, it's handy. For example, this command >> > updates compile_commands.json so that clangd code navigation will also >> > work for the VMA unit tests: >> > >> > bear --append -- make -C tools/testing/vma -j >> > >> > Bear generates some temporary files. These are usually deleted again >> > but having them show up ephemerally confuses tools that trigger >> > recompilation on source code changes. Ignore them in Git so that these >> > tools can tell they aren't source code. >> > >> > [0]: https://github.com/rizsotto/Bear >> > >> > Signed-off-by: Brendan Jackman <jackmanb@google.com> >> >> We can likely take this via the Kbuild tree. I do wonder if this would >> be better in a tools/.gitignore file since bear is really only of use >> there but I am not sure it matters much. > > yeah, please consider using tools/.gitignore. I don't believe that works here, because AFAIK clangd assumes a single compile_commands.json, so while we could git-ignore tools/compile_commands.json that wouldn't really serve the usecase I have here with 'bear --append'. > Please have a look at > this thread about ignoring files from "external" tools: > > https://lore.kernel.org/lkml/CAHk-=wiJHMje8cpiTajqrLrM23wZK0SWetuK1Bd67c0OGM_BzQ@mail.gmail.com/ Hm, I would read the spirit of that thread as not being about things from 'external tools', rather Linus' objection seems to be that the _lifetime_ of the mbox files is unrelated to the kernel build. Well, to be honest the only coherent principle I can get from it is "don't break Linus' workflow". Which... yeah, is still a pretty valid concern. > If using tools/.gitignore is not possible, I think the best way for > ignoring files that are not natively related to kernel build tools is to > update the local ~/.config/git/ignore, as suggested in > > https://lore.kernel.org/lkml/CAK7LNAQas0cK7pgi72tYC3yU=ZkQxnr41YYW1mXd-sWiHtG+UA@mail.gmail.com/ Given this alternative, and given the fact that I'm ignoring a very generic suffix in *.tmp (if it was just *.events.json I'd say the practical risk has gotta be close to nil), I think we could just drop this unless anyone else pops up with evidence that 'bear' is important to lots of people or something. Cheers, Brendan ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-09-01 11:29 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-08-27 8:59 [PATCH] .gitignore: ignore temporary files from 'bear' Brendan Jackman 2025-08-29 23:38 ` Nathan Chancellor 2025-08-30 19:25 ` Nicolas Schier 2025-09-01 11:29 ` Brendan Jackman
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.