<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on Let&#39;s talk about ...</title>
    <link>https://fidencio.github.io/posts/</link>
    <description>Recent content in Posts on Let&#39;s talk about ...</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 01 Dec 2019 00:00:00 +0000</lastBuildDate>
    
        <atom:link href="https://fidencio.github.io/posts/index.xml" rel="self" type="application/rss+xml" />
    
    
    <item>
      <title>Adopting GitLab workflow</title>
      <link>https://fidencio.github.io/posts/2019-12-01-adopting-gitlab-workflow/</link>
      <pubDate>Sun, 01 Dec 2019 00:00:00 +0000</pubDate>
      
      <guid>https://fidencio.github.io/posts/2019-12-01-adopting-gitlab-workflow/</guid>
      <description>&lt;p&gt;In October 2018 there was a face-to-face short meeting with a big part of
libosinfo maintainers, some contributors, and some users.&lt;/p&gt;
&lt;p&gt;This short meeting took place during a lunch break in one of KVM Forum 2018
days and, among other things, we discussed whether we should allow, and / or
prefer receiving patches through GitLab Merge Requests.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the [announcement]
(&lt;a href=&#34;https://www.redhat.com/archives/libosinfo/2018-December/msg00174.html):&#34;&gt;https://www.redhat.com/archives/libosinfo/2018-December/msg00174.html):&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-txt&#34; data-lang=&#34;txt&#34;&gt;[Libosinfo] Merge Requests are enabled!

    From: Fabiano Fidêncio &amp;lt;fidencio redhat com&amp;gt;
    To: &amp;#34;libosinfo redhat com&amp;#34; &amp;lt;libosinfo redhat com&amp;gt;
    Subject: [Libosinfo] Merge Requests are enabled!
    Date: Fri, 21 Dec 2018 16:48:14 +0100

People,

Although the preferred way to contribute to libosinfo, osinfo-db and
osinfo-db-tools is still sending patches to this ML, we&amp;#39;ve decided to
also enable Merge Requests on our gitlab!

Best Regards,
--
Fabiano Fidêncio

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now, one year past that decision, let&amp;rsquo;s check what has been done, review some
numbers, and discuss what&amp;rsquo;s my take, as one of the maintainers, of the decision
we made.&lt;/p&gt;
&lt;h3 id=&#34;2019-the-experiment-begins-&#34;&gt;2019, the experiment begins &amp;hellip;&lt;/h3&gt;
&lt;p&gt;After the e-mail shown above was sent, I&amp;rsquo;ve kept using mailing list as the
preferred way to submit and review patches, keeping an eye on GitLab Merge
Requests, till August 2019 from when I did a full switch to using GitLab
instead of mailing list.&lt;/p&gt;
&lt;h3 id=&#34;-and-what-changed-&#34;&gt;&amp;hellip; and what changed? &amp;hellip;&lt;/h3&gt;
&lt;p&gt;Well, to be honest, not much. But in order to extend a little bit more, I have
to describe a little bit my &lt;strong&gt;not optimal&lt;/strong&gt; workflow.&lt;/p&gt;
&lt;p&gt;Even before describing my workflow, let me just make clear that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;I don&amp;rsquo;t have any scripts that would fetch the patches from my e-mail and
apply them automagically for me;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I never ever got used to text-based mail clients (I&amp;rsquo;m a former Evolution
developer, I&amp;rsquo;m an Evolution user for several years);&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Knowing those things, this is how my workflow looks like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Development:&lt;/strong&gt; I&amp;rsquo;ve been using GitLab for a few years as the main host of,
my forks of. the projects I contribute to. When developing a new feature, I
would:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a new branch;&lt;/li&gt;
&lt;li&gt;Do the needed changes;&lt;/li&gt;
&lt;li&gt;Push the new branch to the project on my GitLab account;&lt;/li&gt;
&lt;li&gt;Submit the patches;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Review:&lt;/strong&gt; It may sound weird, maybe it really is, but the way I do review
patches is by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Getting the patches submitted;&lt;/li&gt;
&lt;li&gt;Applying atop of master;&lt;/li&gt;
&lt;li&gt;Doing a &lt;code&gt;git rebase -i&lt;/code&gt; so I can go through each one of the patchesR;&lt;/li&gt;
&lt;li&gt;Then, for each one of the patches I would:
&lt;ul&gt;
&lt;li&gt;Add comments;&lt;/li&gt;
&lt;li&gt;Do fix-up changes;&lt;/li&gt;
&lt;li&gt;Squash my fixes atop of the original patch;&lt;/li&gt;
&lt;li&gt;Move to the next patch;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And now, knowing my workflow, I can tell that pretty much nothing changed.&lt;/p&gt;
&lt;p&gt;As part of the development workflow:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Submitting patches:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[git publish] (&lt;a href=&#34;https://github.com/stefanha/git-publish&#34;&gt;https://github.com/stefanha/git-publish&lt;/a&gt;) -&amp;gt; click in the
URL printed when a new branch is pushed to GitLab;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reviewing patches:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Saving patch e-mails as mbox, applying them to my tree -&amp;gt; pull the MR&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Everything else stays pretty much the same. I still do a &lt;code&gt;git rebase -i&lt;/code&gt; and
go through the patches, adding comments / fix-ups which, later on I&amp;rsquo;ll have to
organise and paste somewhere (either replying to the e-mail or adding to
GitLab&amp;rsquo;s web UI) and that&amp;rsquo;s the part which consumes the most of my time.&lt;/p&gt;
&lt;p&gt;However, although the change was not big &lt;strong&gt;to me&lt;/strong&gt; as a developer, some people
had to adapt &lt;strong&gt;their&lt;/strong&gt; workflow in order to start reviewing all the patches
I&amp;rsquo;ve been submitting to GitLab. But let&amp;rsquo;s approach this later on &amp;hellip; :-)&lt;/p&gt;
&lt;p&gt;Anyways, it&amp;rsquo;s important to make it crystal clear that this is my &lt;strong&gt;personal&lt;/strong&gt;
experience and that I &lt;strong&gt;do understand&lt;/strong&gt; that people who rely more heavily on
text-based mail clients and / or with a bunch of scripts tailored for their
development would have a different, way way different, experience.&lt;/p&gt;
&lt;h3 id=&#34;-do-we-have-more-contributions-since-the-switch-&#34;&gt;&amp;hellip; do we have more contributions since the switch? &amp;hellip;&lt;/h3&gt;
&lt;p&gt;As by November 26th, I&amp;rsquo;ve checked the amount of submissions we had on
both libosinfo mailing list and libosinfo GitLab page during the current year.&lt;/p&gt;
&lt;p&gt;Mind that I&amp;rsquo;m &lt;strong&gt;not&lt;/strong&gt; counting my own submissions and that I&amp;rsquo;m counting
osinfo-db&amp;rsquo;s addition, which usually may consist in adding data &amp;amp; tests, as a
single submission.&lt;/p&gt;
&lt;p&gt;As for the mailing list, we&amp;rsquo;ve received &lt;strong&gt;32&lt;/strong&gt; patches; as for the GitLab,
we&amp;rsquo;ve received &lt;strong&gt;34&lt;/strong&gt; patches.&lt;/p&gt;
&lt;p&gt;Quite similar number of contributions, let&amp;rsquo;s dig a little bit more.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;32&lt;/strong&gt; patches sent to our mailing list came from &lt;strong&gt;8&lt;/strong&gt; different
contributors, and &lt;strong&gt;all of them&lt;/strong&gt; had at least one previous patch merged in one
of the libosinfo projects.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;34&lt;/strong&gt; patches sent to our GitLab came from &lt;strong&gt;15&lt;/strong&gt; different contributors
and, from those, only &lt;strong&gt;6&lt;/strong&gt; of them had at least one previous patch merged in
one of the libosinfo projects, whilst &lt;strong&gt;9&lt;/strong&gt; of them were &lt;strong&gt;first time
contributors&lt;/strong&gt; (and I hope they&amp;rsquo;ll stay around, I sincerely do ;-)).&lt;/p&gt;
&lt;p&gt;Maybe one thing to consider here is whether forking a project on GitLab is
easier than subscribing to a new mailing list when submitting a patch. This is
something people usually do once per project they contribute to, but
subscribing to a mailing list may actually be a barrier.&lt;/p&gt;
&lt;p&gt;Some people would argue, though, it&amp;rsquo;s a both ways barrier, mainly considering
one may extensively contribute to projects using one or the other workflow.
IMHO, it&amp;rsquo;s not exactly true. Subscribing to a mailing list, getting the patches
correctly formatted feels more difficult than forking a repo and submitting a
Merge Request.&lt;/p&gt;
&lt;p&gt;In my personal case, I can tell the only projects I contribute to which still
didn&amp;rsquo;t adopt GitLab / GitHub workflow are the libvirt ones, although it may
change in the near future, as mentioned by Daniel P. Berrangé on his [KVM Forum
2019 talk] (&lt;a href=&#34;https://www.youtube.com/watch?v=XTXE-A49-DU)&#34;&gt;https://www.youtube.com/watch?v=XTXE-A49-DU)&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;-what-are-the-pros-and-cons-&#34;&gt;&amp;hellip; what are the pros and cons? &amp;hellip;&lt;/h3&gt;
&lt;p&gt;When talking about the &amp;ldquo;pros&amp;rdquo; and &amp;ldquo;cons&amp;rdquo; is really hard to get exactly which
are the objective and subjective pros and cons.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;pros&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;CI&lt;/strong&gt;: The possibility to have a CI running for all libosinfo projects,
running the tests we have on each MR, without any effort / knowledge of
the contributor about this;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tracking non-reviewed patches&lt;/strong&gt;: Although this one may be related to
each one&amp;rsquo;s workflow, it&amp;rsquo;s objective that figuring out which Merge
Requests need review on GitLab is way easier for a new contributor than
navigating through a mailing list;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Centralisation&lt;/strong&gt;: This is one of the subjective ones, for sure. For
libosinfo we have adopted GitLab as its issue tracker as well, which makes
my life as maintainer quite easy as I have &amp;ldquo;Issues&amp;rdquo; and &amp;ldquo;Merge Requests&amp;rdquo;
in a single place. It may not be true for different projects, though.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;cons&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Reviewing commit messages&lt;/strong&gt;: It seems to be impossible to review commit
messages, unless you make a comment about that. Making a comment, though,
is not exactly practical as I cannot go specifically to the line I want
to comment and make a suggestion.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Creating an account to yet another service&lt;/strong&gt;: This is another one of the
subjective ones. It bothers me &lt;strong&gt;a lot&lt;/strong&gt;, having to create an account on
a different service in order to contribute to a project. This is my case
with GitLab, GNOME GitLab, and GitHub. However, is that different from
subscribing to a few different mailing lists? :-)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Those are, for me, the most prominent &amp;ldquo;pros&amp;rdquo; and &amp;ldquo;cons&amp;rdquo;. There are a few other
things that I&amp;rsquo;ve seen people complaining, being the most common one related to
changing their workflow. And this is something worth its own section! :-)&lt;/p&gt;
&lt;h3 id=&#34;-is-there-something-out-there-to-make-my-workflow-change-easier-&#34;&gt;&amp;hellip; is there something out there to make my workflow change easier? &amp;hellip;&lt;/h3&gt;
&lt;p&gt;Yes and no. That&amp;rsquo;s a horrible answer, ain&amp;rsquo;t it? :-)&lt;/p&gt;
&lt;p&gt;Daniel P. Berrangé has created a project called [Bichon]
(&lt;a href=&#34;https://gitlab.com/bichon-project/bichon),&#34;&gt;https://gitlab.com/bichon-project/bichon),&lt;/a&gt; which is a tool providing a
terminal based user interface for reviewing GitLab Merge Requests.&lt;/p&gt;
&lt;p&gt;Cool, right? In general, yes. But you have to keep in mind that the project is
still in its embryonic stage. When more mature, I&amp;rsquo;m pretty sure it&amp;rsquo;ll help
people used to mailing lists workflow to easily adapt to GitLab workflow
without leaving behind the facilities of doing everything via command-line.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been using the tool for simple things, I&amp;rsquo;ve been contributing to the tool
with simple patches. It&amp;rsquo;s fair to say that it I do prefer adding a comment to
Merge Requests, Approve, and Merge them using [Bichon]
(&lt;a href=&#34;https://gitlab.com/bichon-project/bichon&#34;&gt;https://gitlab.com/bichon-project/bichon&lt;/a&gt;) than via the web UI. Is the tool
enough to suffice all the people&amp;rsquo;s needs? Of course not. Will it be? Hardly.
But it may be enough to surpass the blockers of migrating away from mailing
lists workflow.&lt;/p&gt;
&lt;h3 id=&#34;-a-few-words-from-different-contributors-&#34;&gt;&amp;hellip; a few words from different contributors &amp;hellip;&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve decided to ask [Cole Robinson] (&lt;a href=&#34;https://blog.wikichoon.com/&#34;&gt;https://blog.wikichoon.com/&lt;/a&gt;) and [Felipe
Borges] (&lt;a href=&#34;https://feborg.es/blog/&#34;&gt;https://feborg.es/blog/&lt;/a&gt;) a word or two about this subject as they are
contributors / reviewers of libosinfo projects.&lt;/p&gt;
&lt;p&gt;It should go without saying that their opinions should &lt;strong&gt;not&lt;/strong&gt; be taken as
&amp;ldquo;this workflow is better than the other&amp;rdquo;. However, take their words as valid
points from people who are heavily using one workflow or the other, as [Cole
Robinson] (&lt;a href=&#34;https://blog.wikichoon.com/&#34;&gt;https://blog.wikichoon.com/&lt;/a&gt;) comes from libvirt / virt-tools world,
which rely heavily on mailing list, and [Felipe Borges]
(&lt;a href=&#34;https://feborg.es/blog/&#34;&gt;https://feborg.es/blog/&lt;/a&gt;) comes from GNOME world, which is a huge GitLab
consumer.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;The change made things different for me, slightly worse but not in any
disruptive way. The main place I feel the pain is putting review comments into
a web UI rather than inline in email which is more natural for me. For a busier
project than libosinfo I think the pain would ramp up, but it would also force
me to adapt more. I&amp;rsquo;m still largely maintaining an email based review workflow
and not living in GitLab / GitHub&amp;rdquo; - [Cole Robinson]
(&lt;a href=&#34;https://blog.wikichoon.com/&#34;&gt;https://blog.wikichoon.com/&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&amp;ldquo;The switch to Gitlab has significantly lowered the threshold for people
getting started. The mailing list workflow has its advantages but it is an
entry barrier for new contributors that don&amp;rsquo;t use native mail clients and that
learned the Pull Request workflow promoted by GitLab/GitHub. New contributors
now can easily browse the existing Issues and find something to work on, all in
the same place. Reviewing contributions with inline discussions and being able
to track the status of CI pipelines in the same interface is definitely a must.
I&amp;rsquo;m sure Libosinfo foresees an increase in the number of contributors without
losing existing ones, considering that another advantage of Gitlab is that it
allows developers to interact with the service from email, similarly to the
email-driven git workflow that we were using before.&amp;rdquo; - [Felipe Borges]
(&lt;a href=&#34;https://feborg.es/blog/&#34;&gt;https://feborg.es/blog/&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id=&#34;-is-there-any-conclusion-from-the-authors-side&#34;&gt;&amp;hellip; is there any conclusion from the author&amp;rsquo;s side?&lt;/h3&gt;
&lt;p&gt;As the first thing, I&amp;rsquo;ve to emphasize two points:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Avoid keeping both workflows&lt;/strong&gt;: Although we do that on libosinfo, it&amp;rsquo;s
something I&amp;rsquo;d strongly discourage. It&amp;rsquo;s almost impossible to keep the
information in sync in both places in a reasonable way.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Be aware of changes, be welcome to changes&lt;/strong&gt;: As mentioned above,
migrating from one workflow to another will be disruptive at some level. Is
it actually a blocker? Although it was not for me, it may be for you. The
thing to keep in mind here is to be aware of changes and welcome them
knowing you won&amp;rsquo;t have a 1:1 replacement for your current workflow.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With that said, I&amp;rsquo;m mostly happy with the change made. The number of old time
contributors has not decreased and, at the same time, the number of first time
contributors has increased.&lt;/p&gt;
&lt;p&gt;Another interesting fact is that the number of contributions using the mailing
list has decreased as we only had 4 contributions through this mean since June
2019.&lt;/p&gt;
&lt;p&gt;Well, that&amp;rsquo;s all I have to say about the topic. I sincerely hope a reading
through this content somehow helps your project and the contributors of your
project to have a better idea about the migration.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Libosinfo (Part I)</title>
      <link>https://fidencio.github.io/posts/2019-10-16-libosinfo-part-i/</link>
      <pubDate>Wed, 16 Oct 2019 00:00:00 +0000</pubDate>
      
      <guid>https://fidencio.github.io/posts/2019-10-16-libosinfo-part-i/</guid>
      <description>&lt;p&gt;This is the first blog post of a series which will cover Libosinfo, what it is,
who uses it, how it is used, how to manage it, and, finally, how to contribute
to it.&lt;/p&gt;
&lt;h3 id=&#34;a-quick-overview&#34;&gt;A quick overview&lt;/h3&gt;
&lt;p&gt;Libosinfo is &lt;strong&gt;the&lt;/strong&gt; operating system information database. As a project, it
consists of three different parts, with the goal to provide a single place
containing all the required information about an operating system in order to
provision and manage it in a virtualized environment.&lt;/p&gt;
&lt;p&gt;The project allows management applications to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Automatically identify for which operating system an ISO image or an
installation tree is intended to;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Find the download location of installable ISOs and LiveCDs images;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Find the location of installation trees;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Query the minimum, recommended, and maximum CPU / memory / disk resources
for an operating system;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Query the hardware supported by an operating system;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Generate scripts suitable for automating &amp;ldquo;Server&amp;rdquo; and &amp;ldquo;Workstation&amp;rdquo;
installations;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;the-library-libosinfo&#34;&gt;The library (libosinfo)&lt;/h3&gt;
&lt;p&gt;The library API is written in C, taking advantage of GLib and GObject. Thanks
to GObject Introspection, the API is automatically available in all dynamic
programming languages with bindings for GObject (JavaScript, Perl, Python, and
Ruby). Auto-generated bindings for Vala are also provided.&lt;/p&gt;
&lt;p&gt;As part of &lt;strong&gt;libosinfo&lt;/strong&gt;, three tools are provided:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;osinfo-detect&lt;/strong&gt;: Used to detect an Operating System from a given ISO or
installation tree.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;osinfo-install-script&lt;/strong&gt;: Used to generate a &amp;ldquo;Server&amp;rdquo; or &amp;ldquo;Workstation&amp;rdquo;
install-script to perform automated installation of an Operating System;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;osinfo-query&lt;/strong&gt;: Used to query information from the database;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;the-database-osinfo-db&#34;&gt;The database (osinfo-db)&lt;/h3&gt;
&lt;p&gt;The database is written in XML and it can either be consumed via libosinfo APIs
or directly via management applications&#39; own code.&lt;/p&gt;
&lt;p&gt;It contains information about the operating systems, devices, installation
scripts, platforms, and datamaps (keyboard and language mappings for Windows
and Linux OSes).&lt;/p&gt;
&lt;h3 id=&#34;the-database-tools-osinfo-db-tools&#34;&gt;The database tools (osinfo-db-tools)&lt;/h3&gt;
&lt;p&gt;These are tools that can be used to manage the database, which is distributed
as a tarball archive.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;osinfo-db-import&lt;/strong&gt;: Used to import an osinfo database archive;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;osinfo-db-export&lt;/strong&gt;: Used to export an osinfo database archive;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;osinfo-db-validate&lt;/strong&gt;: Used to validate the XML files in one of the osinfo
database locations for compliance with the RNG schema.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;osinfo-db-path&lt;/strong&gt;: Used to report the paths associated with the standard
database locations;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;the-consumers-&#34;&gt;The consumers &amp;hellip;&lt;/h3&gt;
&lt;p&gt;Libosinfo and osinfo-db have management applications as their target audience.
Currently the libosinfo project is consumed by big players in the virtual
machine management environment such as [OpenStack Nova]
(&lt;a href=&#34;https://docs.openstack.org/nova/latest/),&#34;&gt;https://docs.openstack.org/nova/latest/),&lt;/a&gt; [virt-manager]
(&lt;a href=&#34;https://virt-manager.org&#34;&gt;https://virt-manager.org&lt;/a&gt;), [GNOME Boxes] (&lt;a href=&#34;https://wiki.gnome.org/Apps/Boxes),&#34;&gt;https://wiki.gnome.org/Apps/Boxes),&lt;/a&gt;
[Cockpit Machines]
(https://cockpit-project/guide/latest/feature-virtualmachines), and [KubeVirt]
(&lt;a href=&#34;https://kubevirt.io&#34;&gt;https://kubevirt.io&lt;/a&gt;).&lt;/p&gt;
&lt;h4 id=&#34;-a-little-bit-about-them-&#34;&gt;&amp;hellip; a little bit about them &amp;hellip;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;[OpenStack Nova] (&lt;a href=&#34;https://docs.openstack.org/nova/latest/):&#34;&gt;https://docs.openstack.org/nova/latest/):&lt;/a&gt; An [OpenStack]
(&lt;a href=&#34;https://www.openstack.org/&#34;&gt;https://www.openstack.org/&lt;/a&gt;) project that provides a way to provision virtual
machines, baremetal servers, and (limited supported for) system containers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;[virt-manager] (&lt;a href=&#34;https://virt-manager.org&#34;&gt;https://virt-manager.org&lt;/a&gt;): An application for managing
virtual machines through libvirt.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;[GNOME Boxes] (&lt;a href=&#34;https://wiki.gnome.org/Apps/Boxes):&#34;&gt;https://wiki.gnome.org/Apps/Boxes):&lt;/a&gt; A simple application to
view, access, and manage remote and virtual systems.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;[Cockpit Machines]
(https://cockpit-project/guide/latest/feature-virtualmachines): A [Cockpit]
(&lt;a href=&#34;https://cockpit-project.org/&#34;&gt;https://cockpit-project.org/&lt;/a&gt;) extension to manage virtual machines running
on the host.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;[KubeVirt] (&lt;a href=&#34;https://kubevirt.io/):&#34;&gt;https://kubevirt.io/):&lt;/a&gt; Virtual Machine Management on Kubernetes.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;-and-why-they-use-it&#34;&gt;&amp;hellip; and why they use it&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Download ISOs&lt;/strong&gt;: As libosinfo provides the ISO URLs, management
applications can offer the user the option to download a specific operating
system;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; OpenStack Nova&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; virt-manager&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; GNOME Boxes&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Cockpit Machines&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; KubeVirt&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Automatically detect the ISO being used&lt;/strong&gt;: As libosinfo can detect the
operating system of an ISO, management applications can use this info to
set reasonable default values for resources, to select the hardware
supported, and to perform unattended installations.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; OpenStack Nova&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; virt-manager&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; GNOME Boxes&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Cockpit Machines&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; KubeVirt&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Start tree installation&lt;/strong&gt;: As libosinfo provides the tree installation
URLs, management applications can use it to start a network-based
installation without having to download the whole operating system ISO;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; OpenStack Nova&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; virt-manager (via virt-install)&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; GNOME Boxes&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Cockpit Machines&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; KubeVirt&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Set reasonable default values for RAM, CPU, and disk resources&lt;/strong&gt;: As
libosinfo knows the values that are recommended by the operating system&amp;rsquo;s
vendors, management applications can rely on that when setting the default
resources for an installation.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; OpenStack Nova&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; virt-manager&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; GNOME Boxes&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Cockpit Machines&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; KubeVirt&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Automatically set the hardware supported&lt;/strong&gt;: As libosinfo provides the list
of hardware supported by an operating system, management applications can
choose the best defaults based on this information, without taking the risk
of ending up with a non-bootable guest.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; OpenStack Nova&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; virt-manager&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; GNOME Boxes&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Cockpit Machines (via virt-install)&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; KubeVirt&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Unattended install&lt;/strong&gt;: as libosinfo provides unattended installations
scripts for CentOS, Debian, Fedora, Fedora Silverblue, Microsoft Windows,
OpenSUSE, Red Hat Enterprise Linux, and Ubuntu, management applications can
perform unattended installations for both &amp;ldquo;Workstation&amp;rdquo; and &amp;ldquo;Server&amp;rdquo;
profiles.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; OpenStack Nova&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; virt-manager (via virt-install)&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; GNOME Boxes (only supports &amp;ldquo;Workstation&amp;rdquo; installations)&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Cockpit Machines (this is still a [work-in-progress]
(&lt;a href=&#34;https://github.com/cockpit-project/cockpit/pull/12716&#34;&gt;https://github.com/cockpit-project/cockpit/pull/12716&lt;/a&gt;))&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; KubeVirt&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;whats-next&#34;&gt;What&amp;rsquo;s next?&lt;/h3&gt;
&lt;p&gt;The next blog post will provide a &amp;ldquo;demo&amp;rdquo; of an unattended installation using
both GNOME Boxes and virt-install and, based on that, explain how libosinfo is
internally used by these projects.&lt;/p&gt;
&lt;p&gt;By doing that, we&amp;rsquo;ll both cover how libosinfo can be used and also demonstrate
how it can ease the usage of those management applications.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>A Fresh Start</title>
      <link>https://fidencio.github.io/posts/2019-10-12-a-fresh-start/</link>
      <pubDate>Sat, 12 Oct 2019 00:00:00 +0000</pubDate>
      
      <guid>https://fidencio.github.io/posts/2019-10-12-a-fresh-start/</guid>
      <description>&lt;h3 id=&#34;todo-list&#34;&gt;ToDo List&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Retire &lt;!-- raw HTML omitted --&gt;fabianofidencio.blogspot.com&lt;!-- raw HTML omitted --&gt;&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Find a [good static site generator] (&lt;a href=&#34;https://gohugo.io&#34;&gt;https://gohugo.io&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Find a [simple minimalistic theme] (&lt;a href=&#34;https://github.com/calintat/minimal&#34;&gt;https://github.com/calintat/minimal&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Find a [place to host the new blog] (&lt;a href=&#34;https://pages.github.com&#34;&gt;https://pages.github.com&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Blog more often&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
  </channel>
</rss>
