Robert Burrell Donkin ha scritto: > On Wed, May 20, 2009 at 11:52 AM, Stefano Bagnara <[email protected]> wrote: >> Robert Burrell Donkin ha scritto: >>> i've been having a little think recently, in particular about user >>> postings on the list. i think i can see a realistic path if there's a >>> consensus that this is the way we want to take james forward... >>> >>> Observations: >>> * Felix Karaf (OSGi container) is very cool. this opens up lots of >>> cool possibilities for mixing protocols and is very interesting to me. >> Interesting. I'd like to see a POC about it, before embracing such a >> technology. > > it will support the stuff i'm interested in without invasive changes > to james. all that's needed are features (dependencies) and spring > (assembly) documents. > > this means that sometime soon i won't be running pheonix locally. most > other mail application developers (who post on list) also seem to be > using the spring deployment.
let me clarify that I think that moving to another container is a good thing. But I don't think that moving to any other container is good. A choice has to be made and it will be critical for the future. OSGi seems to be a good option but I still have to see a good configuration service for osgi components. I don't know OSGi enough to understand if this is a limit in the "specification" or something that simply has not be done, or something that exists but I don't know. >>> * Stefano and Norman are very busy these days. so just directly >>> releasing 3.0 is looking harder and harder... >> Trunk was almost ready for a alpha/beta release 2 years ago, so I don't >> see this so hard. This require the same effort as any release of >> james-server: until no one will need a release and will take the time to >> build some test release we won't see a release. > > building a release candidate is a complete waste of time unless there > are people who are willing and able to test it. this is where we now > come up very short. I agree. I would probably test and review an RC from trunk but not any build from v2.3. >>> * The recent threads from users are telling us that we really need to >>> have a 2.x roadmap for mail server users (as opposed to mail >>> application developers) >> they don't care about 2.x or 3.x. IMO they simply would like to have new >> features that are in svn since years. > > i used to think that but the upshot of the discussion with users is > that no they don't. james 2.x already has lots of features. most just > want releases plus much better documentation. any users who really > cares about features more than stability is probably already on 3.x. > > the great thing about already having the features in trunk is that we > can decant them in bite-sized pieces ensuring they have been tested > and documentation written. ???? Why should an *user* upgrade to an hypotetical 2.4.0 that do not include a single feature more than 2.3.1 but simply require java5 and has some more smaller jars? Can you link the discussions that led you think that such a release would find an userbase? I really don't remember one. >>> Proposal: >>> * Use 2.x for mature, stable releases aimed at mail server users >>> retaining pheonix as the container >>> * Target 3.x at mail application developers focussing on OSGi and Spring >>> * Move code from 3.x to 2.x by factoring out libraries with multiple >>> modules to allow optional avalon and OSGi service support >>> >>> Roadmap: >>> * Release 2.3.2 now (after deprecating mordered, crypto) >>> * Release standard mailets 1.0 >>> * Release crypto mailets 1.1 targeting java 1.5 >> Make sense. >> >>> * Release 2.4 soon replacing source with jars released so far (with >>> note about standard mailets) >>> * Compiled against Java 1.5 >>> * Remove mordred >>> * Replace 2.x crypto source with released jar >>> * Replace 2.x mailet API with released jars >>> * Release 2.5 later replacing source with released jars >>> * Add jSPF support >>> * Replace standard mailet source with released jar >>> * Replace whichever other services have been released by then >> My main concern is that this does not give features to the users. Users >> are asking for a roadmap because they want easy virtualhosting, fastfail >> and other features that are in trunk since *3 years* (yes, some stuff >> was there when we released 2.3.0 and didn't land v2.3), are trunk >> specific, and backporting them is a PITA. I don't think that the roadmap >> above does worth the required work, but if anyone think so and is >> willing to work on that then it will not be a bad thing. > > the advantage of the above is that it's a road map and it's easy Come on, this is not the main goal of a roadmap. Not following that is easier and gives our users the same benefits. > but it won't fly without support and we need a road map before 2.3.2 > can be released Why do we need a roadmap for a bugfix release? v2.3.2 can be released anytime from v2.3 branch, as is. No roadmap needed, just a release manager. >> The only real features for end users in that roadmap is jSPF and this >> could be released as a mailet anyway. jSPF as it is in trunk cannot be >> done in v2.3 because of different fastfail stuff (IIRC). > > fine - so let's factor out an SMTP library as well (multi-module with > avalon and OSGi service bindings) > > this means a DNS service library as well but IMHO that's a good thing. > UserRepository is a little too much to chew ATM but i think we should > be able to bridge the interfaces. > > AIUI this'd give us improved fail fast as well This is trunk, isn't it? If you take v2.3 and replace smtp, userrepositories, dnsservice and every dependency that need changes because of this (most components depend on dnsservice) then you have trunk (just with less modules: take a revision from 1 year ago and you'll have v2.3 with that stuff and no modules ;-) ). >> I will not work and I will not use such a branch: I don't need any >> feature from that so why should I upgrade and risk bugs? > > i'm running out of time to devote to james (as a project). karaf gives > me the way out i've been looking for. That's a real pity. If Karaf is a way out then we'll have to pay more attention to understand exactly what we are embracing or it will be the next iron ball at the leg of any future release manager. > you and norman are busy, as are most of the other developers. james > server is really close to actually dying. Sure, but why defining a roadmap that give us useless releases should change things? > no road map is going to work without your support. this is the best > plan i could think of. if you can see a better alternative way forward > then please propose it. I don't have time, but if I'll ever have time it won't go into v2.3. I repeated this in the last 2 years and I didn't change my idea about this. v2.3 works fine, is really stable, but architecturally at its end of life. In my view working on that source code is a waste of time. If I'll see activity I'll try to convince people to put their effort in trunk and I'll try to help as much as possible that people (as I tried with you). If you have limited time to spend on james I would prefer you to simply make imap better as a standalone library. As a PMC member I think this is much more strategic for the community than a feature-less release of a v2.4. >> IMHO the above roadmap is mainly a developer exercise to replace source >> code with libraries and to upgrade v2.3 to java5. > > it's been 3 years since the last release. it's not ambitious but at > least it's a start. I can only repeat myself. If you like to refactor v2.3 into v2.4 by upgrading to java5 and to more fine grained libraries just do it, but don't ask me to help or to agree that this will make our users happier ;-) > it's not good releasing 2.3.2 without some sort of road map dot releases are bug fix releases. I never ever defined a roadmap for bugfix releases in my life: this kind of roadmap is called "open critical/major bugs report" in JIRA and it is automatically created when filed *bug* reports are confirmed. >> Backporting stuff from 3.x to 2.x is simply unfeasible for most >> interesting code because we had to change interfaces and break some >> compatibility in order to support the new features. I BET backporting >> some of them will take *much* more time than testing trunk as a whole. >> People keep claiming that v2.3 is stable and trunk is not, but the fact >> is that simply no one tested trunk and confirmed it is unstable. Maybe >> it is, but until I'll see bug reports about instability against trunk I >> won't consider this. > > i wasn't proposing to backport but to factor out multi-module > libraries which can be shared. bugs can then be fixed against trunk. components are linked together via interfaces. To factor out modules that can work in both v2.3 and trunk we have to deal on common interfaces. The components you talked about rely on changed interfaces or define the interfaces used by the rest of james. We are talking about something simply unfeasible, IMHO. There is a reason why some code is in trunk and not in v2.3 and it is because of this interfaces. In order to make progress we had to break them. Stefano --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
