Elixir 0.8 Anyone ?

92 views
Skip to first unread message

tw5...@gmail.com

unread,
Sep 5, 2012, 4:13:00 AM9/5/12
to SQLElixir
Hello,

As part of the Camelot project http://www.python-camelot.com/,
and to migrate our existing applications from Elixir to Declarative,
I've reworked Elixir to be a layer on top of Declarative. Most
of the existing Elixir unit tests pass with the new code.

Elixir is still very useful in that way because it's much easier to
define relationships with Elixir than with pure Declarative. Also,
it's a good basis to implement custom usage patterns. (which
was the original purpose of Elixir)

This code is now part of the Camelot codebase, but it could be
useful for non gui projects as well.

So if somebody is prepared to take this code and release it
as Elixir 0.8 and do the project maintenance (packages,
documentation, etc), I'm willing to cooperate and split this code
out of Camelot.

If nobody steps in, the code will just remain where it is now.

Any thoughts or ideas ?

Cheers,

Erik

chaouche yacine

unread,
Sep 5, 2012, 6:47:24 AM9/5/12
to sqle...@googlegroups.com
Please somebody reply yes.

http://i.imgur.com/LPkXx.jpg

--- On Wed, 9/5/12, tw5...@gmail.com <tw5...@gmail.com> wrote:
--
You received this message because you are subscribed to the Google Groups "SQLElixir" group.
To post to this group, send email to sqle...@googlegroups.com.
To unsubscribe from this group, send email to sqlelixir+unsub...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sqlelixir?hl=en.

Jarrett Chisholm

unread,
Sep 5, 2012, 8:36:25 AM9/5/12
to sqle...@googlegroups.com
I'm tempted, but I don't think I can commit to maintenance.

I was actually doing something similar (actually creating a new
abstraction layer on top of declarative)...so if this takes off I'll
probably use it instead.

Jarrett Chisholm
Prylynx Corporation
IT should be this simple

j.chi...@prylynx.com
www.prylynx.com
T: (519) 895-0600

Erik Janssens

unread,
Sep 5, 2012, 9:01:08 AM9/5/12
to sqle...@googlegroups.com
Hello Jarrett,

Creating releases, making sure the docs are on a website,
integrating patches, etc. of a project is always some
work.

I cannot afford to do this for another project on top of
doing this for Camelot, so for me the easiest thing to do
is to leave the code in Camelot, and then it's no additional
work.

So you don't need to do code maintenance per se (although
that would be nice of course).

The Elixir code for setting up the relationships correctly
is pretty nifty, so creating something new is a surprising
amount of work (I tried that first as well, but later on
decided it was easier to change Elixir itself)

Also Elixir is a good basis to implement custom patterns,
this is actually not documented, I only saw the pieces falling
together when studying the code.

So ...

Cheers,

Erik

Jarrett Chisholm

unread,
Sep 6, 2012, 8:37:40 AM9/6/12
to sqle...@googlegroups.com
hey erik,

while I am tempted, I think I have to pass...at least for now.

Unfortunately, I have a bad case of tendonitis, which means I'm just
barely able to do my regular work day :S

maybe down the road I can pick it up tho

cheers

Jarrett Chisholm
Prylynx Corporation
IT should be this simple

j.chi...@prylynx.com
www.prylynx.com
T: (519) 895-0600

Erik Janssens

unread,
Sep 7, 2012, 2:57:41 AM9/7/12
to sqle...@googlegroups.com
Hello Jarrett,

I hope you get better soon.

I'll just leave the code in the Camelot repo, if somebody one
day wants to pick it up, that's still possible.

Cheers,

Erik
> --
> You received this message because you are subscribed to the Google Groups "SQLElixir" group.
> To post to this group, send email to sqle...@googlegroups.com.
> To unsubscribe from this group, send email to sqlelixir+...@googlegroups.com.

chaouche yacine

unread,
Sep 7, 2012, 7:13:47 AM9/7/12
to sqle...@googlegroups.com
Hi,

I'm not interrested in maintining elixir 0.8.

However, I'm curious to know if there's a document explaining the architecture of this gem ? the 'how it works part' rather than the API or 'how to use' part.



--- On Thu, 9/6/12, Erik Janssens <Erik.J...@conceptive.be> wrote:
> To unsubscribe from this group, send email to sqlelixir+unsub...@googlegroups.com.

> For more options, visit this group at http://groups.google.com/group/sqlelixir?hl=en.
>

--
You received this message because you are subscribed to the Google Groups "SQLElixir" group.
To post to this group, send email to sqle...@googlegroups.com.
To unsubscribe from this group, send email to sqlelixir+unsub...@googlegroups.com.

Erik Janssens

unread,
Sep 11, 2012, 4:47:32 PM9/11/12
to sqle...@googlegroups.com
unfortunately not, such a document would be welcome :)

we cannot copy it from the original Elixir implementation, since
that one lacked such a document as well.  only by reading the
code, I discovered that one can do really nice things with
Elixir that I was not aware of.

