diff mbox series

[2/3] ci: update Perforce version to r23.2

Message ID ee5d836b779087890acdad061ef6995642942479.1721740612.git.ps@pks.im (mailing list archive)
State Superseded
Headers show
Series Improvements for Perforce tests | expand

Commit Message

Patrick Steinhardt July 23, 2024, 2:05 p.m. UTC
Update our Perforce version from r21.2 to r23.2. Note that the updated
version is not the newest version. Instead, it is the last version where
the way that Perforce is being distributed remains the same as in r21.2.
Newer releases stopped distributing p4 and p4d executablesas well as the
macOS archives directly and would thus require more work.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
---
 ci/install-dependencies.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Johannes Schindelin July 24, 2024, 8:39 a.m. UTC | #1
Hi Patrick,

On Tue, 23 Jul 2024, Patrick Steinhardt wrote:

> Update our Perforce version from r21.2 to r23.2. Note that the updated
> version is not the newest version. Instead, it is the last version where
> the way that Perforce is being distributed remains the same as in r21.2.
> Newer releases stopped distributing p4 and p4d executablesas well as the
> macOS archives directly and would thus require more work.

An alternative would be to simply stop installing `p4` in CI. I would
actually be in favor of that, for multiple reasons:

- The pace of reviews and integration of `git-p4` patches has slowed down
  over the couple of years. For example,
  https://lore.kernel.org/git/20210510183638.156a6b1d@ado-tr/ has not seen
  any traction in over three years (most likely because we no longer have
  any active contributor with a vested interest in `git-p4`), and
  https://github.com/gitgitgadget/git/pull/1028 and
  https://github.com/gitgitgadget/git/pull/1070 have not even been
  submitted to the Git mailing list (most likely because of the hurdles to
  contribute).

- Over the years, it has been made harder and harder to install Perforce
  in CI. I spent a good deal of time trying to keep the Homebrew taps up
  to date (which was hard because Perforce kept replacing the archive
  behind that URL with newer versions, which always broke Homebrew's SHA
  check until it was adjusted accordingly).

- The `git-p4` tests use quite a bit of time and electricity in all those
  CI builds. Therefore, it seems desirable to me to stop running these
  tests as part of the CI builds.

Ciao,
Johannes
Patrick Steinhardt July 24, 2024, 9:01 a.m. UTC | #2
On Wed, Jul 24, 2024 at 10:39:54AM +0200, Johannes Schindelin wrote:
> Hi Patrick,
> 
> On Tue, 23 Jul 2024, Patrick Steinhardt wrote:
> 
> > Update our Perforce version from r21.2 to r23.2. Note that the updated
> > version is not the newest version. Instead, it is the last version where
> > the way that Perforce is being distributed remains the same as in r21.2.
> > Newer releases stopped distributing p4 and p4d executablesas well as the
> > macOS archives directly and would thus require more work.
> 
> An alternative would be to simply stop installing `p4` in CI. I would
> actually be in favor of that, for multiple reasons:
> 
> - The pace of reviews and integration of `git-p4` patches has slowed down
>   over the couple of years. For example,
>   https://lore.kernel.org/git/20210510183638.156a6b1d@ado-tr/ has not seen
>   any traction in over three years (most likely because we no longer have
>   any active contributor with a vested interest in `git-p4`), and
>   https://github.com/gitgitgadget/git/pull/1028 and
>   https://github.com/gitgitgadget/git/pull/1070 have not even been
>   submitted to the Git mailing list (most likely because of the hurdles to
>   contribute).
> 
> - Over the years, it has been made harder and harder to install Perforce
>   in CI. I spent a good deal of time trying to keep the Homebrew taps up
>   to date (which was hard because Perforce kept replacing the archive
>   behind that URL with newer versions, which always broke Homebrew's SHA
>   check until it was adjusted accordingly).
> 
> - The `git-p4` tests use quite a bit of time and electricity in all those
>   CI builds. Therefore, it seems desirable to me to stop running these
>   tests as part of the CI builds.

I don't think that is a good idea. If we stop installing p4, the result
is that _nobody_ will ever run the tests at all. The tests, and by
extension git-p4 itself, would start to bitrot and we wouldn't notice
any kind of regressions at all anymore.

If we want to consider going down that route, I'd rather say we should
do it all or nothing: either we rip out git-p4 and the tests, or we
leave both of them in. I couldn't care less about git-p4 itself, so I
would not mind ripping it out altogether. But there may be users of this
script out there that do care, so I don't want to make that decision
unilaterally.

Patrick
Junio C Hamano July 24, 2024, 4:10 p.m. UTC | #3
Patrick Steinhardt <ps@pks.im> writes:

> I don't think that is a good idea. If we stop installing p4, the result
> is that _nobody_ will ever run the tests at all. The tests, and by
> extension git-p4 itself, would start to bitrot and we wouldn't notice
> any kind of regressions at all anymore.
>
> If we want to consider going down that route, I'd rather say we should
> do it all or nothing: either we rip out git-p4 and the tests, or we
> leave both of them in. I couldn't care less about git-p4 itself, so I
> would not mind ripping it out altogether. But there may be users of this
> script out there that do care, so I don't want to make that decision
> unilaterally.

Yup, I was actually interpreting Dscho's message as advocating the
removal of "git p4".  Such a move would certainly force people who
do care about it to come out.  It is up to them to volunteer to help
maintaining "git p4".

This may be a good example to discuss "support policy" not on niche
platforms but on niche features (Emily Cc'ed).

Thanks.
Patrick Steinhardt July 30, 2024, 6 a.m. UTC | #4
On Wed, Jul 24, 2024 at 09:10:54AM -0700, Junio C Hamano wrote:
> Patrick Steinhardt <ps@pks.im> writes:
> 
> > I don't think that is a good idea. If we stop installing p4, the result
> > is that _nobody_ will ever run the tests at all. The tests, and by
> > extension git-p4 itself, would start to bitrot and we wouldn't notice
> > any kind of regressions at all anymore.
> >
> > If we want to consider going down that route, I'd rather say we should
> > do it all or nothing: either we rip out git-p4 and the tests, or we
> > leave both of them in. I couldn't care less about git-p4 itself, so I
> > would not mind ripping it out altogether. But there may be users of this
> > script out there that do care, so I don't want to make that decision
> > unilaterally.
> 
> Yup, I was actually interpreting Dscho's message as advocating the
> removal of "git p4".  Such a move would certainly force people who
> do care about it to come out.  It is up to them to volunteer to help
> maintaining "git p4".
> 
> This may be a good example to discuss "support policy" not on niche
> platforms but on niche features (Emily Cc'ed).

As said, I wouldn't mind dropping support for `git p4` altogether. That
is a much bigger discussion though, and I'm not sure whether we should
just drop it at a "random" point in time without something like a grace
period where people can chime in and express their wish to help out with
the maintenance of it. In other words, we should probably deprecate it
properly and announce our intent to deprecate it. Both our release notes
and "Documentation/BreakingChanges.txt" could we viable ways to do that.

And while we haven't yet decided to rip out support for Perforce, I
think that the proposed patch series is somewhat sensible. I honestly
really only care about marking the patches as leak-free to help my
bigger goal of making the whole test suite leak-free. The other patches
that make the tests compatible with newer versions of Perforce aren't
all that important, but at least they help to make those tests a bit
more accessible to interested folks.

Patrick
Justin Tobler July 30, 2024, 10:48 p.m. UTC | #5
On 24/07/23 04:05PM, Patrick Steinhardt wrote:
> Update our Perforce version from r21.2 to r23.2. Note that the updated
> version is not the newest version. Instead, it is the last version where
> the way that Perforce is being distributed remains the same as in r21.2.
> Newer releases stopped distributing p4 and p4d executablesas well as the

s/executablesas/executables as/

> macOS archives directly and would thus require more work.

Out of curiousity, for Perforce is there a defined range of versions
that the Git project supports? I guess I'm trying to figure if it even
makes sense to support older version of Perforce in our tests.

> 
> Signed-off-by: Patrick Steinhardt <ps@pks.im>
> ---
>  ci/install-dependencies.sh | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
> index 6ec0f85972..b59fd7c1fd 100755
> --- a/ci/install-dependencies.sh
> +++ b/ci/install-dependencies.sh
> @@ -7,7 +7,7 @@
>  
>  begin_group "Install dependencies"
>  
> -P4WHENCE=https://cdist2.perforce.com/perforce/r21.2
> +P4WHENCE=https://cdist2.perforce.com/perforce/r23.2
>  LFSWHENCE=https://github.com/github/git-lfs/releases/download/v$LINUX_GIT_LFS_VERSION
>  JGITWHENCE=https://repo.eclipse.org/content/groups/releases//org/eclipse/jgit/org.eclipse.jgit.pgm/6.8.0.202311291450-r/org.eclipse.jgit.pgm-6.8.0.202311291450-r.sh
>  
> -- 
> 2.46.0.rc1.dirty
>
Patrick Steinhardt July 31, 2024, 10:15 a.m. UTC | #6
On Tue, Jul 30, 2024 at 05:48:38PM -0500, Justin Tobler wrote:
> On 24/07/23 04:05PM, Patrick Steinhardt wrote:
> > Update our Perforce version from r21.2 to r23.2. Note that the updated
> > version is not the newest version. Instead, it is the last version where
> > the way that Perforce is being distributed remains the same as in r21.2.
> > Newer releases stopped distributing p4 and p4d executablesas well as the
> 
> s/executablesas/executables as/
> 
> > macOS archives directly and would thus require more work.
> 
> Out of curiousity, for Perforce is there a defined range of versions
> that the Git project supports? I guess I'm trying to figure if it even
> makes sense to support older version of Perforce in our tests.

Not that I'd know of. Which is why I'm being doubly cautious to
deprecate support for older versions :) Not that many people would care,
but still, I don't want to make such decisions without having any clue
at all about the surrounding Perforce ecosystem.

Patrick
diff mbox series

Patch

diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
index 6ec0f85972..b59fd7c1fd 100755
--- a/ci/install-dependencies.sh
+++ b/ci/install-dependencies.sh
@@ -7,7 +7,7 @@ 
 
 begin_group "Install dependencies"
 
-P4WHENCE=https://cdist2.perforce.com/perforce/r21.2
+P4WHENCE=https://cdist2.perforce.com/perforce/r23.2
 LFSWHENCE=https://github.com/github/git-lfs/releases/download/v$LINUX_GIT_LFS_VERSION
 JGITWHENCE=https://repo.eclipse.org/content/groups/releases//org/eclipse/jgit/org.eclipse.jgit.pgm/6.8.0.202311291450-r/org.eclipse.jgit.pgm-6.8.0.202311291450-r.sh