<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>DNF</title>
    <description>The blog of the DNF Team
</description>
    <link>https://rpm-software-management.github.io/</link>
    <atom:link href="https://rpm-software-management.github.io/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Thu, 29 Mar 2018 09:55:38 +0000</pubDate>
    <lastBuildDate>Thu, 29 Mar 2018 09:55:38 +0000</lastBuildDate>
    <generator>Jekyll v3.7.3</generator>
    
      <item>
        <title>Announcing DNF 3 development</title>
        <description>We are pleased to announce that development of DNF 3 has started.
This version focused on performance improvements, new API and consolidating
the whole software management stack. That's why the rest of the text is more
about libdnf than DNF, which should become smaller and only wrap underlying libdnf library.

&lt;h2&gt;What's going on with libdnf?&lt;/h2&gt;
If you are watching DNF and libdnf development, you may ask what's going on lately.
There is a lot of activity in libdnf GIT. Let us share our plans with you.
Originally there were two libraries - hawkey providing query and dependency resolution
interface to DNF and libhif as a PackageKit backend. These two merged into libdnf,
but the merge hasn't been fully finished. The technical debt grows as new code is being
added and there's even disparity between libdnf and DNF.
We decided to change this and make libdnf sane again.


&lt;h2&gt;Improvements made so far&lt;/h2&gt;
We made several improvements to queries already.
They are executed as part of all DNF commands and have significant performance impact.
We focused mainly on security queries and searching packages by Name or full NEVRA.

&lt;br /&gt;

Let's look at some numbers. The chart shows execution times (lower is better) of several DNF commands using 3 different versions of libdnf:
&lt;ul&gt;
    &lt;li&gt;0.9.1 - initial version in Fedora 26&lt;/li&gt;
    &lt;li&gt;0.11.1 - latest released version in Fedora 26 and 27&lt;/li&gt;
    &lt;li&gt;0.13.0 - development version in GIT&lt;/li&gt;
&lt;/ul&gt;

&lt;img src=&quot;/img/performance_libdnf_0.9.1_to_0.13.0.svg&quot; /&gt;

&lt;h2&gt;What we want to achieve&lt;/h2&gt;
&lt;ul&gt;
    &lt;li&gt;Performance improvement&lt;/li&gt;
    &lt;li&gt;
        Consistent behavior across the whole software management stack
        &lt;ul&gt;
            &lt;li&gt;Move existing business logic from DNF to libdnf&lt;/li&gt;
            &lt;li&gt;Remove duplicate code&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;Well-defined and maintainable API&lt;/li&gt;
    &lt;li&gt;New high-level functionality (like “dnf.Base()”)&lt;/li&gt;
    &lt;li&gt;Remain compatible with existing APIs (C/Python) as much as possible&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;How to move forward&lt;/h2&gt;
We decided to move libdnf from C to C++ for several good reasons:
&lt;ul&gt;
    &lt;li&gt;C++ is a standardized object-oriented language with good compiler support&lt;/li&gt;
    &lt;li&gt;Existing C code compiles with C++ compiler - we can reuse some existing code as is&lt;/li&gt;
    &lt;li&gt;C++ 11 is supported by GCC in RHEL 7 / CentOS 7&lt;/li&gt;
    &lt;li&gt;C++ has more &quot;batteries included&quot; than C (classes, vectors and maps, shared pointers, algorithm library, etc.)&lt;/li&gt;
    &lt;li&gt;You don't have to worry about raw pointers in C++.&lt;/li&gt;
    &lt;li&gt;SWIG bindings (C++ objects wrapped in shared pointer naturally bind to Python objects)&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;Road-map&lt;/h2&gt;
Doing all the consolidation, we have a unique opportunity to redesign libdnf. This is what we are planning:
&lt;ol&gt;
    &lt;li&gt;
    Preparation (mostly done)
        &lt;ul&gt;
            &lt;li&gt;Remove unused functionality&lt;/li&gt;
            &lt;li&gt;De-duplicate some code between DNF and libdnf&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;
        DNF Integration (in progress)
        &lt;ul&gt;
            &lt;li&gt;Design new functionality in libdnf, and replace corresponding DNF code in Python&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;
        Redesign libdnf
        &lt;ul&gt;
            &lt;li&gt;Split libdnf into subsystems&lt;/li&gt;
            &lt;li&gt;Provide new high-level interface (replacing dnf.Base and libdnf context)&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;
        Broader integration
        &lt;ul&gt;
            &lt;li&gt;Use the new libdnf API in PackageKit, rpm-ostree and microdnf&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;Benefits&lt;/h2&gt;