in the new code the 'Entity' class is basically a Declarative
base class with a custom metaclass, that process the
'statements' and 'relationships'.

where statements are the : using_options(...) stuff,  the only
reason I took those over was to be backward compatible,
since all the stuff you can do with statements can be done
with pure Declarative as well.

but the relationship configuration is more complex, as here
Elixir does preprocessing before moving things to Declarative,
to connect inverse relations and generate foreign keys,
relationship tables etc.

This preprocessing step is interesting, as it can be used
to 'automate' certain patterns that are used in applications,
such as 'state', 'type' or things like that.

The new implementation no longer needs the 'setup_all' call,
and the confusing '__metadata__'

To unsubscribe from this group, send email to sqlelixir+...@googlegroups.com.

Gaëtan de Menten

unread,
Sep 12, 2012, 4:26:04 AM9/12/12
to sqle...@googlegroups.com
On Wed, Sep 5, 2012 at 10:13 AM, tw5...@gmail.com <tw5...@gmail.com> wrote:
> Hello,
>
> As part of the Camelot project http://www.python-camelot.com/,
> and to migrate our existing applications from Elixir to Declarative,
> I've reworked Elixir to be a layer on top of Declarative. Most
> of the existing Elixir unit tests pass with the new code.

Ah! You've done what I dreamed to do but never found the
time/motivation to do it (since I don't use Elixir or any database
stuff for work, Elixir now competes with many other activities for my
free time). My ultimate goal was in fact to clean it up enough to
propose it for inclusion into SQLAlchemy.

> Elixir is still very useful in that way because it's much easier to
> define relationships with Elixir than with pure Declarative. Also,
> it's a good basis to implement custom usage patterns. (which
> was the original purpose of Elixir)

Indeed.

> This code is now part of the Camelot codebase, but it could be
> useful for non gui projects as well.
>
> So if somebody is prepared to take this code and release it
> as Elixir 0.8 and do the project maintenance (packages,
> documentation, etc), I'm willing to cooperate and split this code
> out of Camelot.

Packages is no big deal. Documentation can be but most of the current
Elixir documentation should apply. I can't commit any time to Elixir
these days for various reasons but I could have some in the future.
I'll come back to you if that is ever the case. I had also a few
features in my local copy waiting for cleanup and commit but well...
no time.

> If nobody steps in, the code will just remain where it is now.

That's a bit sad but perfectly understandable.

> Any thoughts or ideas ?

Just a small deception: I found no trace of any copyright or even
"thanks" to the original Elixir developers on your code/modified
version of Elixir.

--
Gaëtan de Menten

Gaëtan de Menten

unread,
Sep 12, 2012, 4:39:15 AM9/12/12
to sqle...@googlegroups.com
> On Fri, Sep 7, 2012 at 1:13 PM, chaouche yacine <yacinec...@yahoo.com> wrote:

> However, I'm curious to know if there's a document explaining the architecture of this gem ? the 'how it works part' rather than the API or 'how to use' part.


On Tue, Sep 11, 2012 at 10:47 PM, Erik Janssens <Erik.J...@conceptive.be> wrote:
unfortunately not, such a document would be welcome :)

we cannot copy it from the original Elixir implementation, since
that one lacked such a document as well.  only by reading the
code, I discovered that one can do really nice things with
Elixir that I was not aware of.

For what it's worth, back in the day, I wrote a blog post describing the "vision" I had for Elixir. It can be found at:
http://ged.bugfactory.org/2009/01/elixirs-vision/

And on Elixir's wiki I started writing a page to explain how stuff work. I never finished it but it should be an interesting read anyway. You can find it at:
http://elixir.ematia.de/trac/wiki/BehindTheScene

Maybe those two pages were not advertised enough.

where statements are the : using_options(...) stuff,  the only
reason I took those over was to be backward compatible,
since all the stuff you can do with statements can be done
with pure Declarative as well.

but the relationship configuration is more complex, as here
Elixir does preprocessing before moving things to Declarative,
to connect inverse relations and generate foreign keys,
relationship tables etc.

This preprocessing step is interesting, as it can be used
to 'automate' certain patterns that are used in applications,
such as 'state', 'type' or things like that.

That has always been the goal of Elixir (at least for me).

The new implementation no longer needs the 'setup_all' call,
and the confusing '__metadata__'

Great! (but to my defense, the hooks you use in SQLAlchemy that make this possible didn't exist yet when I was still actively developing Elixir)

--
Gaëtan de Menten


Erik Janssens

unread,
Sep 12, 2012, 4:48:05 AM9/12/12
to sqle...@googlegroups.com
Hello Gaetan,

Good to hear from you. It's a pity that you don't do any more
database work, we would all benefit from it ;)

About the copyright/thanks, those will be added should I release
the code of course. It was my original intention to simply write
a compatibility layer for Elixir code to Declarative, but when diving
into it I saw the added value Elixir still provides on top of Declarative,
and then started to copy/paste parts and unit tests, and it evolved
to a modified copy.

The original documentation would indeed only need some changes.
I've removed things that were marked as deprecated and changed
to setup steps a little bit (but those were not documented).

Regards,

Erik

Erik Janssens

unread,
Sep 12, 2012, 4:53:36 AM9/12/12
to sqle...@googlegroups.com
Thanks for the links, this is the first time I see this blog post
indeed.

I support the vision of Elixir you describe in there, and I still
see value in this line of thinking.

I know those hooks became only recently available, it was
a blog post from Michael Bayer that showed me how to use them
for starting the setup process.

Jarrett Chisholm

unread,
Sep 29, 2012, 11:04:31 PM9/29/12
to sqle...@googlegroups.com
Hi Eric,

I'm sifting through some of the orm code for Camelot (with the intention of maybe merging some of it into Elixir).  However, I've stopped due to the copyright - it's GPL, not MIT.  I'm not entirely sure about how licenses work and such, but is this kosher?  i.e. with the 2 licenses, is it ok to copy your changes from Camelot into the elixir core?

For anyone interested, I put a copy of the elixir source onto github (got the latest version from SVN a couple months ago): https://github.com/jarrettchisholm/elixir

Cheers


Jarrett Chisholm
Prylynx Corporation
IT should be this simple

j.chi...@prylynx.com
www.prylynx.com
T: (519) 895-0600

Erik Janssens

unread,
Oct 2, 2012, 1:18:29 AM10/2/12
to sqle...@googlegroups.com
Hello Jarrett,

Camelot as a whole project is GPL.

However the orm module as it is now in gitorious (not yet released), should
not be GPL.

I originally started with writing some GPL code to mimic Elixir behavior, and
later on copied parts of the original BSD code of elixir into them.

The code now more looks like the original Elixir code with some additions of
mine. I have no issues with releasing those additions as BSD of course.

So if you want to go ahead with this, simply let me know, and we'll sort it
out.

Erik

PS : may I suggest bitbucket for cooperation ? I've used it in some recent
projects and am happy with it. Especially the posibility to work with subrepos
is handy for integration purposes.

Jarrett Chisholm

unread,
Oct 4, 2012, 2:55:14 PM10/4/12
to sqle...@googlegroups.com
Hey Erik,

Thanks for the reply.

Yeah that sounds cool. I'm going to have my local copy point to both
the bitbucket and github repos (I'll push/pull to/from both).

For getting elixir 'updated' with the camelot code, is it mostly the
stuff in the 'orm' directory that I want to be looking at?

cheers

Jarrett Chisholm
Prylynx Corporation
IT should be this simple

j.chi...@prylynx.com
www.prylynx.com
T: (519) 895-0600

>> On Wed, Sep 12, 2012 at 10:26 AM, Ga�tan de Menten <gdem...@gmail.com>
>> Ga�tan de Menten

Jarrett Chisholm

unread,
Oct 4, 2012, 2:57:28 PM10/4/12
to sqle...@googlegroups.com
oh also, the repo is at:

https://bitbucket.org/jarrettchisholm/elixir

I pulled from here for the camelot code (hopefully it's the latest...):
http://gitorious.org/camelot

Also, the url on your camelot site to get the source code doesn't work
(at least not for me)...needs to be
'git://gitorious.org/camelot/camelot.git' and not
'g...@gitorious.org:camelot/camelot.git'. (I think the later requires you
to have your ssh public key registered with the project).

cheers

Jarrett Chisholm
Prylynx Corporation
IT should be this simple

j.chi...@prylynx.com
www.prylynx.com
T: (519) 895-0600

>>> On Wed, Sep 12, 2012 at 10:26 AM, Gaėtan de Menten <gdem...@gmail.com>
>>> Gaėtan de Menten

Erik Janssens

unread,
Oct 5, 2012, 3:26:48 AM10/5/12
to sqle...@googlegroups.com
Hello Jarrett,

yes it's the core.orm module, most files map the elixir layout.

also there's test/orm/*.py which has the adapted unittests

Erik
>>> On Wed, Sep 12, 2012 at 10:26 AM, Gaėtan de Menten <gdem...@gmail.com>
>>> Gaėtan de Menten

Erik Janssens

unread,
Oct 5, 2012, 3:27:17 AM10/5/12
to sqle...@googlegroups.com
I think your repo is private ? because I have no permission to
view it.

Jarrett Chisholm

unread,
Oct 5, 2012, 8:06:45 AM10/5/12
to sqle...@googlegroups.com
yup, sorry erik - I didn't realize it defaulted to private (used to github I guess).  It is now public.




Jarrett Chisholm
Prylynx Corporation
IT should be this simple

j.chi...@prylynx.com
www.prylynx.com
T: (519) 895-0600

Graham Higgins

unread,
Oct 5, 2012, 10:28:44 AM10/5/12
to sqle...@googlegroups.com
In case it's slipped under the radar, Vinay Sajip implemented a Python 3
port of elixir. The repo is also on bitbucket:

https://bitbucket.org/vinay.sajip/elixir3


Cheers,

--
Graham Higgins

http://bel-epa.com/gjh/
signature.asc
Reply all
Reply to author
Forward
0 new messages