[SCM] ci-tooling packaging branch, master, updated. 1da12af7c6acff5ac391c7da571cd599f1d31a79

Harald Sitter apachelogger-guest at moszumanska.debian.org
Fri Oct 16 10:54:08 UTC 2015


Gitweb-URL: http://git.debian.org/?p=pkg-kde/ci-tooling.git;a=commitdiff;h=1da12af

The following commit has been merged in the master branch:
commit 1da12af7c6acff5ac391c7da571cd599f1d31a79
Author: Harald Sitter <sitter at kde.org>
Date:   Fri Oct 16 12:54:05 2015 +0200

    add new merge_marker lint
    
    this test checks that merges were done properly and there are no lingering
    merge markers from an incorrect merge/commit
---
 kci/builder.rb                                     |  2 +
 lib/lint/merge_marker.rb                           | 41 +++++++++++++++++
 test/data/test_lint_merge_marker/test_lint/control | 51 ++++++++++++++++++++++
 .../test_lint/image.png}                           |  0
 .../test_lint/image.svgz}                          |  0
 ...default-use-octave-cli-rather-than-octave.patch | 36 +++++++++++++++
 .../test_lint/rules}                               |  0
 test/data/test_lint_merge_marker/test_lint/t.cpp   |  1 +
 test/test_lint_merge_marker.rb                     | 22 ++++++++++
 9 files changed, 153 insertions(+)

diff --git a/kci/builder.rb b/kci/builder.rb
index b8b0837..c959509 100755
--- a/kci/builder.rb
+++ b/kci/builder.rb
@@ -9,6 +9,7 @@ require_relative '../lib/debian/dsc_arch_twiddle'
 require_relative '../lib/kci'
 require_relative '../lib/lint/control'
 require_relative '../lib/lint/log'
+require_relative '../lib/lint/merge_marker'
 require_relative '../lib/lint/result'
 require_relative '../lib/lint/series'
 require_relative '../lib/lint/symbols'
@@ -181,6 +182,7 @@ class KCIBuilder
     results << Lint::Control.new('packaging').lint
     results << Lint::Series.new('packaging').lint
     results << Lint::Symbols.new('packaging').lint
+    results << Lint::MergeMarker.new('packaging').lint
 
     Lint::ResultLogger.new(results).log
 
