Scott,

I appreciate your reply , but this apache extra's stuff is not working.....: the Apache extra's is now over one year old, in that time there are 125 extra's for 84 projects..... I even counted all the test and apple dirs.....most projects are empty and do not have any extra's

sorry i see moving out of special purpose components to extra's as a big error.

Your advantages below will not work because Apache extra will be not a success. What is apache extra? A link screen to google projects which have some link to a apache project. Good for single developers, not good for us (Antwebsystems) because we rather use our own infrastructure which is integrated with the OFBiz system scrum component what is not possible with an external svn.

Extra publicity? not really , we can publisize links in the ofbiz wiki to our own repository just the same.

Regards, Hans

On 03/19/2012 05:32 PM, Scott Gray wrote:
Hi Hans,

I don't want to argue the merits of removing specific portions of 
code/features/components but I think it's worth mentioning some of the benefits 
of moving features to Extras:
- Greater access to contributors, if someone is making regular quality 
contributions to a specific Extra then they can easily be granted commit 
access.  Easier for the contributor and no worry for the PMC that we have to 
grant access to the entire codebase (which in turn is better for the entire 
community)
- Moving something to Extras shouldn't be considered as a loss to OFBiz or to 
the community.  It is merely a means of streamlining and consolidating what is 
offered by OFBiz OOTB.  Personally I envision OFBiz Extras as potentially 
becoming a vibrant community in itself, if we seed that community with a decent 
set of add-on functionality then it's quite possible other people would start 
to do the same.  Providing and managing an Extra for the community would bring 
a type of recognition that donating it directly to OFBiz never could.  For a 
company such as yours that likes to promote itself quite a bit it could 
actually work out to be an advantage for you.
- The benefits of a slimmer OFBiz really can't be understated, at the moment we 
have something like 7000+ services, I don't know about you but I'd be lucky to 
be able to describe what maybe 10-20% actually do.  The idea that you can 
download OFBiz, pop over to Extras and gran the things you actually need sounds 
super appealing to me.  Sure it's an extra step that needs to be taken but I 
don't think that outweighs that benefits of being able to run only what you 
need.
- New features for old releases.  With components existing outside of OFBiz, 
contributors could make newer versions of components compatible with older 
releases of OFBiz, essentially allowing what we don't currently.  If we can 
build a good community around Extras then I think we could see some amazing 
things happen in this regard.  People could be empowered to do things that 
would never be accepted into OFBiz but would still be useful to a large number 
of people.  Perhaps someone wants to develop Catalog Manager 2.0 using Apache 
Wicket or Apache Click or some other UI framework, they could do that and know 
that it will have an audience because we'll be actively endorsing the Extras 
community as a place to go for additional functionality.

