I agree that the BOINC API needs to have some sort of version testing
interface. Just using the Client Version Number and a lookup table outside
the API interface is doable now, but there would be some heavy lifting to
build the table with information valid from V4 to V-Current.
General principals that should be followed for an API numbers interface
1. The Version Numbers API should return an xml structure.
-- PRINTABLE ASCII aka ASCII-6 should be the encoding standard (written as
ASCII-8, to the file system).
-- No oddball control chars permitted! Ding!
-- It should all be "strings" not binary encoded data, conserving memory is
not that hyperimportant here.
2. You should not have to use the Version Numbers API [at all] if there is
some wrapper-centric reason that makes it impossible.
-- The API versions xml structure should also be rendered as a static
readable file in each project's data or binary working area.
3. The Version Number API should itself have version numbers, and should
have expansive enough in its data structure to cope with Beta testing of
modifications of the API. Vaguely like ... { struct API_nums { {array
["Version", "API", "nums", hex_string(CRC32-mpeg())]; } } ...
4. As far as I can tell, it is too late to patch the API to add in some
mechanism for version numbers support. Having set aside nonsense values in
the API to return version numbers could be considered, but where or how the
version numbers would be returned is beyond my imagining. This is the Kuldge
solution, and it is not a pretty one.
-----Original Message-----
From: Raistmer the Sorcerer
Subject: [boinc_dev] Feature request: to add BOINC API versioning
Please implement BOINC API versioning in the way it done for BOINC client
releases.
This will allow to link scientific apps vs known API set with known features
and issues.
_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.