diff --git a/lib/lint/merge_marker.rb b/lib/lint/merge_marker.rb
new file mode 100644
index 0000000..ed6c7d5
--- /dev/null
+++ b/lib/lint/merge_marker.rb
@@ -0,0 +1,41 @@
+require_relative 'result'
+
+module Lint
+  # Lints the presence of merge markers (i.e. <<< or >>>)
+  class MergeMarker
+    attr_reader :package_directory
+
+    def initialize(package_directory = Dir.pwd)
+      @package_directory = package_directory
+    end
+
+    # @return [Result]
+    def lint
+      result = Result.new
+      result.valid = true
+      Dir.glob("#{@package_directory}/**/**").each do |file|
+        next if File.directory?(file)
+        # Check filter. If this becomes too cumbersome, FileMagic offers a
+        # reasonable solution to filetype checking based on mime.
+        next if %w(.png .svgz .pdf).include?(File.extname(file))
+        lint_file(result, file)
+      end
+      result
+    end
+
+    private
+
+    def lint_file(result, path)
+      File.open(path, 'r') do |file|
+        file.each_line do |line|
+          unless line.start_with?('<<<<<<< ') || line.start_with?('>>>>>>> ')
+            next
+          end
+          result.errors << "File #{path} contains merge markers!"
+          break
+        end
+      end
+      result
+    end
+  end
+end
diff --git a/test/data/test_lint_merge_marker/test_lint/control b/test/data/test_lint_merge_marker/test_lint/control
new file mode 100644
index 0000000..e01ffd8
--- /dev/null
+++ b/test/data/test_lint_merge_marker/test_lint/control
@@ -0,0 +1,51 @@
+Source: kpeople
+Section: libs
+Priority: optional
+Maintainer: Debian/Kubuntu Qt/KDE Maintainers <debian-qt-kde at lists.debian.org>
+Uploaders: Maximiliano Curia <maxy at debian.org>
+Build-Depends: cmake (>= 2.8.12~),
+               dbus-x11,
+               debhelper (>= 9),
+<<<<<<< HEAD
+               extra-cmake-modules (>= 5.10.0),
+               libkf5coreaddons-dev (>= 5.10.0),
+               libkf5i18n-dev (>= 5.10.0),
+               libkf5itemviews-dev (>= 5.10.0),
+               libkf5service-dev (>= 5.10.0),
+               libkf5widgetsaddons-dev (>= 5.10.0),
+=======
+               extra-cmake-modules (>= 5.11.0~),
+               libkf5coreaddons-dev (>= 5.11.0~),
+               libkf5i18n-dev (>= 5.11.0~),
+               libkf5itemviews-dev (>= 5.11.0~),
+               libkf5service-dev (>= 5.11.0~),
+               libkf5widgetsaddons-dev (>= 5.11.0~),
+>>>>>>> master
+               libqt5sql5-sqlite,
+               pkg-kde-tools (>> 0.15.15),
+               qtbase5-dev (>= 5.4),
+               qtdeclarative5-dev (>= 5.4)
+Standards-Version: 3.9.6
+XS-Testsuite: autopkgtest
+Homepage: https://projects.kde.org/projects/frameworks/kpeople
+Vcs-Browser: http://anonscm.debian.org/cgit/pkg-kde/frameworks/kpeople.git
+Vcs-Git: git://anonscm.debian.org/pkg-kde/frameworks/kpeople.git
+
+Package: libkf5people-dev
+Section: libdevel
+Architecture: any
+Depends: libkf5people5 (= ${binary:Version}),
+         libkf5peoplebackend5 (= ${binary:Version}),
+         libkf5peoplewidgets5 (= ${binary:Version}),
+         ${misc:Depends}
+Description: development files for kpeople
+ KPeople offers unified access to our contacts from different sources, grouping
+ them by person while still exposing all the data.
+ .
+ Furthermore, KPeople will also provide facilities to integrate the data
+ provided in user interfaces by providing QML and Qt Widgets components.
+ .
+ This package is part of KDE Frameworks 5.
+ .
+ This package contains the development files.
+
diff --git a/test/data/test_lint_series/test_complete/debian/patches/a.patch b/test/data/test_lint_merge_marker/test_lint/image.png
similarity index 100%
copy from test/data/test_lint_series/test_complete/debian/patches/a.patch
copy to test/data/test_lint_merge_marker/test_lint/image.png
diff --git a/test/data/test_lint_series/test_complete/debian/patches/a.patch b/test/data/test_lint_merge_marker/test_lint/image.svgz
similarity index 100%
copy from test/data/test_lint_series/test_complete/debian/patches/a.patch
copy to test/data/test_lint_merge_marker/test_lint/image.svgz
diff --git a/test/data/test_lint_merge_marker/test_lint/patches/0001-by-default-use-octave-cli-rather-than-octave.patch b/test/data/test_lint_merge_marker/test_lint/patches/0001-by-default-use-octave-cli-rather-than-octave.patch
new file mode 100644
index 0000000..ad23b6b
--- /dev/null
+++ b/test/data/test_lint_merge_marker/test_lint/patches/0001-by-default-use-octave-cli-rather-than-octave.patch
@@ -0,0 +1,36 @@
+From 1d71ce87887fd01cff7a906612a6194a4fc48437 Mon Sep 17 00:00:00 2001
+From: Harald Sitter <sitter at kde.org>
+Date: Thu, 15 Oct 2015 15:37:30 +0200
+Subject: [PATCH] by default use octave-cli rather than octave
+
+'octave' can randomly decide to load its GUI rather than the CLI depending
+on environmental factors. We cannot stdin control the GUI, so there is no
+point in introducing this instability but instead call octave-cli directly
+since it is the only possibly operation mode we support.
+
+(NB there also is a --no-gui switch which for me doesn't appear to work for
+ some reason, so octave-cli directly seems the most reliable approach to
+ this)
+
+Conflicts:
+	src/backends/octave/octavebackend.kcfg
+---
+ src/backends/octave/octavebackend.kcfg | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/backends/octave/octavebackend.kcfg b/src/backends/octave/octavebackend.kcfg
+index be3f4f4..286910b 100644
+--- a/src/backends/octave/octavebackend.kcfg
++++ b/src/backends/octave/octavebackend.kcfg
+@@ -8,7 +8,7 @@
+   <group name="OctaveBackend">
+     <entry name="Path" type="Url">
+       <label>Path to the Octave executable</label>
+-      <default code="true">QUrl::fromLocalFile(QStandardPaths::findExecutable( QLatin1String("octave") ))</default>
++      <default code="true">QUrl::fromLocalFile(QStandardPaths::findExecutable( QLatin1String("octave-cli") ))</default>
+     </entry>
+     <entry name="integratePlots" type="Bool">
+       <label>Integrate Plots into the Worksheet</label>
+-- 
+2.1.4
+
diff --git a/test/data/test_ci_build_source/test_build_fail/source/README b/test/data/test_lint_merge_marker/test_lint/rules
similarity index 100%
copy from test/data/test_ci_build_source/test_build_fail/source/README
copy to test/data/test_lint_merge_marker/test_lint/rules
diff --git a/test/data/test_lint_merge_marker/test_lint/t.cpp b/test/data/test_lint_merge_marker/test_lint/t.cpp
new file mode 100644
index 0000000..69218d1
--- /dev/null
+++ b/test/data/test_lint_merge_marker/test_lint/t.cpp
@@ -0,0 +1 @@
+abc << yolo;
diff --git a/test/test_lint_merge_marker.rb b/test/test_lint_merge_marker.rb
new file mode 100644
index 0000000..b7047f4
--- /dev/null
+++ b/test/test_lint_merge_marker.rb
@@ -0,0 +1,22 @@
+require_relative '../lib/lint/merge_marker'
+require_relative 'lib/testcase'
+
+# Test lint merge markers
+module Lint
+  class MergeMarkerTest < TestCase
+    def test_init
+      c = Lint::MergeMarker.new
+      assert_equal(Dir.pwd, c.package_directory)
+      c = Lint::MergeMarker.new('/tmp')
+      assert_equal('/tmp', c.package_directory)
+    end
+
+    def test_lint
+      r = Lint::MergeMarker.new(data).lint
+      assert(r.valid)
+      assert_equal(1, r.errors.size)
+      assert_equal(0, r.warnings.size)
+      assert_equal(0, r.informations.size)
+    end
+  end
+end

-- 
ci-tooling packaging



More information about the pkg-kde-commits mailing list