[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