summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorAdam J. Stewart <ajstewart426@gmail.com>2017-04-25 13:01:25 -0500
committerTodd Gamblin <tgamblin@llnl.gov>2017-04-25 11:01:25 -0700
commit58f2a947db98bdecb061133a7b6780fa405fbd33 (patch)
tree21061413e68f4563b54276088f613ed3dd85bac2 /var
parent827ebe280db235ce5d11ee19b822c04ea239621c (diff)
downloadspack-58f2a947db98bdecb061133a7b6780fa405fbd33.tar.gz
spack-58f2a947db98bdecb061133a7b6780fa405fbd33.tar.bz2
spack-58f2a947db98bdecb061133a7b6780fa405fbd33.tar.xz
spack-58f2a947db98bdecb061133a7b6780fa405fbd33.zip
Properly ignore flake8 F811 redefinition errors (#3932)
* Properly ignore flake8 F811 redefinition errors * Add unit tests for flake8 command * Allow spack flake8 to work on systems with older git * Skip flake8 unit tests for Python 2.6 and 3.3
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin.mock/packages/boost/package.py83
-rw-r--r--var/spack/repos/builtin.mock/packages/flake8/hyper-specific-patch-that-fixes-some-random-bug-that-probably-only-affects-one-user.patch1
-rw-r--r--var/spack/repos/builtin.mock/packages/flake8/package.py79
-rw-r--r--var/spack/repos/builtin/packages/metis/package.py4
-rw-r--r--var/spack/repos/builtin/packages/qt/package.py8
5 files changed, 169 insertions, 6 deletions
diff --git a/var/spack/repos/builtin.mock/packages/boost/package.py b/var/spack/repos/builtin.mock/packages/boost/package.py
new file mode 100644
index 0000000000..5d86c4559f
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/boost/package.py
@@ -0,0 +1,83 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Boost(Package):
+ """Fake boost package."""
+
+ homepage = "http://www.boost.org"
+ url = "http://downloads.sourceforge.net/project/boost/boost/1.63.0/boost_1_63_0.tar.bz2"
+
+ version('1.63.0', '1c837ecd990bb022d07e7aab32b09847')
+
+ default_install_libs = set(['atomic',
+ 'chrono',
+ 'date_time',
+ 'filesystem',
+ 'graph',
+ 'iostreams',
+ 'locale',
+ 'log',
+ 'math',
+ 'program_options',
+ 'random',
+ 'regex',
+ 'serialization',
+ 'signals',
+ 'system',
+ 'test',
+ 'thread',
+ 'timer',
+ 'wave'])
+
+ # mpi/python are not installed by default because they pull in many
+ # dependencies and/or because there is a great deal of customization
+ # possible (and it would be difficult to choose sensible defaults)
+ default_noinstall_libs = set(['mpi', 'python'])
+
+ all_libs = default_install_libs | default_noinstall_libs
+
+ for lib in all_libs:
+ variant(lib, default=(lib not in default_noinstall_libs),
+ description="Compile with {0} library".format(lib))
+
+ variant('debug', default=False,
+ description='Switch to the debug version of Boost')
+ variant('shared', default=True,
+ description="Additionally build shared libraries")
+ variant('multithreaded', default=True,
+ description="Build multi-threaded versions of libraries")
+ variant('singlethreaded', default=False,
+ description="Build single-threaded versions of libraries")
+ variant('icu', default=False,
+ description="Build with Unicode and ICU suport")
+ variant('graph', default=False,
+ description="Build the Boost Graph library")
+ variant('taggedlayout', default=False,
+ description="Augment library names with build options")
+
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin.mock/packages/flake8/hyper-specific-patch-that-fixes-some-random-bug-that-probably-only-affects-one-user.patch b/var/spack/repos/builtin.mock/packages/flake8/hyper-specific-patch-that-fixes-some-random-bug-that-probably-only-affects-one-user.patch
new file mode 100644
index 0000000000..b8c9065e4b
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/flake8/hyper-specific-patch-that-fixes-some-random-bug-that-probably-only-affects-one-user.patch
@@ -0,0 +1 @@
+Fake patch
diff --git a/var/spack/repos/builtin.mock/packages/flake8/package.py b/var/spack/repos/builtin.mock/packages/flake8/package.py
new file mode 100644
index 0000000000..bd062d71bc
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/flake8/package.py
@@ -0,0 +1,79 @@
+##############################################################################
+# Copyright (c) 2013-2016, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/llnl/spack
+# Please also see the LICENSE file for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Flake8(Package):
+ """Package containing as many PEP 8 violations as possible.
+ All of these violations are exceptions that we allow in
+ package.py files."""
+
+ # Used to tell whether or not the package has been modified
+ state = 'unmodified'
+
+ # Make sure pre-existing noqa is not interfered with
+ blatant_violation = 'line-that-has-absolutely-no-execuse-for-being-over-79-characters' # noqa
+ blatant_violation = 'line-that-has-absolutely-no-execuse-for-being-over-79-characters' # noqa: E501
+
+ # Keywords exempt from line-length checks
+ homepage = '#####################################################################'
+ url = '#####################################################################'
+ git = '#####################################################################'
+ svn = '#####################################################################'
+ hg = '#####################################################################'
+ list_url = '#####################################################################'
+
+ # URL strings exempt from line-length checks
+ # http://########################################################################
+ # https://#######################################################################
+ # ftp://#########################################################################
+ # file://########################################################################
+
+ # Directives exempt from line-length checks
+ version('2.0', '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef')
+ version('1.0', '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef')
+
+ variant('super-awesome-feature', default=True, description='Enable super awesome feature')
+ variant('somewhat-awesome-feature', default=False, description='Enable somewhat awesome feature')
+
+ provides('lapack', when='@2.0+super-awesome-feature+somewhat-awesome-feature')
+
+ extends('python', ignore='bin/(why|does|every|package|that|depends|on|numpy|need|to|copy|f2py3?)')
+
+ depends_on('boost+atomic+chrono+date_time~debug+filesystem~graph~icu+iostreams+locale+log+math~mpi+multithreaded+program_options~python+random+regex+serialization+shared+signals~singlethreaded+system~taggedlayout+test+thread+timer+wave')
+
+ conflicts('+super-awesome-feature', when='%intel@16:17+somewhat-awesome-feature')
+
+ resource(name='Deez-Nuts', destination='White-House', placement='President', when='@2020', url='www.elect-deez-nuts.com')
+
+ patch('hyper-specific-patch-that-fixes-some-random-bug-that-probably-only-affects-one-user.patch', when='%gcc@3.2.2:3.2.3')
+
+ def install(self, spec, prefix):
+ pass
+
+ # '@when' decorated functions are exempt from redefinition errors
+ @when('@2.0')
+ def install(self, spec, prefix):
+ pass
diff --git a/var/spack/repos/builtin/packages/metis/package.py b/var/spack/repos/builtin/packages/metis/package.py
index c927c22a1b..454bb97037 100644
--- a/var/spack/repos/builtin/packages/metis/package.py
+++ b/var/spack/repos/builtin/packages/metis/package.py
@@ -84,7 +84,7 @@ class Metis(Package):
filter_file('#define MAX_JBUFS 128', '#define MAX_JBUFS 24',
join_path(source_path, 'GKlib', 'error.c'))
- @when('@:4') # noqa: F811
+ @when('@:4')
def install(self, spec, prefix):
# Process library spec and options
if any('+{0}'.format(v) in spec for v in ['gdb', 'int64', 'real64']):
@@ -175,7 +175,7 @@ class Metis(Package):
Executable(test_bin('mesh2dual'))(test_graph('metis.mesh'))
"""
- @when('@5:') # noqa: F811
+ @when('@5:')
def install(self, spec, prefix):
source_directory = self.stage.source_path
build_directory = join_path(source_directory, 'build')
diff --git a/var/spack/repos/builtin/packages/qt/package.py b/var/spack/repos/builtin/packages/qt/package.py
index b27bc3fe07..b9c7e1f5c3 100644
--- a/var/spack/repos/builtin/packages/qt/package.py
+++ b/var/spack/repos/builtin/packages/qt/package.py
@@ -251,7 +251,7 @@ class Qt(Package):
# Don't disable all the database drivers, but should
# really get them into spack at some point.
- @when('@3') # noqa: F811
+ @when('@3')
def configure(self):
# A user reported that this was necessary to link Qt3 on ubuntu.
# However, if LD_LIBRARY_PATH is not set the qt build fails, check
@@ -268,7 +268,7 @@ class Qt(Package):
'-release',
'-fast')
- @when('@4') # noqa: F811
+ @when('@4')
def configure(self):
configure('-fast',
'-{0}gtkstyle'.format('' if '+gtk' in self.spec else 'no-'),
@@ -276,7 +276,7 @@ class Qt(Package):
'-arch', str(self.spec.architecture.target),
*self.common_config_args)
- @when('@5.0:5.6') # noqa: F811
+ @when('@5.0:5.6')
def configure(self):
webkit_args = [] if '+webkit' in self.spec else ['-skip', 'qtwebkit']
configure('-no-eglfs',
@@ -284,7 +284,7 @@ class Qt(Package):
'-{0}gtkstyle'.format('' if '+gtk' in self.spec else 'no-'),
*(webkit_args + self.common_config_args))
- @when('@5.7:') # noqa: F811
+ @when('@5.7:')
def configure(self):
config_args = self.common_config_args