Commit 439b4c98 authored by Bas Couwenberg's avatar Bas Couwenberg

Imported Upstream version 2.4.1

parent 5ddb51c7
......@@ -212,7 +212,7 @@ endif()
set(PGROUTING_VERSION_MAJOR "2")
set(PGROUTING_VERSION_MINOR "4")
set(PGROUTING_VERSION_PATCH "0")
set(PGROUTING_VERSION_PATCH "1")
set(PGROUTING_VERSION_DEV "")
set(PGROUTING_SHORT_VERSION "${PGROUTING_VERSION_MAJOR}.${PGROUTING_VERSION_MINOR}")
......
Changes for 2.4.1
-------------------------------------------------------------------------------
* Bug fixes
* fixed compiling error on macOS
* Condition error on pgr_withPoints
Changes for 2.4.0
-------------------------------------------------------------------------------
......
4681-6cf07edf1 master
4691-722e04e03 master
......@@ -18,6 +18,7 @@ To see the full list of changes check the list of `Git commits <https://github.c
.. changelog start
* :ref:`changelog_2_4_1`
* :ref:`changelog_2_4_0`
* :ref:`changelog_2_3_2`
* :ref:`changelog_2_3_1`
......@@ -34,6 +35,16 @@ To see the full list of changes check the list of `Git commits <https://github.c
.. changelog end
.. _changelog_2_4_1:
pgRouting 2.4.1 Release Notes
-------------------------------------------------------------------------------
.. rubric:: Bug fix
* Fixed compiling error on macOS
* Condition error on pgr_withPoints
.. _changelog_2_4_0:
pgRouting 2.4.0 Release Notes
......
......@@ -81,7 +81,7 @@ class Pgr_bdDijkstra {
}
std::string log() const {return m_log.str();}
void clean_log() {log.clear();}
void clean_log() {m_log.clear();}
void clear() {
while (!forward_queue.empty()) forward_queue.pop();
while (!backward_queue.empty()) backward_queue.pop();
......
......@@ -111,7 +111,7 @@ Now we can analyze the network.
OK
(1 row)
The analysis tell us that the network has a gap and and an intersection. We try to fix the problem using:
The analysis tell us that the network has a gap and an intersection. We try to fix the problem using:
.. code-block:: sql
......
......@@ -108,9 +108,8 @@ do_pgr_many_to_many_withPoints(
pgassert(!(*err_msg));
pgassert(!(*return_tuples));
pgassert((*return_count) == 0);
pgassert(edges);
pgassert(edges || edges_of_points);
pgassert(points_p);
pgassert(edges_of_points);
pgassert(start_pidsArr);
pgassert(end_pidsArr);
......
#VERSION pgrouting 2.4.1
#TYPES
pgr_costresult
pgr_costresult3
pgr_geomresult
#FUNCTIONS
pgr_alphashape(text,double precision)
pgr_analyzegraph(text,double precision,text,text,text,text,text)
pgr_analyzeoneway(text,text[],text[],text[],text[],boolean,text,text,text)
pgr_apspjohnson(text)
pgr_apspwarshall(text,boolean,boolean)
pgr_astarcostmatrix(text,anyarray,boolean,integer,double precision,double precision)
pgr_astarcost(text,anyarray,anyarray,boolean,integer,double precision,double precision)
pgr_astarcost(text,anyarray,bigint,boolean,integer,double precision,double precision)
pgr_astarcost(text,bigint,anyarray,boolean,integer,double precision,double precision)
pgr_astarcost(text,bigint,bigint,boolean,integer,double precision,double precision)
pgr_astar(text,anyarray,anyarray,boolean,integer,double precision,double precision)
_pgr_astar(text,anyarray,anyarray,boolean,integer,double precision,double precision,boolean)
pgr_astar(text,anyarray,bigint,boolean,integer,double precision,double precision)
_pgr_astar(text,anyarray,bigint,boolean,integer,double precision,double precision,boolean)
pgr_astar(text,bigint,anyarray,boolean,integer,double precision,double precision)
_pgr_astar(text,bigint,anyarray,boolean,integer,double precision,double precision,boolean)
pgr_astar(text,bigint,bigint,boolean,integer,double precision,double precision)
_pgr_astar(text,bigint,bigint,boolean,integer,double precision,double precision,boolean)
pgr_astar(text,integer,integer,boolean,boolean)
pgr_bdastar(text,integer,integer,boolean,boolean)
pgr_bddijkstra(text,bigint,bigint)
pgr_bddijkstra(text,bigint,bigint,boolean)
_pgr_bddijkstra(text,bigint,bigint,boolean,boolean)
pgr_bddijkstra(text,integer,integer,boolean,boolean)
_pgr_checkverttab(text,text[],integer,text)
pgr_contractgraph(text,bigint[],integer,bigint[],boolean)
_pgr_createindex(text,text,text,integer,text)
_pgr_createindex(text,text,text,text,integer,text)
pgr_createtopology(text,double precision,text,text,text,text,text,boolean)
pgr_createverticestable(text,text,text,text,text)
pgr_dijkstracostmatrix(text,anyarray,boolean)
pgr_dijkstracost(text,anyarray,anyarray,boolean)
pgr_dijkstracost(text,anyarray,bigint,boolean)
pgr_dijkstracost(text,bigint,anyarray,boolean)
pgr_dijkstracost(text,bigint,bigint,boolean)
pgr_dijkstra(text,anyarray,anyarray,boolean)
_pgr_dijkstra(text,anyarray,anyarray,boolean,boolean)
pgr_dijkstra(text,anyarray,bigint,boolean)
_pgr_dijkstra(text,anyarray,bigint,boolean,boolean)
pgr_dijkstra(text,bigint,anyarray,boolean)
_pgr_dijkstra(text,bigint,anyarray,boolean,boolean)
pgr_dijkstra(text,bigint,bigint)
pgr_dijkstra(text,bigint,bigint,boolean)
_pgr_dijkstra(text,bigint,bigint,boolean,boolean)
pgr_dijkstra(text,integer,integer,boolean,boolean)
pgr_dijkstravia(text,anyarray,boolean,boolean,boolean)
pgr_drivingdistance(text,anyarray,double precision,boolean,boolean)
pgr_drivingdistance(text,bigint,double precision,boolean)
pgr_drivingdistance(text,bigint,double precision,boolean,boolean)
pgr_edgedisjointpaths(text,anyarray,anyarray,boolean)
pgr_edgedisjointpaths(text,anyarray,bigint,boolean)
pgr_edgedisjointpaths(text,bigint,anyarray,boolean)
pgr_edgedisjointpaths(text,bigint,bigint,boolean)
_pgr_endpoint(geometry)
pgr_endpoint(geometry)
pgr_euclediantsp(text,bigint,bigint,double precision,integer,integer,integer,double precision,double precision,double precision,boolean)
pgr_flipedges(geometry[])
pgr_floydwarshall(text,boolean)
pgr_getcolumnname(text,text)
_pgr_getcolumnname(text,text,integer,text)
_pgr_getcolumnname(text,text,text,integer,text)
_pgr_getcolumntype(text,text,integer,text)
_pgr_getcolumntype(text,text,text,integer,text)
_pgr_get_statement(text)
pgr_gettablename(text)
_pgr_gettablename(text,integer,text)
pgr_gsoc_vrppdtw(text,integer,integer)
pgr_iscolumnindexed(text,text)
_pgr_iscolumnindexed(text,text,integer,text)
_pgr_iscolumnindexed(text,text,text,integer,text)
_pgr_iscolumnintable(text,text)
pgr_iscolumnintable(text,text)
pgr_johnson(text,boolean)
pgr_kdijkstracost(text,integer,integer[],boolean,boolean)
pgr_kdijkstrapath(text,integer,integer[],boolean,boolean)
_pgr_ksp(text,bigint,bigint,integer,boolean,boolean)
pgr_ksp(text,bigint,bigint,integer,boolean,boolean)
pgr_ksp(text,integer,integer,integer,boolean)
pgr_labelgraph(text,text,text,text,text,text)
_pgr_makedistancematrix(text)
pgr_maxflowboykovkolmogorov(text,anyarray,anyarray)
pgr_maxflowboykovkolmogorov(text,anyarray,bigint)
pgr_maxflowboykovkolmogorov(text,bigint,anyarray)
pgr_maxflowboykovkolmogorov(text,bigint,bigint)
pgr_maxflowedmondskarp(text,anyarray,anyarray)
pgr_maxflowedmondskarp(text,anyarray,bigint)
pgr_maxflowedmondskarp(text,bigint,anyarray)
pgr_maxflowedmondskarp(text,bigint,bigint)
pgr_maxflowpushrelabel(text,anyarray,anyarray)
pgr_maxflowpushrelabel(text,anyarray,bigint)
pgr_maxflowpushrelabel(text,bigint,anyarray)
pgr_maxflowpushrelabel(text,bigint,bigint)
pgr_maxflow(text,anyarray,anyarray)
_pgr_maxflow(text,anyarray,anyarray,text,boolean)
pgr_maxflow(text,anyarray,bigint)
_pgr_maxflow(text,anyarray,bigint,text,boolean)
pgr_maxflow(text,bigint,anyarray)
_pgr_maxflow(text,bigint,anyarray,text,boolean)
pgr_maxflow(text,bigint,bigint)
_pgr_maxflow(text,bigint,bigint,text,boolean)
pgr_maximumcardinalitymatching(text,boolean)
_pgr_msg(integer,text,text)
pgr_nodenetwork(text,double precision,text,text,text,text,boolean)
_pgr_onerror(boolean,integer,text,text,text,text)
_pgr_parameter_check(text,text,boolean)
_pgr_pickdeliver(text,integer,double precision,double precision,integer)
pgr_pointsaspolygon(character varying,double precision)
pgr_pointstodmatrix(geometry[],integer)
pgr_pointstovids(geometry[],text,double precision)
pgr_pointtoedgenode(text,geometry,double precision)
_pgr_pointtoid(geometry,double precision,text,integer)
_pgr_quote_ident(text)
pgr_quote_ident(text)
_pgr_startpoint(geometry)
pgr_startpoint(geometry)
pgr_texttopoints(text,integer)
_pgr_trsp(text,integer,double precision,integer,double precision,boolean,boolean,text)
pgr_trsp(text,integer,double precision,integer,double precision,boolean,boolean,text)
_pgr_trsp(text,integer,integer,boolean,boolean,text)
pgr_trsp(text,integer,integer,boolean,boolean,text)
pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)
pgr_trspviavertices(text,anyarray,boolean,boolean,text)
_pgr_trspviavertices(text,integer[],boolean,boolean,text)
pgr_tsp(double precision[],integer,integer)
pgr_tsp(text,bigint,bigint,double precision,integer,integer,integer,double precision,double precision,double precision,boolean)
pgr_tsp(text,integer,integer)
_pgr_unnest_matrix(double precision[])
pgr_version()
_pgr_versionless(text,text)
pgr_versionless(text,text)
pgr_vidstodmatrix(integer[],geometry[],text,double precision)
pgr_vidstodmatrix(text,integer[],boolean,boolean,boolean)
pgr_vrponedepot(text,text,text,integer)
pgr_withpointscostmatrix(text,text,anyarray,boolean,character)
pgr_withpointscost(text,text,anyarray,anyarray,boolean,character)
pgr_withpointscost(text,text,anyarray,bigint,boolean,character)
pgr_withpointscost(text,text,bigint,anyarray,boolean,character)
pgr_withpointscost(text,text,bigint,bigint,boolean,character)
pgr_withpointsdd(text,text,anyarray,double precision,boolean,character,boolean,boolean)
pgr_withpointsdd(text,text,bigint,double precision,boolean,character,boolean)
pgr_withpointsksp(text,text,bigint,bigint,integer,boolean,boolean,character,boolean)
pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean)
_pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean)
pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean)
_pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean)
pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean)
_pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean)
pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean)
_pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean)
_pgr_withpointsvia(text,bigint[],double precision[],boolean)
......@@ -5,53 +5,60 @@ set -e
if [[ -z $1 ]]; then
echo "Mayor missing";
echo "Usage"
echo "tools/release-scripts/release-check.sh Mayor Minor Micro Last";
echo "tools/release-scripts/release-check.sh Mayor Minor Micro Last [branch]";
exit 1;
fi
if [[ -z $2 ]]; then
echo "Minor missing";
echo "Usage"
echo "tools/release-scripts/release-check.sh Mayor Minor Micro Last";
echo "tools/release-scripts/release-check.sh Mayor Minor Micro Last [branch]";
exit 1;
fi
if [[ -z $3 ]]; then
echo "Micro missing";
echo "Usage"
echo "tools/release-scripts/release-check.sh Mayor Minor Micro Last";
echo "tools/release-scripts/release-check.sh Mayor Minor Micro Last [branch]";
exit 1;
fi
if [[ -z $4 ]]; then
echo "Last Micro missing";
echo "Usage"
echo "tools/release-scripts/release-check.sh Mayor Minor Micro Last";
echo "tools/release-scripts/release-check.sh Mayor Minor Micro Last [branch]";
exit 1;
fi
MAYOR=$1
MINOR=$2
MICRO=0
MICRO=$3
PREV_REL=$4
RC=""
if [[ -z $5 ]]; then
BRANCH="release/$MAYOR.$MINOR"
else
BRANCH=$5
fi
#---------------------------------------------------------------------
echo "### Verify branch to be release/$MAYOR.$MINOR"
echo "### Verify branch to be $BRANCH"
echo
#---------------------------------------------------------------------
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
echo "- [x] Working Branch: release/$MAYOR.$MINOR";
GIT_BRANCH="$(git rev-parse --abbrev-ref HEAD)"
echo "- [x] Working Branch: $BRANCH";
echo
if [[ "release/$MAYOR.$MINOR" == "$BRANCH" ]]; then
if [[ "$GIT_BRANCH" == "$BRANCH" ]]; then
echo " - [x] Already in branch $BRANCH";
else
echo " - Current Branch: $BRANCH";
echo " - [x] Changing to branch $BRANCH";
echo "\`\`\`"
echo git checkout release/$MAYOR.$MINOR
echo git checkout $BRANCH
echo "\`\`\`"
git checkout release/$MAYOR.$MINOR
exit 1
fi
#---------------------------------------------------------------------
......@@ -171,7 +178,7 @@ fi
echo "- [x] Check patch information"
echo "\`\`\`"
echo "cat CMakeLists.txt | grep 'set(PGROUTING_VERSION_PATCH \"0\")'"
echo "cat CMakeLists.txt | grep 'set(PGROUTING_VERSION_PATCH \"$MICRO\")'"
echo "\`\`\`"
if [[ $(cat CMakeLists.txt | grep 'set(PGROUTING_VERSION_PATCH' | grep $MICRO) != "set(PGROUTING_VERSION_PATCH \"$MICRO\")" ]]; then
echo "FATAL: PGROUTING_VERSION_PATCH is not $MICRO"
......@@ -180,7 +187,6 @@ else
echo
fi
echo "- [x] Check dev information"
echo "\`\`\`"
echo "cat CMakeLists.txt | grep 'set(PGROUTING_VERSION_DEV \"$RC\")'"
echo "\`\`\`"
......@@ -188,6 +194,7 @@ if [[ $(cat CMakeLists.txt | grep 'set(PGROUTING_VERSION_DEV' ) != "set(PGROUTI
echo "FATAL: PGROUTING_VERSION_DEV is not $RC"
exit 1
else
echo "- [x] Check dev information"
echo
fi
......@@ -206,6 +213,7 @@ if [[ $(cat doc/test/utilities-any.result | grep "$MAYOR.$MINOR.$MICRO") != "$MA
exit 1
else
echo "- [x] pgr_version result: OK"
echo
fi
echo "\`\`\`"
......@@ -213,9 +221,10 @@ echo "cat VERSION | grep \"release/$MAYOR.$MINOR\""
echo "\`\`\`"
if [[ $(cat VERSION | grep "release/$MAYOR.$MINOR") != *"release/$MAYOR.$MINOR" ]]; then
echo "FATAL: VERSION branch should be release/$MAYOR.$MINOR"
#exit 1
exit 1
else
echo " -[x] VERSION file branch: OK"
echo
fi
#---------------------------------------------------------------------
......@@ -231,6 +240,7 @@ fi
#---------------------------------------------------------------------
echo "### Checking signature files"
test_file 2.4.0
test_file 2.3.2
test_file 2.3.1
test_file 2.3.0
......@@ -248,42 +258,38 @@ test_file 2.0.0
echo "### Locally make a clean build as Release"
#---------------------------------------------------------------------
echo "\`\`\`"
echo "sudo rm -f /usr/lib/postgresql/9.3/lib/libpgrouting-2.4.so"
echo "sudo rm -f /usr/share/postgresql/9.3/extension/pgrouting*2.4.0*"
echo "rm -rf build"
echo cd build
echo cmake -DWITH_DOC=ON -DBUILD_DOXY=ON -DCMAKE_BUILD_TYPE=Release ..
echo make
echo sudo make install
echo make doc
echo make doxy
echo cd ..
echo "bash tools/release-scripts/compile-release.sh 5 $MAYOR.$MINOR $MICRO"
echo "bash tools/release-scripts/compile-release.sh 4.9 $MAYOR.$MINOR $MICRO"
echo "bash tools/release-scripts/compile-release.sh 4.6 $MAYOR.$MINOR $MICRO"
echo "bash tools/release-scripts/compile-release.sh 4.8 $MAYOR.$MINOR $MICRO"
echo "\`\`\`"
echo - [x] completed local builds
bash tools/release-scripts/compile-release.sh 5
bash tools/release-scripts/compile-release.sh 4.9
bash tools/release-scripts/compile-release.sh 4.6
bash tools/release-scripts/compile-release.sh 4.8
bash tools/release-scripts/compile-release.sh 5 $MAYOR.$MINOR $MICRO
bash tools/release-scripts/compile-release.sh 4.9 $MAYOR.$MINOR $MICRO
bash tools/release-scripts/compile-release.sh 4.6 $MAYOR.$MINOR $MICRO
bash tools/release-scripts/compile-release.sh 4.8 $MAYOR.$MINOR $MICRO
echo - [x] completed local builds
#---------------------------------------------------------------------
echo "### checking the signature files dont change"
#---------------------------------------------------------------------
sh tools/release-scripts/get_signatures.sh 2.4.0 ___sig_generate___ curr-sig > build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.3.2 ___sig_generate___ sigs > build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.3.1 ___sig_generate___ sigs > build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.3.0 ___sig_generate___ sigs > build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.2.4 ___sig_generate___ sigs > build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.2.3 ___sig_generate___ sigs > build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.2.2 ___sig_generate___ sigs > build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.2.1 ___sig_generate___ sigs > build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.2.0 ___sig_generate___ sigs > build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.1.0 ___sig_generate___ sigs > build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.4.1 ___sig_generate___ curr-sig >> build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.4.0 ___sig_generate___ sigs >> build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.3.2 ___sig_generate___ sigs >> build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.3.1 ___sig_generate___ sigs >> build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.3.0 ___sig_generate___ sigs >> build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.2.4 ___sig_generate___ sigs >> build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.2.3 ___sig_generate___ sigs >> build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.2.2 ___sig_generate___ sigs >> build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.2.1 ___sig_generate___ sigs >> build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.2.0 ___sig_generate___ sigs >> build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.1.0 ___sig_generate___ sigs >> build/tmp_sigs.txt
#version 2.0.1 can not be upgraded
#sh tools/release-scripts/get_signatures.sh 2.0.1 ___sig_generate___ sigs > build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.0.0 ___sig_generate___ sigs > build/tmp_sigs.txt
#sh tools/release-scripts/get_signatures.sh 2.0.1 ___sig_generate___ sigs >> build/tmp_sigs.txt
sh tools/release-scripts/get_signatures.sh 2.0.0 ___sig_generate___ sigs >> build/tmp_sigs.txt
echo
echo - [x] completed check: OK
......
......@@ -3,6 +3,9 @@
set -e
CPPVERSION=$1
MINOR=$2
MICRO=$3
FULL_VER="$MINOR.$MICRO"
function test_compile {
......@@ -14,37 +17,41 @@ echo ------------------------------------
sudo update-alternatives --set gcc /usr/bin/gcc-$1
cd build/
cmake -DWITH_DOC=ON -DBUILD_DOXY=ON -DCMAKE_BUILD_TYPE=Release .. > tmp_cmake.txt
make > tmp_make.txt 2>tmp_make_err.txt
sudo make install > tmp_make_install.txt
cp lib/pgrouting--2.4.0.sig ../tools/curr-sig/
touch tmp_make.txt
touch tmp_make_err.txt
cmake -DDOC_USE_BOOTSTRAP=ON -DWITH_DOC=ON -DBUILD_DOXY=ON -DCMAKE_BUILD_TYPE=Release .. >> tmp_make.txt
make >> tmp_make.txt 2>>tmp_make_err.txt
sudo make install >> tmp_make.txt
cp lib/pgrouting--$FULL_VER.sig ../tools/curr-sig/
cd ..
echo " - [x] Compilation OK"
tools/testers/algorithm-tester.pl > build/tmp_tests.txt
tools/testers/algorithm-tester.pl >> build/tmp_make.txt
echo " - [x] Documentation tests OK"
dropdb --if-exists ___pgr___test___
createdb ___pgr___test___
sh ./tools/testers/pg_prove_tests.sh vicky > build/tmp_pgtap.txt
sh ./tools/testers/pg_prove_tests.sh vicky >> build/tmp_make.txt
dropdb ___pgr___test___
echo ' - [x] Pgtap tests OK'
if [[ "$1" == "4.8" ]]; then
cd build
make doc
make doc >> tmp_make.txt
echo " - [x] Build Users documentation OK"
make doxy
make doxy >> tmp_make.txty
echo " - [x] Build developers documentation OK"
cd ..
fi
}
sudo rm -f /usr/lib/postgresql/9.3/lib/libpgrouting-2.4.so
sudo rm -f /usr/share/postgresql/9.3/extension/pgrouting*2.4.0*
sudo rm -f /usr/lib/postgresql/9.3/lib/libpgrouting-$MINOR.so
sudo rm -f /usr/share/postgresql/9.3/extension/pgrouting*$FULL_VER*
rm -rf build/*
test_compile $CPPVERSION
......
......@@ -39,7 +39,7 @@ echo -
# bash tools/testers/update-tester.sh
#
CURRENT=2.4.0
CURRENT=2.4.1
function update_test {
set -e
......@@ -75,6 +75,12 @@ dropdb ___test_update
### updates from 2.3.0
#------------------------------------
update_test 2.4.0 $CURRENT
#------------------------------------
### updates from 2.3.0
#------------------------------------
update_test 2.3.2 $CURRENT
update_test 2.3.1 $CURRENT
update_test 2.3.0 $CURRENT
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment