Explicitly enable meson features in CI

Started by Nazir Bilal Yavuz10 months ago28 messageshackers
Jump to latest
#1Nazir Bilal Yavuz
byavuz81@gmail.com

Hi,

Right now, many features are set to auto in Meson builds in CI. This
means Meson tries to detect these features automatically but does not
report an error if it fails to find them. Jacob stated [1]/messages/by-id/CAOYmi+kdR218ke2zu74oTJvzYJcqV1MN5=mGAPqZQuc79HMSVA@mail.gmail.com that this
behavior can lead to issues, such as missing problems in the build
system. Additionally, since CI images are updated automatically, an
update could cause a feature to go missing without any warning.
Therefore, Jacob suggested explicitly enabling these features in the
Meson build configuration. The attached patch implements this change.

I manually checked features from the end of the 'meson setup'
command's output in each task and stored these enabled features in the
MESON_FEATURES variable. I think this should be enough but of course
an automated way would be better if there is any.

One thing I’m unsure about the patch is that all these features are
stored in the MESON_FEATURES environment variable in each task. I
wonder if it might be clearer to rename these variables to
${TASK_NAME}_MESON_FEATURES to avoid confusion.

Also, libcurl is disabled in the OpenBSD CI task until the fix in this
thread [1]/messages/by-id/CAOYmi+kdR218ke2zu74oTJvzYJcqV1MN5=mGAPqZQuc79HMSVA@mail.gmail.com is committed.

Any feedback would be appreciated.

[1]: /messages/by-id/CAOYmi+kdR218ke2zu74oTJvzYJcqV1MN5=mGAPqZQuc79HMSVA@mail.gmail.com

--
Regards,
Nazir Bilal Yavuz
Microsoft

Attachments:

v1-0001-ci-meson-Explicitly-enable-meson-features.patchtext/x-patch; charset=US-ASCII; name=v1-0001-ci-meson-Explicitly-enable-meson-features.patchDownload+180-19
#2Daniel Gustafsson
daniel@yesql.se
In reply to: Nazir Bilal Yavuz (#1)
Re: Explicitly enable meson features in CI

On 2 Jul 2025, at 09:22, Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:

Right now, many features are set to auto in Meson builds in CI. This
means Meson tries to detect these features automatically but does not
report an error if it fails to find them. Jacob stated [1] that this
behavior can lead to issues, such as missing problems in the build
system. Additionally, since CI images are updated automatically, an
update could cause a feature to go missing without any warning.
Therefore, Jacob suggested explicitly enabling these features in the
Meson build configuration. The attached patch implements this change.

Big +1 on this, thanks for tackling it.

--
Daniel Gustafsson

#3Peter Eisentraut
peter_e@gmx.net
In reply to: Nazir Bilal Yavuz (#1)
Re: Explicitly enable meson features in CI

On 02.07.25 09:22, Nazir Bilal Yavuz wrote:

One thing I’m unsure about the patch is that all these features are
stored in the MESON_FEATURES environment variable in each task. I
wonder if it might be clearer to rename these variables to
${TASK_NAME}_MESON_FEATURES to avoid confusion.

I would hope we could do this without so much repetition. Why not a
global variable and then have each task override as needed?

(It would also be nice to extra the corresponding configure arguments
into a similar variable, so we can easily keep this aligned.)

Here is a sketch of what I mean:

env:
...
PG_TEST_EXTRA: ...
MESON_COMMON_ARGS: -Dauto_features=disabled -Ddocs=enabled ...
CONFIGURE_COMMON_ARGS: --with-gssapi --with-icu --with-ldap ...

...

configure_script: |
su postgres <<-EOF
meson setup \
${MESON_COMMON_ARGS} -Dpltcl=disabled \
--buildtype=debugoptimized \
--pkg-config-path ${PKGCONFIG_PATH} \
-Dcassert=true -Dinjection_points=true \
-Dssl=openssl ${UUID} ${TCL} \
-DPG_TEST_EXTRA="$PG_TEST_EXTRA" \
build
EOF

(There are additional opportunities to refactor this, such as the
-DPG_TEST_EXTRA option that is repeated everywhere.)

#4Nazir Bilal Yavuz
byavuz81@gmail.com
In reply to: Peter Eisentraut (#3)
Re: Explicitly enable meson features in CI

Hi,

Thank you for looking into this!

On Wed, 2 Jul 2025 at 14:33, Peter Eisentraut <peter@eisentraut.org> wrote:

On 02.07.25 09:22, Nazir Bilal Yavuz wrote:

One thing I’m unsure about the patch is that all these features are
stored in the MESON_FEATURES environment variable in each task. I
wonder if it might be clearer to rename these variables to
${TASK_NAME}_MESON_FEATURES to avoid confusion.

I would hope we could do this without so much repetition. Why not a
global variable and then have each task override as needed?

(It would also be nice to extra the corresponding configure arguments
into a similar variable, so we can easily keep this aligned.)

Common configure arguments are '-Dcassert=true
-Dinjection_points=true', I addressed that in the 0003.

Here is a sketch of what I mean:

env:
...
PG_TEST_EXTRA: ...
MESON_COMMON_ARGS: -Dauto_features=disabled -Ddocs=enabled ...
CONFIGURE_COMMON_ARGS: --with-gssapi --with-icu --with-ldap ...

I agree that this repetition does not look good but my idea was to be
able to see which features are enabled at one glance. I tried to apply
grouping in v2:

1) args that are shared between all meson tasks except SanityCheck
are: auto_features, ldap, ssl=openssl, tap_tests, plperl, plpython
2) args that are shared between all meson tasks except SanityCheck and
Windows VS task are: docs, icu, libxml, libxslt, lz4, pltcl, readline,
zlib, zstd

I stored #1 in the MESON_COMMON_FEATURES variable and #2 in the
MESON_NON_VS_FEATURES variable. Then merged #1 and #2 in the
MESON_COMMON_NON_VS_FEATURES variable. So it is like that:

- All meson tasks excluding the Windows VS and SanityCheck tasks use
MESON_COMMON_NON_VS_FEATURES and overrides it.
- Windows VS task uses MESON_COMMON_FEATURES.

...

configure_script: |
su postgres <<-EOF
meson setup \
${MESON_COMMON_ARGS} -Dpltcl=disabled \
--buildtype=debugoptimized \
--pkg-config-path ${PKGCONFIG_PATH} \
-Dcassert=true -Dinjection_points=true \
-Dssl=openssl ${UUID} ${TCL} \
-DPG_TEST_EXTRA="$PG_TEST_EXTRA" \
build
EOF

(There are additional opportunities to refactor this, such as the
-DPG_TEST_EXTRA option that is repeated everywhere.)

-DPG_TEST_EXTRA option is used only in the NetBSD and OpenBSD tasks
but it is unnecessary. They can use the top level PG_TEST_EXTRA
environment variable. This is fixed in 0001.

To sum up:

0001 is for removing unnecessary PG_TEST_EXTRA from the NetBSD and
OpenBSD tasks.
0002 is the actual patch but this time I tried to address that
repetition problem by storing common meson features in variables.
0003 is storing common configure arguments ('-Dcassert=true
-Dinjection_points=true') in one variable.

--
Regards,
Nazir Bilal Yavuz
Microsoft

Attachments:

v2-0001-ci-Remove-PG_TEST_EXTRA-from-NetBSD-and-OpenBSD.patchtext/x-patch; charset=US-ASCII; name=v2-0001-ci-Remove-PG_TEST_EXTRA-from-NetBSD-and-OpenBSD.patchDownload+0-2
v2-0002-ci-meson-Explicitly-enable-meson-features.patchtext/x-patch; charset=US-ASCII; name=v2-0002-ci-meson-Explicitly-enable-meson-features.patchDownload+89-19
v2-0003-ci-meson-Store-common-Postgres-configuration-opti.patchtext/x-patch; charset=US-ASCII; name=v2-0003-ci-meson-Store-common-Postgres-configuration-opti.patchDownload+11-8
#5Daniel Gustafsson
daniel@yesql.se
In reply to: Nazir Bilal Yavuz (#4)
Re: Explicitly enable meson features in CI

On 3 Jul 2025, at 09:27, Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:
On Wed, 2 Jul 2025 at 14:33, Peter Eisentraut <peter@eisentraut.org> wrote:

Here is a sketch of what I mean:

env:
...
PG_TEST_EXTRA: ...
MESON_COMMON_ARGS: -Dauto_features=disabled -Ddocs=enabled ...
CONFIGURE_COMMON_ARGS: --with-gssapi --with-icu --with-ldap ...

I agree that this repetition does not look good but my idea was to be
able to see which features are enabled at one glance. I tried to apply
grouping in v2:

FWIW, I didn't mind the repetition in v1 but I won't argue against the current
approach either.

+  # Like 'MESON_COMMON_FEATURES' but not shared with 'Windows - VS' task too
+  MESON_NON_VS_FEATURES: >-

I'm not a fan of this name, it feel a bit unintuitive to describe what it isn't
instead of what it is. How about MESON_LINUX_UNIX_FEATURES or something along
those lines?

   # disable -Dnls as the number of files it creates cause a noticable slowdown
   configure_script: |
-    %BASH% -c "meson setup -Ddebug=true -Doptimization=g -Dcassert=true -Dinjection_points=true -Db_pch=true -Dnls=disabled -DTAR=%TAR
% build"
+    %BASH% -c "meson setup %MESON_COMMON_PG_CONFIG_ARGS%  -Ddebug=true -Doptimization=g -Db_pch=true %MESON_COMMON_NON_VS_FEATURES% -D
TAR=%TAR% build"

The MinGW build no longer disables nls, or am I missing something?

--
Daniel Gustafsson

#6Nazir Bilal Yavuz
byavuz81@gmail.com
In reply to: Daniel Gustafsson (#5)
Re: Explicitly enable meson features in CI

Hi,

Thank you for looking into this!

On Thu, 3 Jul 2025 at 16:21, Daniel Gustafsson <daniel@yesql.se> wrote:

On 3 Jul 2025, at 09:27, Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:
On Wed, 2 Jul 2025 at 14:33, Peter Eisentraut <peter@eisentraut.org> wrote:

Here is a sketch of what I mean:

env:
...
PG_TEST_EXTRA: ...
MESON_COMMON_ARGS: -Dauto_features=disabled -Ddocs=enabled ...
CONFIGURE_COMMON_ARGS: --with-gssapi --with-icu --with-ldap ...

I agree that this repetition does not look good but my idea was to be
able to see which features are enabled at one glance. I tried to apply
grouping in v2:

FWIW, I didn't mind the repetition in v1 but I won't argue against the current
approach either.

I feel the same.

+  # Like 'MESON_COMMON_FEATURES' but not shared with 'Windows - VS' task too
+  MESON_NON_VS_FEATURES: >-

I'm not a fan of this name, it feel a bit unintuitive to describe what it isn't
instead of what it is. How about MESON_LINUX_UNIX_FEATURES or something along
those lines?

I agree that MESON_NON_VS_FEATURES is not intuitive but can MinGW be
considered as LINUX or UNIX?

# disable -Dnls as the number of files it creates cause a noticable slowdown
configure_script: |
-    %BASH% -c "meson setup -Ddebug=true -Doptimization=g -Dcassert=true -Dinjection_points=true -Db_pch=true -Dnls=disabled -DTAR=%TAR
% build"
+    %BASH% -c "meson setup %MESON_COMMON_PG_CONFIG_ARGS%  -Ddebug=true -Doptimization=g -Db_pch=true %MESON_COMMON_NON_VS_FEATURES% -D
TAR=%TAR% build"

The MinGW build no longer disables nls, or am I missing something?

Auto features are already disabled. So, there is no need to disable
nls manually. By saying that, it would be better to remove this
comment now.

--
Regards,
Nazir Bilal Yavuz
Microsoft

#7Daniel Gustafsson
daniel@yesql.se
In reply to: Nazir Bilal Yavuz (#6)
Re: Explicitly enable meson features in CI

On 3 Jul 2025, at 15:50, Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:
On Thu, 3 Jul 2025 at 16:21, Daniel Gustafsson <daniel@yesql.se> wrote:

+  # Like 'MESON_COMMON_FEATURES' but not shared with 'Windows - VS' task too
+  MESON_NON_VS_FEATURES: >-

I'm not a fan of this name, it feel a bit unintuitive to describe what it isn't
instead of what it is. How about MESON_LINUX_UNIX_FEATURES or something along
those lines?

I agree that MESON_NON_VS_FEATURES is not intuitive but can MinGW be
considered as LINUX or UNIX?

That is an excellent question, according to our fine documentation it is a
"Unix-like build environment".

An alternative approach would be to instead of having opt-in's for non-Windows
have opt-outs for Windows, ie a MESON_WINDOWS_EXCLUDES which does =disabled on
the specific features we dont want on Windows?

The MinGW build no longer disables nls, or am I missing something?

Auto features are already disabled. So, there is no need to disable
nls manually. By saying that, it would be better to remove this
comment now.

Aha, that explains it. Maybe reword the comment to retain the knowledge for
the future without making it sound like something is missing from the command.
How about something like:

-  # disable -Dnls as the number of files it creates cause a noticable slowdown
+  # -Dnls need to be disabled as the number of files it creates cause a
+  # noticable slowdown

--
Daniel Gustafsson

#8Nazir Bilal Yavuz
byavuz81@gmail.com
In reply to: Daniel Gustafsson (#7)
Re: Explicitly enable meson features in CI

Hi,

On Thu, 3 Jul 2025 at 17:07, Daniel Gustafsson <daniel@yesql.se> wrote:

On 3 Jul 2025, at 15:50, Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:
On Thu, 3 Jul 2025 at 16:21, Daniel Gustafsson <daniel@yesql.se> wrote:

+  # Like 'MESON_COMMON_FEATURES' but not shared with 'Windows - VS' task too
+  MESON_NON_VS_FEATURES: >-

I'm not a fan of this name, it feel a bit unintuitive to describe what it isn't
instead of what it is. How about MESON_LINUX_UNIX_FEATURES or something along
those lines?

I agree that MESON_NON_VS_FEATURES is not intuitive but can MinGW be
considered as LINUX or UNIX?

That is an excellent question, according to our fine documentation it is a
"Unix-like build environment".

An alternative approach would be to instead of having opt-in's for non-Windows
have opt-outs for Windows, ie a MESON_WINDOWS_EXCLUDES which does =disabled on
the specific features we dont want on Windows?

I think this would make things complicated. Instead, we can set
Windows VS tasks' features in its task, then we can have a one common
feature variable at the top level and have a comment about this
variable not being used in the Windows VS task. Basically the same
with your approach but instead of using a common feature variable and
disabling features from it, we enable them again in the Windows VS
task. I used this approach in the v3-0002.

The MinGW build no longer disables nls, or am I missing something?

Auto features are already disabled. So, there is no need to disable
nls manually. By saying that, it would be better to remove this
comment now.

Aha, that explains it. Maybe reword the comment to retain the knowledge for
the future without making it sound like something is missing from the command.
How about something like:

-  # disable -Dnls as the number of files it creates cause a noticable slowdown
+  # -Dnls need to be disabled as the number of files it creates cause a
+  # noticable slowdown

Yes, I think this is better. Done.

--
Regards,
Nazir Bilal Yavuz
Microsoft

Attachments:

v3-0001-ci-Remove-PG_TEST_EXTRA-from-NetBSD-and-OpenBSD.patchtext/x-patch; charset=US-ASCII; name=v3-0001-ci-Remove-PG_TEST_EXTRA-from-NetBSD-and-OpenBSD.patchDownload+0-2
v3-0002-ci-meson-Explicitly-enable-meson-features.patchtext/x-patch; charset=US-ASCII; name=v3-0002-ci-meson-Explicitly-enable-meson-features.patchDownload+93-19
v3-0003-ci-meson-Store-common-Postgres-configuration-opti.patchtext/x-patch; charset=US-ASCII; name=v3-0003-ci-meson-Store-common-Postgres-configuration-opti.patchDownload+11-8
#9Daniel Gustafsson
daniel@yesql.se
In reply to: Nazir Bilal Yavuz (#8)
Re: Explicitly enable meson features in CI

On 4 Jul 2025, at 09:33, Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:
On Thu, 3 Jul 2025 at 17:07, Daniel Gustafsson <daniel@yesql.se> wrote:

An alternative approach would be to instead of having opt-in's for non-Windows
have opt-outs for Windows, ie a MESON_WINDOWS_EXCLUDES which does =disabled on
the specific features we dont want on Windows?

I think this would make things complicated.

I think you're right.

Instead, we can set
Windows VS tasks' features in its task, then we can have a one common
feature variable at the top level and have a comment about this
variable not being used in the Windows VS task. Basically the same
with your approach but instead of using a common feature variable and
disabling features from it, we enable them again in the Windows VS
task. I used this approach in the v3-0002.

The proposal in v3 strikes a good balance between avoiding repetition and being
readable.

--
Daniel Gustafsson

#10Nazir Bilal Yavuz
byavuz81@gmail.com
In reply to: Nazir Bilal Yavuz (#1)
Re: Explicitly enable meson features in CI

Hi,

On Wed, 2 Jul 2025 at 10:22, Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:

Also, libcurl is disabled in the OpenBSD CI task until the fix in this
thread [1] is committed.

This fix is committed in 7376e60854 so libcurl is enabled for OpenBSD in v4.

--
Regards,
Nazir Bilal Yavuz
Microsoft

Attachments:

v4-0001-ci-Remove-PG_TEST_EXTRA-from-NetBSD-and-OpenBSD.patchtext/x-patch; charset=US-ASCII; name=v4-0001-ci-Remove-PG_TEST_EXTRA-from-NetBSD-and-OpenBSD.patchDownload+0-2
v4-0002-ci-meson-Explicitly-enable-meson-features.patchtext/x-patch; charset=US-ASCII; name=v4-0002-ci-meson-Explicitly-enable-meson-features.patchDownload+90-19
v4-0003-ci-meson-Store-common-Postgres-configuration-opti.patchtext/x-patch; charset=US-ASCII; name=v4-0003-ci-meson-Store-common-Postgres-configuration-opti.patchDownload+11-8
#11Nazir Bilal Yavuz
byavuz81@gmail.com
In reply to: Nazir Bilal Yavuz (#10)
Re: Explicitly enable meson features in CI

Hi,

On Tue, 8 Jul 2025 at 12:10, Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:

Hi,

On Wed, 2 Jul 2025 at 10:22, Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:

Also, libcurl is disabled in the OpenBSD CI task until the fix in this
thread [1] is committed.

This fix is committed in 7376e60854 so libcurl is enabled for OpenBSD in v4.

Andres off-list mentioned that if we explicitly enable features for
*all* of the tasks, then none of the tasks will be testing the auto
feature option and I agree with Andres. My suggestion is setting
features to auto for Debian - Meson task. I decided on this because I
think it is the most checked CI task so it would be easier to catch if
one of the features is disabled without anyone noticing.

--
Regards,
Nazir Bilal Yavuz
Microsoft

#12Jacob Champion
jacob.champion@enterprisedb.com
In reply to: Nazir Bilal Yavuz (#11)
Re: Explicitly enable meson features in CI

On Thu, Jul 10, 2025 at 2:59 AM Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:

Andres off-list mentioned that if we explicitly enable features for
*all* of the tasks, then none of the tasks will be testing the auto
feature option and I agree with Andres. My suggestion is setting
features to auto for Debian - Meson task. I decided on this because I
think it is the most checked CI task

Hehe, that's certainly true for me...

so it would be easier to catch if
one of the features is disabled without anyone noticing.

Seems reasonable. If we do this, can we rename the job with a "- Meson
Auto" suffix or something, to try to call the difference out
explicitly?

--Jacob

#13Daniel Gustafsson
daniel@yesql.se
In reply to: Jacob Champion (#12)
Re: Explicitly enable meson features in CI

On 10 Jul 2025, at 19:12, Jacob Champion <jacob.champion@enterprisedb.com> wrote:
On Thu, Jul 10, 2025 at 2:59 AM Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:

so it would be easier to catch if
one of the features is disabled without anyone noticing.

Seems reasonable.

Agreed.

If we do this, can we rename the job with a "- Meson
Auto" suffix or something, to try to call the difference out
explicitly?

+1

--
Daniel Gustafsson

#14Nazir Bilal Yavuz
byavuz81@gmail.com
In reply to: Jacob Champion (#12)
Re: Explicitly enable meson features in CI

Hi,

On Thu, 10 Jul 2025 at 20:12, Jacob Champion
<jacob.champion@enterprisedb.com> wrote:

On Thu, Jul 10, 2025 at 2:59 AM Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:

Andres off-list mentioned that if we explicitly enable features for
*all* of the tasks, then none of the tasks will be testing the auto
feature option and I agree with Andres. My suggestion is setting
features to auto for Debian - Meson task. I decided on this because I
think it is the most checked CI task

Hehe, that's certainly true for me...

so it would be easier to catch if
one of the features is disabled without anyone noticing.

Seems reasonable. If we do this, can we rename the job with a "- Meson
Auto" suffix or something, to try to call the difference out
explicitly?

I think renaming it would be better but then we have two Linux tasks:

- Linux - Debian Bookworm - Autoconf
- Linux - Debian Bookworm - Meson Auto

For me it looks like 'Meson Auto' can be confused with 'Autoconf'. We
can rename it as a 'Meson Auto Feature Detection' but that is a bit
longer. Do you have any ideas? If you think 'Meson Auto' is good
enough, we can continue with it, too.

--
Regards,
Nazir Bilal Yavuz
Microsoft

#15Nazir Bilal Yavuz
byavuz81@gmail.com
In reply to: Nazir Bilal Yavuz (#14)
Re: Explicitly enable meson features in CI

Hi,

On Fri, 11 Jul 2025 at 14:00, Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:

Hi,

On Thu, 10 Jul 2025 at 20:12, Jacob Champion
<jacob.champion@enterprisedb.com> wrote:

On Thu, Jul 10, 2025 at 2:59 AM Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:

Andres off-list mentioned that if we explicitly enable features for
*all* of the tasks, then none of the tasks will be testing the auto
feature option and I agree with Andres. My suggestion is setting
features to auto for Debian - Meson task. I decided on this because I
think it is the most checked CI task

Hehe, that's certainly true for me...

so it would be easier to catch if
one of the features is disabled without anyone noticing.

Seems reasonable. If we do this, can we rename the job with a "- Meson
Auto" suffix or something, to try to call the difference out
explicitly?

I think renaming it would be better but then we have two Linux tasks:

- Linux - Debian Bookworm - Autoconf
- Linux - Debian Bookworm - Meson Auto

For me it looks like 'Meson Auto' can be confused with 'Autoconf'. We
can rename it as a 'Meson Auto Feature Detection' but that is a bit
longer. Do you have any ideas? If you think 'Meson Auto' is good
enough, we can continue with it, too.

I renamed 'Meson Auto' as 'Meson Auto Feature Detection' in v5.

--
Regards,
Nazir Bilal Yavuz
Microsoft

Attachments:

v5-0001-ci-Remove-PG_TEST_EXTRA-from-NetBSD-and-OpenBSD.patchtext/x-patch; charset=US-ASCII; name=v5-0001-ci-Remove-PG_TEST_EXTRA-from-NetBSD-and-OpenBSD.patchDownload+0-2
v5-0002-ci-meson-Explicitly-enable-meson-features.patchtext/x-patch; charset=US-ASCII; name=v5-0002-ci-meson-Explicitly-enable-meson-features.patchDownload+70-20
v5-0003-ci-meson-Store-common-Postgres-configuration-opti.patchtext/x-patch; charset=US-ASCII; name=v5-0003-ci-meson-Store-common-Postgres-configuration-opti.patchDownload+11-8
#16Jacob Champion
jacob.champion@enterprisedb.com
In reply to: Nazir Bilal Yavuz (#15)
Re: Explicitly enable meson features in CI

On Wed, Jul 16, 2025 at 4:12 AM Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:

For me it looks like 'Meson Auto' can be confused with 'Autoconf'. We
can rename it as a 'Meson Auto Feature Detection' but that is a bit
longer. Do you have any ideas? If you think 'Meson Auto' is good
enough, we can continue with it, too.

I renamed 'Meson Auto' as 'Meson Auto Feature Detection' in v5.

Sorry for the delay -- while that feels a little wordy to me, it's
also trivially changed. Not worth bikeshedding over unless someone
else complains, IMO. :D

Is there anything else in particular you'd like review on? (I've
marked this patchset RfC.)

Thanks,
--Jacob

#17Andres Freund
andres@anarazel.de
In reply to: Nazir Bilal Yavuz (#15)
Re: Explicitly enable meson features in CI

Hi,

On 2025-07-16 14:12:22 +0300, Nazir Bilal Yavuz wrote:

On Fri, 11 Jul 2025 at 14:00, Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:

On Thu, 10 Jul 2025 at 20:12, Jacob Champion
<jacob.champion@enterprisedb.com> wrote:

On Thu, Jul 10, 2025 at 2:59 AM Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:

Andres off-list mentioned that if we explicitly enable features for
*all* of the tasks, then none of the tasks will be testing the auto
feature option and I agree with Andres. My suggestion is setting
features to auto for Debian - Meson task. I decided on this because I
think it is the most checked CI task

Hehe, that's certainly true for me...

so it would be easier to catch if
one of the features is disabled without anyone noticing.

Seems reasonable. If we do this, can we rename the job with a "- Meson
Auto" suffix or something, to try to call the difference out
explicitly?

I think renaming it would be better but then we have two Linux tasks:

- Linux - Debian Bookworm - Autoconf
- Linux - Debian Bookworm - Meson Auto

For me it looks like 'Meson Auto' can be confused with 'Autoconf'. We
can rename it as a 'Meson Auto Feature Detection' but that is a bit
longer. Do you have any ideas? If you think 'Meson Auto' is good
enough, we can continue with it, too.

I renamed 'Meson Auto' as 'Meson Auto Feature Detection' in v5.

FWIW, I don't think it's a good idea to the Auto bit to the name. We have
several special things about various tests, if we add all of them to the task
name, we'll have very long task names. This one would already be

Linux - Debian Bookworm - Meson Auto Features Detection - 32 and 64 Bit build & tests - Alignment, Undefined Behaviour Sanitizer - IO method=io_uring

And the task names would change a lot more, which is also a pain for things
like the commitfest / cfbot web apps.

But it *should* be added to the "SPECIAL:" comment.

Greetings,

Andres Freund

#18Nazir Bilal Yavuz
byavuz81@gmail.com
In reply to: Andres Freund (#17)
Re: Explicitly enable meson features in CI

Hi,

On Wed, 16 Jul 2025 at 19:02, Andres Freund <andres@anarazel.de> wrote:

Hi,

On 2025-07-16 14:12:22 +0300, Nazir Bilal Yavuz wrote:

On Fri, 11 Jul 2025 at 14:00, Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:

On Thu, 10 Jul 2025 at 20:12, Jacob Champion
<jacob.champion@enterprisedb.com> wrote:

On Thu, Jul 10, 2025 at 2:59 AM Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:

Andres off-list mentioned that if we explicitly enable features for
*all* of the tasks, then none of the tasks will be testing the auto
feature option and I agree with Andres. My suggestion is setting
features to auto for Debian - Meson task. I decided on this because I
think it is the most checked CI task

Hehe, that's certainly true for me...

so it would be easier to catch if
one of the features is disabled without anyone noticing.

Seems reasonable. If we do this, can we rename the job with a "- Meson
Auto" suffix or something, to try to call the difference out
explicitly?

I think renaming it would be better but then we have two Linux tasks:

- Linux - Debian Bookworm - Autoconf
- Linux - Debian Bookworm - Meson Auto

For me it looks like 'Meson Auto' can be confused with 'Autoconf'. We
can rename it as a 'Meson Auto Feature Detection' but that is a bit
longer. Do you have any ideas? If you think 'Meson Auto' is good
enough, we can continue with it, too.

I renamed 'Meson Auto' as 'Meson Auto Feature Detection' in v5.

FWIW, I don't think it's a good idea to the Auto bit to the name. We have
several special things about various tests, if we add all of them to the task
name, we'll have very long task names. This one would already be

Linux - Debian Bookworm - Meson Auto Features Detection - 32 and 64 Bit build & tests - Alignment, Undefined Behaviour Sanitizer - IO method=io_uring

And the task names would change a lot more, which is also a pain for things
like the commitfest / cfbot web apps.

I don't have a strong opinion on this. I think the naming change
clarifies things but as you said then we may/should add other specific
settings to the task name. So, I reverted the naming change.

But it *should* be added to the "SPECIAL:" comment.

Done.

v6 is attached.

--
Regards,
Nazir Bilal Yavuz
Microsoft

Attachments:

v6-0001-ci-Remove-PG_TEST_EXTRA-from-NetBSD-and-OpenBSD.patchtext/x-patch; charset=US-ASCII; name=v6-0001-ci-Remove-PG_TEST_EXTRA-from-NetBSD-and-OpenBSD.patchDownload+0-2
v6-0002-ci-meson-Explicitly-enable-meson-features.patchtext/x-patch; charset=US-ASCII; name=v6-0002-ci-meson-Explicitly-enable-meson-features.patchDownload+70-19
v6-0003-ci-meson-Store-common-Postgres-configuration-opti.patchtext/x-patch; charset=US-ASCII; name=v6-0003-ci-meson-Store-common-Postgres-configuration-opti.patchDownload+11-8
#19Nazir Bilal Yavuz
byavuz81@gmail.com
In reply to: Jacob Champion (#16)
Re: Explicitly enable meson features in CI

Hi,

On Wed, 16 Jul 2025 at 18:24, Jacob Champion
<jacob.champion@enterprisedb.com> wrote:

On Wed, Jul 16, 2025 at 4:12 AM Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:

For me it looks like 'Meson Auto' can be confused with 'Autoconf'. We
can rename it as a 'Meson Auto Feature Detection' but that is a bit
longer. Do you have any ideas? If you think 'Meson Auto' is good
enough, we can continue with it, too.

I renamed 'Meson Auto' as 'Meson Auto Feature Detection' in v5.

Sorry for the delay -- while that feels a little wordy to me, it's
also trivially changed. Not worth bikeshedding over unless someone
else complains, IMO. :D

I reverted the naming change in v6 based on Andres' comments [1]/messages/by-id/zltxefhw7bej3o4oxvkfuoa2glbnip3jacp7rvacbrv5oepql3@gs3lbwg6unmv.

Is there anything else in particular you'd like review on? (I've
marked this patchset RfC.)

Not at the moment, thank you so much!

[1]: /messages/by-id/zltxefhw7bej3o4oxvkfuoa2glbnip3jacp7rvacbrv5oepql3@gs3lbwg6unmv

--
Regards,
Nazir Bilal Yavuz
Microsoft

#20Daniel Gustafsson
daniel@yesql.se
In reply to: Nazir Bilal Yavuz (#19)
Re: Explicitly enable meson features in CI

On 17 Jul 2025, at 10:33, Nazir Bilal Yavuz <byavuz81@gmail.com> wrote:
On Wed, 16 Jul 2025 at 18:24, Jacob Champion <jacob.champion@enterprisedb.com> wrote:

Is there anything else in particular you'd like review on? (I've
marked this patchset RfC.)

Reading over the v6 version posted upthread, I agree with the patch being
ready. Are you taking care of it Jacob?

-  # disable -Dnls as the number of files it creates cause a noticable slowdown
+  # -Dnls need to be disabled as the number of files it creates cause a noticable slowdown

I think this should be s/noticable/noticeable/ (which is a nitpick a commmitter
can deal with, no need for a new version IMO).

--
Daniel Gustafsson

#21Andrew Dunstan
andrew@dunslane.net
In reply to: Daniel Gustafsson (#20)
#22Jacob Champion
jacob.champion@enterprisedb.com
In reply to: Daniel Gustafsson (#20)
#23Andres Freund
andres@anarazel.de
In reply to: Jacob Champion (#22)
#24Jacob Champion
jacob.champion@enterprisedb.com
In reply to: Andres Freund (#23)
#25Jacob Champion
jacob.champion@enterprisedb.com
In reply to: Jacob Champion (#24)
#26Nazir Bilal Yavuz
byavuz81@gmail.com
In reply to: Jacob Champion (#25)
#27Jacob Champion
jacob.champion@enterprisedb.com
In reply to: Nazir Bilal Yavuz (#26)
#28Jacob Champion
jacob.champion@enterprisedb.com
In reply to: Jacob Champion (#27)