[PATCH 05/17] docs: Convert 'strategy' to rST

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx>
---
 docs/meson.build      |   2 +-
 docs/strategy.html.in | 133 ------------------------------------------
 docs/strategy.rst     | 105 +++++++++++++++++++++++++++++++++
 3 files changed, 106 insertions(+), 134 deletions(-)
 delete mode 100644 docs/strategy.html.in
 create mode 100644 docs/strategy.rst

diff --git a/docs/meson.build b/docs/meson.build
index afed104014..a719c268f6 100644
--- a/docs/meson.build
+++ b/docs/meson.build
@@ -66,7 +66,6 @@ docs_html_in_files = [
   'remote',
   'securityprocess',
   'storage',
-  'strategy',
   'support',
   'testapi',
   'testsuites',
@@ -110,6 +109,7 @@ docs_rst_files = [
   'pci-addresses',
   'platforms',
   'programming-languages',
+  'strategy',
   'styleguide',
   'submitting-patches',
 ]
diff --git a/docs/strategy.html.in b/docs/strategy.html.in
deleted file mode 100644
index 70b706b6de..0000000000
--- a/docs/strategy.html.in
+++ /dev/null
@@ -1,133 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml";>
-  <body>
-    <h1>Project Strategy</h1>
-
-    <p>
-      This document attempts to outline the libvirt project strategy for
-      the near future. Think of this as a high level vision or to-do list
-      setting the direction for the project and its developers to take.
-    </p>
-
-    <h2>Language consolidation</h2>
-
-    <p>
-      At time of writing libvirt uses the following languages:
-    </p>
-
-    <dl>
-      <dt>C</dt>
-      <dd>The core libvirt library, daemons, and helper tools are all written
-        in the C language.</dd>
-      <dt>Python</dt>
-      <dd>Various supporting build/test scripts are written in Python, with
-        compatibility for Python 3.</dd>
-      <dt>Perl</dt>
-      <dd>Various supporting build/test scripts are written in Perl. It is
-        also used for many syntax-check inline rules</dd>
-      <dt>Shell</dt>
-      <dd>Shell is used for some simple build/test scripts. At runtime
-        libvirt avoids shell except when using SSH tunnels to a remote
-        host</dd>
-      <dt>XSLT</dt>
-      <dd>The website uses XSLT for its templating system. The API
-        documentation is also autogenerated from an XML description
-        using XSLT</dd>
-      <dt>HTML</dt>
-      <dd>The website documentation is all written in plain HTML. Some HTML
-        is also auto-generated for API documentation</dd>
-      <dt>Meson</dt>
-      <dd>The core build system uses the new Meson build system</dd>
-      <dt>make</dt>
-      <dd>The syntax-check uses make recipes</dd>
-      <dt>awk/sed</dt>
-      <dd>A number of the syntax-check inline rules involve use of awk/sed
-        scripts</dd>
-      <dt>POD</dt>
-      <dd>The command line manual pages are typically written in Perl's POD
-        format, and converted to troff</dd>
-    </dl>
-
-    <p>
-      The wide range of languages used present a knowledge burden for
-      developers involved in libvirt, especially when there are multiple
-      languages all used in the same problem spaces. This is most notable
-      in the build system which uses a combination of Meson, shell, awk,
-      sed, Perl and Python, with debugging requiring
-      understanding of the interactions between many languages. The
-      popularity of Perl has declined, while Python has become
-      more popular. This directly influences the amount and quality of
-      contributions that can be expected for programs written in the
-      respective languages.
-    </p>
-    <p>
-      The C language has served libvirt well over the years, but its age shows
-      giving rise to limitations which negatively impact the project in terms
-      of code quality, reliability, and efficiency of development. Most notably
-      its lack of memory safety means that many code bugs become trivially
-      exploitable security flaws or denial of service. The lack of a high
-      level portable runtime results in a lot of effort being spent to
-      ensure cross platform portability. The modern languages Rust and Go
-      provide viable options for low level systems programming, in a way that
-      is not practical with other common languages such as Python and Java.
-      There is thus a desire to make use of either Rust or Go, or a combination
-      of both, to incrementally replace existing use of C, and also for
-      greenfield development.
-    </p>
-    <p>
-      With this in mind the libvirt project has set a vision for language
-      usage in the future:
-    </p>
-
-    <dl>
-      <dt>C</dt>
-      <dd>Large parts of the core libvirt library, daemons, and helper tools
-        will continue to make use in the C language. Integration of other
-        languages will be an incremental, targeted process where they can
-        bring the greatest benefit.</dd>
-      <dt>Rust / Go</dt>
-      <dd>Parts of the core libvirt library, daemons and helper tools are to
-        leverage Rust or Go or both to replace C.</dd>
-      <dt>Meson</dt>
-      <dd>The core build system is to be written in Meson.</dd>
-      <dt>Python</dt>
-      <dd>Various supporting build/test scripts are written in Python 3
-        compatible mode only.</dd>
-      <dt>reStructuredText</dt>
-      <dd>The website and command man pages are to be written in RST, using
-        Sphinx as the engine to convert to end user formats like HTML, troff,
-        etc</dd>
-    </dl>
-
-    <p>
-      Some notable points from the above. Whether the core library / daemons
-      will use Rust or Go internally is still to be decided based on more
-      detailed evaluation to identify the best fit. The need to link and embed
-      this functionality in other processes has complex interactions both at a
-      technical and non-technical level. For standalone helper tools, either
-      language is viable, but there are fewer concerns around interactions with
-      other in-process code from 3rd parties. Thus a different decision may be
-      made for daemons/libraries vs tools. Any rewrite proposed for existing
-      functionality will have to weigh up the benefits of the new code,
-      against the risk of introducing regressions with respect to the previous
-      code.
-    </p>
-
-    <p>
-      Using the RST format for documentation allows for the use of XSLT to be
-      eliminated from the build process. RST and the Sphinx toolkit are widely
-      used, as seen by the huge repository of content on
-      <a href="https://readthedocs.org/";>Read The Docs</a>.
-      The ability to embed raw HTML in the RST docs will greatly facilitate its
-      adoption, avoiding the need for a big bang conversion of existing content.
-      Given the desire to eliminate Perl usage, replacing the use of POD
-      documentation for manual pages is an obvious followup task. RST is the
-      obvious choice to achieve alignment with the website, allowing the man
-      pages to be easily published online with other docs. It is further
-      anticipated that the current API docs generator which uses XSLT to
-      convert the XML API description would be converted to something which
-      generates RST using Python instead of XSLT.
-    </p>
-  </body>
-</html>
diff --git a/docs/strategy.rst b/docs/strategy.rst
new file mode 100644
index 0000000000..093764b645
--- /dev/null
+++ b/docs/strategy.rst
@@ -0,0 +1,105 @@
+================
+Project Strategy
+================
+
+This document attempts to outline the libvirt project strategy for the near
+future. Think of this as a high level vision or to-do list setting the direction
+for the project and its developers to take.
+
+Language consolidation
+----------------------
+
+At time of writing libvirt uses the following languages:
+
+C
+   The core libvirt library, daemons, and helper tools are all written in the C
+   language.
+Python
+   Various supporting build/test scripts are written in Python, with
+   compatibility for Python 3.
+Perl
+   Various supporting build/test scripts are written in Perl. It is also used
+   for many syntax-check inline rules
+Shell
+   Shell is used for some simple build/test scripts. At runtime libvirt avoids
+   shell except when using SSH tunnels to a remote host
+XSLT
+   The website uses XSLT for its templating system. The API documentation is
+   also autogenerated from an XML description using XSLT
+HTML
+   The website documentation is all written in plain HTML. Some HTML is also
+   auto-generated for API documentation
+Meson
+   The core build system uses the new Meson build system
+make
+   The syntax-check uses make recipes
+awk/sed
+   A number of the syntax-check inline rules involve use of awk/sed scripts
+POD
+   The command line manual pages are typically written in Perl's POD format, and
+   converted to troff
+
+The wide range of languages used present a knowledge burden for developers
+involved in libvirt, especially when there are multiple languages all used in
+the same problem spaces. This is most notable in the build system which uses a
+combination of Meson, shell, awk, sed, Perl and Python, with debugging requiring
+understanding of the interactions between many languages. The popularity of Perl
+has declined, while Python has become more popular. This directly influences the
+amount and quality of contributions that can be expected for programs written in
+the respective languages.
+
+The C language has served libvirt well over the years, but its age shows giving
+rise to limitations which negatively impact the project in terms of code
+quality, reliability, and efficiency of development. Most notably its lack of
+memory safety means that many code bugs become trivially exploitable security
+flaws or denial of service. The lack of a high level portable runtime results in
+a lot of effort being spent to ensure cross platform portability. The modern
+languages Rust and Go provide viable options for low level systems programming,
+in a way that is not practical with other common languages such as Python and
+Java. There is thus a desire to make use of either Rust or Go, or a combination
+of both, to incrementally replace existing use of C, and also for greenfield
+development.
+
+With this in mind the libvirt project has set a vision for language usage in the
+future:
+
+C
+   Large parts of the core libvirt library, daemons, and helper tools will
+   continue to make use in the C language. Integration of other languages will
+   be an incremental, targeted process where they can bring the greatest
+   benefit.
+Rust / Go
+   Parts of the core libvirt library, daemons and helper tools are to leverage
+   Rust or Go or both to replace C.
+Meson
+   The core build system is to be written in Meson.
+Python
+   Various supporting build/test scripts are written in Python 3 compatible mode
+   only.
+reStructuredText
+   The website and command man pages are to be written in RST, using Sphinx as
+   the engine to convert to end user formats like HTML, troff, etc
+
+Some notable points from the above. Whether the core library / daemons will use
+Rust or Go internally is still to be decided based on more detailed evaluation
+to identify the best fit. The need to link and embed this functionality in other
+processes has complex interactions both at a technical and non-technical level.
+For standalone helper tools, either language is viable, but there are fewer
+concerns around interactions with other in-process code from 3rd parties. Thus a
+different decision may be made for daemons/libraries vs tools. Any rewrite
+proposed for existing functionality will have to weigh up the benefits of the
+new code, against the risk of introducing regressions with respect to the
+previous code.
+
+Using the RST format for documentation allows for the use of XSLT to be
+eliminated from the build process. RST and the Sphinx toolkit are widely used,
+as seen by the huge repository of content on `Read The
+Docs <https://readthedocs.org/>`__. The ability to embed raw HTML in the RST
+docs will greatly facilitate its adoption, avoiding the need for a big bang
+conversion of existing content. Given the desire to eliminate Perl usage,
+replacing the use of POD documentation for manual pages is an obvious followup
+task. RST is the obvious choice to achieve alignment with the website, allowing
+the man pages to be easily published online with other docs. It is further
+anticipated that the current API docs generator which uses XSLT to convert the
+XML API description would be converted to something which generates RST using
+Python instead of XSLT.
-- 
2.35.1




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux