Re: minimum Meson version - Mailing list pgsql-hackers

From Nazir Bilal Yavuz
Subject Re: minimum Meson version
Date
Msg-id CAN55FZ3Os-F+LbDqtDazZvLSG8Vr=rGtwAYAj9S32f53ccXj-w@mail.gmail.com
Whole thread Raw
In response to minimum Meson version  (Peter Eisentraut <peter@eisentraut.org>)
Responses Re: minimum Meson version
List pgsql-hackers
Hi,

On Wed, 18 Jun 2025 at 11:58, Peter Eisentraut <peter@eisentraut.org> wrote:
>
> On 17.06.25 19:36, Peter Eisentraut wrote:
> > meson.build currently says
> >
> > # We want < 0.56 for python 3.5 compatibility on old platforms. EPEL for
> > # RHEL 7 has 0.55. < 0.54 would require replacing some uses of the fs
> > # module, < 0.53 all uses of fs. So far there's no need to go to >=0.56.
> > meson_version: '>=0.54',
> >
> > Since the current minimum supported Python version is now actually 3.6,
> > we could update this a bit.
> >
> > The first Meson version to require Python 3.7 is 0.62, so we should stay
> > below that.
> >
> > Moving to 0.55 and 0.56 would get rid of some future-deprecated warnings.
> >
> > There is some conditional code for 0.57 and 0.59, so landing on either
> > of these would allow getting rid of some of that.
> >
> > I see that Rocky Linux 8 ships with Meson 0.58.2 [0], so maybe that is a
> > good target to aim for.  (I don't know if that carried over from RHEL 8
> > or is their own doing.)  But there aren't any compelling features new in
> > 0.58 (format strings seem nice but are pretty much cosmetic), so maybe
> > setting the minimum to 0.57 is enough.
>
> Ok, let's make a small start.  Here is a patch set that moves the
> requirement to >=0.57.  As explained above, this allows getting rid of a
> bunch of conditional code and the future-deprecated warnings.

Thanks for the patches! I didn't check them yet but I encountered some
errors while using meson 0.57.0 and 0.57.1 but 0.56.2, 0.57.2 and
0.58.0 worked successfully. These errors seem to be related to these
specific minor versions, but I just wanted to mention them:

- meson install command fails on 0.57.0:

FAILED: src/interfaces/ecpg/preproc/preproc.y
/usr/bin/perl ../../postgres/src/interfaces/ecpg/preproc/parse.pl
--srcdir @CURRENT_SOURCE_DIR@ --parser
../../postgres/src/interfaces/ecpg/preproc/../../../backend/parser/gram.y
--output src/interfaces/ecpg/preproc/preproc.y
Died at ../../postgres/src/interfaces/ecpg/preproc/parse.pl line 698.

- meson test command fails on 0.57.1:

Exception in callback TestHarness._run_tests.<locals>.test_done() at
/home/nbyavuz/Desktop/projects/meson/meson/mesonbuild/mtest.py:1807
handle: <Handle TestHarness._run_tests.<locals>.test_done() at
/home/nbyavuz/Desktop/projects/meson/meson/mesonbuild/mtest.py:1807>
Traceback (most recent call last):
  File "/usr/lib/python3.13/asyncio/events.py", line 89, in _run
    self._context.run(self._callback, *self._args)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/nbyavuz/Desktop/projects/meson/meson/mesonbuild/mtest.py",
line 1809, in test_done
    f.result()
    ~~~~~~~~^^
  File "/home/nbyavuz/Desktop/projects/meson/meson/mesonbuild/mtest.py",
line 1804, in run_test
    res = await test.run(self)
          ^^^^^^^^^^^^^^^^^^^^
  File "/home/nbyavuz/Desktop/projects/meson/meson/mesonbuild/mtest.py",
line 1350, in run
    await self._run_cmd(harness, cmd)
  File "/home/nbyavuz/Desktop/projects/meson/meson/mesonbuild/mtest.py",
line 1416, in _run_cmd
    returncode, result, additional_error = await p.wait(self.runobj.timeout)
                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/nbyavuz/Desktop/projects/meson/meson/mesonbuild/mtest.py",
line 1242, in wait
    await try_wait_one(p.wait(), timeout=timeout)
  File "/home/nbyavuz/Desktop/projects/meson/meson/mesonbuild/mtest.py",
line 1133, in try_wait_one
    await asyncio.wait(awaitables,
                       timeout=timeout, return_when=asyncio.FIRST_COMPLETED)
  File "/usr/lib/python3.13/asyncio/tasks.py", line 448, in wait
    raise TypeError("Passing coroutines is forbidden, use tasks explicitly.")
TypeError: Passing coroutines is forbidden, use tasks explicitly.
/usr/lib/python3.13/asyncio/events.py:89: RuntimeWarning: coroutine
'Process.wait' was never awaited
  self._context.run(self._callback, *self._args)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback

--
Regards,
Nazir Bilal Yavuz
Microsoft



pgsql-hackers by date:

Previous
From: shveta malik
Date:
Subject: Re: Fix slot synchronization with two_phase decoding enabled
Next
From: Shlok Kyal
Date:
Subject: Re: Skipping schema changes in publication