Skip to content

Commit a5bb5b8

Browse files
authored
Merge branch 'master' into feature/add-ora-all-tab-columns
2 parents b58e6d8 + 479acbd commit a5bb5b8

File tree

493 files changed

+42644
-38039
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

493 files changed

+42644
-38039
lines changed

.cirrus.star

Lines changed: 82 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ https://github.com/bazelbuild/starlark/blob/master/spec.md
77
See also .cirrus.yml and src/tools/ci/README
88
"""
99

10-
load("cirrus", "env", "fs")
10+
load("cirrus", "env", "fs", "re", "yaml")
1111

1212

1313
def main():
@@ -18,27 +18,44 @@ def main():
1818
1919
1) the contents of .cirrus.yml
2020
21-
2) if defined, the contents of the file referenced by the, repository
21+
2) computed environment variables
22+
23+
3) if defined, the contents of the file referenced by the, repository
2224
level, REPO_CI_CONFIG_GIT_URL variable (see
2325
https://cirrus-ci.org/guide/programming-tasks/#fs for the accepted
2426
format)
2527
26-
3) .cirrus.tasks.yml
28+
4) .cirrus.tasks.yml
2729
"""
2830

2931
output = ""
3032

3133
# 1) is evaluated implicitly
3234

35+
3336
# Add 2)
37+
additional_env = compute_environment_vars()
38+
env_fmt = """
39+
###
40+
# Computed environment variables start here
41+
###
42+
{0}
43+
###
44+
# Computed environment variables end here
45+
###
46+
"""
47+
output += env_fmt.format(yaml.dumps({'env': additional_env}))
48+
49+
50+
# Add 3)
3451
repo_config_url = env.get("REPO_CI_CONFIG_GIT_URL")
3552
if repo_config_url != None:
3653
print("loading additional configuration from \"{}\"".format(repo_config_url))
3754
output += config_from(repo_config_url)
3855
else:
3956
output += "\n# REPO_CI_CONFIG_URL was not set\n"
4057

41-
# Add 3)
58+
# Add 4)
4259
# output += config_from(".cirrus.tasks.yml")
4360

4461
# PR-only format check
@@ -47,6 +64,67 @@ def main():
4764
return output
4865

4966

