CVS write access is limited to maintainer(s) of specific DLL file.
All source changes will have to be sent to the maintainer(s) of the
the dll. (see below) They will add your update to the source tree
unless they feel it will cause more harm than good. (in which case
the maintainers and the person that has sent in the changes will
have to settle their differences). Note: An official source
change should be submitted to all maintainers of the dll/directory.
The email should contain:
- changed source file(s)
- diffs with source file(s) & version(s) of the original source file(s)
- description of the change(s) you made and their purpose
It's of course important that the developers of each module communicate with each
other to make sure nobody is reinventing the wheel. Also, it's very important to
do regular updates/checkouts from the CVS archive and send in your changes as soon
as you feel they're ready (don't wait for weeks: it's not the maintainer's job to
add changes based on very old source files!).
Maintainer's e-mail addresses are available from the
";
LocLink("Contact.phtml", "Contact");
echo " page.
If nobody is listed as a maintainer, that means that there's no active development
for that part of the project! These are the most critical sections, and you would
do the best if you can take over some of those parts. If you want to become a maintainer
of a certain DLL you should contact a member of the
";
LocLink("ProjectTeams.phtml#MAD", "MAD Team");
echo ".
If there are no problems (like too many wanting to get
write access to a certain dll/directory), the request will be granted and an
update will be posted to the general and the WAI mailinglist.
MAD Team member's e-mail addresses are available from the
";
LocLink("Contact.phtml", "Contact");
echo " page.";
TekstEnd();
/*
* Select the odin32 database.
* Select all groups under the WAI team.
* Loop thru them displaying standard information.
*
*/
require "Odin32DBConnect.php3";
$sql="SELECT g.refcode AS refcode,
g.name AS name,
g.team AS team,
g.description AS description,
g.notes AS notes
FROM team t,
tgroup g
WHERE t.name = 'WAI' AND
t.refcode = g.team AND
g.refcode <> 3999
ORDER BY g.name";
$result = @mysql_query($sql,$db);
if (@mysql_num_rows($result) < 1)
{
TekstBeg();
echo "Sorry, but there are no group information available.";
TekstEnd();
}
else
{
while ($group = @mysql_fetch_array($result))
{
Odin32DBNaslov($group["name"]." Group", $group["name"]);
TekstBeg();
echo $group["description"];
TekstEnd();
PodNaslov("Code maintainers:");
$sql = sprintf("SELECT a.name AS name,
a.email AS email
FROM author a,
tgroupmember m
WHERE m.tgroup = %d AND
m.codemaintainer = 'Y' AND
a.refcode = m.author ",
$group["refcode"]);
$result2 = mysql_query($sql, $db);
TekstBeg();
printf("
\n");
if (@mysql_num_rows($result2) > 0)
{
while ($member = @mysql_fetch_array($result2))
printf(" - %s\n",
$member["email"],
$group["name"],
$member["name"]
);
}
else
printf("
- NOBODY ");
printf("
\n");
TekstEnd();
PodNaslov("Group members:");
$sql = sprintf("SELECT a.name AS name
FROM author a,
tgroupmember m
WHERE m.tgroup = %d AND
m.codemaintainer = 'N' AND
a.refcode = m.author ",
$group["refcode"]);
$result2 = mysql_query($sql, $db);
TekstBeg();
printf("\n");
if (@mysql_num_rows($result2) > 0)
{
while ($member = @mysql_fetch_array($result2))
printf(" - %s\n", $member["name"]);
}
else
printf("
- NOBODY ");
printf("
\n");
TekstEnd();
PodNaslov("Implementation Status:");
$sql = sprintf("SELECT UPPER(d.name) AS name,
d.refcode AS refcode
FROM dll d,
tgroupdll t
WHERE t.tgroup = %d AND
t.dll = d.refcode
ORDER BY name",
$group["refcode"]);
$result2 = mysql_query($sql, $db);
TekstBeg();
if (@mysql_num_rows($result2) > 0)
{
while ($dll = @mysql_fetch_array($result2))
Odin32DBCompletionBarDll($dll["refcode"], $dll["name"], $db);
}
else
printf(" Huh! NO DLLs? ");
TekstEnd();
PodNaslov("Notes:");
TekstBeg();
echo "";
echo $group["notes"];
echo "
";
TekstEnd();
TekstBeg();
$sql = sprintf("SELECT UPPER(d.name) AS name,
refcode
FROM dll d,
tgroupdll t
WHERE t.tgroup = %d AND
t.dll = d.refcode
ORDER BY name",
$group["refcode"]);
$result2 = mysql_query($sql, $db);
TekstBeg();
if (@mysql_num_rows($result2) > 0)
{
while ($dll = @mysql_fetch_array($result2))
{
printf(" To Access the %s part of the Odin32 API database, click ", $dll["name"]);
$lnk = sprintf("Odin32DB.phtml?dllrefcode=%d", $dll["refcode"]);
LocLink($lnk, "here");
printf(".
\n");
}
}
else
printf(" Huh! NO DLLs? ");
TekstEnd();
}
}
/*
* Summary
*/
Odin32DBNaslov("Summary", "summary");
TekstBeg();
echo "
For DLLs with no active maintaner, you can contact maintaners of
the root, include and library directories since they have write access
to all parts of the code.
";
TekstEnd();
PodNaslov("Root, include and library code maintainers:");
TekstBeg();
echo "
- Sander van Leeuwen
- Knut St. Osmundsen
- Patrick Haller
- Achim Hasenmueller
";
TekstEnd();
TekstBeg();
echo "
Lot of work stil has to be done, and it's expected
that some unassigned members of WAI Team will
jump in.
";
TekstEnd();
PodNaslov("Unassigned members:");
$sql = "SELECT a.name AS name
FROM author a,
tgroupmember m
WHERE m.tgroup = 3999 AND
a.refcode = m.author ";
$result = mysql_query($sql, $db);
TekstBeg();
printf("\n");
if (@mysql_num_rows($result) > 0)
{
while ($member = @mysql_fetch_array($result))
printf(" - %s\n", $member["name"]);
}
else
printf("
- No unassigned members.");
echo "
For better overview of WAI Team status as a whole, grouped
status bars are presented below. Only those Odin32 API functions
that are actually implemented (work as their Win32 counterparts)
are counted.
";
TekstEnd();
PodNaslov("Implementation Status All Dlls:");
$sql = "SELECT name,
refcode
FROM dll
ORDER BY name";
$result = mysql_query($sql, $db);
TekstBeg();
if (@mysql_num_rows($result) > 0)
{
while ($dll = @mysql_fetch_array($result))
Odin32DBCompletionBarDll($dll["refcode"], $dll["name"], $db);
Odin32DBCompletionBarDll(-1, "Total", $db);
}
else
printf(" NOBODY ");
TekstEnd();
PodNaslov("Notes:");
TekstBeg();
echo "
- No application needs all API functions and most
smaller programs use only a limited set of APIs,
for example multimedia, Direct Draw or Winsock.
- Some programs may work even if the entire
set of API it would use is not implemented
(printing or OLE, for example), if appropriate
stub functions are provided - the application
would think it has those APIs available, but
nothing (or failure) will happen only if the user
tries to actually use the feature that requires them.
";
TekstEnd();
TekstBeg();
echo "
To access root of Odin32 API on-line database, click
";
LocLink("Odin32DB.phtml", "here");
echo ".";
TekstEnd();
Odin32DBNaslov("Joining the WAI Team", "joinwai");
TekstBeg();
echo "
WAI Team has a mailing list where team members discuss and coordinate. You can
join the list by filling the form provided below.
";
TekstEnd();
require $sMainDir."07-ColumnTwoFooter.php3";
require $sMainDir."08-News.php3";
require $sMainDir."09-ContentsTitle.php3";
Odin32DBWriteContents();
Odin32DBStateLegend($db);
require $sMainDir."10-EndOfContent.php3";
require $sMainDir."11-NetlabsContact.php3";
$Kada=date ("j M Y", filemtime(__file__));
require $sMainDir."12-OdinBanner.php3";
require $sMainDir."13-Closing.php3";
/* Profiling */
Odin32DBTimerStop($sPageTimer);
/* Profiling */
?>