Re: [PATCH 1 of 4 STABLE V3] misc: update year in copyright lines

2017-02-11 Thread FUJIWARA Katsunori
At Fri, 10 Feb 2017 16:03:53 -0500,
Augie Fackler wrote:
> 
> On Sat, Feb 11, 2017 at 12:30:03AM +0900, FUJIWARA Katsunori wrote:
> > # HG changeset patch
> > # User FUJIWARA Katsunori 
> > # Date 1486740233 -32400
> > #  Sat Feb 11 00:23:53 2017 +0900
> > # Branch stable
> > # Node ID f4dcd9cdb900f46557c9bd15abb73b0c5f03403b
> > # Parent  af3b5aa61fc05a124697809bf472a5592f38489c
> > misc: update year in copyright lines
> > 
> > This patch also does below:
> > 
> >  - add new check-code.py pattern to detect outdated copyright year
> >according to the date at testing
> > 
> >  - make some expected output lines in tests glob-ed for persistence
> 
> I've queued the other patches in this series, but am dropping this
> one, because it's only sort of
> correct. https://news.ycombinator.com/item?id=8809853 for details
> (DannyBee is an Actual Lawyer who also is an engineer), but the short
> version is we don't actually /want/ to update copyright on files
> unless they're updated.
>
> As far as the copyright on the entire program (eg in the .iss file)
> and in setup.py, that's probably the right thing to do, but I'm not
> sure if we should have a test that goes red when the year changes
> (which, keep in mind, varies a bit on timezone, so we'd have a 24 hour
> period where the tests necessarily did not pass for everyone). I guess
> let's do the html/iss/setup.py whole-app lines and ignore the test?

OK, I'll send revised patch without testing.

> 
> > diff --git a/contrib/check-code.py b/contrib/check-code.py
> > --- a/contrib/check-code.py
> > +++ b/contrib/check-code.py
> > @@ -20,6 +20,7 @@ when a rule triggers wrong, do one of th
> > """
> > 
> > from __future__ import absolute_import, print_function
> > +import datetime
> > import glob
> > import keyword
> > import optparse
> > @@ -448,10 +449,18 @@ webtemplatepats = [
> > 
> > allfilesfilters = []
> > 
> > +# to check outdated copyright year according to the date at testing
> > +thisyear = int(datetime.date.today().strftime('%Y'))
> > +
> > allfilespats = [
> >   [
> > (r'(http|https)://[a-zA-Z0-9./]*selenic.com/',
> >  'use mercurial-scm.org domain URL'),
> > +(r'(?i)(? > + (thisyear - 1, thisyear - 2),
> > + # for safety, "thisyear - 2" is also checked (this can cover the
> > + # issue fixed in af3b5aa61fc0)
> > + 'outdated copyright year'),
> >   ],
> >   # warnings
> >   [],
> > diff --git a/contrib/win32/ReadMe.html b/contrib/win32/ReadMe.html
> > --- a/contrib/win32/ReadMe.html
> > +++ b/contrib/win32/ReadMe.html
> > @@ -140,7 +140,7 @@ editor = whatever
> > 
> > 
> > 
> > -  Mercurial is Copyright 2005-2016 Matt Mackall and others. See
> > +  Mercurial is Copyright 2005-2017 Matt Mackall and others. See
> >   the Contributors.txt file for a list of contributors.
> > 
> > 
> > diff --git a/contrib/win32/mercurial.iss b/contrib/win32/mercurial.iss
> > --- a/contrib/win32/mercurial.iss
> > +++ b/contrib/win32/mercurial.iss
> > @@ -21,7 +21,7 @@
> > #endif
> > 
> > [Setup]
> > -AppCopyright=Copyright 2005-2016 Matt Mackall and others
> > +AppCopyright=Copyright 2005-2017 Matt Mackall and others
> > AppName=Mercurial
> > AppVersion={#VERSION}
> > #if ARCH == "x64"
> > @@ -45,7 +45,7 @@ AppContact=mercur...@selenic.com
> > DefaultDirName={pf}\Mercurial
> > SourceDir=..\..
> > VersionInfoDescription=Mercurial distributed SCM (version {#VERSION})
> > -VersionInfoCopyright=Copyright 2005-2016 Matt Mackall and others
> > +VersionInfoCopyright=Copyright 2005-2017 Matt Mackall and others
> > VersionInfoCompany=Matt Mackall and others
> > InternalCompressLevel=max
> > SolidCompression=true
> > diff --git a/mercurial/commands.py b/mercurial/commands.py
> > --- a/mercurial/commands.py
> > +++ b/mercurial/commands.py
> > @@ -6576,7 +6576,7 @@ def version_(ui, **opts):
> >  util.version())
> > license = _(
> > "(see https://mercurial-scm.org for more information)\n"
> > -"\nCopyright (C) 2005-2016 Matt Mackall and others\n"
> > +"\nCopyright (C) 2005-2017 Matt Mackall and others\n"
> > "This is free software; see the source for copying conditions. "
> > "There is NO\nwarranty; "
> > "not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
> > PURPOSE.\n"
> > diff --git a/mercurial/help/hg-ssh.8.txt b/mercurial/help/hg-ssh.8.txt
> > --- a/mercurial/help/hg-ssh.8.txt
> > +++ b/mercurial/help/hg-ssh.8.txt
> > @@ -64,7 +64,7 @@ Mailing list: https://www.mercurial-scm.
> > 
> > Copying
> > """
> > -Copyright (C) 2005-2016 Matt Mackall.
> > +Copyright (C) 2005-2017 Matt Mackall.
> > Free use of this software is granted under the terms of the GNU General
> > Public License version 2 or any later version.
> > 
> > diff --git a/mercurial/help/hg.1.txt b/mercurial/help/hg.1.txt
> > --- a/mercurial/help/hg.1.txt
> > +++ b/mercurial/help/hg.1.txt
> > @@ -112,7 +112,7 @@ Mailing list: https://www.mercurial-scm.
> > 
> > Copying
> 

Re: [PATCH 1 of 4 STABLE V3] misc: update year in copyright lines

2017-02-10 Thread Augie Fackler
On Sat, Feb 11, 2017 at 12:30:03AM +0900, FUJIWARA Katsunori wrote:
> # HG changeset patch
> # User FUJIWARA Katsunori 
> # Date 1486740233 -32400
> #  Sat Feb 11 00:23:53 2017 +0900
> # Branch stable
> # Node ID f4dcd9cdb900f46557c9bd15abb73b0c5f03403b
> # Parent  af3b5aa61fc05a124697809bf472a5592f38489c
> misc: update year in copyright lines
> 
> This patch also does below:
> 
>  - add new check-code.py pattern to detect outdated copyright year
>according to the date at testing
> 
>  - make some expected output lines in tests glob-ed for persistence

I've queued the other patches in this series, but am dropping this
one, because it's only sort of
correct. https://news.ycombinator.com/item?id=8809853 for details
(DannyBee is an Actual Lawyer who also is an engineer), but the short
version is we don't actually /want/ to update copyright on files
unless they're updated.

As far as the copyright on the entire program (eg in the .iss file)
and in setup.py, that's probably the right thing to do, but I'm not
sure if we should have a test that goes red when the year changes
(which, keep in mind, varies a bit on timezone, so we'd have a 24 hour
period where the tests necessarily did not pass for everyone). I guess
let's do the html/iss/setup.py whole-app lines and ignore the test?

> 
> diff --git a/contrib/check-code.py b/contrib/check-code.py
> --- a/contrib/check-code.py
> +++ b/contrib/check-code.py
> @@ -20,6 +20,7 @@ when a rule triggers wrong, do one of th
> """
> 
> from __future__ import absolute_import, print_function
> +import datetime
> import glob
> import keyword
> import optparse
> @@ -448,10 +449,18 @@ webtemplatepats = [
> 
> allfilesfilters = []
> 
> +# to check outdated copyright year according to the date at testing
> +thisyear = int(datetime.date.today().strftime('%Y'))
> +
> allfilespats = [
>   [
> (r'(http|https)://[a-zA-Z0-9./]*selenic.com/',
>  'use mercurial-scm.org domain URL'),
> +(r'(?i)(? + (thisyear - 1, thisyear - 2),
> + # for safety, "thisyear - 2" is also checked (this can cover the
> + # issue fixed in af3b5aa61fc0)
> + 'outdated copyright year'),
>   ],
>   # warnings
>   [],
> diff --git a/contrib/win32/ReadMe.html b/contrib/win32/ReadMe.html
> --- a/contrib/win32/ReadMe.html
> +++ b/contrib/win32/ReadMe.html
> @@ -140,7 +140,7 @@ editor = whatever
> 
> 
> 
> -  Mercurial is Copyright 2005-2016 Matt Mackall and others. See
> +  Mercurial is Copyright 2005-2017 Matt Mackall and others. See
>   the Contributors.txt file for a list of contributors.
> 
> 
> diff --git a/contrib/win32/mercurial.iss b/contrib/win32/mercurial.iss
> --- a/contrib/win32/mercurial.iss
> +++ b/contrib/win32/mercurial.iss
> @@ -21,7 +21,7 @@
> #endif
> 
> [Setup]
> -AppCopyright=Copyright 2005-2016 Matt Mackall and others
> +AppCopyright=Copyright 2005-2017 Matt Mackall and others
> AppName=Mercurial
> AppVersion={#VERSION}
> #if ARCH == "x64"
> @@ -45,7 +45,7 @@ AppContact=mercur...@selenic.com
> DefaultDirName={pf}\Mercurial
> SourceDir=..\..
> VersionInfoDescription=Mercurial distributed SCM (version {#VERSION})
> -VersionInfoCopyright=Copyright 2005-2016 Matt Mackall and others
> +VersionInfoCopyright=Copyright 2005-2017 Matt Mackall and others
> VersionInfoCompany=Matt Mackall and others
> InternalCompressLevel=max
> SolidCompression=true
> diff --git a/mercurial/commands.py b/mercurial/commands.py
> --- a/mercurial/commands.py
> +++ b/mercurial/commands.py
> @@ -6576,7 +6576,7 @@ def version_(ui, **opts):
>  util.version())
> license = _(
> "(see https://mercurial-scm.org for more information)\n"
> -"\nCopyright (C) 2005-2016 Matt Mackall and others\n"
> +"\nCopyright (C) 2005-2017 Matt Mackall and others\n"
> "This is free software; see the source for copying conditions. "
> "There is NO\nwarranty; "
> "not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
> diff --git a/mercurial/help/hg-ssh.8.txt b/mercurial/help/hg-ssh.8.txt
> --- a/mercurial/help/hg-ssh.8.txt
> +++ b/mercurial/help/hg-ssh.8.txt
> @@ -64,7 +64,7 @@ Mailing list: https://www.mercurial-scm.
> 
> Copying
> """
> -Copyright (C) 2005-2016 Matt Mackall.
> +Copyright (C) 2005-2017 Matt Mackall.
> Free use of this software is granted under the terms of the GNU General
> Public License version 2 or any later version.
> 
> diff --git a/mercurial/help/hg.1.txt b/mercurial/help/hg.1.txt
> --- a/mercurial/help/hg.1.txt
> +++ b/mercurial/help/hg.1.txt
> @@ -112,7 +112,7 @@ Mailing list: https://www.mercurial-scm.
> 
> Copying
> """
> -Copyright (C) 2005-2016 Matt Mackall.
> +Copyright (C) 2005-2017 Matt Mackall.
> Free use of this software is granted under the terms of the GNU General
> Public License version 2 or any later version.
> 
> diff --git a/mercurial/help/hgignore.5.txt b/mercurial/help/hgignore.5.txt
> --- a/mercurial/help/hgignore.5.txt
> +++ 

[PATCH 1 of 4 STABLE V3] misc: update year in copyright lines

2017-02-10 Thread FUJIWARA Katsunori
# HG changeset patch
# User FUJIWARA Katsunori 
# Date 1486740233 -32400
#  Sat Feb 11 00:23:53 2017 +0900
# Branch stable
# Node ID f4dcd9cdb900f46557c9bd15abb73b0c5f03403b
# Parent  af3b5aa61fc05a124697809bf472a5592f38489c
misc: update year in copyright lines

This patch also does below:

  - add new check-code.py pattern to detect outdated copyright year
according to the date at testing

  - make some expected output lines in tests glob-ed for persistence

diff --git a/contrib/check-code.py b/contrib/check-code.py
--- a/contrib/check-code.py
+++ b/contrib/check-code.py
@@ -20,6 +20,7 @@ when a rule triggers wrong, do one of th
 """
 
 from __future__ import absolute_import, print_function
+import datetime
 import glob
 import keyword
 import optparse
@@ -448,10 +449,18 @@ webtemplatepats = [
 
 allfilesfilters = []
 
+# to check outdated copyright year according to the date at testing
+thisyear = int(datetime.date.today().strftime('%Y'))
+
 allfilespats = [
   [
 (r'(http|https)://[a-zA-Z0-9./]*selenic.com/',
  'use mercurial-scm.org domain URL'),
+(r'(?i)(?
 
 
-  Mercurial is Copyright 2005-2016 Matt Mackall and others. See
+  Mercurial is Copyright 2005-2017 Matt Mackall and others. See
   the Contributors.txt file for a list of contributors.
 
 
diff --git a/contrib/win32/mercurial.iss b/contrib/win32/mercurial.iss
--- a/contrib/win32/mercurial.iss
+++ b/contrib/win32/mercurial.iss
@@ -21,7 +21,7 @@
 #endif
 
 [Setup]
-AppCopyright=Copyright 2005-2016 Matt Mackall and others
+AppCopyright=Copyright 2005-2017 Matt Mackall and others
 AppName=Mercurial
 AppVersion={#VERSION}
 #if ARCH == "x64"
@@ -45,7 +45,7 @@ AppContact=mercur...@selenic.com
 DefaultDirName={pf}\Mercurial
 SourceDir=..\..
 VersionInfoDescription=Mercurial distributed SCM (version {#VERSION})
-VersionInfoCopyright=Copyright 2005-2016 Matt Mackall and others
+VersionInfoCopyright=Copyright 2005-2017 Matt Mackall and others
 VersionInfoCompany=Matt Mackall and others
 InternalCompressLevel=max
 SolidCompression=true
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -6576,7 +6576,7 @@ def version_(ui, **opts):
  util.version())
 license = _(
 "(see https://mercurial-scm.org for more information)\n"
-"\nCopyright (C) 2005-2016 Matt Mackall and others\n"
+"\nCopyright (C) 2005-2017 Matt Mackall and others\n"
 "This is free software; see the source for copying conditions. "
 "There is NO\nwarranty; "
 "not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
diff --git a/mercurial/help/hg-ssh.8.txt b/mercurial/help/hg-ssh.8.txt
--- a/mercurial/help/hg-ssh.8.txt
+++ b/mercurial/help/hg-ssh.8.txt
@@ -64,7 +64,7 @@ Mailing list: https://www.mercurial-scm.
 
 Copying
 """
-Copyright (C) 2005-2016 Matt Mackall.
+Copyright (C) 2005-2017 Matt Mackall.
 Free use of this software is granted under the terms of the GNU General
 Public License version 2 or any later version.
 
diff --git a/mercurial/help/hg.1.txt b/mercurial/help/hg.1.txt
--- a/mercurial/help/hg.1.txt
+++ b/mercurial/help/hg.1.txt
@@ -112,7 +112,7 @@ Mailing list: https://www.mercurial-scm.
 
 Copying
 """
-Copyright (C) 2005-2016 Matt Mackall.
+Copyright (C) 2005-2017 Matt Mackall.
 Free use of this software is granted under the terms of the GNU General
 Public License version 2 or any later version.
 
diff --git a/mercurial/help/hgignore.5.txt b/mercurial/help/hgignore.5.txt
--- a/mercurial/help/hgignore.5.txt
+++ b/mercurial/help/hgignore.5.txt
@@ -26,7 +26,7 @@ See Also
 Copying
 ===
 This manual page is copyright 2006 Vadim Gelfer.
-Mercurial is copyright 2005-2016 Matt Mackall.
+Mercurial is copyright 2005-2017 Matt Mackall.
 Free use of this software is granted under the terms of the GNU General
 Public License version 2 or any later version.
 
diff --git a/mercurial/help/hgrc.5.txt b/mercurial/help/hgrc.5.txt
--- a/mercurial/help/hgrc.5.txt
+++ b/mercurial/help/hgrc.5.txt
@@ -34,7 +34,7 @@ See Also
 Copying
 ===
 This manual page is copyright 2005 Bryan O'Sullivan.
-Mercurial is copyright 2005-2016 Matt Mackall.
+Mercurial is copyright 2005-2017 Matt Mackall.
 Free use of this software is granted under the terms of the GNU General
 Public License version 2 or any later version.
 
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -664,7 +664,7 @@ extra = {}
 if py2exeloaded:
 extra['console'] = [
 {'script':'hg',
- 'copyright':'Copyright (C) 2005-2016 Matt Mackall and others',
+ 'copyright':'Copyright (C) 2005-2017 Matt Mackall and others',
  'product_version':version}]
 # sub command of 'build' because 'py2exe' does not handle sub_commands
 build.sub_commands.insert(0, ('build_hgextindex', None))
diff --git a/tests/test-help.t b/tests/test-help.t
--- a/tests/test-help.t
+++ b/tests/test-help.t
@@