Re: [webkit-dev] Proposal to update WebKitGTK dependency policy

2022-03-08 Thread Michael Catanzaro via webkit-dev
On Tue, Mar 8 2022 at 03:01:04 PM +0100, Carlos Alberto Lopez Perez 
 wrote:

It turns out this above opinion of mine doesn't reflect a consensus
opinion inside Igalia.

After sending the above e-mail, I talked with my colleagues at Igalia
(my failure for not doing that before) and it seems that we are not
happy with committing to support the libraries for such long amount 
of time.


Ah, alas. Well it's ultimately Igalia's choice, of course.


  - Which port(s) is RedHat interested in supporting? Only the GTK
port, or both GTK and WPE?


We ship WebKitGTK, libwpe, and wpebackend-fdo, but not WPE WebKit.


  - Is RedHat willing to devote development time to work upstream on
the goal of keeping WebKit working with older libraries?


Um, yes, of course nobody except me is likely to spend time to keep 
WebKit building on RHEL. The difference is I would be able to commit my 
changes upstream in the future, instead of keeping them downstream and 
rebasing them when they break. E.g. it looks like 
https://bugs.webkit.org/show_bug.cgi?id=235367 will have to live 
downstream. If we had this policy, I would be able to land stuff like 
that upstream too.


The main impact on other developers would be an increased wait before 
you can remove preprocessor guards that support older library versions. 
That could be annoying, but I don't think it will require too much time 
commitment.



  - Will buildbots be provided for RHEL, in the same way Igalia
maintains Ubuntu LTS and Debian stable builders to catch issues?


I'm not personally very concerned about whether we have upstream 
builders for RHEL, since fixing problems when they reach tarball 
releases is good enough for me. But yes, since you requested it, we can 
probably add upstream bots. (They would probably actually run CentOS 
Stream, not RHEL.) That will take some time, though, because I'm not 
currently working on it. In my previous mail, I said I would defer this 
proposal until we are ready with the requested bots.


I do very much want to add more JSC cloop EWS, and I bet Red Hat 
infrastructure folks might find time to help with those. We can 
probably add some builders at the same time. But to keep timeline in 
perspective: I've been planning this for years, but have not yet 
started on it. :P



In any case, we think that 3+2 of support is too much. We can maybe
agree on 3+1 (support each RHEL version until one year after the next
one, like we do with Debian/Ubuntu) or on just 3 (no extra year of
support), depending on how much RH is willing to help upstream.


Hm, I guess I'd better gratefully accept whatever I can get. I'll 
attempt to keep it working downstream for the full 3+2 years regardless.


Regarding resources from Red Hat to help upstream: that's going to 
remain just me. Certainly I would handle any changes needed to keep 
WebKit working on RHEL. Beyond that, I'll continue to help out a bit 
here and there. I wouldn't expect to see major changes in my 
contribution habits.


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Proposal to update WebKitGTK dependency policy

2022-03-08 Thread Carlos Alberto Lopez Perez via webkit-dev
On 17/02/2022 18:41, Carlos Alberto Lopez Perez via webkit-dev wrote:
> Personally I'm ok with this, since I usually error on the conservative
> side regarding updating dependencies. But I'm raising the topic to put
> things into perspective and to help having a debate.

It turns out this above opinion of mine doesn't reflect a consensus
opinion inside Igalia.

After sending the above e-mail, I talked with my colleagues at Igalia
(my failure for not doing that before) and it seems that we are not
happy with committing to support the libraries for such long amount of time.

On one hand we are afraid this can make upstream development slower.
On the other hand we have limited resources and supporting old libraries
is not part of our goals.


So would like to know whether RedHat plans to contribute to ensure that
the extended support would happen:

  - Which port(s) is RedHat interested in supporting? Only the GTK
port, or both GTK and WPE?

  - Is RedHat willing to devote development time to work upstream on
the goal of keeping WebKit working with older libraries?

  - Will buildbots be provided for RHEL, in the same way Igalia
maintains Ubuntu LTS and Debian stable builders to catch issues?


In any case, we think that 3+2 of support is too much. We can maybe
agree on 3+1 (support each RHEL version until one year after the next
one, like we do with Debian/Ubuntu) or on just 3 (no extra year of
support), depending on how much RH is willing to help upstream.

If RH is not willing to assign resources to help upstream then we would
rather leave the current policy as is (no change to include RHEL in the
dependencies policy)

Regards.
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Proposal to update WebKitGTK dependency policy

2022-02-28 Thread Michael Catanzaro via webkit-dev
On Thu, Feb 17 2022 at 01:20:50 PM -0600, Michael Catanzaro via 
webkit-dev  wrote:
That seems like a reasonable request. I'll delay modifying the policy 
until I'm able to provide an answer regarding the requested bots.


This could take a while, so the proposed policy change is dead for now.

But hypothetically, if I did have some bots ready, would Igalia be OK 
with the proposed change? You seemed skeptical ("I think this may cause 
tension in the future regarding supporting the usual GNOME libraries 
that move fast: GTK, GStreamer, etc") and I'm sensitive to the fact 
that proposing additional burden on other devs is not exactly a super 
nice thing to do. I wonder what other devs think.


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Proposal to update WebKitGTK dependency policy

2022-02-17 Thread Michael Catanzaro via webkit-dev




On Thu, Feb 17 2022 at 05:41:34 PM +, Carlos Alberto Lopez Perez 
via webkit-dev  wrote:

If I understand this correctly, that would mean that we would have to
support the libraries that we rely on, up to a version that may be 
quite

old.

Right now we are supporting a cycle of 2+1=3 (both debian and ubuntu
release each 2 years). And this change would mean that we would have 
to

extend the period up to 3+2=5 which is quite more.


Yes.


I think this may cause tension in the future regarding supporting the
usual GNOME libraries that move fast: GTK, GStreamer, etc


Possibly, yes. In practice, I think we're already in the habit of 
keeping #ifs for older dependencies around for longer than is required 
by our policy, so I suspect it will probably not be *too* annoying 
compared to our current practice.


I wish this would benefit Ubuntu as well, but in practice it won't, 
since they cannot keep up with our toolchain requirements, and Apple 
doesn't want to support older toolchains. That's tough to square. :/


To give some data, the last version of RHEL is 9 (released on Nov 
2021)


Nov 2021 was RHEL 9 beta. We are planning to release RHEL 9.0 this 
coming spring.


which means that we would support RHEL 8 up to Nov 2023. And RHEL 8 
was

released on May 2019 and includes this versions of libraries we use:

gstreamer = 1.16
gtk = 3.22
glib = 2.56
libsoup = 2.62
cairo = 1.15
icu = 60.3


Yes, though keep in mind I'm proposing to match the latest minor 
release (currently RHEL 8.5), not the earliest minor release (RHEL 
8.0). We used to update desktop package versions fairly aggressively in 
RHEL 7 (so long as they don't break API/ABI), but in RHEL 8 we have 
been more conservative and have mostly stopped doing so. So in 
practice, yes, most of those versions are indeed unlikely to change.



Also if we are going to do this, and we are serious about it, then we
would need at least two new buildbots at build.webkit.org for testing
the build on the last two versions of RHEL.
Is RedHat going to provide the resources for the bots and is going to
help taking care of things when they broke there?


That seems like a reasonable request. I'll delay modifying the policy 
until I'm able to provide an answer regarding the requested bots. We'd 
probably have them run CentOS Stream rather than actual RHEL. I suppose 
that's what we should target with the dependencies policy, as well, 
since it's simpler than having to know the difference between different 
RHEL minor releases.


What we *really* want most of all is JSC EWS for aarch64, ppc64le, and 
s390x. Adding a couple x86_64 buildbots should be comparatively easy


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Proposal to update WebKitGTK dependency policy

2022-02-17 Thread Carlos Alberto Lopez Perez via webkit-dev
On 17/02/2022 17:41, Carlos Alberto Lopez Perez via webkit-dev wrote:
> Also if we are going to do this, and we are serious about it, then we
> would need at least two new buildbots at build.webkit.org for testing
> the build on the last two versions of RHEL.
> Is RedHat going to provide the resources for the bots and is going to
> help taking care of things when they broke there?

Maybe with one is enough, to test on the older of the versions of RHEL
supported.

That is how we handle the Debian/Ubuntu support: we have the buildbots
configured to build on the older version supported.
Because if it builds on the older it should build on the newer :)
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Proposal to update WebKitGTK dependency policy

2022-02-17 Thread Carlos Alberto Lopez Perez via webkit-dev
On 08/02/2022 16:57, Michael Catanzaro via webkit-dev wrote:
> Hi,
> 
> I'd like to selfishly propose updating our dependencies policy
> https://trac.webkit.org/wiki/WebKitGTK/DependenciesPolicy in order to
> accommodate RHEL in addition to Debian and Ubuntu. My goal is to provide
> WebKitGTK updates for the first five years (the "full support" period)
> of a RHEL major release, not just three years. However, we have some
> magic I don't understand allows use of newer toolchains, including newer
> libstdc++. We can actually somehow link newer libstdc++ into the same
> process as system libstdc++, so we can exempt the entire build toolchain
> (including CMake) from this policy, so this won't have any effect on
> discussions like "when can we use C++20 features" or "what version of
> CMake can we depend on."
> 
> The primary impact would be on dependencies like ICU, GStreamer, etc.
> ICU is particularly important because this library bumps its ABI with
> every major release, so updating ICU to newer major versions is not
> possible. This would lock us into supporting ICU 67 until spring 2027.
> If we decide to land https://bugs.webkit.org/show_bug.cgi?id=235367 --
> which currently looks unlikely -- then it would additionally lock us
> into ICU 60 until spring 2024.
> 
> I think five years' support would benefit Ubuntu as well -- this matches
> the primary support lifetime of an Ubuntu LTS -- except Ubuntu doesn't
> seem to have the capability to build with newer toolchains, which means
> that, in practice, they will stop updating WebKit whenever we require a
> newer build toolchain. And although I think it would be a good idea to
> support Ubuntu for longer, I'm not brave enough to propose that we
> freeze our build toolchain dependencies for five years. So I will not
> suggest extending the support period for Ubuntu.
> 
> Specifically, I propose adding the following text to our policy:
> 
> * "We support the latest minor release of each major version of RHEL
> until two years after the release of the next major version."
> 
> (Note: we currently have a three-year time-based release cycle, so
> that's five years total. If that were to unexpectedly change in the
> future, then adjusting the text of the policy would be needed.)
> 
> And:
> 
> * "For RHEL, WebKit is not expected to remain buildable using the
> default system libstdc++. The requirement for WebKit to remain buildable
> may be satisfied using GCC and LLVM toolsets from Application Streams."

If I understand this correctly, that would mean that we would have to
support the libraries that we rely on, up to a version that may be quite
old.

Right now we are supporting a cycle of 2+1=3 (both debian and ubuntu
release each 2 years). And this change would mean that we would have to
extend the period up to 3+2=5 which is quite more.

I think this may cause tension in the future regarding supporting the
usual GNOME libraries that move fast: GTK, GStreamer, etc

To give some data, the last version of RHEL is 9 (released on Nov 2021)
which means that we would support RHEL 8 up to Nov 2023. And RHEL 8 was
released on May 2019 and includes this versions of libraries we use:

gstreamer = 1.16
gtk = 3.22
glib = 2.56
libsoup = 2.62
cairo = 1.15
icu = 60.3

Personally I'm ok with this, since I usually error on the conservative
side regarding updating dependencies. But I'm raising the topic to put
things into perspective and to help having a debate.

Also if we are going to do this, and we are serious about it, then we
would need at least two new buildbots at build.webkit.org for testing
the build on the last two versions of RHEL.
Is RedHat going to provide the resources for the bots and is going to
help taking care of things when they broke there?
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Proposal to update WebKitGTK dependency policy

2022-02-17 Thread Michael Catanzaro via webkit-dev



Hi,

Since nobody objected to this proposal, I will update our policy soon.

Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] Proposal to update WebKitGTK dependency policy

