Am 14.06.2014 03:36, schrieb Michael Scherer: > Le samedi 14 juin 2014 à 03:20 +0200, Reindl Harald a écrit : >> why do functions and options need to be removed due a >> code-rewrite/re-factoring? to clean up the code base? > > likely yes. > Also because the more code you have, the more corner case you can face, > the more time you spend on testing, reimplementing, etc, etc. the dnf > developers did a very good job engaging the users to know what matter to > them, to integrate likely better or more flexible solution, etc. maybe in the meantime i remember bugreports for "keepcache" at the begin of this year which where closed with "WONTFIX" as well as "no we don't protect the OS by allow 'dnf remove kernel dnf'" while "yum -y remove kernel" don#t touch the running one > Everybody I know who looked at the yum python api told me it was a bit > horrible. So a cleanup was needed for that. There was demand from > packagekit developers to have a cleaner API as well, and I would hope > that tools like puppet/ansible would benefit as well. > > And since that's python, you also have the need to be python 3 > compatible, which is a rather big task, as seen by the slow migration of > the rest of the platform. > > The less code you have to port, the less time it take (same goes for > testing, documenting, translating) the internal API is between developers the options and CLI params are for users different worlds >> if someone takes the word "improve" in his mouth i >> don't see a place for "remove" in the same context >> >> the "dirty codebase grown" that way because previously unplanned >> features where included and it it pretty silly to cleanup things >> by step back from where it came which leads a few years later to >> the same problems: options left and right are included in a >> codebase originally not designed for it >> >> that's fine for developers because that way you can start every >> few years from scratch with remove, re-write and cleanup but it >> hardly gains anything for the users > > In fact, since developers can fix bug more easily with a code that is > clean, it benefits to users as well. you ignore the bugs of missing functions which will be the first so you postponed the work only clean != stripped functionality >> a smart re-write is using the benefit knowing what all sort of options, >> functions and configurations where added all the time before and >> organize the codebase to implement it in a better, more generic way >> with sane (API) interfaces > > Perfect, so are you leading the way, or do you continue to tell to > people how to make a smart rewrite without being more specific and > without putting any efforts? my effort is try to prevent thousands of bugreports did you realize that in this thread it was even suggested to completly remove the yum command over the long even if it is only a symlink? that is not what that page below previously said, that statet very clear that DNF is a temporary name of the next YUM major version what finally means for any user reading this page it will later called YUM, the technology behind the scenes will be more mordern and that's it from the users perspective http://fedoraproject.org/wiki/Features/DNF Preview the next-generation Yum package manager, using hawkey/libsolv for backend Note about the name "DNF": it has no relevant meaning, meant as a project name only. Since DNF is a tech preview in Fedora 18 the Python module names can not be 'yum.*' as that would clash with yum itself >> throwing all away, start with a minimum and be proud >> it's faster and cleaner is only a short term solution > > You still didn't answer to the question I asked. > How long do you want compatibility be kept, and what compatibility > exactly ? yum-plugin-protectbase yum-plugin-tsflags yum-utils Loaded plugins: etckeeper, protectbase, tsflags Usage: yum [options] COMMAND List of Commands: autoremove Remove leaf packages check Check for problems in the rpmdb check-update Check for available package updates clean Remove cached data deplist List a package's dependencies distribution-synchronization Synchronize installed packages to the latest available versions downgrade downgrade a package erase Remove a package or packages from your system fs Acts on the filesystem data of the host, mainly for removing docs/lanuages for minimal hosts. fssnapshot Creates filesystem snapshots, or lists/deletes current snapshots. groups Display, or use, the groups information help Display a helpful usage message history Display, or use, the transaction history info Display details about a package or group of packages install Install a package or packages on your system list List a package or groups of packages load-transaction load a saved transaction from filename makecache Generate the metadata cache provides Find what package provides the given value reinstall reinstall a package repo-pkgs Treat a repo. as a group of packages, so we can install/remove all of them repolist Display the configured software repositories search Search package details for the given string shell Run an interactive yum shell swap Simple way to swap packages, instead of using shell update Update a package or packages on your system update-minimal Works like upgrade, but goes to the 'newest' package match which fixes a problem that affects your system updateinfo Acts on repository update information upgrade Update packages taking obsoletes into account version Display a version for the machine and/or available repos. Options: -h, --help show this help message and exit -t, --tolerant be tolerant of errors -C, --cacheonly run entirely from system cache, don't update cache -c [config file], --config=[config file] config file location -R [minutes], --randomwait=[minutes] maximum command wait time -d [debug level], --debuglevel=[debug level] debugging output level --showduplicates show duplicates, in repos, in list/search commands -e [error level], --errorlevel=[error level] error output level --rpmverbosity=[debug level name] debugging output level for rpm -q, --quiet quiet operation -v, --verbose verbose operation -y, --assumeyes answer yes for all questions --assumeno answer no for all questions --version show Yum version and exit --installroot=[path] set install root --enablerepo=[repo] enable one or more repositories (wildcards allowed) --disablerepo=[repo] disable one or more repositories (wildcards allowed) -x [package], --exclude=[package] exclude package(s) by name or glob --disableexcludes=[repo] disable exclude from main, for a repo or for everything --disableincludes=[repo] disable includepkgs for a repo or for everything --obsoletes enable obsoletes processing during updates --noplugins disable Yum plugins --nogpgcheck disable gpg signature checking --disableplugin=[plugin] disable plugins by name --enableplugin=[plugin] enable plugins by name --skip-broken skip packages with depsolving problems --color=COLOR control whether color is used --releasever=RELEASEVER set value of $releasever in yum config and repo files --downloadonly don't update, just download --downloaddir=DLDIR specifies an alternate directory to store packages --setopt=SETOPTS set arbitrary config and repo options --bugfix Include bugfix relevant packages, in updates --security Include security relevant packages, in updates --advisory=ADVS, --advisories=ADVS Include packages needed to fix the given advisory, in updates --bzs=BZS Include packages needed to fix the given BZ, in updates --cves=CVES Include packages needed to fix the given CVE, in updates --sec-severity=SEVS, --secseverity=SEVS Include security relevant packages matching the severity, in updates --tsflags=TSFLAGS Plugin Options: > (remember, you said that no one want to have "everything" "forever", so > let's be precise on what you want) no - i said no one wants the old yum maintained forever which you claimed that people did > And you can hardly complain to not be listened if you do not answer to > precise questions when someone is willing to listen and try to find a > solution http://fedoraproject.org/wiki/Features/DNF Preview the next-generation Yum package manager, using hawkey/libsolv for backend Note about the name "DNF": it has no relevant meaning, meant as a project name only. Since DNF is a tech preview in Fedora 18 the Python module names can not be 'yum.*' as that would clash with yum itself
Attachment:
signature.asc
Description: OpenPGP digital signature
-- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct