https://bugzilla.redhat.com/show_bug.cgi?id=2218306

Ben Beasley <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
              Flags|needinfo?(code@musicinmybra |
                   |in.net)                     |



--- Comment #4 from Ben Beasley <[email protected]> ---
(In reply to Roman Inflianskas from comment #3)
> @[email protected]
> 
> I checked the spec file. It looks good. However:
> 1. I couldn't check it with `fedora-review` (see:
> https://bugzilla.redhat.com/show_bug.cgi?id=2217496). Review template link
> in the automatic message above is broken (probably, because of the same
> reason).

The workaround mentioned in that bug of doing the review in a Fedora 38 chroot,
“fedora-review -b 2218306 -m fedora-38-x86_64”, should be adequate.

> 2. I believe I miss some knowledge (and I couldn't acquire it by searching
> on web). Could you please explain, why did you use variable `${ignore-}
> instead of defining a macro? Also, AFAIK, some shells do not allow `-` in
> variable names; how does this work and why does this mean?

This is a pattern/habit I’ve picked up for ignoring files in pytest. I build up
a shell variable called “ignore,” each time without caring whether the shell
variable is set yet or not, and then expand it (unquoted) in the %pytest
invocation. That way, I can add additional lines of the same form, reorder
them, or comment out any or all of them freely.

See
https://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_02
for documentation on "${foo-}"; it expands to the empty string if foo is unset,
but is more explicit than "${foo}" when foo might be unset, and works even if
the “nounset” shell option is set
(https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#set).
All of this is POSIX sh functionality, so it will work in any shell that
attempts to be POSIX-compliant (bash, dash, ash, ksh, etc.).

> ignore="${ignore-} --ignore=tests/test_docs.py"
> TZ=utc %pytest -v ${ignore-}

For a simple case like this, the above is exactly equivalent to

> TZ=utc %pytest -v --ignore=tests/test_docs.py

which would also be fine, and which is probably what I would have written if I
hadn’t established such a strong habit from messier packages. I’m happy to
change it for simplicity, although I think it doesn’t really matter much either
way.

I use a similar pattern to build up the argument for the -k option when I need
it:

> k="${k-}${k+ and }not test_foo"
> k="${k-}${k+ and }not test_bar"
> k="${k-}${k+ and }not test_bat"
> %pytest -k "${k-}"

This, too, is just POSIX sh, although we can safely assume that the shell in
spec files for Fedora is Bash. I do still personally prefer to avoid bashisms
in spec files unless they really do make things a lot simpler.


-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component
https://bugzilla.redhat.com/show_bug.cgi?id=2218306

Report this comment as SPAM: 
https://bugzilla.redhat.com/enter_bug.cgi?product=Bugzilla&format=report-spam&short_desc=Report%20of%20Bug%202218306%23c4
_______________________________________________
package-review mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to