2022-02-08 Thread Michael Catanzaro via webkit-dev

Hi,

I'd like to selfishly propose updating our dependencies policy 
https://trac.webkit.org/wiki/WebKitGTK/DependenciesPolicy in order to 
accommodate RHEL in addition to Debian and Ubuntu. My goal is to 
provide WebKitGTK updates for the first five years (the "full support" 
period) of a RHEL major release, not just three years. However, we have 
some magic I don't understand allows use of newer toolchains, including 
newer libstdc++. We can actually somehow link newer libstdc++ into the 
same process as system libstdc++, so we can exempt the entire build 
toolchain (including CMake) from this policy, so this won't have any 
effect on discussions like "when can we use C++20 features" or "what 
version of CMake can we depend on."


The primary impact would be on dependencies like ICU, GStreamer, etc. 
ICU is particularly important because this library bumps its ABI with 
every major release, so updating ICU to newer major versions is not 
possible. This would lock us into supporting ICU 67 until spring 2027. 
If we decide to land https://bugs.webkit.org/show_bug.cgi?id=235367 -- 
which currently looks unlikely -- then it would additionally lock us 
into ICU 60 until spring 2024.


I think five years' support would benefit Ubuntu as well -- this 
matches the primary support lifetime of an Ubuntu LTS -- except Ubuntu 
doesn't seem to have the capability to build with newer toolchains, 
which means that, in practice, they will stop updating WebKit whenever 
we require a newer build toolchain. And although I think it would be a 
good idea to support Ubuntu for longer, I'm not brave enough to propose 
that we freeze our build toolchain dependencies for five years. So I 
will not suggest extending the support period for Ubuntu.


Specifically, I propose adding the following text to our policy:

* "We support the latest minor release of each major version of RHEL 
until two years after the release of the next major version."


(Note: we currently have a three-year time-based release cycle, so 
that's five years total. If that were to unexpectedly change in the 
future, then adjusting the text of the policy would be needed.)


And:

* "For RHEL, WebKit is not expected to remain buildable using the 
default system libstdc++. The requirement for WebKit to remain 
buildable may be satisfied using GCC and LLVM toolsets from Application 
Streams."


Michael


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev