summary refs log tree commit diff
path: root/maintainers
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-07-30 16:51:32 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-07-30 16:52:12 +0200
commitf3a17b04e630336a0e86af98ae0328797b554312 (patch)
treefd338657483b3a579e62c9d975c43d95ccf6f8df /maintainers
parent1e6b14e8a491dc067a5aae281a09fff7bc94085e (diff)
downloadnixpkgs-f3a17b04e630336a0e86af98ae0328797b554312.tar
nixpkgs-f3a17b04e630336a0e86af98ae0328797b554312.tar.gz
nixpkgs-f3a17b04e630336a0e86af98ae0328797b554312.tar.bz2
nixpkgs-f3a17b04e630336a0e86af98ae0328797b554312.tar.lz
nixpkgs-f3a17b04e630336a0e86af98ae0328797b554312.tar.xz
nixpkgs-f3a17b04e630336a0e86af98ae0328797b554312.tar.zst
nixpkgs-f3a17b04e630336a0e86af98ae0328797b554312.zip
nixpkgs-lint: Warn against capitalised package names and missing versions
Diffstat (limited to 'maintainers')
-rwxr-xr-xmaintainers/scripts/nixpkgs-lint.pl20
1 files changed, 19 insertions, 1 deletions
diff --git a/maintainers/scripts/nixpkgs-lint.pl b/maintainers/scripts/nixpkgs-lint.pl
index 29ecb93c586..baf2cbf8ba7 100755
--- a/maintainers/scripts/nixpkgs-lint.pl
+++ b/maintainers/scripts/nixpkgs-lint.pl
@@ -42,6 +42,7 @@ my $info = XMLin($xml, KeyAttr => { 'item' => '+attrPath', 'meta' => 'name' }, F
 
 # Check meta information.
 print "=== Package meta information ===\n\n";
+my $nrBadNames = 0;
 my $nrMissingMaintainers = 0;
 my $nrMissingDescriptions = 0;
 my $nrBadDescriptions = 0;
@@ -51,7 +52,11 @@ foreach my $attr (sort keys %{$info->{item}}) {
     my $pkg = $info->{item}->{$attr};
 
     my $pkgName = $pkg->{name};
-    $pkgName =~ s/-[0-9].*//;
+    my $pkgVersion = "";
+    if ($pkgName =~ /(.*)(-[0-9].*)$/) {
+        $pkgName = $1;
+        $pkgVersion = $2;
+    }
 
     # Check the maintainers.
     my @maintainers;
@@ -72,6 +77,17 @@ foreach my $attr (sort keys %{$info->{item}}) {
         $nrMissingMaintainers++;
     }
 
+    # Package names should not be capitalised.
+    if ($pkgName =~ /^[A-Z]/) {
+        print "$attr: package name ‘$pkgName’ should not be capitalised\n";
+        $nrBadNames++;
+    }
+
+    if ($pkgVersion eq "") {
+        print "$attr: package has no version\n";
+        $nrBadNames++;
+    }
+
     # Check the license.
     if (!defined $pkg->{meta}->{license}) {
         print "$attr: Lacks a license\n";
@@ -104,6 +120,7 @@ foreach my $attr (sort keys %{$info->{item}}) {
         $nrBadDescriptions++ if $bad;
     }
 }
+
 print "\n";
 
 # Find packages that have the same name.
@@ -140,6 +157,7 @@ foreach my $name (sort keys %pkgsByName) {
 
 print "=== Bottom line ===\n";
 print "Number of packages: ", scalar(keys %{$info->{item}}), "\n";
+print "Number of bad names: $nrBadNames\n";
 print "Number of missing maintainers: $nrMissingMaintainers\n";
 print "Number of missing licenses: $nrMissingLicenses\n";
 print "Number of missing descriptions: $nrMissingDescriptions\n";