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 > ~/.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