Summary of meeting 20031119-1

Low Zhen Lin <[email protected]> Thu, 20 Nov 2003 18:38:24 +0800
Newsgroups gmane.linux.zynot.general,gmane.linux.zynot.devel
Message-ID <[email protected]>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Participants: Frantz Dhin (theDevil-), Andreas Pokorny (DieMumiee),
Low Zhen Lin (zhenlin)
Advisors: Geert Bevin (Bevin)
Place: #zynot-xeta

Items pending:
* Xeta security model, James Harlow (hythloday)
* XBuild tagging, Low Z. L.

Items partially completed:
* XBuild specification, Low Z. L.

Items announced:
* XBuild IDE, A. Pokorny

Due dates:
* January 2004, ComponentKit
* January 2004, XBuild specification
* January 2004, Local Xeta

Ideas brought up:

* Advanced slots mechanism.
Slot identifiers are currently defined as a single value. This is very
limiting.

The new slot identifiers will be an attribute list, listing which
attributes makes the package mutually exclusive. For example:

apache-1.3.29 : "1;"
apache-2.0.48 : "2;"
apache-2.0.49 : "2; prefix: /pkg/testing/apache-2.0.49;"

Another example:

gcc-2.9.5: "2; target: sparc-unknown-linux-gnu;"
gcc-3.2.3: "3.2; target: i686-pc-linux-gnu;"
gcc-3.2.3: "3.2; target: powerpc-unknown-linux-gnu;"
gcc-3.3: "3.3;"

Obviously, those with exactly matching attributes are mutually exclusive.

* XBuild tagging.
F. Dhin expressed a need to be able to mark XBuilds as being part of a
certain distribution version.

This concept is analogous to branching in a version control system. A
branch selector will cause the version control system to return the
file, with the latest changes that belongs in that branch.

Example:

gcc-3.2.3 is in of the zynot-i386-linux-e1.0, zynot-i386-linux-c1.4,
and trunk branches.
gcc-3.3 is in of the zynot-i386-linux-e2.0, zynot-i386-linux-c2.0, and
trunk branches.
gcc-3.4 is in of the trunk branch.

Users will have a branch selector in their Xeta configurations. A user
with the branch selector set to zynot-i386-linux-e1.0 will only see
gcc-3.2.3, a user with a branch selector set to zynot-i386-linux-e2.0
will see only gcc-3.3, and a user with a branch selector set to trunk
will see gcc-3.2.3, gcc-3.3 and gcc-3.4.

Note that this mechanism does not replace the stability level system -
it merely complements it.

* Visualisations for level attributes in XBuilds

http://jupiter.zynot.org/~zllow/XBuilds/Visualisations.png

That diagram shows how to visualise the various level attributes of an
XBuild. It can be taken as a recommendation for how to visually
represent, in a GUI, something like 'Stability level: 30%, your
treshold is 75%'.

I also inadvertently created an abstract for an XBuild trust model.
The model is based on cryptographically signed votes for each XBuild.

* XBuild trust model.
Each XBuild is associated with a votes file. The votes file will
contain records, with these fields: key ID, vote, salt, cryptographic
signature for vote and salt, crytographic signature for XBuild.

A user-defined policy will then determine the trustability score of an
XBuild. This score goes in two directions: -infinity: trusted to be
bad, 0, not trusted to be good or bad, +infinity, trusted to be good.

Votes that don't validate (wrong signature) are ignored by default, a
user may choose to terminate with a fatal error instead.

The user defines a ruleset that gives each vote a certain score
modifier, based on criteria like:

Whose key was used to sign the vote.
Whether the vote indicates good or bad.
How many votes have qualified in this category.

An explanation of the report described in the picture.

First, the votes:

3 votes for good from core developers.
7 votes for good from developers.
1 vote for good from a trusted user.
13 votes for good from an unclassifed person.
1 vote for bad from an unclassified person.

The ruleset used to generate the score:
#1 +3 for a vote for good from a core developer.
#2 +2 for a vote for good from a developer, maximum +6 from this category.
#3 +2 for a vote for good from a trusted user, minimum +6 from this
category.
#4 +1 for a vote for good from an unclassified person, maximum 10% of
the total score.
#5 -1 for a vote for bad from an unclassified person.

Also, there are bonuses that can be awarded:
#6 +2 for >75% signed votes for good.
#7 +2 for >75% unsigned votes for good, from stats.zynot.org.

So, the raw score, before limits are applied:

#1 +9
#2 +14
#3 +2
#4 +13
#5 -1
#6 +2
#7 +2

After applying hard limits:

#1 +9
#2 +6
#3 +0
#4 (13)
#5 -1
#6 +2
#7 +2

Now, a quick walkthrough on how to compute soft limits. The
hard-limited scores are summed up, producing score h. The total limit
for soft limits is fraction s. Score h is then treated as (100% - s)
of the total score. If the prelimited score is greater than the
maximum, its value becomes the maximum.

So:

h = 18
s = 10%
#4/(18 + 10%) = 13/20 (85%)
85% > 10%, #4 = 10%.

Final scores:

#1 +9
#2 +6
#3 +0
#4 +2 (10%)
#5 -1
#6 +2
#7 +2

Various other decisions

* XML parser.
libxml2, from xmlsoft.org, of the GNOME Project, will be used, as it
has been shown to be the fastest XML parser, both using DOM and SAX,
as well as its own native interface.

libxml2 is a C library. A C++ wrapper is likely to cause some
slowdowns. XML documents should only be used at the input and output
stages.

* XBuild repository format.
XML XBuilds will be used as the transport language. Developers can
choose to either modify and write new XBuilds directly into a
database, or as XML files manually imported into the database.

Full logs will be posted to jupiter upon request.

- -- Low Zhen Lin.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQE/vJmfv+6a/MPcjnERAp4oAJ9oC3eapa4vaEaHCsGjdnE5o3/EugCdGLv0
jRTNxGG/MF6p+IIO7LtmRnc=
=hTnV
-----END PGP SIGNATURE-----