1 <?xml version=
"1.0" encoding=
"UTF-8"?>
3 <html xmlns=
"http://www.w3.org/1999/xhtml">
9 <h2><a id=
"releases">Project modules
</a></h2>
12 The libvirt project maintains a number of inter-related modules beyond
13 the core C library/daemon.
16 <table class=
"top_table downloads">
30 <a href=
"https://libvirt.org/sources/">libvirt
</a>
33 <a href=
"https://libvirt.org/git/?p=libvirt.git;a=summary">libvirt
</a>
36 <a href=
"https://gitlab.com/libvirt/libvirt">gitlab
</a>
37 <a href=
"https://github.com/libvirt/libvirt">github
</a>
40 <a href=
"html/index.html">api ref
</a>
41 <a href=
"news.html">changes
</a>
45 <th colspan=
"7">Language bindings
</th>
50 <a href=
"https://libvirt.org/sources/csharp/">libvirt
</a>
53 <a href=
"https://libvirt.org/git/?p=libvirt-csharp.git;a=summary">libvirt
</a>
56 <a href=
"https://gitlab.com/libvirt/libvirt-csharp">gitlab
</a>
57 <a href=
"https://github.com/libvirt/libvirt-csharp">github
</a>
64 <a href=
"https://libvirt.org/sources/go/">libvirt
</a>
67 <a href=
"https://libvirt.org/git/?p=libvirt-go.git;a=summary">libvirt
</a>
70 <a href=
"https://gitlab.com/libvirt/libvirt-go">gitlab
</a>
71 <a href=
"https://github.com/libvirt/libvirt-go">github
</a>
74 <a href=
"https://godoc.org/github.com/libvirt/libvirt-go">api ref
</a>
80 <a href=
"https://libvirt.org/sources/java/">libvirt
</a>
83 <a href=
"https://libvirt.org/git/?p=libvirt-java.git;a=summary">libvirt
</a>
86 <a href=
"https://gitlab.com/libvirt/libvirt-java">gitlab
</a>
87 <a href=
"https://github.com/libvirt/libvirt-java">github
</a>
94 <a href=
"https://libvirt.org/sources/ocaml/">libvirt
</a>
97 <a href=
"https://libvirt.org/git/?p=libvirt-ocaml.git;a=summary">libvirt
</a>
100 <a href=
"https://gitlab.com/libvirt/libvirt-ocaml">gitlab
</a>
101 <a href=
"https://github.com/libvirt/libvirt-ocaml">github
</a>
106 <td>Perl (Sys::Virt)
</td>
108 <a href=
"https://metacpan.org/release/Sys-Virt/">cpan
</a>
111 <a href=
"https://libvirt.org/git/?p=libvirt-perl.git;a=summary">libvirt
</a>
114 <a href=
"https://gitlab.com/libvirt/libvirt-perl">gitlab
</a>
115 <a href=
"https://github.com/libvirt/libvirt-perl">github
</a>
118 <a href=
"https://metacpan.org/release/Sys-Virt/">api ref
</a>
119 <a href=
"https://libvirt.org/git/?p=libvirt-perl.git;a=blob;f=Changes;hb=HEAD">changes
</a>
125 <a href=
"https://libvirt.org/sources/php/">libvirt
</a>
128 <a href=
"https://libvirt.org/git/?p=libvirt-php.git;a=summary">libvirt
</a>
131 <a href=
"https://gitlab.com/libvirt/libvirt-php">gitlab
</a>
132 <a href=
"https://github.com/libvirt/libvirt-php">github
</a>
139 <a href=
"https://libvirt.org/sources/python/">libvirt
</a>
140 <a href=
"https://pypi.python.org/pypi/libvirt-python">pypi
</a>
143 <a href=
"https://libvirt.org/git/?p=libvirt-python.git;a=summary">libvirt
</a>
146 <a href=
"https://gitlab.com/libvirt/libvirt-python">gitlab
</a>
147 <a href=
"https://github.com/libvirt/libvirt-python">github
</a>
154 <a href=
"https://libvirt.org/sources/ruby/">libvirt
</a>
157 <a href=
"https://libvirt.org/git/?p=ruby-libvirt.git;a=summary">libvirt
</a>
160 <a href=
"https://gitlab.com/libvirt/ruby-libvirt">gitlab
</a>
161 <a href=
"https://github.com/libvirt/ruby-libvirt">github
</a>
168 <a href=
"https://libvirt.org/sources/rust/">libvirt
</a>
171 <a href=
"https://libvirt.org/git/?p=libvirt-rust.git;a=summary">libvirt
</a>
174 <a href=
"https://gitlab.com/libvirt/libvirt-rust">gitlab
</a>
175 <a href=
"https://github.com/libvirt/libvirt-rust">github
</a>
180 <th colspan=
"7">Integration modules
</th>
183 <td>GLib / GConfig / GObject
</td>
185 <a href=
"https://libvirt.org/sources/glib/">libvirt
</a>
188 <a href=
"https://libvirt.org/git/?p=libvirt-glib.git;a=summary">libvirt
</a>
191 <a href=
"https://gitlab.com/libvirt/libvirt-glib">gitlab
</a>
192 <a href=
"https://github.com/libvirt/libvirt-glib">github
</a>
199 <a href=
"https://libvirt.org/sources/go/">libvirt
</a>
202 <a href=
"https://libvirt.org/git/?p=libvirt-go-xml.git;a=summary">libvirt
</a>
205 <a href=
"https://gitlab.com/libvirt/libvirt-go-xml">gitlab
</a>
206 <a href=
"https://github.com/libvirt/libvirt-go-xml">github
</a>
209 <a href=
"https://godoc.org/github.com/libvirt/libvirt-go-xml">api ref
</a>
215 <a href=
"https://libvirt.org/sources/dbus/">libvirt
</a>
218 <a href=
"https://libvirt.org/git/?p=libvirt-dbus.git;a=summary">libvirt
</a>
221 <a href=
"https://gitlab.com/libvirt/libvirt-dbus">gitlab
</a>
222 <a href=
"https://github.com/libvirt/libvirt-dbus">github
</a>
227 <td>Console Proxy
</td>
229 <a href=
"https://libvirt.org/sources/consoleproxy/">libvirt
</a>
232 <a href=
"https://libvirt.org/git/?p=libvirt-console-proxy.git;a=summary">libvirt
</a>
235 <a href=
"https://gitlab.com/libvirt/libvirt-console-proxy">gitlab
</a>
236 <a href=
"https://github.com/libvirt/libvirt-console-proxy">github
</a>
241 <td>CIM provider
</td>
243 <a href=
"https://libvirt.org/sources/CIM/">libvirt
</a>
246 <a href=
"https://libvirt.org/git/?p=libvirt-cim.git;a=summary">libvirt
</a>
249 <a href=
"https://gitlab.com/libvirt/libvirt-cim">gitlab
</a>
250 <a href=
"https://github.com/libvirt/libvirt-cim">github
</a>
257 <a href=
"https://libvirt.org/sources/CIM/">libvirt
</a>
260 <a href=
"https://libvirt.org/git/?p=libcmpiutil.git;a=summary">libvirt
</a>
263 <a href=
"https://gitlab.com/libvirt/libcmpiutil">gitlab
</a>
264 <a href=
"https://github.com/libvirt/libcmpiutil">github
</a>
271 <a href=
"https://libvirt.org/sources/snmp/">libvirt
</a>
274 <a href=
"https://libvirt.org/git/?p=libvirt-snmp.git;a=summary">libvirt
</a>
277 <a href=
"https://gitlab.com/libvirt/libvirt-snmp">gitlab
</a>
278 <a href=
"https://github.com/libvirt/libvirt-snmp">github
</a>
283 <td>Application Sandbox
</td>
285 <a href=
"https://libvirt.org/sources/sandbox/">libvirt
</a>
288 <a href=
"https://libvirt.org/git/?p=libvirt-sandbox.git;a=summary">libvirt
</a>
291 <a href=
"https://gitlab.com/libvirt/libvirt-sandbox">gitlab
</a>
292 <a href=
"https://github.com/libvirt/libvirt-sandbox">github
</a>
297 <th colspan=
"7">Testing
</th>
302 <a href=
"https://libvirt.org/sources/tck/">libvirt
</a>
305 <a href=
"https://libvirt.org/git/?p=libvirt-tck.git;a=summary">libvirt
</a>
308 <a href=
"https://gitlab.com/libvirt/libvirt-tck">gitlab
</a>
309 <a href=
"https://github.com/libvirt/libvirt-tck">github
</a>
317 <a href=
"https://libvirt.org/git/?p=libvirt-test-API.git;a=summary">libvirt
</a>
320 <a href=
"https://gitlab.com/libvirt/libvirt-test-API">gitlab
</a>
321 <a href=
"https://github.com/libvirt/libvirt-test-API">github
</a>
326 <td>Jenkins Config
</td>
329 <a href=
"https://libvirt.org/git/?p=libvirt-jenkins-ci.git;a=summary">libvirt
</a>
332 <a href=
"https://gitlab.com/libvirt/libvirt-jenkins-ci">gitlab
</a>
333 <a href=
"https://github.com/libvirt/libvirt-jenkins-ci">github
</a>
341 <a href=
"https://libvirt.org/git/?p=cimtest.git;a=summary">libvirt
</a>
344 <a href=
"https://gitlab.com/libvirt/cimtest">gitlab
</a>
345 <a href=
"https://github.com/libvirt/cimtest">github
</a>
350 <th colspan=
"7">Documentation
</th>
353 <td>Publican Brand
</td>
356 <a href=
"https://libvirt.org/git/?p=libvirt-publican.git;a=summary">libvirt
</a>
359 <a href=
"https://gitlab.com/libvirt/libvirt-publican">gitlab
</a>
360 <a href=
"https://github.com/libvirt/libvirt-publican">github
</a>
365 <td>App Development Guide
</td>
368 <a href=
"https://libvirt.org/git/?p=libvirt-appdev-guide.git;a=summary">libvirt
</a>
371 <a href=
"https://gitlab.com/libvirt/libvirt-appdev-guide">gitlab
</a>
372 <a href=
"https://github.com/libvirt/libvirt-appdev-guide">github
</a>
377 <td>App Development Guide Python
</td>
380 <a href=
"https://libvirt.org/git/?p=libvirt-appdev-guide-python.git;a=summary">libvirt
</a>
383 <a href=
"https://gitlab.com/libvirt/libvirt-appdev-guide-python">gitlab
</a>
384 <a href=
"https://github.com/libvirt/libvirt-appdev-guide-python">github
</a>
389 <td>virsh Command Reference
</td>
392 <a href=
"https://libvirt.org/git/?p=libvirt-virshcmdref.git;a=summary">libvirt
</a>
395 <a href=
"https://gitlab.com/libvirt/libvirt-virshcmdref">gitlab
</a>
396 <a href=
"https://github.com/libvirt/libvirt-virshcmdref">github
</a>
403 <h2>Primary download site
</h2>
406 Most modules have releases made available for download on the project
407 site via HTTPS. Some modules are instead made available at alternative
408 locations, for example, the Perl binding is made available only on CPAN.
412 <li><a href=
"https://libvirt.org/sources/">libvirt.org HTTPS server
</a></li>
415 <h2><a id=
"schedule">Primary release schedule
</a></h2>
418 The core libvirt module follows a time based plan, with releases made
419 once a month on the
1st of each month give or take a few days. The only
420 exception is at the start of the year where there are two
6 weeks gaps
421 (first release in the middle of Jan, then skip the Feb release), giving
422 a total of
11 releases a year. The Python and Perl modules will aim to
423 release at the same time as the core libvirt module. Other modules have
424 independent ad-hoc releases with no fixed time schedule.
427 <h2><a id=
"numbering">Release numbering
</a></h2>
430 Since libvirt
2.0.0, a time based version numbering rule
431 is applied to the core library releases. As such, the changes
432 in version number have do not have any implications with respect
433 to the scope of features or bugfixes included, the stability of
434 the code, or the API / ABI compatibility (libvirt API / ABI is
435 guaranteed stable forever). The rules applied for changing the
436 libvirt version number are:
440 <dt><code>major
</code></dt>
441 <dd>incremented by
1 for the first release of the year (the
442 Jan
15th release)
</dd>
443 <dt><code>minor
</code></dt>
444 <dd>reset to
0 with every major increment, otherwise incremented by
1
445 for each monthly release from git master
</dd>
446 <dt><code>micro
</code></dt>
447 <dd>always
0 for releases from git master, incremented by
1
448 for each stable maintenance release
</dd>
452 Prior to
2.0.0, the major/minor numbers were incremented
453 fairly arbitrarily, and maintenance releases appended a
454 fourth digit. The language bindings will aim to use the
455 same version number as the most recent core library API
456 they support. The other modules have their own distinct
457 release numbering sequence, though they generally aim
458 to follow the above rules for incrementing major/minor/micro
462 <h2><a id=
"maintenance">Maintenance releases
</a></h2>
464 In the git repository are several stable maintenance branches
465 for the core library, matching the
466 pattern
<code>v
<i>major
</i>.
<i>minor
</i>-maint
</code>;
467 these branches are forked off the corresponding
468 <code>v
<i>major
</i>.
<i>minor
</i>.0</code> formal
469 release, and may have further releases of the
470 form
<code>v
<i>major
</i>.
<i>minor
</i>.
<i>micro
</i></code>.
471 These maintenance branches should only contain bug fixes, and no
472 new features, backported from the master branch, and are
473 supported as long as at least one downstream distribution
474 expresses interest in a given branch. These maintenance
475 branches are considered during CVE analysis. In contrast
476 to the primary releases which are made once a month, there
477 is no formal schedule for the maintenance releases, which
478 are made whenever there is a need to make available key
479 bugfixes to downstream consumers. The language bindings
480 and other modules generally do not provide stable branch
485 For more details about contents of maintenance releases, see
486 <a href=
"http://wiki.libvirt.org/page/Maintenance_Releases">the
490 <h2><a id=
"git">GIT source repository
</a></h2>
493 All modules maintained by the libvirt project have their primary
494 source available in the
<a href=
"https://libvirt.org/git/">project GIT server
</a>.
495 Each module can be cloned anonymously using:
499 git clone https://libvirt.org/git/[module name].git
</pre>
502 The
<code>git://
</code> protocol is also available if desired, but
503 <code>https://
</code> is encouraged, since it is more reliable when
504 faced with strict firewalls.
508 git clone git://libvirt.org/[module name].git
</pre>
511 In addition to this primary repository, there are the following read-only git
512 repositories which mirror the master one. Note that we currently do not
513 use the full set of features on these mirrors (e.g. pull requests on
514 GitHub, so please don't use them). All patch review and discussion only
515 occurs on the
<a href=
"contact.html">libvir-list
</a> mailing list. Also
516 note that some repositories listed below allow HTTP checkouts too.
520 <a href=
"https://github.com/libvirt/">https://github.com/libvirt/
</a>
521 <a href=
"https://gitlab.com/libvirt/libvirt">https://gitlab.com/libvirt/
</a></pre>