Merge ~bryce/ubuntu/+source/php-parser:merge-v4.10.3-1-hirsute into ubuntu/+source/php-parser:ubuntu/devel

Proposed by Bryce Harrington
Status: Rejected
Rejected by: Bryce Harrington
Proposed branch: ~bryce/ubuntu/+source/php-parser:merge-v4.10.3-1-hirsute
Merge into: ubuntu/+source/php-parser:ubuntu/devel
Diff against target: 211 lines (+164/-1)
5 files modified
debian/changelog (+32/-0)
debian/control (+2/-1)
debian/patches/0003-Disable-new-test-cases-not-yet-32-bit-compatible.patch (+57/-0)
debian/patches/0004-Disable-CodeParsingTest-due-to-integer-syntax.patch (+71/-0)
debian/patches/series (+2/-0)
Reviewer Review Type Date Requested Status
Sergio Durigan Junior (community) Needs Fixing
git-ubuntu developers Pending
Canonical Server Pending
Ubuntu Server Developers Pending
Review via email: mp+395546@code.launchpad.net

Description of the change

Straightforward merge of php-parser carrying the delta forward.

Upstream did a bunch of work on their tests, including the test cases we had disabled, so I tried a sync hoping they had fixed the issues but just hadn't updated the bug report we sent them. Unfortunately, the exact same armhf issues cropped up, so no dice.

Anyway, because of that sync attempt, I merged manually rather than through the traditional git ubuntu merge process, so there aren't the usual tags.

I took some time looking through upstream's changes to tests, and also into why the tests are failing. But I didn't want to devote too much time to that this cycle so timeboxed it when I didn't uncover any insights. The patches are a bit brute force and could be better constrained (e.g. only take affect for armhf), however I think when time is more available it would be worth figuring out exactly what's failing, or perhaps work closer with upstream so they can understand/reproduce it. Work for another day...

PPA: https://launchpad.net/~bryce/+archive/ubuntu/php-parser-merge-v4.10.3-1

To post a comment you must log in.
Revision history for this message
Sergio Durigan Junior (sergiodj) wrote :

I'm reviewing this one.

Revision history for this message
Sergio Durigan Junior (sergiodj) wrote :

* Changelog:
  - [-] old content and logical tag match as expected
  - [√] changelog entry correct version and targeted codename
  - [√] changelog entries correct
  - [√] update-maintainer has been run

* Actual changes:
  - [√] no upstream changes to consider
  - [√] no further upstream version to consider
  - [√] debian changes look safe

* Old Delta:
  - [-] dropped changes are ok to be dropped
  - [√] nothing else to drop
  - [√] changes forwarded upstream/debian (if appropriate)

* New Delta:
  - [-] no new patches added
  - [-] patches match what was proposed upstream
  - [√] patches correctly included in debian/patches/series
  - [√] patches have correct DEP3 metadata

* Build/Test:
  - [√] build is ok
  - [√] verified PPA package installs/uninstalls
  - [X] autopkgtest against the PPA package passes
  - [√] sanity checks test fine

I've successfully installed/purged the package in a pristine hirsute container.

However, I ran the dep8 tests manually here and noticed they're failing:

autopkgtest [16:58:51]: test command1: -----------------------]
autopkgtest [16:58:52]: test command1: - - - - - - - - - - results - - - - - - - - - -
command1 FAIL non-zero exit status 2
autopkgtest [16:58:52]: @@@@@@@@@@@@@@@@@@@@ summary
command1 FAIL non-zero exit status 2

The log is too big to post here, but I'm seeing 21 failures in the test.

I also noticed that you created two extra commits on top of the branch in order to refresh the patches. Maybe it'd be better to squash them into their original commits? I'm not entirely sure this will make any difference next time the package is merged, but it's something I always try to do.

review: Needs Fixing
Revision history for this message
Bryce Harrington (bryce) wrote :
Download full text (3.4 KiB)

Huh, weird. I do not see autopkgtests running in my local lxc environment, just one warning (for a test we're intentionally disabling):

autopkgtest [19:03:43]: testing package php-parser version 4.10.3-1ubuntu1~hirsute1
autopkgtest [19:03:43]: build not needed
autopkgtest [19:03:43]: test command1: preparing testbed
Reading package lists... Done
Building dependency tree
Reading state information... Done
Starting pkgProblemResolver with broken count: 0
Starting 2 pkgProblemResolver with broken count: 0
Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up autopkgtest-satdep (0) ...
(Reading database ... 114486 files and directories currently installed.)
Removing autopkgtest-satdep (0) ...
autopkgtest [19:03:46]: test command1: mkdir --parents vendor && phpab -o vendor/autoload.php -t debian/autoload.tests.php.tpl test/PhpParser && phpunit
autopkgtest [19:03:46]: test command1: [-----------------------
phpab %development% - Copyright (C) 2009 - 2021 by Arne Blankerts and Contributors

Scanning directory test/PhpParser

Autoload file vendor/autoload.php generated.

PHPUnit 8.5.9 by Sebastian Bergmann and contributors.

............................................................. 61 / 1241 ( 4%)
............................................................W 122 / 1241 ( 9%)
............................................................. 183 / 1241 ( 14%)
............................................................. 244 / 1241 ( 19%)
............................................................. 305 / 1241 ( 24%)
............................................................. 366 / 1241 ( 29%)
............................................................. 427 / 1241 ( 34%)
............................................................. 488 / 1241 ( 39%)
............................................................. 549 / 1241 ( 44%)
............................................................. 610 / 1241 ( 49%)
............................................................. 671 / 1241 ( 54%)
............................................................. 732 / 1241 ( 58%)
............................................................. 793 / 1241 ( 63%)
............................................................. 854 / 1241 ( 68%)
............................................................. 915 / 1241 ( 73%)
............................................................. 976 / 1241 ( 78%)
............................................................. 1037 / 1241 ( 83%)
............................................................. 1098 / 1241 ( 88%)
............................................................. 1159 / 1241 ( 93%)
............................................................. 1220 / 1241 ( 98%)
..................... 1241 / 1241 (100%)

Time: 618 ms, Memory: 72.00 MB

There was 1 warning:

1) Warning
No tests found in class "PhpParser\CodeParsingTest".

WARNINGS!
Tests: 1241, Assertions: 2273, Warnings: 1.
autopkgtest [19:03:47]: test command1: -------------------...

Read more...

Revision history for this message
Sergio Durigan Junior (sergiodj) wrote :

I'm rerunning the tests now, but I've just noticed that php-parser was sync'ed from Debian in the meantime, with version 4.10.4-1, which is greater than the version you're proposing on this MP. I've also noticed that the package currently FTBFS:

https://launchpad.net/ubuntu/+source/php-parser/4.10.4-1
https://launchpadlibrarian.net/512528935/buildlog_ubuntu-hirsute-amd64.php-parser_4.10.4-1_BUILDING.txt.gz

so I think we'll need to abandon this MP and try to fix the build failure :-).

BTW, the autopktest has just finished with an error again:

https://paste.ubuntu.com/p/pdqHnTXn9P/

However, I ran autopkgtest again using the package from your PPA this time, and the tests are passing. This is kind of puzzling, but I won't spend more time on this since there's the FTBFS to fix now.

Revision history for this message
Bryce Harrington (bryce) wrote :

There is a new version 4.10.4 available, so I'm going to close out this MP and start a new one.

phpunit 9.5 still hasn't migrated but it's built for -proposed so I don't expect we'll hit these same issues.

Unmerged commits

0743c00... by Bryce Harrington

Refresh patch 0004-Disable-CodeParsingTest-due-to-integer-syntax.patch

98d6ac9... by Bryce Harrington

Refresh patch 0003-Disable-new-test-cases-not-yet-32-bit-compatible.patch

213fc35... by Bryce Harrington

changelog

07a8309... by Bryce Harrington

update-maintainer

01ce3b2... by Bryce Harrington

  * d/p/0004-Disable-CodeParsingTest-due-to-integer-syntax.patch:
    - Disable another test case that is not yet 32-bit compatible, to fix
      proposed migration blockage on armhf.

a8f82a2... by Bryce Harrington

  * d/p/0003-Disable-new-test-cases-not-yet-32-bit-compatible.patch:
    - Disable two new test cases in order to fix proposed migration
      blockage on armhf due to autopkgtest failures. Upstream indicates
      these new test cases have not been verified to work with 32-bit.
      (LP: #1878102)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/debian/changelog b/debian/changelog
index 15d5f15..db25f0e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,17 @@
1php-parser (4.10.3-1ubuntu1) hirsute; urgency=medium
2
3 * Merge with Debian unstable. Remaining changes:
4 - d/p/0003-Disable-new-test-cases-not-yet-32-bit-compatible.patch:
5 + Disable two new test cases in order to fix proposed migration
6 blockage on armhf due to autopkgtest failures. Upstream indicates
7 these new test cases have not been verified to work with 32-bit.
8 (LP #1878102)
9 - d/p/0004-Disable-CodeParsingTest-due-to-integer-syntax.patch:
10 + Disable another test case that is not yet 32-bit compatible, to fix
11 proposed migration blockage on armhf.
12
13 -- Bryce Harrington <bryce@canonical.com> Tue, 15 Dec 2020 17:40:12 +0000
14
1php-parser (4.10.3-1) unstable; urgency=medium15php-parser (4.10.3-1) unstable; urgency=medium
216
3 [ Nikita Popov ]17 [ Nikita Popov ]
@@ -94,6 +108,24 @@ php-parser (4.5.0-1) unstable; urgency=medium
94108
95 -- David Prévot <taffit@debian.org> Fri, 05 Jun 2020 17:25:11 -1000109 -- David Prévot <taffit@debian.org> Fri, 05 Jun 2020 17:25:11 -1000
96110
111php-parser (4.4.0-1ubuntu2) groovy; urgency=medium
112
113 * d/p/0004-Disable-CodeParsingTest-due-to-integer-syntax.patch:
114 - Disable another test case that is not yet 32-bit compatible, to fix
115 proposed migration blockage on armhf.
116
117 -- Bryce Harrington <bryce@canonical.com> Thu, 14 May 2020 23:25:09 +0000
118
119php-parser (4.4.0-1ubuntu1) groovy; urgency=medium
120
121 * d/p/0003-Disable-new-test-cases-not-yet-32-bit-compatible.patch:
122 - Disable two new test cases in order to fix proposed migration
123 blockage on armhf due to autopkgtest failures. Upstream indicates
124 these new test cases have not been verified to work with 32-bit.
125 (LP: #1878102)
126
127 -- Bryce Harrington <bryce@canonical.com> Tue, 12 May 2020 21:59:29 +0000
128
97php-parser (4.4.0-1) unstable; urgency=medium129php-parser (4.4.0-1) unstable; urgency=medium
98130
99 [ Nikita Popov ]131 [ Nikita Popov ]
diff --git a/debian/control b/debian/control
index 715f004..07fe9d0 100644
--- a/debian/control
+++ b/debian/control
@@ -1,7 +1,8 @@
1Source: php-parser1Source: php-parser
2Section: php2Section: php
3Priority: optional3Priority: optional
4Maintainer: Debian PHP PEAR Maintainers <pkg-php-pear@lists.alioth.debian.org>4Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
5XSBC-Original-Maintainer: Debian PHP PEAR Maintainers <pkg-php-pear@lists.alioth.debian.org>
5Uploaders: David Prévot <taffit@debian.org>,6Uploaders: David Prévot <taffit@debian.org>,
6 Prach Pongpanich <prachpub@gmail.com>7 Prach Pongpanich <prachpub@gmail.com>
7Build-Depends: debhelper-compat (= 13),8Build-Depends: debhelper-compat (= 13),
diff --git a/debian/patches/0003-Disable-new-test-cases-not-yet-32-bit-compatible.patch b/debian/patches/0003-Disable-new-test-cases-not-yet-32-bit-compatible.patch
8new file mode 1006449new file mode 100644
index 0000000..759c633
--- /dev/null
+++ b/debian/patches/0003-Disable-new-test-cases-not-yet-32-bit-compatible.patch
@@ -0,0 +1,57 @@
1From d8a2b2392cc65b493e375987cb593a4f641e7b64 Mon Sep 17 00:00:00 2001
2From: Bryce Harrington <bryce@bryceharrington.org>
3Date: Tue, 12 May 2020 20:37:14 +0000
4Subject: [PATCH] Disable new test cases not yet 32-bit compatible
5
6Two test cases new in 4.4.0 fail on armhf:
7
8 - CodeParsingTest::testParse: Different integer syntaxes
9 - Lexer\EmulativeTest::testLexNewFeatures: '0xCAFE_F00D'
10
11Upstream reports these may not be 32-bit compatible.
12
13For now, don't run these two new test cases, until they're expected to be
14able to run on all platforms.
15
16Signed-off-by: Bryce Harrington <bryce@bryceharrington.org>
17---
18 test/PhpParser/Lexer/EmulativeTest.php | 12 ------------
19 1 file changed, 12 deletions(-)
20
21Origin: vendor
22Bug: https://github.com/nikic/PHP-Parser/issues/662
23Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/php-parser/+bug/1878102
24Last-Updated: 2020-12-18
25
26diff --git a/test/PhpParser/Lexer/EmulativeTest.php b/test/PhpParser/Lexer/EmulativeTest.php
27index e141b13..9b74fd1 100644
28--- a/test/PhpParser/Lexer/EmulativeTest.php
29+++ b/test/PhpParser/Lexer/EmulativeTest.php
30@@ -105,15 +105,6 @@ class EmulativeTest extends LexerTest
31 $this->assertSame($expectedTokens, $tokens);
32 }
33
34- /**
35- * @dataProvider provideTestLexNewFeatures
36- */
37- public function testLexNewFeatures($code, array $expectedTokens) {
38- $lexer = $this->getLexer();
39- $lexer->startLexing('<?php ' . $code);
40- $this->assertSameTokens($expectedTokens, $lexer);
41- }
42-
43 /**
44 * @dataProvider provideTestLexNewFeatures
45 */
46@@ -241,9 +232,6 @@ class EmulativeTest extends LexerTest
47 ['1_000', [
48 [Tokens::T_LNUMBER, '1_000'],
49 ]],
50- ['0xCAFE_F00D', [
51- [Tokens::T_LNUMBER, '0xCAFE_F00D'],
52- ]],
53 ['0b0101_1111', [
54 [Tokens::T_LNUMBER, '0b0101_1111'],
55 ]],
56--
572.25.1
diff --git a/debian/patches/0004-Disable-CodeParsingTest-due-to-integer-syntax.patch b/debian/patches/0004-Disable-CodeParsingTest-due-to-integer-syntax.patch
0new file mode 10064458new file mode 100644
index 0000000..de04972
--- /dev/null
+++ b/debian/patches/0004-Disable-CodeParsingTest-due-to-integer-syntax.patch
@@ -0,0 +1,71 @@
1From a354b3bc4fcf1bfe22d84741ebd1d945c4fa50df Mon Sep 17 00:00:00 2001
2From: Bryce Harrington <bryce@bryceharrington.org>
3Date: Thu, 14 May 2020 23:11:18 +0000
4Subject: [PATCH] Disable CodeParsingTest due to integer syntax inconsistency
5 on armhf
6
7Workaround testsuite failure when run on armhf by disabling the test
8case. The specific failing test case is from
9PhpParser\CodeParsingTest::testParse with the
10scalar/numberSeparators.test#0 data set:
11
12 2: Stmt_Expression(
13 - expr: Scalar_LNumber(
14 - value: 3405705229
15 + expr: Scalar_DNumber(
16 + value: 0
17 )
18
19Signed-off-by: Bryce Harrington <bryce@bryceharrington.org>
20---
21 test/PhpParser/CodeParsingTest.php | 29 -----------------------------
22 1 file changed, 29 deletions(-)
23
24Origin: vendor
25Bug: https://github.com/nikic/PHP-Parser/issues/662
26Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/php-parser/+bug/1878102
27Last-Updated: 2020-12-18
28
29diff --git a/test/PhpParser/CodeParsingTest.php b/test/PhpParser/CodeParsingTest.php
30index 24e93dd..1947932 100644
31--- a/test/PhpParser/CodeParsingTest.php
32+++ b/test/PhpParser/CodeParsingTest.php
33@@ -7,35 +7,6 @@ use PhpParser\Node\Stmt;
34
35 class CodeParsingTest extends CodeTestAbstract
36 {
37- /**
38- * @dataProvider provideTestParse
39- */
40- public function testParse($name, $code, $expected, $modeLine) {
41- if (null !== $modeLine) {
42- $modes = array_fill_keys(explode(',', $modeLine), true);
43- } else {
44- $modes = [];
45- }
46-
47- list($parser5, $parser7) = $this->createParsers($modes);
48- list($stmts5, $output5) = $this->getParseOutput($parser5, $code, $modes);
49- list($stmts7, $output7) = $this->getParseOutput($parser7, $code, $modes);
50-
51- if (isset($modes['php5'])) {
52- $this->assertSame($expected, $output5, $name);
53- $this->assertNotSame($expected, $output7, $name);
54- } elseif (isset($modes['php7'])) {
55- $this->assertNotSame($expected, $output5, $name);
56- $this->assertSame($expected, $output7, $name);
57- } else {
58- $this->assertSame($expected, $output5, $name);
59- $this->assertSame($expected, $output7, $name);
60- }
61-
62- $this->checkAttributes($stmts5);
63- $this->checkAttributes($stmts7);
64- }
65-
66 public function createParsers(array $modes) {
67 $lexer = new Lexer\Emulative(['usedAttributes' => [
68 'startLine', 'endLine',
69--
702.25.1
71
diff --git a/debian/patches/series b/debian/patches/series
index 629876c..47821f7 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,4 @@
10001-Allow-require-to-search-in-the-path.patch10001-Allow-require-to-search-in-the-path.patch
20002-Adapt-shebang-for-PHP-script.patch20002-Adapt-shebang-for-PHP-script.patch
30003-Disable-new-test-cases-not-yet-32-bit-compatible.patch
40004-Disable-CodeParsingTest-due-to-integer-syntax.patch
3\ No newline at end of file5\ No newline at end of file

Subscribers

People subscribed via source and target branches