Hey everyone!
Agree that this is a great awesome idea that hopefully will save future me from hours of frustration :)
Also have the beginnings of a concept here (me and mark took the name from this project): https://github.com/freekh/adept
As you can see in the README there is an outline to commands which I want to implement. I have started on a prototype as well, but it can only do init and add (there is some error handling that is missing as well). I hope to have the 'describe' by today (time permitting).
I see I have slightly different basis for the metadata since I am storing it in an embedded DB.
I started out with the idea of using git and text files as well, but realized that I ended up needing too much database functionality to not use a database. I want fast searching, data corruption checks and a way to update from a version of metadata to another (when we update adept).
With idempotency I think that versioning (updating repository and merging local changes) should be not demand too much effort.
Feedback is welcome :)
On Thu, Feb 21, 2013 at 10:59 AM, Fredrik Ekholdt <fre...@gmail.com> wrote:Hey everyone!
Agree that this is a great awesome idea that hopefully will save future me from hours of frustration :)
Also have the beginnings of a concept here (me and mark took the name from this project): https://github.com/freekh/adept
As you can see in the README there is an outline to commands which I want to implement. I have started on a prototype as well, but it can only do init and add (there is some error handling that is missing as well). I hope to have the 'describe' by today (time permitting).
I see I have slightly different basis for the metadata since I am storing it in an embedded DB.
I started out with the idea of using git and text files as well, but realized that I ended up needing too much database functionality to not use a database. I want fast searching, data corruption checks and a way to update from a version of metadata to another (when we update adept).
With idempotency I think that versioning (updating repository and merging local changes) should be not demand too much effort.
Feedback is welcome :)Thanks a good point about using an embedded db. What parts are you working on so I know what to shy away from to avoid overlap?
On Feb 21, 2013, at 5:19 PM, Doug Tangren wrote:
On Thu, Feb 21, 2013 at 10:59 AM, Fredrik Ekholdt <fre...@gmail.com> wrote:
Hey everyone!
Agree that this is a great awesome idea that hopefully will save future me from hours of frustration :)
Also have the beginnings of a concept here (me and mark took the name from this project): https://github.com/freekh/adept
As you can see in the README there is an outline to commands which I want to implement. I have started on a prototype as well, but it can only do init and add (there is some error handling that is missing as well). I hope to have the 'describe' by today (time permitting).
I see I have slightly different basis for the metadata since I am storing it in an embedded DB.
I started out with the idea of using git and text files as well, but realized that I ended up needing too much database functionality to not use a database. I want fast searching, data corruption checks and a way to update from a version of metadata to another (when we update adept).
With idempotency I think that versioning (updating repository and merging local changes) should be not demand too much effort.
Feedback is welcome :)Thanks a good point about using an embedded db. What parts are you working on so I know what to shy away from to avoid overlap?Hmm.. I am still trying to get my head around this and as such I am all over the place :/Currently I just want to make the "describe"/"read" method work, which should be easy enough. Then I should continue to see if versioning really work, then I have to test versioning together with pushing and pulling. I think the work on pushing and pulling with a DB is a week at the very least in the future, so you would not overlap if you where to work on a prototype related to that! :)
Indexing for quick retrieval is the reason to use a database or sstable. Don't knock the size of this metadata, maven central will not fit in memory...,
On Thu, Feb 21, 2013 at 12:04 PM, Fredrik Ekholdt <fre...@gmail.com> wrote:On Feb 21, 2013, at 5:19 PM, Doug Tangren wrote:
On Thu, Feb 21, 2013 at 10:59 AM, Fredrik Ekholdt <fre...@gmail.com> wrote:
Hey everyone!
Agree that this is a great awesome idea that hopefully will save future me from hours of frustration :)
Also have the beginnings of a concept here (me and mark took the name from this project): https://github.com/freekh/adept
As you can see in the README there is an outline to commands which I want to implement. I have started on a prototype as well, but it can only do init and add (there is some error handling that is missing as well). I hope to have the 'describe' by today (time permitting).
I see I have slightly different basis for the metadata since I am storing it in an embedded DB.
I started out with the idea of using git and text files as well, but realized that I ended up needing too much database functionality to not use a database. I want fast searching, data corruption checks and a way to update from a version of metadata to another (when we update adept).
With idempotency I think that versioning (updating repository and merging local changes) should be not demand too much effort.
Feedback is welcome :)Thanks a good point about using an embedded db. What parts are you working on so I know what to shy away from to avoid overlap?Hmm.. I am still trying to get my head around this and as such I am all over the place :/Currently I just want to make the "describe"/"read" method work, which should be easy enough. Then I should continue to see if versioning really work, then I have to test versioning together with pushing and pulling. I think the work on pushing and pulling with a DB is a week at the very least in the future, so you would not overlap if you where to work on a prototype related to that! :)Question. I noticed that you (and mark ) work for typesafe and that the organization was typesafe namespaced ( https://github.com/freekh/adept/blob/master/client/build.sbt#L5 )Is this going to be a "typesafe" project. My main interested was producing something from the community. If typesafe is paying people to work on it I'm a little less motivated.
I'm interested to hear some typesafe responses to Doug's question--although in the end I'm ok with it being namespaced in typesafe, largely because I think it would gain support faster, and that's sort of critical for this sort of thing to succeed. From the nescala presentation, it sounded like Mark was "never" going to work on this. But he didn't mention Fredrik, who appears to have already put some effort into it. :P
And back to the other stuff. Speaking of embedded databases... have you guys considered using an embedded graph database like neo4j? Would be a nice fit being able to handle dependencies via directed relationships. Fetching a whole subgraph could be just a single query instead of traversing over the children via SQL--maybe SLICK abstracts this out into lazy table queries?
START project=node:Projects("organization:com.typesafe AND name:sbt")
MATCH project-[:dependsOn*]->dependencies
RETURN collect(distinct dependencies)Which would give you a collection of the dependencies nodes and their properties (of the whole dependency subgraph). You could even build in some resolution rules to that sort of query if you wanted.
Perhaps a premature optimization, but it fits the graph db use case extremely well. :P Just throwing the idea out there. Would give me an excuse to do a better job supporting embedded neo from my library (currently it's targeted for just the REST server).Also, I noticed Fredrik mentioned code searching on the adept readme--how were you thinking of implementing that?
On Thursday, 21 February 2013 20:04:40 UTC+1, Wes Freeman wrote:I'm interested to hear some typesafe responses to Doug's question--although in the end I'm ok with it being namespaced in typesafe, largely because I think it would gain support faster, and that's sort of critical for this sort of thing to succeed. From the nescala presentation, it sounded like Mark was "never" going to work on this. But he didn't mention Fredrik, who appears to have already put some effort into it. :P
And back to the other stuff. Speaking of embedded databases... have you guys considered using an embedded graph database like neo4j? Would be a nice fit being able to handle dependencies via directed relationships. Fetching a whole subgraph could be just a single query instead of traversing over the children via SQL--maybe SLICK abstracts this out into lazy table queries?AFAIK, Slick doesn't support Neo4j yet. Nothing restricts us to use Slick though. I haven't used Neo4j for than a tutorial, since I do not really know I am not sure if it is a better fit.
On Thu, 21 Feb 2013 16:59:10 +0100
Fredrik Ekholdt <fre...@gmail.com> wrote:
> Hey everyone!
> Agree that this is a great awesome idea that hopefully will save future me from hours of frustration :)
>
> Also have the beginnings of a concept here (me and mark took the name from this project): https://github.com/freekh/adept
> As you can see in the README there is an outline to commands which I want to implement. I have started on a prototype as well, but it can only do init and add (there is some error handling that is missing as well). I hope to have the 'describe' by today (time permitting).
>
> I see I have slightly different basis for the metadata since I am storing it in an embedded DB.
> I started out with the idea of using git and text files as well, but realized that I ended up needing too much database functionality to not use a database. I want fast searching, data corruption checks and a way to update from a version of metadata to another (when we update adept).
Can you elaborate? For example, what are the advantages/disadvantages of the native representation being a database vs. a locally generated index, for example? How are the database contents transported between machines?