mbox series

[dbscripts,v2,0/8] PKGEXT fixup

Message ID 20180218171736.4473-1-lukeshu@lukeshu.com
Headers show
Series PKGEXT fixup | expand

Message

Luke Shumaker Feb. 18, 2018, 5:17 p.m. UTC
From: Luke Shumaker <lukeshu@parabola.nu>

This incorporates and improves on work from 3 previously submitted
patch sets:

 1. My testcase patch, but
    - take Eli's suggestion to simplify db-update.bats
    - add another commit so we don't hit a bug in BATS

 2. Renaming PKGEXT->PKGEXT_glob from my first fix patchset

 3. Eli's fix/extglob patchset, but
    - re-order things between commits
    - also accept ".tar" (with no compression suffix)
    - use `old_pkgs=()` instead of `unset old_pkgs`
    - replace `[ -ge 1]` with `(( > 0 ))` instead of `(( > 1 ))`
    - db-update: use `readarray < <(... | sort -u)` instead of the
      O(n^2) op of using in_array in a for loop and appending to the
      array
    - common.bash, sourceballs.bats: update to work with shopt -s
      extglob nullglob globstar; the tests needed updated too, not
      just the main code

The last 3 commits aren't really related to the goal of the patchset,
but I wanted to include all of the work from Eli's fix patchset.

I don't mean to take credit away from Eli by re-working his patches (I
credit him in the commit messages); I just wanted to make it clearer
what is accomplished by each change, and how each of the changes
relate to our goals; as well as actually testing each of them against
the test suite.

Luke Shumaker (8):
  test: common.bash:__getCheckSum: Don't rely on IFS
  test: db-update: @test "update same any package to same repository
    fails": change PKGEXT
  config: Rename PKGEXT to PKGEXT_glob
  Correctly treat PKGEXT_glob as a glob
  config: let PKGEXT_glob be an extglob; have its value match makepkg
  ftpdir-cleanup: fix typo in a comment ("pacakge")
  Replace all instances of `find` command with bash globbing
  ftpdir-cleanup, sourceballs: swap out [ -ge 1 ] for (( > 0 ))

 config                         |  4 +++-
 cron-jobs/ftpdir-cleanup       | 24 ++++++++++++++++++------
 cron-jobs/sourceballs          | 20 +++++++++++++++-----
 db-functions                   | 12 ++++++++++--
 db-move                        |  4 ++--
 db-update                      | 16 ++++++++++------
 test/cases/db-repo-add.bats    |  6 +++---
 test/cases/db-update.bats      |  5 +++--
 test/cases/ftpdir-cleanup.bats |  4 ++--
 test/cases/sourceballs.bats    |  4 ++--
 test/lib/common.bash           | 21 ++++++++++++++++-----
 11 files changed, 84 insertions(+), 36 deletions(-)

Comments

Emil Velikov via arch-projects Feb. 18, 2018, 5:29 p.m. UTC | #1
On 02/18/2018 12:17 PM, Luke Shumaker wrote:
> From: Luke Shumaker <lukeshu@parabola.nu>
> 
> This incorporates and improves on work from 3 previously submitted
> patch sets:
> 
>  1. My testcase patch, but
>     - take Eli's suggestion to simplify db-update.bats
>     - add another commit so we don't hit a bug in BATS
> 
>  2. Renaming PKGEXT->PKGEXT_glob from my first fix patchset
> 
>  3. Eli's fix/extglob patchset, but
>     - re-order things between commits
>     - also accept ".tar" (with no compression suffix)
>     - use `old_pkgs=()` instead of `unset old_pkgs`
>     - replace `[ -ge 1]` with `(( > 0 ))` instead of `(( > 1 ))`
>     - db-update: use `readarray < <(... | sort -u)` instead of the
>       O(n^2) op of using in_array in a for loop and appending to the
>       array
>     - common.bash, sourceballs.bats: update to work with shopt -s
>       extglob nullglob globstar; the tests needed updated too, not
>       just the main code
> 
> The last 3 commits aren't really related to the goal of the patchset,
> but I wanted to include all of the work from Eli's fix patchset.
> 
> I don't mean to take credit away from Eli by re-working his patches (I
> credit him in the commit messages); I just wanted to make it clearer
> what is accomplished by each change, and how each of the changes
> relate to our goals; as well as actually testing each of them against
> the test suite.
No need to resubmit someone else's amended patches, or resubmit
not-amended patches with the statement "I've tested this" (you did that
for devtools). Please just leave comments on the submitted patch.

I can resubmit the patch with a "v2: fix blahblahblah" comment after the
commit message detailing what changed. I just won't have time until Monday.

This also makes it easier to keep track of *which* patches are rerolls
of previous patches.
Luke Shumaker Feb. 18, 2018, 6:16 p.m. UTC | #2
On Sun, 18 Feb 2018 12:29:31 -0500,
Eli Schwartz wrote:
> On 02/18/2018 12:17 PM, Luke Shumaker wrote:
> > I don't mean to take credit away from Eli by re-working his patches (I
> > credit him in the commit messages); I just wanted to make it clearer
> > what is accomplished by each change, and how each of the changes
> > relate to our goals; as well as actually testing each of them against
> > the test suite.
> No need to resubmit someone else's amended patches, or resubmit
> not-amended patches with the statement "I've tested this" (you did that
> for devtools). Please just leave comments on the submitted patch.

There were also rebase/merge conflicts.  I wanted to have a commit
that fixed glob support (is_globfile), to verify that that worked
before adding extglob support; re-ordering that/splitting those
commits created rebase conflicts.

I verified that the test status of each of the commits is as expected.

I put the PKGEXT->PKGEXT_glob commit before the fix because it turns
out that it's easy to accidentally effectively revert the test during
that rename; and I wanted to ensure that it was still being tested by
the time the fix is applied.  This, of course, meant that your patches
didn't apply cleanly.

Noting the 3 patchsets that this incorporates:

 1. luke1: Renaming PKGEXT->PKGEXT_glob from my first fix patchset
 2. luke2: My testcase patch
 3. eli  : Eli's fix/extglob patchset

The origin of the changes in each, and it's testsuite status: 

     #     origin        test  subject
    [1/8]  new           PASS  test: common.bash:__getCheckSum: Don't rely on IFS
    [2/8]  luke2+reroll  FAIL  test: db-update: @test "update same any package to same repository fails": change PKGEXT
    [3/8]  luke1+reroll  FAIL  config: Rename PKGEXT to PKGEXT_glob
    [4/8]  eli+reroll    PASS  Correctly treat PKGEXT_glob as a glob
    [5/8]  eli+reroll    PASS  config: let PKGEXT_glob be an extglob; have its value match makepkg
    [6/8]  eli           PASS  ftpdir-cleanup: fix typo in a comment ("pacakge")
    [7/8]  eli           PASS  Replace all instances of `find` command with bash globbing
    [8/8]  eli+reroll    PASS  ftpdir-cleanup, sourceballs: swap out [ -ge 1 ] for (( > 0 ))

I don't believe the changes that are in commits 6 or 7 changed from
your work, except that they got split in to separate commits.