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