You may ask: &quot;How will I benefit from all these changes?&quot;
First of all, you will get consistent user experience from all software management tools.
Wouldn't it be great if PackageKit and DNF shared repository and package cache?
And that's just a tip of the iceberg. You will also get much better performance,
because the DNF team has been analyzing the whole stack.
Asking &quot;why&quot; often results in removing bottlenecks all over the place.
</description>
        <pubDate>Thu, 22 Mar 2018 12:00:00 +0000</pubDate>
        <link>https://rpm-software-management.github.io/announcement/2018/03/22/dnf-3-announcement/</link>
        <guid isPermaLink="true">https://rpm-software-management.github.io/announcement/2018/03/22/dnf-3-announcement/</guid>
        
        
        <category>announcement</category>
        
      </item>
    
      <item>
        <title>DNF performance boost</title>
        <description>Since the last blog there were several releases that enhance functionality and mostly performance
especially visible with multiple package arguments. Just try &quot;dnf --assumeno reinstall $(rpm -qa)&quot;
with libdnf-0.9.0 and libdnf-0.11.1 and differences is easily visible. But the real huge improvement
can be seen when results are compared to YUM.


&lt;h4&gt;DNF-2.7.5&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;Enhanced performance for excludes and includes handling&lt;/li&gt;
	&lt;li&gt;Solved several memory leaks&lt;/li&gt;
	&lt;li&gt;Additionally 8 bug reports solved&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://dnf.readthedocs.org/en/latest/release_notes.html#release-notes&quot;&gt;Detailed information about DNF releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;DNF-PLUGINS-CORE-2.1.5&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;Added four new options for &lt;strong&gt;&lt;em&gt;list&lt;/em&gt;&lt;/strong&gt; subcommand of &lt;strong&gt;&lt;em&gt;copr&lt;/em&gt;&lt;/strong&gt; plugin&lt;/li&gt;
	&lt;li&gt;Additionally 2 bug reports solved&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://dnf-plugins-core.readthedocs.org/en/latest/release_notes.html#release-notes&quot;&gt;Detailed information about DNF-PLUGINS-CORE releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;DNF-PLUGINS-EXTRAS-2.0.4&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;Fixed several issues of system-upgrade plugin&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://dnf-plugins-extras.readthedocs.org/en/latest/release_notes.html#release-notes&quot;&gt;Detailed information about DNF-PLUGINS-EXTRAS releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;LIBDNF-0.11.1&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;Huge performance boost for queries with &lt;strong&gt;&lt;em&gt;arch&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;name&lt;/em&gt;&lt;/strong&gt; filters (20x boost) &lt;/li&gt;
	&lt;li&gt;Additionally 4 bug reports solved&lt;/li&gt;
&lt;/ul&gt;</description>
        <pubDate>Thu, 23 Nov 2017 13:00:00 +0000</pubDate>
        <link>https://rpm-software-management.github.io/dnf/2017/11/23/dnf-performance-boost/</link>
        <guid isPermaLink="true">https://rpm-software-management.github.io/dnf/2017/11/23/dnf-performance-boost/</guid>
        
        
        <category>dnf</category>
        
      </item>
    
      <item>
        <title>The first DNF update for Fedora 26</title>
        <description>The release of Fedora 26 provides the new DNF-2.x to wide pool of users. The first DNF update reflect the first user's feed backs and additionally it solves 23 bugs. The latest release has provided the following highlights:

DNF-2.6.2
&lt;ul&gt;
	&lt;li&gt;New option&lt;strong&gt; --forcearch=&amp;lt;arch&amp;gt; &lt;/strong&gt;that force to use given architecture. However, use of an architecture not supported natively by your CPU will require emulation of some kind. This is usually through QEMU&lt;/li&gt;
	&lt;li&gt;New option &lt;strong&gt;&lt;em&gt;--groupmember&lt;/em&gt;&lt;/strong&gt; for &lt;strong&gt;repoquery&lt;/strong&gt; command&lt;/li&gt;
	&lt;li&gt;New option &lt;strong&gt;--downloaddir&lt;/strong&gt; &lt;strong&gt;&amp;lt;path&amp;gt;&lt;/strong&gt; that can be combine with &lt;strong&gt;--downloadonly&lt;/strong&gt; option&lt;/li&gt;
	&lt;li&gt;Inform about skipped packages during installation of groups&lt;/li&gt;
	&lt;li&gt;New conf options (basearch, arch, ignorearch)&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://dnf.readthedocs.org/en/latest/release_notes.html#release-notes&quot;&gt;Detailed information about DNF releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
DNF-PLUGINS-CORE-2.1.3
&lt;ul&gt;
	&lt;li&gt;Changed return code if dnf config-manager --add-repo fails&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://dnf-plugins-core.readthedocs.org/en/latest/release_notes.html#release-notes&quot;&gt;Detailed information about DNF-PLUGINS-CORE releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
LIBDNF-0.9.3
&lt;ul&gt;
	&lt;li&gt;Changed priorities in NEVRA parsing. This change should provide user preferred results especially in cases where multiple valid solution available.&lt;/li&gt;
&lt;/ul&gt;</description>
        <pubDate>Wed, 02 Aug 2017 06:01:04 +0000</pubDate>
        <link>https://rpm-software-management.github.io/dnf/2017/08/02/the-first-dnf-update-for-fedora-26/</link>
        <guid isPermaLink="true">https://rpm-software-management.github.io/dnf/2017/08/02/the-first-dnf-update-for-fedora-26/</guid>
        
        
        <category>dnf</category>
        
      </item>
    
      <item>
        <title>Release of the latest candidates of dnf stack for Fedora 26</title>
        <description>I think if I will start to talk that Fedora 26 is coming and that there will be DNF-2.x as default packager, I am not providing any new information.
But If I will say that DNF made a huge progress not only from point of presence of new features, enhanced stability and over all user experience, probably it would be something to attract  people's attention. The latest releases have provided the spirit with following highlights:

&lt;strong&gt;DNF-2.5.1 (since 2.4.1)
&lt;/strong&gt;
&lt;ul&gt;
	&lt;li&gt;Redesigned reports of problem. Now package upgrades will be not skipped silently&lt;/li&gt;
	&lt;li&gt;Implemented progress of DRPM&lt;/li&gt;
	&lt;li&gt;Localized datetime format&lt;/li&gt;
	&lt;li&gt;Enhanced documentation&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://dnf.readthedocs.org/en/latest/release_notes.html#release-notes&quot;&gt;Detailed information about DNF releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;strong&gt;DNF-PLUGINS-CORE-2.1.1 (since 2.0.0)
&lt;/strong&gt;
&lt;ul&gt;
	&lt;li&gt;Introduced DNF-UTILS subpackage that provides binaries previously known from YUM-UTILS&lt;/li&gt;
	&lt;li&gt;Enhanced documentation of plugin Versionlock&lt;/li&gt;
	&lt;li&gt;Plugin Versionlock will be not applied for commands without transaction like &lt;em&gt;list&lt;/em&gt;, &lt;em&gt;info&lt;/em&gt;, &lt;em&gt;repoquery&lt;/em&gt; ...&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://dnf-plugins-core.readthedocs.org/en/latest/release_notes.html#release-notes&quot;&gt;Detailed information about DNF-PLUGINS-CORE releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;strong&gt;DNF-PLUGINS-EXTRAS-2.0.1 (since 2.0.0)&lt;/strong&gt;
&lt;ul&gt;
	&lt;li&gt;Check if plugin is removed in trans&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://dnf-plugins-extras.readthedocs.org/en/latest/release_notes.html#release-notes&quot;&gt;Detailed information about DNF-PLUGINS-EXTRAS releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;strong&gt;&lt;strong&gt;LIBDNF-0.9.1 (since 0.8.3)
&lt;/strong&gt;&lt;/strong&gt;
&lt;ul&gt;
	&lt;li&gt;Improved handling of installonly packages and running kernel protection&lt;/li&gt;
	&lt;li&gt;Improved reports from libsolv (no redundant messages in particular problem set)&lt;/li&gt;
	&lt;li&gt;Install packages with lover version than already installed will allow downgrade of dependencies&lt;/li&gt;
	&lt;li&gt;Methods (problem_conflicts(),  problem_broken_dependency())  from python API where moved into C code&lt;/li&gt;
	&lt;li&gt;Python property problem_rules where changed to method and moved into C code&lt;/li&gt;
&lt;/ul&gt;
Additionally all of this releases fixes together over 30 bugs in whole DNF stack.</description>
        <pubDate>Thu, 15 Jun 2017 06:07:10 +0000</pubDate>
        <link>https://rpm-software-management.github.io/dnf/2017/06/15/release-of-the-latest-candidates-of-dnf-stack-for-fedora-26/</link>
        <guid isPermaLink="true">https://rpm-software-management.github.io/dnf/2017/06/15/release-of-the-latest-candidates-of-dnf-stack-for-fedora-26/</guid>
        
        
        <category>dnf</category>
        
      </item>
    
      <item>
        <title>DNF 2.4.1, DNF-PLUGINS-CORE 2.0.0, DNF-PLUGINS-EXTRAS 2.0.0,  and LIBDNF 0.8.3 have been released</title>
        <description>The main aspect of the release is movement of several plugins from dnf-plugins-extras to dnf-plugins-core that became a part of core package or a separate sub-package. The release also provides new dnf option &lt;strong&gt;&lt;strong&gt;-&lt;/strong&gt;-enableplugin=&lt;/strong&gt; , new option &lt;strong&gt;&lt;strong&gt;-&lt;/strong&gt;-userinstalled&lt;/strong&gt; for &lt;em&gt;REPOQUERY&lt;/em&gt;, and enables auto-detection of releasever from host if &lt;strong&gt;&lt;strong&gt;-&lt;/strong&gt;-releasever=/&lt;/strong&gt; is used. Additionally it fixes over 14 bugs in whole DNF stack, like a performance issue of &lt;em&gt;VERSIONLOCK&lt;/em&gt; plugin, and added progress bar for download packages from command-line. For complete list of changes see &lt;a href=&quot;http://dnf.readthedocs.org/en/latest/release_notes.html#release-notes&quot;&gt;DNF&lt;/a&gt;, &lt;a href=&quot;http://dnf-plugins-core.readthedocs.org/en/latest/release_notes.html#release-notes&quot;&gt;DNF-PLUGINS-CORE&lt;/a&gt; and &lt;a href=&quot;http://dnf-plugins-extras.readthedocs.org/en/latest/release_notes.html#release-notes&quot;&gt;DNF-PLUGINS-EXTRAS&lt;/a&gt; release notes.</description>
        <pubDate>Thu, 11 May 2017 09:47:29 +0000</pubDate>
        <link>https://rpm-software-management.github.io/dnf/2017/05/11/dnf-2-4-1-dnf-plugins-core-2-0-0-dnf-plugins-extras-2-0-0-and-libdnf-0-8-3-have-been-released/</link>
        <guid isPermaLink="true">https://rpm-software-management.github.io/dnf/2017/05/11/dnf-2-4-1-dnf-plugins-core-2-0-0-dnf-plugins-extras-2-0-0-and-libdnf-0-8-3-have-been-released/</guid>
        
        
        <category>dnf</category>
        
      </item>
    
      <item>
        <title>New DNF Project Leader</title>
        <description>I'd like to announce new team leader of DNF project as I decided to accept new challenges in a different environment.

From May 1 &lt;a href=&quot;https://github.com/dmach&quot;&gt;Daniel Mach&lt;/a&gt; will be officially new team lead of the project. He came from release engineer background and has been consumer of DNF for a long time. Because of  his knowledge of the ecosystem and ability to push things forward I believe he will fit into this role well.

I will still keep an eye on the project but now more like its user and occasional contributor. Thank you all who cooperated to make DNF better.

Jan</description>
        <pubDate>Sat, 29 Apr 2017 19:54:45 +0000</pubDate>
        <link>https://rpm-software-management.github.io/dnf/2017/04/29/new-dnf-project-leader-2/</link>
        <guid isPermaLink="true">https://rpm-software-management.github.io/dnf/2017/04/29/new-dnf-project-leader-2/</guid>
        
        
        <category>dnf</category>
        
      </item>
    
      <item>
        <title>DNF 2.3.0 was released</title>
        <description>DNF 2.3.0 was released. The release adds new API property for Package class to return location from where the package can be downloaded from. The release introduce 7 new options for repoquery command, that were known from YUM. Additionally it fixes 4 bugs. For complete list of changes see &lt;a href=&quot;http://dnf.readthedocs.org/en/latest/release_notes.html#release-notes&quot;&gt;DNF&lt;/a&gt; release notes.</description>
        <pubDate>Mon, 24 Apr 2017 08:20:12 +0000</pubDate>
        <link>https://rpm-software-management.github.io/dnf/2017/04/24/dnf-2-3-0-was-released/</link>
        <guid isPermaLink="true">https://rpm-software-management.github.io/dnf/2017/04/24/dnf-2-3-0-was-released/</guid>
        
        
        <category>dnf</category>
        
      </item>
    
      <item>
        <title>DNF 2.2.0, and LIBDNF 0.8.0 were released</title>
        <description>DNF 2.2.0, and LIBDNF 0.8.0 were released. The release adds new API for adding and initialization of new REPO object into REPODICT class. Also interesting could be a new API callback that allows to inform users about running scriplets during RPM transaction. Additionally it also fixes over 13 bugs. For complete list of changes see &lt;a href=&quot;http://dnf.readthedocs.org/en/latest/release_notes.html#release-notes&quot;&gt;DNF&lt;/a&gt; release notes.</description>
        <pubDate>Mon, 03 Apr 2017 15:07:25 +0000</pubDate>
        <link>https://rpm-software-management.github.io/dnf/2017/04/03/dnf-2-2-0-and-libdnf-0-8-0-were-released/</link>
        <guid isPermaLink="true">https://rpm-software-management.github.io/dnf/2017/04/03/dnf-2-2-0-and-libdnf-0-8-0-were-released/</guid>
        
        
        <category>dnf</category>
        
      </item>
    
      <item>
        <title>DNF 2.1.0, DNF-PLUGINS-CORE 1.0.0 and DNF-PLUGINS-EXTRAS 0.10.0 has been released</title>
        <description>DNF 2.1.0, DNF-PLUGINS-CORE 1.0.1, and DNF-PLUGINS-EXTRAS 0.10.0 released. Whole DNF stack release fixes over 20 bugs. DNF stack release is focused on bug fixes and yum-dnf compatibility. The release also provides two new commands (shell, and swap) that are formally known from YUM. For complete list of changes see &lt;a href=&quot;http://dnf.readthedocs.org/en/latest/release_notes.html#release-notes&quot;&gt;DNF&lt;/a&gt;, &lt;a href=&quot;http://dnf-plugins-core.readthedocs.org/en/latest/release_notes.html#release-notes&quot;&gt;DNF-PLUGINS-CORE&lt;/a&gt; and &lt;a href=&quot;http://dnf-plugins-extras.readthedocs.org/en/latest/release_notes.html#release-notes&quot;&gt;DNF-PLUGINS-EXTRAS&lt;/a&gt; release notes.</description>
        <pubDate>Fri, 03 Mar 2017 15:12:07 +0000</pubDate>
        <link>https://rpm-software-management.github.io/dnf/2017/03/03/dnf-2-1-0-dnf-plugins-core-1-0-0-and-dnf-plugins-extras-0-10-0-has-been-released/</link>
        <guid isPermaLink="true">https://rpm-software-management.github.io/dnf/2017/03/03/dnf-2-1-0-dnf-plugins-core-1-0-0-and-dnf-plugins-extras-0-10-0-has-been-released/</guid>
        
        
        <category>dnf</category>
        
      </item>
    
      <item>
        <title>DNF 2.0.0 and DNF-PLUGINS-CORE 1.0.0 has been released</title>
        <description>DNF-2.0 has been released! The next major version release of DNF brings many user experience improvements such as better dependency problem reporting messages, weak dependencies shown in transaction summary, more intuitive help usage invoking and &lt;a href=&quot;http://dnf.readthedocs.org/en/latest/release_notes.html#release-notes&quot;&gt;others&lt;/a&gt;. Repoquery plugin has been moved into DNF itself. Whole DNF stack release fixes over 60 bugs. DNF-2.0 release is focused on improving yum compatibility i.e. treat yum configuration options the same (`include`, `includepkgs` and `exclude`). Unfortunately this release is not fully compatible with DNF-1. See the list of &lt;a href=&quot;http://dnf.readthedocs.io/en/latest/dnf-1_vs_dnf-2.html&quot;&gt;DNF-1 and DNF-2 incompatible changes&lt;/a&gt;. Authors of dnf plugins will need to check compatibility of their plugins with &lt;a href=&quot;http://dnf.readthedocs.io/en/latest/use_cases.html#plugins-cli-api&quot;&gt;the new DNF argument parser&lt;/a&gt;. For complete list of changes see &lt;a href=&quot;http://dnf.readthedocs.org/en/latest/release_notes.html#release-notes&quot;&gt;DNF&lt;/a&gt; and &lt;a href=&quot;http://dnf-plugins-core.readthedocs.org/en/latest/release_notes.html#release-notes&quot;&gt;plugins release&lt;/a&gt; notes.</description>
        <pubDate>Tue, 20 Dec 2016 07:30:06 +0000</pubDate>
        <link>https://rpm-software-management.github.io/dnf/2016/12/20/dnf-2-0-0-and-dnf-plugins-core-1-0-0-has-been-released/</link>
        <guid isPermaLink="true">https://rpm-software-management.github.io/dnf/2016/12/20/dnf-2-0-0-and-dnf-plugins-core-1-0-0-has-been-released/</guid>
        
        
        <category>dnf</category>
        
      </item>
    
  </channel>
</rss>