Anyway, I'm not arguing any of your points, I just want to make it clear to you 
and everyone else that I see this as an opportunity to make more features 
available for OFBiz rather than any attempt to take out the trash (that's the 
Attic's job).

Regards
Scott

On 19/03/2012, at 9:05 PM, Hans Bakker wrote:

Hi Jacopo,

Thank you for the effort you spend with OFBiz the last few months. I generally 
agree that sure we have to cut the dead wood in the system. Components and 
functions which are not used or only halfway implemented sure, sounds like a 
good idea to move them out.

However the reasons you list as 'high maintenance' i do not agree with. Only 
with file changes there is work, otherwise it is pretty limited. Removing half 
baked code sure, lets remove it.

The 'not complete' reasons do not apply to several applications and functions 
you want to remove because they are complete, like asset maintenance, LDAP, 
POS, e-commerce, cmssite(demo for the content component perhaps better to 
integrate it with ecommerce), projectmgr and scrum. Also moving the JCR 
function out is not a good idea however when not improved in the next few 
months using the content manager, i would agree to a removal.
Then I was even more surprised, because reporting is a pretty weak point in 
OFBiz, to remove the Birt integration and data warehouse entities.
I cannot agree with the removal of these components, Birt integration and JCR 
(in the short term)

Some other proposals:
1. I would like to push for more junit tests and use even this as a measure to 
keep a component in the system or not. (cobertura minimum percentage?)
2. To have a lead committer appointed for every component in the system who 
will check incoming patches and will commit them, to relieve Jacques of some 
work.
3. List functions/tasks with every committer, if a committer does not have a 
function/task or is not active for a year, put him on the emeritus list, if he 
gets active again put him back as a committer on his request. This to get a 
real committers (and contributors, see next point) list.
4. Also list contributors who have a function/task assigned either for creating 
documents, reporting errors or supply patches, list the contributions he/she 
did so we can keep up if he/she could be nominated to be a committer.

Thanks again for your activity, keep up the good work!

Regards,
Hans


On 03/18/2012 04:10 PM, Jacopo Cappellato wrote:
In the last period the OFBiz project has grown a lot in shape: the implicitly 
accepted (or tolerated) strategy operated by the active committers was that the 
more features you could add to the official repository the better was: you make 
happy the contributors, making them feel like they are a part of something, and 
each committer could manage the code implemented for his/her own projects 
directly in the OFBiz codebase.

We operated under the concept that, since the code if "free" and the author 
(committer or not) is willing to contribute it, then no one should/could complain if it 
is added to the repository, if it doesn't cause immediate problems to others; all in all 
it is an additional feature that may be used by someone else in the future or if not 
would simply stay there without causing any harm.
Following this strategy we got a lot of code like for example Webslinger, 
seleniumxml, debian packages, all sort of specialpurpose applications etc...

Since there was not a central and agreed upon roadmap, no one could really 
state that a contribution was not a good fit for the project: each and every 
committer could add what, in his own personal vision, was good for the project.

The wrong assumption is that, since the code if "free" then it doesn't harm to 
include it. This is completely *wrong*: the code is not *free* at all because as soon as 
you add it to the repository then you add a future cost to the community: you all know 
that in the software industry the cost to maintain a piece of code is by far greater than 
the cost to write it; and you *have* to maintain the code unless you want to have and 
distribute stale code.
And this is exactly what we have now:
* high costs to maintain the code (e.g. I recently spent a lot of hours to 
remove the Webslinger component)
* stale/unused/half baked code that causes confusion and bad impression to user 
evaluating the quality of our product

The message to all the committers is: when you add code to the repository, you 
are asking the community to take care of its maintenance costs forever. So 
please, add new code only when it is really beneficial to the project and to a 
large audience of committers and users.

It is like feeding a wild animal at the zoo with chips: everyone knows it is 
bad for its health but when you are there it is so nice when it picks the food 
from your own hands and you cannot resist and have to feed it.

OFBiz is now suffering from serious weight issues: the committers community is 
having an hard time to maintain the huge codebase, it is difficult to keep 
track of all the features in the system etc...

I think it is important to start a new phase of the project and focus our 
energy in cleanup and consolidation of what we have. One step in this direction 
is for OFBiz to lose weight.

In order to get the ball rolling and focus on some concrete tasks I am 
providing here some examples of stuff that I would like to see removed from the 
project.

IMPORTANT: Please consider that the list is not based on what I think the 
perfect framework should be (so PLEASE do not reply stating what your ideal 
framework should have), but simply on the following considerations:
* can the component be easily removed by the project? is it independent and can 
live outside as a plugin?
* do we need all this custom code? can't we find a simpler, lighter and better 
way to implement this?
* is this feature used by other code in the system?
* is the feature functional? or is it largely incomplete?
* is this an old component/code?
* is this used by a lot of persons? (this is tricky to decide but you can get a 
feeling of it by reading the mailing lists, considering commit activity, the 
status of the feature etc...)

DISCLAIMER: I know it will be a painful decision because each of us reading 
this will have a connection with some of the code listed below: several hours 
spent on it, great ideas that never came to a finished plan; in fact I feel the 
same for a few of the things in the list.... there are great ideas that didn't 
come to a finalization... it doesn't mean that moving them out of the project 
will kill them and this may actually help to get more visibility and different 
user group; so please when you will read it... think to the greater good of the 
community.

Legenda for what I propose for each piece of code:
* Attic: remove from code base and document the removal for future reference in 
this page
* Extras: identify a person interested in maintaining the code as a separate project 
hosted as an Apache Extra project (not officially under the ASF); add a link to it from 
the page that will contain "OFBiz Extras"

And now (drums)..... THE LIST - PART 1(but this is really a very first pass 
only, PART 2 will come soon with more granular - subcomponent - details):

A) move framework/guiapp out of the framework; after all these years no code 
made advantage of it being part of the framework and it is only used by the 
specialpurpose/pos component (which was the component for which it was built 
for); so guiapp can go in the pos component

B) specialpurpose/pos: move to "Extras"

C) $OFBIZ_HOME/debian: move to "Attic"

D) the seleniumxml code in framework/testtools: move to "Attic"

E) specialpurpose/workflow: move to "Attic"

F) specialpurpose/shark: move to "Attic"

G) specialpurpose/ofbizwebsite: move to "Attic"

H) specialpurpose/*: move several (if not all, apart ecommerce) of the components to 
"Extras" (if there are persons interested to become committers/maintainers) or to 
"Attic"

I) $OFBIZ_HOME/themes/*: move a few of them to "Attic" and a few of them to 
"Extras"; keep just one (or two)

J) framework/appserver: move to "Extras"

K) framework/jetty: move to "Extras" (or "Attic")

L) framework/birt (and related dependencies/reports spread around): move to 
"Extras"

M) framework/bi (and related dependencies - ecas/business rules and data - spread 
around): move to "Extras"

N) framework/jcr: move back into the Jackrabbit branch until the work is completed and 
can replace the existing "content framework"

O) framework/documents: move the content to Wiki and then move to "Attic"

P) framework/datafile: (who is currently using it?) move to "Extras" or 
"Attic"; we could replace it with commons-csv or similar tool

Q) framework/example and framework/exampleext: move to specialpurpose

Kind regards,

Jacopo



Reply via email to