F41 Change Proposal: Replace Nose With Pynose (self-contained)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



wiki - https://fedoraproject.org/wiki/Changes/ReplaceNoseWithPynose
Discussion Thread -
https://discussion.fedoraproject.org/t/f41-change-proposal-replace-nose-with-pynose-system-wide/120257

This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes
process, proposals are publicly announced in order to receive
community feedback. This proposal will only be implemented if approved
by the Fedora Engineering Steering Committee.

== Summary ==
Package <code>python-nose</code> was
[https://fedoraproject.org/wiki/Changes/DeprecateNose deprecated] in
Fedora 32. It’s official successor,
[https://github.com/nose-devs/nose2 <code>nose2</code>] does not
provide all the functionality of <code>nose</code>. However,
[https://github.com/mdmintz/pynose <code>pynose</code>] does and thus
can be used as a drop-in replacement for <code>nose</code> allowing us
to retire <code>python-nose</code>.

== Owner ==
* Name: [https://fedoraproject.org/wiki/User:gui1ty Sandro]
* Email: gui1ty@xxxxxxxxxxxxx


== Feedback ==
There are still a few (~70) packages in Fedora depending on deprecated
<code>python3-nose</code> for their tests. Other packages have been
switched to <code>python3-pytest</code> when nose was deprecated or
migrated to <code>python3-pynose2</code>. As efforts are underway to
upgrade <code>python3-pytest</code> to version 8.x.y, it turns out
this version no longer supports running nose setup/teardown
functions/methods, thereby breaking packages that still rely on those
functionality.

Since pynose is using the same namespace as deprecated nose, with a
minor hack<ref>[https://src.fedoraproject.org/fork/gui1ty/rpms/python-pynose/c/594c580ae1265f710cadfb63f34d21e13911e7b5?branch=nose
nose metadata hack]</ref>, the package can be modified to provide a
proper replacement for <code>python3-nose</code> with regards to the
RPM as well as the Python metadata. Pynose also provides the same set
of executables. So packages still running <code>nosetests</code> will
be able to switch seemlessly to <code>python3-pynose</code> in
[https://copr.fedorainfracloud.org/coprs/gui1ty/pynose-nose/builds/
most cases].

Packagers can also decide to switch their packages manually by simply
changing to <code>python3-pynose</code>, which is currently available
in rawhide.

== Benefit to Fedora ==
Providing pynose as a drop-in replacement for nose will allow us to
retire long deprecated <code>python-nose</code> without forcing any
packages still depending on it to go look for an alternative or be
retired. It will also assist in the efforts of upgrading pytest to
version 8 by allowing packages that still rely on nose setup/teardown
functions/methods to switch back to <code>nosetests</code> provided by
pynose.

== Scope ==
* Proposal owners:
Provide <code>python3-pynose</code> as a drop-in replacement for
<code>python3-nose</code>; provide PRs for packages that need
adaption; provide help

* Other developers:
Manually switch to depending on <code>python3-pynose</code> if
desired; switch back to <code>nostests</code> if adapting to pytest 8
proves difficult

* Release engineering: N/A

* Policies and guidelines: N/A (not needed for this Change)

* Trademark approval: N/A (not needed for this Change)

* Alignment with Community Initiatives:


== Upgrade/compatibility impact ==
Transitioning from nose to pynose will happen behind the secenes.
Packages now depending on <code>python3-nose</code> or
<code>python3dist(nose)</code> will have that dependency satisfied by
<code>python3-pynose</code> instead of <code>python3-nose</code>.
Where packages need to be adapted, PRs will be provided to make them
work with pynose.



== How To Test ==
Packagers can test their package using the
[https://copr.fedorainfracloud.org/coprs/gui1ty/pynose-nose/ Copr
repo].

# <code>copr mock-config gui1ty/pynose-nose fedora-rawhide-x86_64 &gt;
~/.config/mock/pynose-nose-rawhide.cfg</code>
# <code>fedpkg --release rawhide mockbuild --root pynose-nose-rawhide</code>

Let us know if you need help.


== Dependencies ==

Packages currently build requiring <code>python3-nose</code>:

* binwalk
* bmap-tools
* hgsvn
* mod_nss
* nova-agent
* odcs
* openms
* ProDy
* pydot
* pytest
* python-agate
* python-agate-dbf
* python-agate-excel
* python-agate-sql
* python-anyjson
* python-axolotl
* python-behave
* python-binstruct
* python-blessings
* python-boto
* python-case
* python-colorspacious
* python-curtsies
* python-deap
* python-epc
* python-etcd
* python-eyed3
* python-fedmsg-meta-fedora-infrastructure
* python-flask-xml-rpc
* python-fluidity-sm
* python-gensim
* python-hglib
* python-http-ece
* python-httpretty
* python-ifcfg
* python-inflect
* python-ipmi
* python-iptools
* python-ipython_genutils
* python-jenkins
* python-leather
* python-mapnik
* python-migrate
* python-moksha-common
* python-moksha-hub
* python-musicbrainzngs
* python-neurosynth
* python-nitime
* python-ofxparse
* python-ordered-set
* python-pycdio
* python-pygatt
* python-pygeoip
* python-pypillowfight
* python-pyramid-tm
* python-pytest-mpl
* python-pytimeparse
* python-queuelib
* python-rows
* python-sievelib
* python-simplebayes
* python-spec
* python-spur
* python-statsd
* python-stomper
* python-supersmoother
* python-tilestache
* python-www-authenticate
* python-xvfbwrapper
* vigra


== Contingency Plan ==

* Contingency mechanism: N/A (not a System Wide Change)
* Contingency deadline: N/A (not a System Wide Change)
* Blocks release? N/A (not a System Wide Change)


== Documentation ==

[https://github.com/mdmintz/pynose/blob/master/README.md pynose
README] and above

== Release Notes ==

-- 
Aoife Moloney

Fedora Operations Architect

Fedora Project

Matrix: @amoloney:fedora.im

IRC: amoloney
--
_______________________________________________
devel-announce mailing list -- devel-announce@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-announce-leave@xxxxxxxxxxxxxxxxxxxxxxx
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/devel-announce@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
--
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
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/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux