mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-27 00:03:38 -04:00
use Travis to look for spelling errors
use silver searcher for faster search (instead of grep)
This commit is contained in:
parent
417a5cdba3
commit
90fc0bb226
@ -22,6 +22,7 @@ matrix:
|
|||||||
- llvm-toolchain-precise-3.8
|
- llvm-toolchain-precise-3.8
|
||||||
- ubuntu-toolchain-r-test
|
- ubuntu-toolchain-r-test
|
||||||
- george-edison55-precise-backports # doxygen 1.8.3
|
- george-edison55-precise-backports # doxygen 1.8.3
|
||||||
|
# - laurent-boulard-devtools not whitelisted yet https://github.com/travis-ci/apt-source-whitelist/pull/345
|
||||||
packages:
|
packages:
|
||||||
- doxygen
|
- doxygen
|
||||||
- bison
|
- bison
|
||||||
@ -36,12 +37,16 @@ matrix:
|
|||||||
- xvfb
|
- xvfb
|
||||||
- flip
|
- flip
|
||||||
- clang-3.8
|
- clang-3.8
|
||||||
|
# used for spell checks
|
||||||
|
# - silversearcher-ag not available in precise nor in a white listed ppa (in osgeo4travis as for now)
|
||||||
|
- expect-dev # unbuffer
|
||||||
# OSX based build with QT4 and Python 2
|
# OSX based build with QT4 and Python 2
|
||||||
# - os: osx
|
# - os: osx
|
||||||
# env:
|
# env:
|
||||||
# - BUILD=osx
|
# - BUILD=osx
|
||||||
# - IGNORE_BUILD_FAILURES=YES
|
# - IGNORE_BUILD_FAILURES=YES
|
||||||
|
|
||||||
|
|
||||||
git:
|
git:
|
||||||
depth: 30
|
depth: 30
|
||||||
|
|
||||||
@ -70,6 +75,7 @@ before_script:
|
|||||||
|
|
||||||
script:
|
script:
|
||||||
- ./ci/travis/${TRAVIS_OS_NAME}/script.sh
|
- ./ci/travis/${TRAVIS_OS_NAME}/script.sh
|
||||||
|
- ./ci/travis/check_spelling.sh
|
||||||
|
|
||||||
after_script:
|
after_script:
|
||||||
- ./ci/travis/${TRAVIS_OS_NAME}/after_script.sh
|
- ./ci/travis/${TRAVIS_OS_NAME}/after_script.sh
|
||||||
|
17
ci/travis/check_spelling.sh
Executable file
17
ci/travis/check_spelling.sh
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
export PATH=${HOME}/osgeo4travis/bin:${PATH}
|
||||||
|
|
||||||
|
|
||||||
|
echo "Spell check"
|
||||||
|
|
||||||
|
if [[ ! -z $TRAVIS_PULL_REQUEST_BRANCH ]]; then
|
||||||
|
# if on a PR, just analyse the changed files
|
||||||
|
echo "TRAVIS PR BRANCH: $TRAVIS_PULL_REQUEST_BRANCH"
|
||||||
|
FILES=$(git diff --name-only HEAD $(git merge-base HEAD master) | tr '\n' ' ' )
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
CODE=$(./scripts/chkspelling_ag.sh)
|
||||||
|
exit $CODE
|
@ -117,7 +117,7 @@ class QgsTask : QObject
|
|||||||
* Subtasks allow a single task to be created which
|
* Subtasks allow a single task to be created which
|
||||||
* consists of multiple smaller tasks. Subtasks are not visible or indepedently
|
* consists of multiple smaller tasks. Subtasks are not visible or indepedently
|
||||||
* controllable by users. Ownership of the subtask is transferred.
|
* controllable by users. Ownership of the subtask is transferred.
|
||||||
* Subtasks can have an optional list of dependant tasks, which must be completed
|
* Subtasks can have an optional list of dependent tasks, which must be completed
|
||||||
* before the subtask can begin. By default subtasks are considered independent
|
* before the subtask can begin. By default subtasks are considered independent
|
||||||
* of the parent task, ie they can be run either before, after, or at the same
|
* of the parent task, ie they can be run either before, after, or at the same
|
||||||
* time as the parent task. This behaviour can be overriden through the subTaskDependency
|
* time as the parent task. This behaviour can be overriden through the subTaskDependency
|
||||||
@ -286,7 +286,7 @@ class QgsTaskManager : QObject
|
|||||||
long addTask( QgsTask* task /Transfer/, int priority = 0 );
|
long addTask( QgsTask* task /Transfer/, int priority = 0 );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a task to the manager, using a full task definition (including dependancy
|
* Adds a task to the manager, using a full task definition (including dependency
|
||||||
* handling). Ownership of the task is transferred to the manager, and the task
|
* handling). Ownership of the task is transferred to the manager, and the task
|
||||||
* manager will be responsible for starting the task. The priority argument can
|
* manager will be responsible for starting the task. The priority argument can
|
||||||
* be used to control the run queue's order of execution.
|
* be used to control the run queue's order of execution.
|
||||||
|
@ -90,7 +90,7 @@ qgis:countuniquepointsinpolygon: >
|
|||||||
A new polygons layer is generated, with the exact same content as the input polygons layer, but containing an additional field with the points count corresponding to each polygon.
|
A new polygons layer is generated, with the exact same content as the input polygons layer, but containing an additional field with the points count corresponding to each polygon.
|
||||||
|
|
||||||
qgis:createattributeindex: >
|
qgis:createattributeindex: >
|
||||||
Creates an index to speed up queries made against a field in a table. Support for index creation is dependant on the layer's data provider and the field type.
|
Creates an index to speed up queries made against a field in a table. Support for index creation is dependent on the layer's data provider and the field type.
|
||||||
|
|
||||||
qgis:createconstantrasterlayer: >
|
qgis:createconstantrasterlayer: >
|
||||||
Given an input raster layer an a value, this algorithm generates a new layer with the same extent and cellsize as the input one, and all cells with the specified value.
|
Given an input raster layer an a value, this algorithm generates a new layer with the same extent and cellsize as the input one, and all cells with the specified value.
|
||||||
|
38
scripts/.agignore
Normal file
38
scripts/.agignore
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# Folders
|
||||||
|
.build*/
|
||||||
|
ci/
|
||||||
|
debian/build.*/
|
||||||
|
debian/build*/
|
||||||
|
debian/.*/usr/
|
||||||
|
i18n/
|
||||||
|
ms-windows/osgeo4w/
|
||||||
|
python/ext-libs/
|
||||||
|
python/plugins/processing/algs/otb/
|
||||||
|
python/plugins/processing/algs/saga/
|
||||||
|
python/qsci_apis/
|
||||||
|
src/app/dwg/libdxfrw/
|
||||||
|
src/app/gps/qwtpolar-1.0/
|
||||||
|
src/app/gps/qwtpolar-1.1.1/
|
||||||
|
src/plugins/grass/qtermwidget/
|
||||||
|
|
||||||
|
#Extensions
|
||||||
|
*.*.orig
|
||||||
|
*.*.sortinc
|
||||||
|
*.*.prepare
|
||||||
|
|
||||||
|
|
||||||
|
#Specific files
|
||||||
|
ChangeLog
|
||||||
|
Exception_to_GPL_for_Qt.txt
|
||||||
|
images/themes/default/svgbase/hammer.svg
|
||||||
|
images/themes/default/propertyicons/general.svg
|
||||||
|
LexerR.py
|
||||||
|
spelling.dat
|
||||||
|
resources/cpt-city-qgis-min/fme/metres/DESC.xml
|
||||||
|
resources/cpt-city-qgis-min/wkp/schwarzwald/COPYING.xml
|
||||||
|
tests/src/python/test_qgsserver_accesscontrol.py
|
||||||
|
tests/testdata/qgis_server/ets-wms13/project.qgs
|
||||||
|
tests/testdata/qgis_server_accesscontrol/project.qgs
|
||||||
|
tests/testdata/qgis_server_accesscontrol/Hello.qml
|
||||||
|
|
||||||
|
|
39
scripts/chkspelling_ag.sh
Executable file
39
scripts/chkspelling_ag.sh
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
###########################################################################
|
||||||
|
# chkspelling.sh
|
||||||
|
# ---------------------
|
||||||
|
# Date : December 2016
|
||||||
|
# Copyright : (C) 2016 by Denis Rouzaud
|
||||||
|
# Email : denis.rouzaud@gmail.com
|
||||||
|
###########################################################################
|
||||||
|
# #
|
||||||
|
# This program is free software; you can redistribute it and/or modify #
|
||||||
|
# it under the terms of the GNU General Public License as published by #
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or #
|
||||||
|
# (at your option) any later version. #
|
||||||
|
# #
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
# optional arguments: files to be checked
|
||||||
|
|
||||||
|
|
||||||
|
RE=$(cut -d: -f1 scripts/spelling.dat | tr '\n' '\|' | sed -e 's/|$//')
|
||||||
|
if [ ! $# -eq 0 ]; then
|
||||||
|
EXCLUDE=$(cat ci/travis/.agignore | sed -e 's/\s*#.*$//' -e '/^\s*$/d' | tr '\n' '|' | sed -e 's/|$//')
|
||||||
|
FILES=$(echo $@ | tr -s '[[:blank:]]' '\n' | egrep -iv "$EXCLUDE" | tr '\n' ' ' )
|
||||||
|
echo "Running spell check on files: $FILES"
|
||||||
|
else
|
||||||
|
FILES="."
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
exec 5>&1
|
||||||
|
OUTPUT=$(ag --smart-case --all-text --nopager --numbers --word-regexp --path-to-ignore scripts/.agignore "$RE" $FILES |tee /dev/fd/5)
|
||||||
|
|
||||||
|
|
||||||
|
if [[ ! -z $OUTPUT ]]; then
|
||||||
|
echo "Spelling errors have been found"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
exit 0
|
||||||
|
fi
|
@ -21,20 +21,20 @@ PATH=$TOPLEVEL/scripts:$PATH
|
|||||||
cd $TOPLEVEL
|
cd $TOPLEVEL
|
||||||
|
|
||||||
if ! type -p astyle.sh >/dev/null; then
|
if ! type -p astyle.sh >/dev/null; then
|
||||||
echo astyle.sh not found
|
echo astyle.sh not found
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! type -p colordiff >/dev/null; then
|
if ! type -p colordiff >/dev/null; then
|
||||||
colordiff()
|
colordiff()
|
||||||
{
|
{
|
||||||
cat "$@"
|
cat "$@"
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$1" = "-c" ]; then
|
if [ "$1" = "-c" ]; then
|
||||||
echo "Cleaning..."
|
echo "Cleaning..."
|
||||||
remove_temporary_files.sh
|
remove_temporary_files.sh
|
||||||
fi
|
fi
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
@ -42,9 +42,15 @@ set -e
|
|||||||
# determine changed files
|
# determine changed files
|
||||||
MODIFIED=$(git status --porcelain| sed -ne "s/^ *[MA] *//p" | sort -u)
|
MODIFIED=$(git status --porcelain| sed -ne "s/^ *[MA] *//p" | sort -u)
|
||||||
|
|
||||||
|
CODE=$(./$TOPLEVEL/scripts/chkspelling_ag.sh $MODIFIED)
|
||||||
|
if [ code -eq 1]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
if [ -z "$MODIFIED" ]; then
|
if [ -z "$MODIFIED" ]; then
|
||||||
echo nothing was modified
|
echo nothing was modified
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# save original changes
|
# save original changes
|
||||||
@ -58,42 +64,42 @@ ASTYLEDIFF=astyle.$REV.diff
|
|||||||
i=0
|
i=0
|
||||||
N=$(echo $MODIFIED | wc -w)
|
N=$(echo $MODIFIED | wc -w)
|
||||||
for f in $MODIFIED; do
|
for f in $MODIFIED; do
|
||||||
(( i++ )) || true
|
(( i++ )) || true
|
||||||
|
|
||||||
case "$f" in
|
case "$f" in
|
||||||
src/core/gps/qextserialport/*|src/plugins/globe/osgEarthQt/*|src/plugins/globe/osgEarthUtil/*)
|
src/core/gps/qextserialport/*|src/plugins/globe/osgEarthQt/*|src/plugins/globe/osgEarthUtil/*)
|
||||||
echo $f skipped
|
echo $f skipped
|
||||||
continue
|
continue
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*.cpp|*.c|*.h|*.cxx|*.hxx|*.c++|*.h++|*.cc|*.hh|*.C|*.H|*.sip|*.py)
|
*.cpp|*.c|*.h|*.cxx|*.hxx|*.c++|*.h++|*.cc|*.hh|*.C|*.H|*.sip|*.py)
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
continue
|
continue
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
m=$f.$REV.prepare
|
m=$f.$REV.prepare
|
||||||
|
|
||||||
cp $f $m
|
cp $f $m
|
||||||
ASTYLEPROGRESS=" [$i/$N]" astyle.sh $f
|
ASTYLEPROGRESS=" [$i/$N]" astyle.sh $f
|
||||||
if diff -u $m $f >>$ASTYLEDIFF; then
|
if diff -u $m $f >>$ASTYLEDIFF; then
|
||||||
# no difference found
|
# no difference found
|
||||||
rm $m
|
rm $m
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ -s "$ASTYLEDIFF" ]; then
|
if [ -s "$ASTYLEDIFF" ]; then
|
||||||
if tty -s; then
|
if tty -s; then
|
||||||
# review astyle changes
|
# review astyle changes
|
||||||
colordiff <$ASTYLEDIFF | less -r
|
colordiff <$ASTYLEDIFF | less -r
|
||||||
else
|
else
|
||||||
echo "Files changed (see $ASTYLEDIFF)"
|
echo "Files changed (see $ASTYLEDIFF)"
|
||||||
fi
|
fi
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
rm $ASTYLEDIFF
|
rm $ASTYLEDIFF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -313,6 +313,8 @@ optionnal:optional
|
|||||||
optmizations:optimizations
|
optmizations:optimizations
|
||||||
orientatied:orientated
|
orientatied:orientated
|
||||||
orientied:oriented
|
orientied:oriented
|
||||||
|
orthagonal:orthogonal
|
||||||
|
orthagonalize:orthogonalize
|
||||||
overaall:overall
|
overaall:overall
|
||||||
overidden:overridden
|
overidden:overridden
|
||||||
overide:override
|
overide:override
|
||||||
|
@ -626,7 +626,7 @@ void QgsTaskManager::taskStatusChanged( int status )
|
|||||||
|
|
||||||
if ( status == QgsTask::Terminated )
|
if ( status == QgsTask::Terminated )
|
||||||
{
|
{
|
||||||
//recursively cancel dependant tasks
|
//recursively cancel dependent tasks
|
||||||
cancelDependentTasks( id );
|
cancelDependentTasks( id );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -790,9 +790,9 @@ void QgsTaskManager::cancelDependentTasks( long taskId )
|
|||||||
{
|
{
|
||||||
if ( it.value().contains( cancelledTask ) )
|
if ( it.value().contains( cancelledTask ) )
|
||||||
{
|
{
|
||||||
// found task with this dependancy
|
// found task with this dependency
|
||||||
|
|
||||||
// cancel it - note that this will be recursive, so any tasks dependant
|
// cancel it - note that this will be recursive, so any tasks dependent
|
||||||
// on this one will also be cancelled
|
// on this one will also be cancelled
|
||||||
QgsTask* dependentTask = task( it.key() );
|
QgsTask* dependentTask = task( it.key() );
|
||||||
if ( dependentTask )
|
if ( dependentTask )
|
||||||
|
@ -148,7 +148,7 @@ class CORE_EXPORT QgsTask : public QObject
|
|||||||
* Subtasks allow a single task to be created which
|
* Subtasks allow a single task to be created which
|
||||||
* consists of multiple smaller tasks. Subtasks are not visible or indepedently
|
* consists of multiple smaller tasks. Subtasks are not visible or indepedently
|
||||||
* controllable by users. Ownership of the subtask is transferred.
|
* controllable by users. Ownership of the subtask is transferred.
|
||||||
* Subtasks can have an optional list of dependant tasks, which must be completed
|
* Subtasks can have an optional list of dependent tasks, which must be completed
|
||||||
* before the subtask can begin. By default subtasks are considered independent
|
* before the subtask can begin. By default subtasks are considered independent
|
||||||
* of the parent task, ie they can be run either before, after, or at the same
|
* of the parent task, ie they can be run either before, after, or at the same
|
||||||
* time as the parent task. This behaviour can be overriden through the subTaskDependency
|
* time as the parent task. This behaviour can be overriden through the subTaskDependency
|
||||||
@ -381,7 +381,7 @@ class CORE_EXPORT QgsTaskManager : public QObject
|
|||||||
long addTask( QgsTask* task, int priority = 0 );
|
long addTask( QgsTask* task, int priority = 0 );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a task to the manager, using a full task definition (including dependancy
|
* Adds a task to the manager, using a full task definition (including dependency
|
||||||
* handling). Ownership of the task is transferred to the manager, and the task
|
* handling). Ownership of the task is transferred to the manager, and the task
|
||||||
* manager will be responsible for starting the task. The priority argument can
|
* manager will be responsible for starting the task. The priority argument can
|
||||||
* be used to control the run queue's order of execution, with larger numbers
|
* be used to control the run queue's order of execution, with larger numbers
|
||||||
|
@ -202,7 +202,7 @@ class TestQgsTaskManager : public QObject
|
|||||||
void allTasksFinished();
|
void allTasksFinished();
|
||||||
void activeTasks();
|
void activeTasks();
|
||||||
void holdTask();
|
void holdTask();
|
||||||
void dependancies();
|
void dependencies();
|
||||||
void layerDependencies();
|
void layerDependencies();
|
||||||
void managerWithSubTasks();
|
void managerWithSubTasks();
|
||||||
void managerWithSubTasks2();
|
void managerWithSubTasks2();
|
||||||
@ -923,11 +923,11 @@ void TestQgsTaskManager::holdTask()
|
|||||||
task->cancel();
|
task->cancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestQgsTaskManager::dependancies()
|
void TestQgsTaskManager::dependencies()
|
||||||
{
|
{
|
||||||
QgsTaskManager manager;
|
QgsTaskManager manager;
|
||||||
|
|
||||||
//test that cancelling tasks cancels all tasks which are dependant on them
|
//test that cancelling tasks cancels all tasks which are dependent on them
|
||||||
CancelableTask* task = new CancelableTask();
|
CancelableTask* task = new CancelableTask();
|
||||||
task->hold();
|
task->hold();
|
||||||
CancelableTask* childTask = new CancelableTask();
|
CancelableTask* childTask = new CancelableTask();
|
||||||
@ -952,7 +952,7 @@ void TestQgsTaskManager::dependancies()
|
|||||||
QCOMPARE( childTask->status(), QgsTask::Terminated );
|
QCOMPARE( childTask->status(), QgsTask::Terminated );
|
||||||
QCOMPARE( task->status(), QgsTask::Terminated );
|
QCOMPARE( task->status(), QgsTask::Terminated );
|
||||||
|
|
||||||
// test that tasks are queued until dependancies are resolved
|
// test that tasks are queued until dependencies are resolved
|
||||||
task = new CancelableTask();
|
task = new CancelableTask();
|
||||||
childTask = new CancelableTask();
|
childTask = new CancelableTask();
|
||||||
childTask->hold();
|
childTask->hold();
|
||||||
@ -1023,7 +1023,7 @@ void TestQgsTaskManager::layerDependencies()
|
|||||||
|
|
||||||
QgsTaskManager manager;
|
QgsTaskManager manager;
|
||||||
|
|
||||||
//test that remove layers cancels all tasks which are dependant on them
|
//test that remove layers cancels all tasks which are dependent on them
|
||||||
TestTask* task = new TestTask();
|
TestTask* task = new TestTask();
|
||||||
task->hold();
|
task->hold();
|
||||||
task->setDependentLayers( QStringList() << layer2->id() << layer3->id() );
|
task->setDependentLayers( QStringList() << layer2->id() << layer3->id() );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user