devicemap-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Reza Naghibi <>
Subject Re: 2.0 is now alpha
Date Tue, 04 Aug 2015 12:23:22 GMT
> Are you planning some docs, or is that on the wiki already?

The best way to answer this is to explain what the reference client is and
what real clients are.

The reference client basically exists to validate, debug, and build domains
and provide a guide to how a real client should be written. This client
isnt really meant to be used directly by users. Its also meant to be
written very cleanly (hopefully) and make minimal use of Java idioms and
patterns. This is why I avoided maven and most 3rd party libs.

So the reference client is likely to only be used on the command line.
There is a readme and a -h switch which goes over the params. There is also
the very detailed specification on the wiki which goes over what the client
does in fine detail.

Outside of this, I dont see any other usecase of the reference client...
Let me know if there is a usecase im missing.

Real clients are meant to be used by the users and should provide detailed
instructions on how to integrate with it and use it. Its upto the client to
define their own API. The specification defines what result should be
returned for a given input, the client is free to figure out how best to
turn that into an API. It would be very challenging to try and define an
standard API across so many languages. So until we actually have these real
clients, there isnt a way to integrate 2.0 into your software (unless of
course you hack the reference client into your Java codebase).

As an example, it would be very trivial to port the reference client to the
official Java client. Add maven, restructure the classes, logging, etc, and
then release it like we did in 1.0. Also provide documentation and examples
on how to use it in your project. So this would be where you would see more
detailed documentation on how to use a given client in your project.

Real clients should be written for performance, so I would expect that the
codebase would evolve to become more and more performant. The reference
client will always favor readability and being vanilla over performance.
Had we done a single Java client, over time this client would drift deeper
into the performance and Java realm and it would be very challenging for
new clients to be created based on existing correct clients.

Let me know your thoughts...

On Tue, Aug 4, 2015 at 5:44 AM, Bertrand Delacretaz <>

> Hi,
> On Mon, Aug 3, 2015 at 6:13 PM, Reza Naghibi <> wrote:
> > I converted the 1.0 xml device data to 2.0 json. So given we now have a
> > reference client, reference domains, our device domain in 2.0, and
> > everything came together as designed, I think thats enough to say we have
> > an alpha release (pre beta)....
> Cool! As others have said it's not an Apache release until the PMC
> votes on it etc. but I see what you mean.
> IMO the compiled
> devicemap/clients/2.0/reference/devicemap-reference-2.0.jar shouldn't
> be checked in, the goal is to release source code only.
> Are you planning some docs, or is that on the wiki already? I have to
> admit that the whole thing is somewhat mysterious to me (in a cool
> way) by just looking at the code ;-)
> -Bertrand

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message