On Sunday 05 Jun 2011 03:29:42 Thomas Bruderer wrote:
> I try (again) to update my .NET FCP2 library to the current state of 
> development.
> 
> I do not even expect that a rare Message is documented correctly, but 
> something as essential as "PersistentGet" should be at least in a usable 
> state, shouldnt it?

IMHO PersistentGet is a "rare message". That is, most clients don't use 
persistent requests.
> 
> A protocol should rarely change, especially a client protocol. But its 
> in constant change and some of the messages even have dynamic parameters 
> of course completley undocumented!
> 
> If FCP shows anything of the development of the rest of the core, I am 
> really happy I never looked at that code in deep!
> 
> Anyway from the documentation:
> 
> PersistentGet as an example Lists 3 Arguments which are not sent by the 
> protocol anymore:
> 
> /FileName/, /TempFilename/, /ClientToken/, not that any of these 
> parameters are ever described, but even the message in the wiki is still 
> the same since April 2010. And it doesnt help that you refer to the 
> source code, source code is NO DOCUMENTATION! its really desastrous that 
> you expose complete datastructures directly into the protocol, it makes 
> it MUCH too easy to change the FCP, and it looks like there are a lot of 
> people changing these strucutres constantly.

ClientToken is still valid but it is only added if there is a ClientToken.
Filename and TempFilename are only added if the download is to disk (and not if 
it is to temp space).
> 
> In the meanwhile there are obviously 5 new undocumented fields in it....
> 
> /Started/, /Persistence/, /MaxSize/, /Identifier/, /Binary Blob/: most 
> of these are now documented at least in the Call, and the removal of the 
> ClientToken is certainly a good idea HOWEVER!!! ITS NOT DOCUMENTED!...

Sorry about Persistence, we renamed PersistenceType to Persistence ages ago.
> 
> In the ClientGet-Documentation there is still the field "ClientToken" 
> described as Returned in PersistentGet 
> <http://new-wiki.freenetproject.org/FCPv2/PersistentGet>, a hint to the 
> client, so the client doesn't need to maintain its own state. [FIXME: 
> how does this differ from Identifier?] ...
> 
> You change the protocol permanently but have not even the time to send a 
> message back, OH I am sorry, I do not understand that parameter, maybe 
> its out of date?

The ClientToken is a convenience feature so that an application can associate 
an arbitrary string with a download. It can use this to store its own state 
e.g. what it wants to do with the download when it's finished. It is optional.
> 
> There needs to be a versioning of the protocol, its impossible to keep 
> track of all the source changes you do, and you should not expose 
> datastructures directly to the client interface, this is a very poor 
> design and makes impossible to support FCP2. This is not FCP2 this is at 
> least FCP2.0.174

Your library should be capable of ignoring any fields it doesn't recognise. 
Much of the point of using a text-based protocol is it's easy to extend. We 
don't eliminate existing fields without a very good reason however.
> 
> There need to be a review process, if you change the protocol - there 
> must be a reason for that and not just conveniance, and the reason needs 
> documentation. If you change anything in the FCP it should get a new 
> protocol number and any change needs to be documented. If you do not 
> invest 10 - 20% of development time for documentation, you do something 
> wrong!

I have no idea where you get the idea that PersistentGet has changed 
dramatically from. AFAICS it has changed very little, certainly over the last 
year.
> 
> There is too much development going on and not enough planning 
> documenting,  hack something together, deploy and use all the users as 
> testers...
> 
> I won't get into general Project Planning - if there is one, but the FCP 
> is a reference for the outside, and it shows mainly incomeptence in a 
> great degree.
> The main page still links to the old wiki, the new wiki is not used at 
> all, there is not a single wiki-commit for the fcp in the last 30 days.
> 
> Regards,
> Thomas Bruderer, Apophis
> 
Okay if you're gonna be rude I'll look it up.
PersistentGet was last modified on Thursday October 22nd *2009*.

I agree the documentation is less than perfect. But PersistentGet is a fairly 
obscure feature, we hardly ever remove fields from FCP, and new fields are easy 
to ignore. So I really don't see a problem. Also I don't see that we are 
exposing internal structure here either.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20110607/3810d764/attachment.pgp>

Reply via email to