Bug 2250532 - Review Request: python-nifti-mrs - Software tools for the NIfTI-MRS data format
Summary: Review Request: python-nifti-mrs - Software tools for the NIfTI-MRS data format
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Sandro
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: fedora-neuro, NeuroFedora
TreeView+ depends on / blocked
 
Reported: 2023-11-19 14:32 UTC by Ben Beasley
Modified: 2024-02-09 01:25 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2024-01-31 17:25:29 UTC
Type: Bug
Embargoed:
gui1ty: fedora-review+


Attachments (Terms of Use)

Description Ben Beasley 2023-11-19 14:32:35 UTC
Spec URL: https://music.fedorapeople.org/python-nifti-mrs.spec
SRPM URL: https://music.fedorapeople.org/python-nifti-mrs-1.0.2-1.fc39.src.rpm

Description:

This package contains python-based tools for representing, validating, and
manipulating the NIfTI-MRS format. NIfTI-MRS is a standardised format for
storing Magnetic Resonance Spectroscopy data.

These tools are used extensively in the spec2nii format conversion program and
the FSL-MRS analysis software. However, this library can also be used as a
stand-alone set of tools.

If you use these tools please cite: Clarke, WT, Bell, TK, Emir, UE, et al.
NIfTI-MRS: A standard data format for magnetic resonance spectroscopy. Magn
Reson Med. 2022; 88: 2358- 2370. doi:10.1002/mrm.29418

Fedora Account System Username: music

