On Fri, 02 Sep 2016 14:42:27 +0200
l...@gnu.org (Ludovic Courtès) wrote:

> Eric Bavier <ericbav...@openmailbox.org> skribis:
> 
> > On Thu, 01 Sep 2016 14:37:58 +0200
> > l...@gnu.org (Ludovic Courtès) wrote:  
> 
> [...]
> 
> >> > In regards of the .go files remaining in the build directory, I agree
> >> > that this is not good, however I don't think it is worth trying to fix
> >> > this issue which equally applies to every file generated by Make.  Using
> >> > wildcards can be tempting in such cases but it can lead to accidental
> >> > file deletions which is worse IMO.  As a consequence I would prefer
> >> > keeping the current 'clean-go' rule.    
> >> 
> >> I sympathize with that.  
> >
> > How about simply printing  a warning if there are any .go files laying
> > around after a `make clean` or `make clean-go`?  
> 
> Sure, why not.

So, with the attached patch, I get the following output after `make
clean-go`:

warning: stray .go files: ./guix/scripts/import/cpan.go ./gnu/services/dmd.go
./gnu/system/linux.go ./gnu/packages/yasm.go ./gnu/packages/cursynth.go 
./gnu/packages/lightning.go ./gnu/packages/doxygen.go ./gnu/packages/tre.go 
./gnu/packages/asciidoc.go ./gnu/packages/texlive.go ./gnu/packages/i3.go 
./gnu/packages/fish.go ./gnu/packages/slim.go ./gnu/packages/tcsh.go 
./gnu/packages/zsh.go ./gnu/packages/lsh.go ./gnu/packages/rc.go 
./gnu/packages/openssl.go ./gnu/packages/aria2.go ./gnu/packages/gdbm.go 
./gnu/packages/gnutls.go ./gnu/packages/grue-hunter.go 
./gnu/packages/aarddict.go

Maybe this means that I've not been doing due diligence in keeping my
builddir clean, or maybe its just the result of developing on guix for
so long.

Another issue that I thought of that's posed by these stray .go files,
which isn't only a problem when acting as a wizard: introducing a new
module import when adding a package, only to have that module
moved/renamed before pushing your change.  I suppose it is a corner
case, but it did happen to me recently, in 2e3f18511, which 宋文武
kindly fixed in 19b2ea1b6. The problem was that between the time I
originally packaged tomb and the time I pushed the commit,
gnu/packages/zsh.scm was consolidated into gnu/packages/shells.scm.  I
had done a `make clean-go && make` before pushing, as I always do, but
since clean-go didn't remove gnu/packages/zsh.go the subsequent `make`
didn't complain of a missing module.

`~Eric
From ffe1710d5a91cd9906f2419d21944b1375b1b842 Mon Sep 17 00:00:00 2001
From: Eric Bavier <bav...@member.fsf.org>
Date: Thu, 15 Sep 2016 23:31:41 -0500
Subject: [PATCH] build: clean-go: warn about stray .go files.

* Makefile.am (clean-go): Warn of .go files remaining in builddir.
---
 Makefile.am | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Makefile.am b/Makefile.am
index f9fe141..43a33c8 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -208,6 +208,12 @@ endif INSTALL_SRFI_37
 # Handy way to remove the .go files without removing all the rest.
 clean-go:
 	-$(RM) -f $(GOBJECTS)
+	@find . -name '*.go' -print | \
+	  if test -t 1; then \
+	    xargs -r echo -e "\033[31mwarning:\033[0m stray .go files:"; \
+	  else \
+	    xargs -r echo "warning: stray .go files:"; \
+	  fi
 
 
 # Test extensions; has to be unconditional.
-- 
2.9.2

Reply via email to