From 4e6285a19bb1e318c9149fcdfd4b084c82933779 Mon Sep 17 00:00:00 2001
From: "Adam J. Stewart" <ajstewart426@gmail.com>
Date: Thu, 14 Mar 2019 20:49:07 -0500
Subject: [PATCH] Ensure that every package has a description (#10896)

---
 lib/spack/spack/test/package_sanity.py                    | 8 ++++++++
 var/spack/repos/builtin/packages/apex/package.py          | 2 ++
 var/spack/repos/builtin/packages/bamdst/package.py        | 2 +-
 var/spack/repos/builtin/packages/ecflow/package.py        | 4 ++--
 var/spack/repos/builtin/packages/elk/package.py           | 4 ++--
 var/spack/repos/builtin/packages/libpcap/package.py       | 2 +-
 .../repos/builtin/packages/libspatialindex/package.py     | 4 +++-
 var/spack/repos/builtin/packages/libxsmm/package.py       | 4 ++--
 var/spack/repos/builtin/packages/libxstream/package.py    | 4 ++--
 var/spack/repos/builtin/packages/mysql/package.py         | 2 ++
 .../builtin/packages/perl-compress-raw-zlib/package.py    | 2 +-
 var/spack/repos/builtin/packages/py-astroid/package.py    | 5 ++++-
 var/spack/repos/builtin/packages/sofa-c/package.py        | 2 +-
 13 files changed, 31 insertions(+), 14 deletions(-)

diff --git a/lib/spack/spack/test/package_sanity.py b/lib/spack/spack/test/package_sanity.py
index 29c3f94008..56c5954319 100644
--- a/lib/spack/spack/test/package_sanity.py
+++ b/lib/spack/spack/test/package_sanity.py
@@ -87,3 +87,11 @@ def test_no_fixme():
                         (filename, i, line.strip())
                     )
             assert [] == errors
+
+
+def test_docstring():
+    """Ensure that every package has a docstring."""
+
+    for name in spack.repo.all_package_names():
+        pkg = spack.repo.get(name)
+        assert pkg.__doc__
diff --git a/var/spack/repos/builtin/packages/apex/package.py b/var/spack/repos/builtin/packages/apex/package.py
index dd86657bf6..f15c3b7f30 100644
--- a/var/spack/repos/builtin/packages/apex/package.py
+++ b/var/spack/repos/builtin/packages/apex/package.py
@@ -7,6 +7,8 @@
 
 
 class Apex(CMakePackage):
+    """Autonomic Performance Environment for eXascale (APEX)."""
+
     homepage = "http://github.com/khuck/xpress-apex"
     url      = "http://github.com/khuck/xpress-apex/archive/v0.1.tar.gz"
 
diff --git a/var/spack/repos/builtin/packages/bamdst/package.py b/var/spack/repos/builtin/packages/bamdst/package.py
index 13031f61b1..dc8440e868 100644
--- a/var/spack/repos/builtin/packages/bamdst/package.py
+++ b/var/spack/repos/builtin/packages/bamdst/package.py
@@ -7,7 +7,7 @@
 
 
 class Bamdst(MakefilePackage):
-    "Bamdst is a a lightweight bam file depth statistical tool."
+    """Bamdst is a a lightweight bam file depth statistical tool."""
 
     homepage = "https://github.com/shiquan/bamdst"
     git      = "https://github.com/shiquan/bamdst.git"
diff --git a/var/spack/repos/builtin/packages/ecflow/package.py b/var/spack/repos/builtin/packages/ecflow/package.py
index 375f512482..5613138d9e 100644
--- a/var/spack/repos/builtin/packages/ecflow/package.py
+++ b/var/spack/repos/builtin/packages/ecflow/package.py
@@ -7,13 +7,13 @@
 
 
 class Ecflow(CMakePackage):
-    '''ecFlow is a work flow package that enables users to run a large number
+    """ecFlow is a work flow package that enables users to run a large number
     of programs (with dependencies on each other and on time) in a controlled
     environment.
 
     It provides tolerance for hardware and software failures, combined with
     good restart capabilities.
-    '''
+    """
 
     homepage = 'https://confluence.ecmwf.int/display/ECFLOW/'
     url      = 'https://confluence.ecmwf.int/download/attachments/8650755/ecFlow-4.11.1-Source.tar.gz'
diff --git a/var/spack/repos/builtin/packages/elk/package.py b/var/spack/repos/builtin/packages/elk/package.py
index ab374f0270..75c4e7bf9f 100644
--- a/var/spack/repos/builtin/packages/elk/package.py
+++ b/var/spack/repos/builtin/packages/elk/package.py
@@ -7,8 +7,8 @@
 
 
 class Elk(MakefilePackage):
-    '''An all-electron full-potential linearised augmented-plane wave
-    (FP-LAPW) code with many advanced features.'''
+    """An all-electron full-potential linearised augmented-plane wave
+    (FP-LAPW) code with many advanced features."""
 
     homepage = 'http://elk.sourceforge.net/'
     url      = 'https://sourceforge.net/projects/elk/files/elk-3.3.17.tgz'
diff --git a/var/spack/repos/builtin/packages/libpcap/package.py b/var/spack/repos/builtin/packages/libpcap/package.py
index 6d100caeef..a3d500eb1e 100644
--- a/var/spack/repos/builtin/packages/libpcap/package.py
+++ b/var/spack/repos/builtin/packages/libpcap/package.py
@@ -7,7 +7,7 @@
 
 
 class Libpcap(AutotoolsPackage):
-    "libpcap is a portable library in C/C++ for packet capture"
+    """libpcap is a portable library in C/C++ for packet capture."""
     homepage = "http://www.tcpdump.org/"
     list_url = "http://www.tcpdump.org/release/"
     url      = "http://www.tcpdump.org/release/libpcap-1.8.1.tar.gz"
diff --git a/var/spack/repos/builtin/packages/libspatialindex/package.py b/var/spack/repos/builtin/packages/libspatialindex/package.py
index cb7c3afbe6..c41e23930a 100644
--- a/var/spack/repos/builtin/packages/libspatialindex/package.py
+++ b/var/spack/repos/builtin/packages/libspatialindex/package.py
@@ -7,7 +7,9 @@
 
 
 class Libspatialindex(CMakePackage):
-    homepage = "http://libspatialindex.github.io"
+    """C++ implementation of R*-tree, an MVR-tree and a TPR-tree with C API."""
+
+    homepage = "https://libspatialindex.org/"
     url      = "https://github.com/libspatialindex/libspatialindex/tarball/1.8.5"
 
     version('1.8.5', 'a95d8159714dbda9a274792cd273d298')
diff --git a/var/spack/repos/builtin/packages/libxsmm/package.py b/var/spack/repos/builtin/packages/libxsmm/package.py
index 4ff1bc809c..aedd5edc85 100644
--- a/var/spack/repos/builtin/packages/libxsmm/package.py
+++ b/var/spack/repos/builtin/packages/libxsmm/package.py
@@ -9,9 +9,9 @@
 
 
 class Libxsmm(MakefilePackage):
-    '''Library targeting Intel Architecture
+    """Library targeting Intel Architecture
     for small, dense or sparse matrix multiplications,
-    and small convolutions.'''
+    and small convolutions."""
 
     homepage = 'https://github.com/hfp/libxsmm'
     url      = 'https://github.com/hfp/libxsmm/archive/1.10.tar.gz'
diff --git a/var/spack/repos/builtin/packages/libxstream/package.py b/var/spack/repos/builtin/packages/libxstream/package.py
index 7113d407d7..e754450ece 100644
--- a/var/spack/repos/builtin/packages/libxstream/package.py
+++ b/var/spack/repos/builtin/packages/libxstream/package.py
@@ -7,9 +7,9 @@
 
 
 class Libxstream(Package):
-    '''LIBXSTREAM is a library to work with streams, events, and code regions
+    """LIBXSTREAM is a library to work with streams, events, and code regions
     that are able to run asynchronous while preserving the usual stream
-    conditions.'''
+    conditions."""
 
     homepage = 'https://github.com/hfp/libxstream'
     url      = 'https://github.com/hfp/libxstream/archive/0.9.0.tar.gz'
diff --git a/var/spack/repos/builtin/packages/mysql/package.py b/var/spack/repos/builtin/packages/mysql/package.py
index 16be4d7314..1820f5ab04 100644
--- a/var/spack/repos/builtin/packages/mysql/package.py
+++ b/var/spack/repos/builtin/packages/mysql/package.py
@@ -6,6 +6,8 @@
 
 
 class Mysql(CMakePackage):
+    """MySQL is an open source relational database management system."""
+
     homepage = "http://dev.mysql.com"
     url      = "https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11.tar.gz"
 
diff --git a/var/spack/repos/builtin/packages/perl-compress-raw-zlib/package.py b/var/spack/repos/builtin/packages/perl-compress-raw-zlib/package.py
index 66c7df4fec..197566773b 100644
--- a/var/spack/repos/builtin/packages/perl-compress-raw-zlib/package.py
+++ b/var/spack/repos/builtin/packages/perl-compress-raw-zlib/package.py
@@ -7,7 +7,7 @@
 
 
 class PerlCompressRawZlib(PerlPackage):
-    "A low-Level Interface to zlib compression library"
+    """A low-Level Interface to zlib compression library."""
 
     homepage = "http://search.cpan.org/~pmqs/Compress-Raw-Zlib-2.081/lib/Compress/Raw/Zlib.pm"
     url      = "https://cpan.metacpan.org/authors/id/P/PM/PMQS/Compress-Raw-Zlib-2.081.tar.gz"
diff --git a/var/spack/repos/builtin/packages/py-astroid/package.py b/var/spack/repos/builtin/packages/py-astroid/package.py
index ba437ddd83..7b40cb49a5 100644
--- a/var/spack/repos/builtin/packages/py-astroid/package.py
+++ b/var/spack/repos/builtin/packages/py-astroid/package.py
@@ -7,7 +7,10 @@
 
 
 class PyAstroid(PythonPackage):
-    homepage = "https://www.astroid.org/"
+    """A common base representation of python source code for pylint
+    and other projects."""
+
+    homepage = "https://github.com/PyCQA/astroid"
     url      = "https://github.com/PyCQA/astroid/archive/astroid-1.4.5.tar.gz"
 
     version('2.2.0', sha256='7e289d0aa4a537b4aa798bd609fdf745de0f3c37e6b67642ed328e1482421a6d')
diff --git a/var/spack/repos/builtin/packages/sofa-c/package.py b/var/spack/repos/builtin/packages/sofa-c/package.py
index a9bbbd15be..cc67527b55 100644
--- a/var/spack/repos/builtin/packages/sofa-c/package.py
+++ b/var/spack/repos/builtin/packages/sofa-c/package.py
@@ -7,7 +7,7 @@
 
 
 class SofaC(MakefilePackage):
-    "Standards of Fundamental Astronomy (SOFA) library for ANSI C."
+    """Standards of Fundamental Astronomy (SOFA) library for ANSI C."""
 
     homepage = "http://www.iausofa.org/current_C.html"
     url      = "http://www.iausofa.org/2018_0130_C/sofa_c-20180130.tar.gz"
-- 
GitLab