67+
def compute_environment_vars():
68+
cenv = {}
69+
70+
###
71+
# Some tasks are manually triggered by default because they might use too
72+
# many resources for users of free Cirrus credits, but they can be
73+
# triggered automatically by naming them in an environment variable e.g.
74+
# REPO_CI_AUTOMATIC_TRIGGER_TASKS="task_name other_task" under "Repository
75+
# Settings" on Cirrus CI's website.
76+
77+
default_manual_trigger_tasks = ['mingw', 'netbsd', 'openbsd']
78+
79+
repo_ci_automatic_trigger_tasks = env.get('REPO_CI_AUTOMATIC_TRIGGER_TASKS', '')
80+
for task in default_manual_trigger_tasks:
81+
name = 'CI_TRIGGER_TYPE_' + task.upper()
82+
if repo_ci_automatic_trigger_tasks.find(task) != -1:
83+
value = 'automatic'
84+
else:
85+
value = 'manual'
86+
cenv[name] = value
87+
###
88+
89+
###
90+
# Parse "ci-os-only:" tag in commit message and set
91+
# CI_{$OS}_ENABLED variable for each OS
92+
93+
# We want to disable SanityCheck if testing just a specific OS. This
94+
# shortens push-wait-for-ci cycle time a bit when debugging operating
95+
# system specific failures. Just treating it as an OS in that case
96+
# suffices.
97+
98+
operating_systems = [
99+
'compilerwarnings',
100+
'freebsd',
101+
'linux',
102+
'macos',
103+
'mingw',
104+
'netbsd',
105+
'openbsd',
106+
'sanitycheck',
107+
'windows',
108+
]
109+
commit_message = env.get('CIRRUS_CHANGE_MESSAGE')
110+
match_re = r"(^|.*\n)ci-os-only: ([^\n]+)($|\n.*)"
111+
112+
# re.match() returns an array with a tuple of (matched-string, match_1, ...)
113+
m = re.match(match_re, commit_message)
114+
if m and len(m) > 0:
115+
os_only = m[0][2]
116+
os_only_list = re.split(r'[, ]+', os_only)
117+
else:
118+
os_only_list = operating_systems
119+
120+
for os in operating_systems:
121+
os_enabled = os in os_only_list
122+
cenv['CI_{0}_ENABLED'.format(os.upper())] = os_enabled
123+
###
124+
125+
return cenv
126+
127+
50128
def config_from(config_src):
51129
"""return contents of config file `config_src`, surrounded by markers
52130
indicating start / end of the included file

.cirrus.tasks.yml

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ task:
7272
# push-wait-for-ci cycle time a bit when debugging operating system specific
7373
# failures. Uses skip instead of only_if, as cirrus otherwise warns about
7474
# only_if conditions not matching.
75-
skip: $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:.*'
75+
skip: $CI_SANITYCHECK_ENABLED == false
7676

7777
env:
7878
CPUS: 4
@@ -167,7 +167,7 @@ task:
167167
<<: *freebsd_task_template
168168

169169
depends_on: SanityCheck
170-
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*freebsd.*'
170+
only_if: $CI_FREEBSD_ENABLED
171171

172172
sysinfo_script: |
173173
id
@@ -239,7 +239,6 @@ task:
239239

240240
task:
241241
depends_on: SanityCheck
242-
trigger_type: manual
243242

244243
env:
245244
# Below are experimentally derived to be a decent choice.
@@ -257,7 +256,9 @@ task:
257256

258257
matrix:
259258
- name: NetBSD - Meson
260-
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*netbsd.*'
259+
# See REPO_CI_AUTOMATIC_TRIGGER_TASKS in .cirrus.star
260+
trigger_type: $CI_TRIGGER_TYPE_NETBSD
261+
only_if: $CI_NETBSD_ENABLED
261262
env:
262263
OS_NAME: netbsd
263264
IMAGE_FAMILY: pg-ci-netbsd-postgres
@@ -274,7 +275,9 @@ task:
274275
<<: *netbsd_task_template
275276

276277
- name: OpenBSD - Meson
277-
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*openbsd.*'
278+
# See REPO_CI_AUTOMATIC_TRIGGER_TASKS in .cirrus.star
279+
trigger_type: $CI_TRIGGER_TYPE_OPENBSD
280+
only_if: $CI_OPENBSD_ENABLED
278281
env:
279282
OS_NAME: openbsd
280283
IMAGE_FAMILY: pg-ci-openbsd-postgres
@@ -414,7 +417,7 @@ task:
414417
<<: *linux_task_template
415418

416419
depends_on: SanityCheck
417-
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*linux.*'
420+
only_if: $CI_LINUX_ENABLED
418421

419422
ccache_cache:
420423
folder: ${CCACHE_DIR}
@@ -613,7 +616,7 @@ task:
613616
<<: *macos_task_template
614617

615618
depends_on: SanityCheck
616-
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*(macos|darwin|osx).*'
619+
only_if: $CI_MACOS_ENABLED
617620

618621
sysinfo_script: |
619622
id
@@ -719,7 +722,7 @@ task:
719722
<<: *windows_task_template
720723

721724
depends_on: SanityCheck
722-
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*windows.*'
725+
only_if: $CI_WINDOWS_ENABLED
723726

724727
setup_additional_packages_script: |
725728
REM choco install -y --no-progress ...
@@ -730,10 +733,9 @@ task:
730733
echo 127.0.0.3 pg-loadbalancetest >> c:\Windows\System32\Drivers\etc\hosts
731734
type c:\Windows\System32\Drivers\etc\hosts
732735
733-
# Use /DEBUG:FASTLINK to avoid high memory usage during linking
734736
configure_script: |
735737
vcvarsall x64
736-
meson setup --backend ninja --buildtype debug -Dc_link_args=/DEBUG:FASTLINK -Dcassert=true -Dinjection_points=true -Db_pch=true -Dextra_lib_dirs=c:\openssl\1.1\lib -Dextra_include_dirs=c:\openssl\1.1\include -DTAR=%TAR% build
738+
meson setup --backend ninja --buildtype debug -Dcassert=true -Dinjection_points=true -Db_pch=true -Dextra_lib_dirs=c:\openssl\1.1\lib -Dextra_include_dirs=c:\openssl\1.1\include -DTAR=%TAR% build
737739
738740
build_script: |
739741
vcvarsall x64
@@ -755,13 +757,11 @@ task:
755757
<< : *WINDOWS_ENVIRONMENT_BASE
756758
name: Windows - Server 2019, MinGW64 - Meson
757759

758-
# due to resource constraints we don't run this task by default for now
759-
trigger_type: manual
760-
# worth using only_if despite being manual, otherwise this task will show up
761-
# when e.g. ci-os-only: linux is used.
762-
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*mingw.*'
763-
# otherwise it'll be sorted before other tasks
760+
# See REPO_CI_AUTOMATIC_TRIGGER_TASKS in .cirrus.star.
761+
trigger_type: $CI_TRIGGER_TYPE_MINGW
762+
764763
depends_on: SanityCheck
764+
only_if: $CI_MINGW_ENABLED
765765

766766
env:
767767
TEST_JOBS: 4 # higher concurrency causes occasional failures
@@ -815,10 +815,9 @@ task:
815815

816816
# To limit unnecessary work only run this once the SanityCheck
817817
# succeeds. This is particularly important for this task as we intentionally
818-
# use always: to continue after failures. Task that did not run count as a
819-
# success, so we need to recheck SanityChecks's condition here ...
818+
# use always: to continue after failures.
820819
depends_on: SanityCheck
821-
only_if: $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*'
820+
only_if: $CI_COMPILERWARNINGS_ENABLED
822821

823822
env:
824823
CPUS: 4

.cirrus.yml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,20 @@
1010
#
1111
# 1) the contents of this file
1212
#
13-
# 2) if defined, the contents of the file referenced by the, repository
13+
# 2) computed environment variables
14+
#
15+
# Used to enable/disable tasks based on the execution environment. See
16+
# .cirrus.star: compute_environment_vars()
17+
#
18+
# 3) if defined, the contents of the file referenced by the, repository
1419
# level, REPO_CI_CONFIG_GIT_URL variable (see
1520
# https://cirrus-ci.org/guide/programming-tasks/#fs for the accepted
1621
# format)
1722
#
18-
# 3) .cirrus.tasks.yml
23+
# This allows running tasks in a different execution environment than the
24+
# default, e.g. to have sufficient resources for cfbot.
25+
#
26+
# 4) .cirrus.tasks.yml
1927
#
2028
# This composition is done by .cirrus.star
2129

.gitattributes

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
*.xsl whitespace=space-before-tab,trailing-space,tab-in-indent
1313

1414
# Avoid confusing ASCII underlines with leftover merge conflict markers
15-
README conflict-marker-size=32
16-
README.* conflict-marker-size=32
15+
README conflict-marker-size=48
16+
README.* conflict-marker-size=48
1717

1818
# Certain data files that contain special whitespace, and other special cases
1919
*.data -whitespace

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ We are committed to abiding by the principles of [open-source ways](https://open
2323
</br>
2424

2525
## Installation
26-
We recommend following our [Quick Start](https://docs.ivorysql.org/en/ivorysql-doc/v5.1/v5.1/3.1#quick-installation) for how to install and running IvorySQL.
26+
We recommend following our [Quick Start](https://docs.ivorysql.org/en/ivorysql-doc/v5.3/3.1#quick-installation) for how to install and running IvorySQL.
2727

28-
Furthermore, for more detailed installation instructions, please refer to the [Installation Docs](https://docs.ivorysql.org/en/ivorysql-doc/v5.1/v5.1/4.1#introduction). We provide four installation methods for IvorySQL, as outlined below:
29-
- [Yum installation](https://docs.ivorysql.org/en/ivorysql-doc/v5.1/v5.1/4.1#Yum-installation)
30-
- [Docker installation](https://docs.ivorysql.org/en/ivorysql-doc/v5.1/v5.1/4.1#Docker-installation)
31-
- [Rpm installation](https://docs.ivorysql.org/en/ivorysql-doc/v5.1/v5.1/4.1#Rpm-installation)
32-
- [Source code installation](https://docs.ivorysql.org/en/ivorysql-doc/v5.1/v5.1/4.1#Source-code-installation)
28+
Furthermore, for more detailed installation instructions, please refer to the [Installation Docs](https://docs.ivorysql.org/en/ivorysql-doc/v5.3/4.1#introduction). We provide four installation methods for IvorySQL, as outlined below:
29+
- [Yum installation](https://docs.ivorysql.org/en/ivorysql-doc/v5.3/4.1#Yum-installation)
30+
- [Docker installation](https://docs.ivorysql.org/en/ivorysql-doc/v5.3/4.1#Docker-installation)
31+
- [Rpm installation](https://docs.ivorysql.org/en/ivorysql-doc/v5.3/4.1#Rpm-installation)
32+
- [Source code installation](https://docs.ivorysql.org/en/ivorysql-doc/v5.3/4.1#Source-code-installation)
3333

3434
## Development with Docker
3535

@@ -100,4 +100,4 @@ Please check the [online documentation](https://docs.ivorysql.org/).
100100

101101
## Star History
102102

103-
![Star History Chart](https://api.star-history.com/svg?repos=IvorySQL/IvorySQL&type=Date)
103+
![Star History Chart](https://api.star-history.com/svg?repos=IvorySQL/IvorySQL&type=Date)

README_CN.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@ IvorySQL 项目采用 Apache 2.0 许可协议发布,并鼓励各种形式的
2727
</br>
2828

2929
## 安装
30-
建议参考[快速入门](https://docs.ivorysql.org/cn/ivorysql-doc/v5.1/v5.1/3.1#quick-installation)了解如何安装和运行IvorySQL。
30+
建议参考[快速入门](https://docs.ivorysql.org/cn/ivorysql-doc/v5.3/3.1#quick-installation)了解如何安装和运行IvorySQL。
3131

32-
此外,关于更详细的安装说明,请参阅[安装文档](https://docs.ivorysql.org/cn/ivorysql-doc/v5.1/v5.1/4.1#introduction)。我们提供以下四种 IvorySQL 的安装方法:
33-
- [Yum 安装](https://docs.ivorysql.org/cn/ivorysql-doc/v5.1/v5.1/4.1#yum源安装)
34-
- [Docker 安装](https://docs.ivorysql.org/cn/ivorysql-doc/v5.1/v5.1/4.1#docker安装)
35-
- [RPM 安装](https://docs.ivorysql.org/cn/ivorysql-doc/v5.1/v5.1/4.1#rpm安装)
36-
- [源代码安装](https://docs.ivorysql.org/cn/ivorysql-doc/v5.1/v5.1/4.1#源码安装)
32+
此外,关于更详细的安装说明,请参阅[安装文档](https://docs.ivorysql.org/cn/ivorysql-doc/v5.3/4.1#introduction)。我们提供以下四种 IvorySQL 的安装方法:
33+
- [Yum 安装](https://docs.ivorysql.org/cn/ivorysql-doc/v5.3/4.1#yum源安装)
34+
- [Docker 安装](https://docs.ivorysql.org/cn/ivorysql-doc/v5.3/4.1#docker安装)
35+
- [RPM 安装](https://docs.ivorysql.org/cn/ivorysql-doc/v5.3/4.1#rpm安装)
36+
- [源代码安装](https://docs.ivorysql.org/cn/ivorysql-doc/v5.3/4.1#源码安装)
3737

3838

3939

config/prep_buildtree

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,14 @@ sourcetree=`cd $1 && pwd`
2222

2323
buildtree=`cd ${2:-'.'} && pwd`
2424

25-
# We must not auto-create the subdirectories holding built documentation.
26-
# If we did, it would interfere with installation of prebuilt docs from
27-
# the source tree, if a VPATH build is done from a distribution tarball.
28-
# See bug #5595.
29-
for item in `find "$sourcetree" -type d \( \( -name CVS -prune \) -o \( -name .git -prune \) -o -print \) | grep -v "$sourcetree/doc/src/sgml/\+"`; do
25+
for item in `find "$sourcetree"/config "$sourcetree"/contrib "$sourcetree"/doc "$sourcetree"/src -type d -print`; do
3026
subdir=`expr "$item" : "$sourcetree\(.*\)"`
3127
if test ! -d "$buildtree/$subdir"; then
3228
mkdir -p "$buildtree/$subdir" || exit 1
3329
fi
3430
done
3531

36-
for item in `find "$sourcetree" -name Makefile -print -o -name GNUmakefile -print | grep -v "$sourcetree/doc/src/sgml/images/"`; do
32+
for item in "$sourcetree"/Makefile `find "$sourcetree"/config "$sourcetree"/contrib "$sourcetree"/doc "$sourcetree"/src -name Makefile -print -o -name GNUmakefile -print`; do
3733
filename=`expr "$item" : "$sourcetree\(.*\)"`
3834
if test ! -f "${item}.in"; then
3935
if cmp "$item" "$buildtree/$filename" >/dev/null 2>&1; then : ; else

0 commit comments

Comments
 (0)