This will be a neuro-sig package. It is a dependency for spec2nii (https://pypi.org/project/spec2nii/), which is needed for bidscoin (https://pypi.org/project/bidscoin/, https://pagure.io/neuro-sig/NeuroFedora/issue/500).

Koji scratch builds:

F40: https://koji.fedoraproject.org/koji/taskinfo?taskID=109254383
F39: https://koji.fedoraproject.org/koji/taskinfo?taskID=109254385
F38: https://koji.fedoraproject.org/koji/taskinfo?taskID=109254391

Again, but forcing the build to run on all architectures to make sure there are no arch-dependent test failures:

F40: https://koji.fedoraproject.org/koji/taskinfo?taskID=109254435
F39: https://koji.fedoraproject.org/koji/taskinfo?taskID=109254437
F38: https://koji.fedoraproject.org/koji/taskinfo?taskID=109254442

Comment 1 Ben Beasley 2023-11-19 14:40:56 UTC
Oops, this did fail on s390x! Let me look into that.

Comment 2 Ben Beasley 2023-11-19 15:11:38 UTC
Reported and worked around the s390x failures.

Fixed a file-list issue and added Unlicense due to versioneer-generated _version.py.

Dropping F38 due to issues with older python-versioneer (surely fixable, but why bother?)

New Spec URL: https://music.fedorapeople.org/20231119/python-nifti-mrs.spec
New SRPM URL: https://music.fedorapeople.org/20231119/python-nifti-mrs-1.0.2-1.fc39.src.rpm

Koji scratch builds (all architectures again):

F40: https://koji.fedoraproject.org/koji/taskinfo?taskID=109255440
F39: https://koji.fedoraproject.org/koji/taskinfo?taskID=109255442

Comment 3 Sandro 2024-01-29 23:01:45 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


Notes
=====

[x]: License file installed when any subpackage combination is installed.

=> mrs_tools-1.0.2-1.fc40.noarch.rpm does not contain a license file. I see that it requires python3-nifti-mrs, which has a license file.
Personally, I'd err on the side of caution here. Not blocking this review, but rather something to keep in mind.

[!]: Latest version is packaged.

=> Version 1.1.1 was released on December 6, 2023. Please update before importing.

=> A nitpicky bit: Consider standardizing on BRs. You are using `python3-foo` and `%{py3_dist foo}` intermixed.

=> Bonus points for handcrafted man pages!

===== MUST items =====

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
[x]: License file installed when any subpackage combination is installed.
[-]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[-]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: If (and only if) the source package includes the text of the
     license(s) in its own file, then that file, containing the text of the
     license(s) for the package is included in %license.
[x]: The License field must be a valid SPDX expression.
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package must not depend on deprecated() packages.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 0 bytes in 0 files.
[x]: Packages must not store files under /srv, /opt or /usr/local

Python:
[-]: Binary eggs must be removed in %prep
[-]: Python eggs must not download any dependencies during the build
     process.
[-]: A package which is used by another package via an egg interface should
     provide egg info.
[x]: Package meets the Packaging Guidelines::Python
[x]: Package contains BR: python2-devel or python3-devel
[x]: Packages MUST NOT have dependencies (either build-time or runtime) on
     packages named with the unversioned python- prefix unless no properly
     versioned package exists. Dependencies on Python packages instead MUST
     use names beginning with python2- or python3- as appropriate.
[x]: Python packages must not contain %{pythonX_site(lib|arch)}/* in %files

===== SHOULD items =====

Generic:
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[x]: Fully versioned dependency in subpackages if applicable.
[?]: Package functions as described.
[!]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: Sources are verified with gpgverify first in %prep if upstream
     publishes signatures.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).


Rpmlint
-------
Checking: python3-nifti-mrs-1.0.2-1.fc40.noarch.rpm
          mrs_tools-1.0.2-1.fc40.noarch.rpm
          python-nifti-mrs-doc-1.0.2-1.fc40.noarch.rpm
          python-nifti-mrs-1.0.2-1.fc40.src.rpm
============================================================================================================================ rpmlint session starts ============================================================================================================================
rpmlint: 2.4.0
configuration:
    /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
rpmlintrc: [PosixPath('/tmp/tmpymt7rc0b')]
checks: 31, packages: 4

python3-nifti-mrs.noarch: W: no-documentation
============================================================================================= 4 packages and 0 specfiles checked; 0 errors, 1 warnings, 0 badness; has taken 1.3 s =============================================================================================




Rpmlint (installed packages)
----------------------------
============================ rpmlint session starts ============================
rpmlint: 2.5.0
configuration:
    /usr/lib/python3.12/site-packages/rpmlint/configdefaults.toml
    /etc/xdg/rpmlint/fedora-legacy-licenses.toml
    /etc/xdg/rpmlint/fedora-spdx-licenses.toml
    /etc/xdg/rpmlint/fedora.toml
    /etc/xdg/rpmlint/scoring.toml
    /etc/xdg/rpmlint/users-groups.toml
    /etc/xdg/rpmlint/warn-on-functions.toml
checks: 32, packages: 3

mrs_tools.noarch: E: spelling-error ('standardised', '%description -l en_US standardised -> standardized, standardize, standard')
mrs_tools.noarch: E: spelling-error ('et', '%description -l en_US et -> ET, wt, rt')
mrs_tools.noarch: E: spelling-error ('al', '%description -l en_US al -> AL, la, Al')
mrs_tools.noarch: E: spelling-error ('Magn', '%description -l en_US Magn -> Man, Magi, Mann')
mrs_tools.noarch: E: spelling-error ('doi', '%description -l en_US doi -> dpi, do, oi')
mrs_tools.noarch: E: spelling-error ('mrm', '%description -l en_US mrm -> mm, rm, mam')
python3-nifti-mrs.noarch: E: spelling-error ('standardised', '%description -l en_US standardised -> standardized, standardize, standard')
python3-nifti-mrs.noarch: E: spelling-error ('et', '%description -l en_US et -> ET, wt, rt')
python3-nifti-mrs.noarch: E: spelling-error ('al', '%description -l en_US al -> AL, la, Al')
python3-nifti-mrs.noarch: E: spelling-error ('Magn', '%description -l en_US Magn -> Man, Magi, Mann')
python3-nifti-mrs.noarch: E: spelling-error ('doi', '%description -l en_US doi -> dpi, do, oi')
python3-nifti-mrs.noarch: E: spelling-error ('mrm', '%description -l en_US mrm -> mm, rm, mam')
python-nifti-mrs-doc.noarch: E: spelling-error ('standardised', '%description -l en_US standardised -> standardized, standardize, standard')
python-nifti-mrs-doc.noarch: E: spelling-error ('et', '%description -l en_US et -> ET, wt, rt')
python-nifti-mrs-doc.noarch: E: spelling-error ('al', '%description -l en_US al -> AL, la, Al')
python-nifti-mrs-doc.noarch: E: spelling-error ('Magn', '%description -l en_US Magn -> Man, Magi, Mann')
python-nifti-mrs-doc.noarch: E: spelling-error ('doi', '%description -l en_US doi -> dpi, do, oi')
python-nifti-mrs-doc.noarch: E: spelling-error ('mrm', '%description -l en_US mrm -> mm, rm, mam')
python3-nifti-mrs.noarch: W: no-documentation
 3 packages and 0 specfiles checked; 18 errors, 1 warnings, 15 filtered, 18 badness; has taken 0.4 s 

=> Spelling checks have been re-enabled in latest `rpmlint`. Just ignore!

Source checksums
----------------
https://github.com/wtclarke/nifti_mrs_tools/archive/1.0.2/nifti_mrs_tools-1.0.2.tar.gz :
  CHECKSUM(SHA256) this package     : 60d405ca6a48b7deb2124c2089fd8d91700283762a7f566ad13a840cb75f6908
  CHECKSUM(SHA256) upstream package : 00e522356deb8dccdcf4864fe15f46723b57f56ae03c4e39e48920f628dfdf1a
diff -r also reports differences


Requires
--------
python3-nifti-mrs (rpmlib, GLIBC filtered):
    python(abi)
    python3.12dist(fslpy)
    python3.12dist(nibabel)
    python3.12dist(numpy)

mrs_tools (rpmlib, GLIBC filtered):
    /usr/bin/python3
    python(abi)
    python3-nifti-mrs

python-nifti-mrs-doc (rpmlib, GLIBC filtered):



Provides
--------
python3-nifti-mrs:
    python-nifti-mrs
    python3-nifti-mrs
    python3.12-nifti-mrs
    python3.12dist(nifti-mrs)
    python3dist(nifti-mrs)

mrs_tools:
    mrs_tools
    python-mrs-tools
    python3-mrs-tools
    python3.12-mrs-tools

python-nifti-mrs-doc:
    python-nifti-mrs-doc



Generated by fedora-review 0.10.0 (e79b66b) last change: 2023-07-24
Command line :/usr/bin/fedora-review -b 2250532
Buildroot used: fedora-rawhide-x86_64
Active plugins: Generic, Shell-api, Python
Disabled plugins: fonts, Perl, Haskell, SugarActivity, C/C++, Java, PHP, R, Ocaml
Disabled flags: EXARCH, EPEL6, EPEL7, DISTTAG, BATCH

Comment 4 Ben Beasley 2024-01-31 15:16:33 UTC
Thanks for the review!

(In reply to Sandro from comment #3)
> [x]: License file installed when any subpackage combination is installed.
> 
> => mrs_tools-1.0.2-1.fc40.noarch.rpm does not contain a license file. I see
> that it requires python3-nifti-mrs, which has a license file.
> Personally, I'd err on the side of caution here. Not blocking this review,
> but rather something to keep in mind.

The guidelines are very explicit that a dependency on a subpackage with the correct license file is sufficient[1]. I agree it’s important to make sure we don’t break the dependency without handling the license file, but I don’t think it’s worth duplicating the license file, and I haven’t found doing so to be the usual practice.

> [!]: Latest version is packaged.
> 
> => Version 1.1.1 was released on December 6, 2023. Please update before
> importing.

Yeah, I should have double-checked this before calling for a reviewer. I’ll post an updated submission. The changes are not disruptive[2], so I don’t expect there will be anything different in the packaging.

> => A nitpicky bit: Consider standardizing on BRs. You are using
> `python3-foo` and `%{py3_dist foo}` intermixed.

I agree with standardizing in general, but in this case there is a good reason for each python3-foo:

- For python3-nifti-mrs, this is a fully-versioned dependency across subpackages of the same package in the manner of [3], so it should use the exact binary package name to avoid any ambiguity or versioning discrepancies (like with Python Provides dropping trailing .0’s, while they’re maintained in the RPM package version).

- For python3-sphinx-latex, this is a metapackage that brings in the dependencies for building LaTeX with Sphinx; it does not contain any importable package and specifically does not Provide python3dist(sphinx-latex).

So I’ve standardized on using %{py3_dist foo} everywhere that I can – for all external dependencies on importable Python packages - and this package just happens to contain only one such dependency, %{py3_dist pytest}, along with both of the notable exceptions where python3-foo doesn’t really mean %{py3_dist foo}.

> => Bonus points for handcrafted man pages!

Get your hand-crafted, artisanal man pages right here! Only fifteen dollars a sheaf! Join our mailing list and get 10% off!

[1] https://docs.fedoraproject.org/en-US/packaging-guidelines/LicensingGuidelines/#subpackage-licensing
[2] https://github.com/wtclarke/nifti_mrs_tools/compare/1.0.2...1.1.1
[3] https://docs.fedoraproject.org/en-US/packaging-guidelines/#_requiring_base_package

Comment 5 Ben Beasley 2024-01-31 15:19:37 UTC
I will also change standardised to standardized in the description so that it is written in American English[1].

[1] https://docs.fedoraproject.org/en-US/packaging-guidelines/#_summary_and_description

Comment 7 Fedora Review Service 2024-01-31 15:38:38 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/6976166
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2250532-python-nifti-mrs/fedora-rawhide-x86_64/06976166-python-nifti-mrs/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 8 Sandro 2024-01-31 16:15:11 UTC
(In reply to Ben Beasley from comment #4)
> Thanks for the review!
> 
> (In reply to Sandro from comment #3)
> > [x]: License file installed when any subpackage combination is installed.
> > 
> > => mrs_tools-1.0.2-1.fc40.noarch.rpm does not contain a license file. I see
> > that it requires python3-nifti-mrs, which has a license file.
> > Personally, I'd err on the side of caution here. Not blocking this review,
> > but rather something to keep in mind.
> 
> The guidelines are very explicit that a dependency on a subpackage with the
> correct license file is sufficient[1]. I agree it’s important to make sure
> we don’t break the dependency without handling the license file, but I don’t
> think it’s worth duplicating the license file, and I haven’t found doing so
> to be the usual practice.

The reason I was more alerted than usual is that `mrs_tools` and `python3-nifti-mrs` are separate packages and I checked them separately. As long as one depends on the other all is well, indeed.

Regarding duplicate license files, I know plenty of packages adding the license file separately to every sub package, where I would prefer having it in the main package and the sub package requiring the main package. Different packagers, different styles.

> > [!]: Latest version is packaged.
> > 
> > => Version 1.1.1 was released on December 6, 2023. Please update before
> > importing.
> 
> Yeah, I should have double-checked this before calling for a reviewer. I’ll
> post an updated submission. The changes are not disruptive[2], so I don’t
> expect there will be anything different in the packaging.
> 
> > => A nitpicky bit: Consider standardizing on BRs. You are using
> > `python3-foo` and `%{py3_dist foo}` intermixed.
> 
> I agree with standardizing in general, but in this case there is a good
> reason for each python3-foo:
> 
> - For python3-nifti-mrs, this is a fully-versioned dependency across
> subpackages of the same package in the manner of [3], so it should use the
> exact binary package name to avoid any ambiguity or versioning discrepancies
> (like with Python Provides dropping trailing .0’s, while they’re maintained
> in the RPM package version).
> 
> - For python3-sphinx-latex, this is a metapackage that brings in the
> dependencies for building LaTeX with Sphinx; it does not contain any
> importable package and specifically does not Provide
> python3dist(sphinx-latex).
> 
> So I’ve standardized on using %{py3_dist foo} everywhere that I can – for
> all external dependencies on importable Python packages - and this package
> just happens to contain only one such dependency, %{py3_dist pytest}, along
> with both of the notable exceptions where python3-foo doesn’t really mean
> %{py3_dist foo}.

I'm not quite sure I fully understand your point here. Maybe that's because I'm used to specifying dependencies as `python3-foo`, in which case it doesn't matter if the package is a meta package or an actual Python package. For Python packages that do provide importable modules, is there a difference in specifying them as `python3-foo` or as `%{py3_dist foo}`. If not, then that would be reason enough for me to standardize on the `python3-foo` notation. Of course, if your preference is with `%{py3_dist foo}`, you end up having to mix both as in the case of `python3-sphinx-latex`.
 
> > => Bonus points for handcrafted man pages!
> 
> Get your hand-crafted, artisanal man pages right here! Only fifteen dollars
> a sheaf! Join our mailing list and get 10% off!

🤑🤑🤑

(In reply to Ben Beasley from comment #5)
> I will also change standardised to standardized in the description so that
> it is written in American English[1].
> 
> [1]
> https://docs.fedoraproject.org/en-US/packaging-guidelines/
> #_summary_and_description

I'll add more bonus points. You now have 99 bonus points. You require 101 for a washing machine [1].

Package is APPROVED!

[1] As per our terms and conditions, 100 bonus points is the maximum per review and bonus points cannot be carried over.

Comment 9 Ben Beasley 2024-01-31 17:01:00 UTC
(In reply to Sandro from comment #8)
> I'm not quite sure I fully understand your point here. Maybe that's because
> I'm used to specifying dependencies as `python3-foo`, in which case it
> doesn't matter if the package is a meta package or an actual Python package.
> For Python packages that do provide importable modules, is there a
> difference in specifying them as `python3-foo` or as `%{py3_dist foo}`. If
> not, then that would be reason enough for me to standardize on the
> `python3-foo` notation. Of course, if your preference is with `%{py3_dist
> foo}`, you end up having to mix both as in the case of
> `python3-sphinx-latex`.

I think the best reason for using either python3dist(foo) or %{py3_dist foo} rather than python3-foo is that the first two forms express the dependency on the machine-readable Provides[1], which are based on the project canonical name and should be more stable than relying on the name of the subpackage that offers those Provides. As far as I know, all three forms are permissible.

I think the best reason for using %{py3_dist foo} over python3dist(foo) is that the macro normalizes names; for example, %{py3_dist Foo_Bar} produces python3dist(foo-bar). Now, there’s nothing wrong with writing python3dist(foo-bar) directly, but when you’re maintaining manual lists of BuildRequires by copying them out of some requirements.txt file that pins dependency versions and is full of linters and coverage tools, or out of a [tool.poetry.dev-dependencies] table that does the same *and* you can’t generate BR’s from it directly anyway, it’s nice to be able to just copy what you see rather than always thinking about whether and how you need to normalize names. That doesn’t come into play in this package, but I’ve gradually settled on using %{py3_dist foo} everywhere for this reason.

And my washing machine has been behaving suspiciously, so I’ll be sure to comb through the fine print of your points program for loopholes.

[1] https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#Machine-readable-provides

Comment 10 Ben Beasley 2024-01-31 17:01:56 UTC
https://release-monitoring.org/project/319743/

Comment 11 Fedora Admin user for bugzilla script actions 2024-01-31 17:04:07 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/python-nifti-mrs

Comment 12 Fedora Update System 2024-01-31 17:21:09 UTC
FEDORA-2024-6dc2c03e70 has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2024-6dc2c03e70

Comment 13 Fedora Update System 2024-01-31 17:25:29 UTC
FEDORA-2024-6dc2c03e70 has been pushed to the Fedora 40 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 14 Fedora Update System 2024-01-31 19:57:06 UTC
FEDORA-2024-b709bdd4dc has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2024-b709bdd4dc

Comment 15 Sandro 2024-01-31 20:05:11 UTC
(In reply to Ben Beasley from comment #9)
> I think the best reason for using either python3dist(foo) or %{py3_dist foo}
> rather than python3-foo is that the first two forms express the dependency
> on the machine-readable Provides[1], which are based on the project
> canonical name and should be more stable than relying on the name of the
> subpackage that offers those Provides. As far as I know, all three forms are
> permissible.

That's a valid point, considering packages are occasionally renamed. I further suspect that this was the most convenient way, before a lot of the packaging was standardized and automated. In that regard I'm still a rookie wrt to packaging. I appreciate you taking the time to explain all this.

> And my washing machine has been behaving suspiciously, so I’ll be sure to
> comb through the fine print of your points program for loopholes.

I'm told it's as watertight as the washing machine being promised.

Comment 16 Fedora Update System 2024-02-01 02:46:14 UTC
FEDORA-2024-b709bdd4dc has been pushed to the Fedora 39 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf install --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-b709bdd4dc \*`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-b709bdd4dc

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 17 Fedora Update System 2024-02-09 01:25:13 UTC
FEDORA-2024-b709bdd4dc (python-nifti-mrs-1.1.1-1.fc39) has been pushed to the Fedora 39 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.