[ANN] project-m36-0.2

18 views
Skip to first unread message

A.M.

unread,
Sep 14, 2017, 6:19:44 PM9/14/17
to proje...@googlegroups.com
Hello List!

I am pleased to announce the release of Project:M36 0.2 which includes:

* a new simple client API with a monadic transaction manager
https://github.com/agentm/project-m36/blob/master/docs/simple_api.markdown
* complete hlint compliance
* the generics-based Tupleable typeclass which makes it easy to marshal
Haskell data types to-and-from the database
https://github.com/agentm/project-m36/blob/master/docs/tupleable.markdown
* timestamps attached to transactions to allow specific point-in-time travel
* autoMergeToHead, a variant of commit which attempts to merge and
commit to the latest head transaction to reduce incidents of
TransactionNotAHeadErrors
* interval data types
* transaction dirtiness detection which allows the client to determine
if an update expression actually changed the database state

In the next release, we hope to have lazy transactions as well as full
GHC 8.2.1 support (once distributed-process fully supports it).

Thanks to 3noch for his contributions and advice!

Cheers,
M

signature.asc

Elliot Cameron

unread,
Sep 19, 2017, 1:16:40 AM9/19/17
to A.M., proje...@googlegroups.com
Hey folks,

Hot on the heels of that release, I just put up a very draft version of a migration library for Project:M36. It's a backend for the simple, yet effective, Drifter package.

This currently requires the latest HEAD of Project:M36.


Feedback is always welcome.

Elliot Cameron (3noch)


--
You received this message because you are subscribed to the Google Groups "project-m36" group.
To unsubscribe from this group and stop receiving emails from it, send an email to project-m36+unsubscribe@googlegroups.com.
To post to this group, send email to proje...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/project-m36/690f79b5-c394-e851-6a1d-16bc94fad8a0%40themactionfaction.com.
For more options, visit https://groups.google.com/d/optout.

A.M.

unread,
Sep 19, 2017, 11:06:36 AM9/19/17
to proje...@googlegroups.com
On 09/19/2017 01:16 AM, Elliot Cameron wrote:
> Hey folks,
>
> Hot on the heels of that release, I just put up a very draft version of
> a migration library for Project:M36. It's a backend for the simple, yet
> effective, Drifter package.
>
> This currently requires the latest HEAD of Project:M36.
>
> https://github.com/3noch/drifter-project-m36
> <https://github.com/3noch/drifter-project-m36>
>
> Feedback is always welcome.

Nice! I would like to have something like that built-in to Project:M36
in the future. Since we have a transaction graph, it should be possible
to extract a db "diff" between any two connected points in the graph.

How does drifter keep track of which changes it has applied?

Cheers,
M


signature.asc

Elliot Cameron

unread,
Sep 19, 2017, 11:54:43 AM9/19/17
to A.M., proje...@googlegroups.com
Drifter doesn't specify how, but the backends like mine usually just create a table (relation in this case) and keep a log of the changes that have been applied. You can declare dependencies between changes to from a "graph" of changes. Drifter figures out how to run that graph in order so that changes get applied in the right order. Any changes that have already been applied get skipped.


Cheers,
M


--
You received this message because you are subscribed to the Google Groups "project-m36" group.
To unsubscribe from this group and stop receiving emails from it, send an email to project-m36+unsubscribe@googlegroups.com.
To post to this group, send email to proje...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages