[ann] Moose v7.0.0

Hello everyone!

I’m glad to announce the release of Moose v7.0.0.

I’ll explain the main changes since Moose 6.1 and what are the future
plans for Moose 8 in this mail.

* What changed?

In this version of Moose a lot of things changed from the meta model
management point of view. In Moose 6.1 we only had one big metamodel
build with inheritance to analyze all languages. This had a lot of
limits and a lot of work has been done to improve Moose on those weak

In Moose 7, you can now have multiple meta-models independant from
each others. This mean that we will now have one meta model by parser.
We can also create simple meta-models for test purpose. Also those MM
are build by composing stateful traits instead of using inheritance.

On top of that we now also have the possibility to use generators to
manage meta-models. Instead of writing every classes by hand, we can
describe a meta-model in a generator and use it to generate the MM.
Then we can use it to regenerate it also.

Pavel, who did most of the work, wrote some documentation you can find
here: https://pavel-krivanek.github.io/famix/

There is still a lot of work to do to make it better but this will
come with Moose 8. The reason we release now is that in Moose 7 we
started to have split MM for Java, Pharo, and other languages, but we
still have a compatibility meta-model. The work needed to improve
Moose further will require to break the compatibility MM. Thus we are
releasing a stable version now with a compatibility MM and we will
work on a Moose 8 version where the compatibility MM will be removed.

* Workflow for bugfixes

Another change with Moose 6.1 is that now Moose is managed via Github.
This will allow use to do patches or minor releases in case the
community find bugs or need some new simple features in Moose 7 as
long as it only contains backward compatible changes.

* Plan for the next release

We already stated to work on Moose 8. We plan to work on multiple aspects:
– Improve the usability of the generator, especialy while regenerating MMs
– Update the Traits contained in Moose to build our MM. Currently,
they are a reproduction of what was in Moose 6.1 in order to get the
compatibility model. The goal is to remove all the hacks and get
cleaner traits.
– Start to build new tools to use the full power of this new version of Moose
– Fix bugs that will be discovered after such a big change

* How to get Moose 7

You can get Moose 7 in two ways. First is to install it in a Pharo 7 image:

Metacello new
baseline: ‘Moose’;
repository: ‘github://moosetechnology/Moose:v7.x.x/src‘;

The second is to get it via the Pharo Launcher. It now has a Moose 7
entry to get this version and a Moose 8 entry to get the development

We will also need to update Moose technology website.

* Credits

Thank to Pavel Krivanek who did most of the work.

Thank also to:
– Benoit Verhaeghe
– Julien Delplanque
– George Ganea
– Christopher Fuhrman
– Stephane Ducasse
– Anne Etien
– Nicolas Anquetil
– Cyril Ferlicot

And any other I might have forgot who participated in the development
of Moose 7 🙂

Cyril Ferlicot

%d bloggers like this: