Software Version Control (SVC)

Overview

About the project

This documentation is, as SVC is as well, a quick hack. It is open for ideas and discussion. This XML language is a data format in which information on a software package is defined. It stores information on three aspects of software development: release versions, bugs, and specification fullfillment.

On version control

Maybe version management is more appropriate. In SVC you can specifacally tell which version of a program, module, Java class/package or even complete projects has which functionality. An example:

<softpkg>
  <name>FunctionConversion</name>
  <implementation>
    <!-- a distro need not be a distribution, but can also
         reflect a private developers version -->
    <distro version="0.2">
      <release-date>19991214</release-date>
      <!-- the diff section lists the differences with the previous version -->
      <diffs>
        <!-- this defines a function called smooth() -->
        <func name="smooth"/>
      </diffs>
    </distro> 
    <distro version="0.1">
      <release-date>19991208</release-date>
      <diffs>
        <func name="new"/>
        <func name="abs">
          <!-- Note that child elements of desc(ription) are supposed to be
	       passed on by SVC software or XSLT stylesheets. Thus, 
	       within the desc element you can use XHTML or MathML.
	       (Which is very cool IMHO.) This also holds for other
	       elements like abstract and remark (see DTD). -->
          <desc>Does the following conversion:
            <!-- should use MathML here, but had no Amaya available today -->	  
            <ul>f'(x) = abs(f(x))</ul>
            The function f is supposed to be <i>function_first</i> as set
            with setFunctionOne.
          </desc>
        </func>
      </diffs>
    </distro>
  </implementation>
</softpkg>    

It's a bit cryptic now, but full documentation will follow. But as a XML should be, i think it is rather straight forward.

Convert this SVC doc with the svc2html.xsl XSLT stylesheet to a HTML file to see the result. This stylesheet can be downloaded below.

On Specs fullfilment

Each SVC document can contain a quick summary of the specifications that this project must comply to:

<softpkg>
  <name>XML::SVC::DBStore</name>
  <abstract>This Perl module can be used to store SVC documents into MySQL 
    databases</abstract>
  <specification>
    <!-- note that the rule id's match a hypothetical specification.
         1.1 references to Chapter 1, Section 1, for example. You are
	 able make up usefull id's as it comes, i.e. you might want to
	 choose an id that would reference specification numbers, etc -->
    <rule id="1.1">This module must be able to accept SVC document.</rule>
    <rule id="1.2">This module must be able to parse and validate SVC docs.</rule>
    <rule id="2.1">It must be able to store XML data into a MySQL database.</rule>
    <!-- etc -->
  <specification>
  
  <implementation>
    <distro version="0.1.0">
      <diffs>
        <func name="parse">
	  <param name="parse" type="XML document">SVC document to parse</param>
	  <desc>
	</func>
	<spec id="1.1">
	  <!-- the next line states how much of the spec rule with id 1.1 is
	       if fullfiled. -->
	  <support mark="partly" percentage="45%">Internal representation is not
	     complete</support>
	  <!-- this element could beter have the name remark and will soon.
	       Reason: there is already an element remark used in func etc -->
	  <comment>highest priority</comment>
	</spec>
      </diffs>
    </disro>
  </implementation>
</softpkg>

On bug management

This part is very beta. See the DTD on current support. This will be major however. But I haven't gotten to it yet. Software will probably be written soon to have a webinterface for a bug SVC. Keep watching this page!

Element descriptions

To be done.

What to expect in the near future?

As I wrote earlier SVC is very young. But i think the DTD will *not* change a lot. Consider this DTD a beta version for SVC 1.0. A lot of tools will have to be developed. An example XSLT sheet is given to convert SVC to HTML or XSA.

  • a sheet to convert W3C's xmlspec documents to SVC (like the XSLT specs)
  • web interface for bug control
  • software? any ideas welcome

Dicussion List

Join our mailing list!
Enter your email address below,
then click the 'Join List' button:
Powered by ListBot

The list homepage can be found at http://svclist.listbot.com/.

Download

The software below can be downloaded under the GNU license. Info on this well known license can be found at http://www.gnu.org/.

The changelog and buglist are both autogenerated from this SVC file with the SVC 2 HTML stylesheets below.

Links

  • nothing yet

Last updated on January 15th 2000. Copyright © 1999 Egon Willighagen