Hi anarcat, et al,

I am working on a project that is evaluating potentially rewriting Decisions to use CCK for storage of the opening/closing dates and choices. We would also reconsider the Decisions + dependent selection mode architecture. If we were to do that, we would probably be in a position to only focus on the decisions 1-click and AHAH features. How do you feel about an upgrade? Must it contain all of the same features to be accepted, or can we rely on a "scratch your own itch" policy.

Comments

anarcat’s picture

You want to do a full rewrite?

I think we should aim at making a 2.0 release that has roughly the same features as the 1.x series. A regression there would unfortunate: the key idea of decisions is not only "click here to cast your vote", but variable decision-making processes and a rich feature set. Furthermore, a lot of those things are fairly straightforward to implement anyways and just require time to inject in the project. Doing a full rewrite will involve rewriting all this stuff, so I am a bit uncomfortable with it.

I think that decisions 2.0 should at least have the following features:

* selection ballots
* ranking ballots
* pluggable decision-making algorithms (#532758: 2.0 - refactor algorithms into modules ?)
* #92145: 2.0 - allow decisions to be attached to other node types
* quorum?
* pluggable electoral lists?

Is there something in there that you think we shouldn't bother with?

Anyways, I'm open to suggestions here: it's not like I'm going to turn down code here. Anything that will make decisions better will get in, even if it's on an experimental branch. What I want for decisions 2.0 is that other votingapi (or similar?) modules be able to use the crazy algorithms we're developping here, so that people stop reinventing the wheel. For that, we want a stable API, which takes time and effort. So if you're okay with that, what I would suggest would be that yes, you scratch that itch, but be ready for that code to stay in "alpha/beta" or "dev" release mode until we stabilise a more featureful API.

How does that sound?