Apologies in advance for the lengthy post.

Andrew Ariotti and I have sponsored the development of some extremely useful code for handling HTML tables in nodes in D6. We're prepared to contribute the code back to the community, but there is a complication.

The complication is that, by design, the code largely/wholly duplicates the functionality of an existing module called TableManager. That said, our code is for a D6 version of which there is no official release under TableManager, so it isn't actual duplication of code, but rather of concept and functionality. http://drupal.org/project/tablemanager.

We tried some months back to collaborate with the maintainer to get this code done for an official D6 release, but instead we created a big controversy. See these threads: http://drupal.org/node/234139, http://drupal.org/node/623482. As a result, we had no option but to go out on our own to produce the code independently.

The problem then, as now, being that the TableManager code has never been fully upgraded to work properly on D6 and is released only in a .dev version that is still not fully functional 2 yrs after it's original release. Even now, the maintainer has offered no definite timetable for the upgrade to D6, let alone D7. He has also introduced concerns about who even owns the code as some of it may arguably belong to clients of his company (http://drupal.org/node/599722#comment-2209146). He has also made clear he will not bring on co-maintainers (http://drupal.org/node/623482#comment-2231592) to help him.

At the time of those threads, we offered to work with the maintainer to update his excellent module - to pay to have it entirely re-written if necessary. We first offered to pay him and then when that didn't work, we offered to pay other developers who might collaborate with him. But that didn't work out either, so in the end were told to take a hike.

Since Andrew and I needed fully working TM functionality for D6 production sites, we moved forward to build out a new version of the code upgraded to D6 and with all features working. We hired two freelancers to write the code. The project has involved many manhours and a meaningful amount of our money to complete. The code is essentially completely rewritten from the ground up consistent with D6 APIs and coding standards (whereas TM has it's roots in D4 code).

While there are still some bugs to be worked out, the module substantially works now and has been tested by several people so far. We also have commitments from two developers to be co-maintainers of the module out of the gate.

We have an interest in posting it back to d.o. for use by the community. We imagine that among the hundreds of other people using the .dev version, there are others like us who could benefit from it. Here's an example from just the other day: http://drupal.org/node/771800.

What we need from webmasters is guidance on is how to move forward on this. In some sense, it should be a new version of TableManager, but the history and personalities involved makes that difficult. On the other hand, the code base is essentially completely rewritten and looks nothing like the original code, even if the functionality is similar.

Our preference is to establish a new module that starts fresh with our two co-maintainers. The project name NodeTable has been tentatively reserved.

However, we are open to working within the framework of TableManager, if we can settle on mutually agreeable terms with the current maintainer (e.g., our co-maintainers are welcomed, we take the lead on D6 version, and so forth). Obviously, things didn't go so well there the first time around, but ...

Of course, there's a 3rd option: we drop the whole thing and keep the code private. We wouldn't prefer that, but it's probably the easiest for us.

We are posting a note to the TableManager queue at the same time we are posting here to ensure the situation gets a full and open hearing. We look forward the community's suggestions as to the best way to proceed.

CommentFileSizeAuthor
#12 nodetable.tar_.gz38.46 KBjohn.kenney

Comments

silurius’s picture

Subscribing.

Anonymous’s picture

As the code has been submitted under GPL License v2+, every person can alter the code; who created the code cannot stop others from modifying it. I am not sure what the code ownership issue should be.

killes@www.drop.org’s picture

Can I get an executive summary? :p

Anyway: there are several modules on d.o that duplicate each other and we are all still alive...

avpaderno’s picture

As general rule, in Drupal.org we tend to avoid duplicate modules (the duplication is about the done work, not the code).
In this case, the maintainer of the existing project seems to not accept any proposed changes to the module. Even if I understand that is good to avoid to duplicate modules, I also think that a module that is close to suggestions is even worst than a duplicated project.

killes@www.drop.org’s picture

Status: Active » Fixed

right

WorldFallz’s picture

Though we tend to discourage duplicate modules, as others have pointed out-- there are plenty of them. The authors made efforts to collaborate, it didn't work out. That doesn't mean the community should be deprived of a perfectly good module or that contributors be turned away. I say go for it, just document the differences, if any, so users can make an intelligent choice.

And thanks for wanting to contribute and trying to be good citizens about duplicate code!

john.kenney’s picture

okay, thank you everyone. we appreciate the quick convergence on an answer.

we are moving ahead with this thing as a new module called NodeTable. http://drupal.org/project/nodetable

pobster’s picture

Wow, no-one give me a chance to answer!

I've already replied on one of the numerous other threads - I've no problem with merging the two projects. I just don't read my Drupal posts every day to see what's occurring!

I'll add you both (John and Andrew) as maintainers, it's up to you whether you want to accept or not.

Pobster

john.kenney’s picture

I've already replied on one of the numerous other threads - I've no problem with merging the two projects.

pobster's response (actually 2) can be found here: #25: http://drupal.org/node/772536#comment-2857004, #26: http://drupal.org/node/772536#comment-2857040. my response is at: #27: http://drupal.org/node/772536#comment-2857226

I re-quote them here because this is a better thread to pursue these points.

#25

FFS, stop talking about me like these threads are private! I stopped working on Tablemanager because you infuriated me so much that I wanted to see you put your money where your mouth is and actually come up with something yourself.

So... On the contrary, I have absolutely no issue at all with adding your team as co-maintainers to Tablemanager. I just don't like you so much, and so was looking for excuses to blow you off before, that's probably why a few of the things in that original thread are contradictory, I'd simply had enough... I still don't understand why you think a single programmer should have a release schedule for a home grown project - and then to get really angry when I don't have one? Nice... Do you also think I should program in a agile way??? And demanding to view my unreleased code because it's GPL?? You've a funny way of playing the victim...

Anyways, I really don't think there's any reason to have two modules doing exactly the same thing (okay so I've still not put any branch 2 code up yet which *does* create tables as nodes and tbh, I doubt I will any time soon I'm simply too busy) so I suggest merging the two projects. The community should not suffer simply because I think you're a dick. Let me know how you want to proceed, I've no interest in competing - like I said I just don't have the time at the moment for anything other than my smaller projects. I would however (assuming you do wish to merge) appreciate it if you;

1. Start the new release off as 2.x
2. Provide an upgrade path from 1.x (I can do this if you're not interested)
3. Don't make a release straight away, let the community test the codebase first

Pobster

#26

Okay I've added;

amariotti
vegantriathlete
zserno

If someone wants to make John the owner of the project node that's fine with me, I too can't see anywhere on the project page where I can change the author?

Thanks,

Pobster

#27

@#25, @#26

pobster:

i really don't understand the tone you've taken with me or the deep set anger. your endless stream of excuses and constantly changing logic is also tiresome.

you should be aware these latest posts and many of the ones from last fall were carefully pre-coordinated with amariotti - like down to the specific words used - so if you think these views are unique to me, you are incorrect.

both of us have jobs to do and they need to be done using the functionality of your module on production D6 sites - except your code doesn't work on D6. we are trying to get it to work on D6 .

all this crap about not being able to write code on your birthday, the legality of your code, your aversion to co-maintainers, and all this other bullsh*t you've posted has made this harder to do than it needed to be.

andrew and i have both been completely baffled by your responses.

regardless, i appreciate the expression of willingness to work together - even if the offer is made 6 months too late and in an extremely offputting way.

personally, i can't say i am eager to go this route. but i will refer my colleagues to your posts and we'll discuss it. we'll come back with a collective decision. this will probably not be until early next week since it is now saturday.

regards,
john

As stated, i will refer my colleagues to these posts and we will come to a collective decision about how we would like to proceed.

If anyone on this webmasters post has an opinion on this, we are all ears.

If possible, let's contain the response here on this thread to avoid fragmenting the discussion.

----
edit:

an additional comment was posted on the other thread at #29:

#29

I have no anger against anyone? I only dislike you because of the way you speak to people, you seem to only be able to communicate by speaking down to people and I really don't act well with being treated that way. And as usual you always seem to want to argue? I mean I'm only too happy to oblige but haven't you had enough by now? I know I certainly have...

I'm willing to overlook your attitude as tbh, I really don't care - I told you previously (when we were on good terms) that I would complete Tablemanager but on my own terms, which meant that I wasn't going to start on it right away;

...all this crap about not being able to write code on your birthday

..Amazing... So... This was my only gripe tbh, everything else that came after this was purely just that I didn't want to work with you at all, I'd already made my mind up that I wasn't interested after that. I'm not a software house. That's why I don't have a release schedule. There's nothing you can say to me that will make me work on my birthday. I'm not bothered about your project at all or your deadline. I told you when I could have completed the code but you weren't willing to wait until I could start, that is not my problem - I'm not driven by money, more by goodwill - of which you have absolutely none. I have no aversion to co-maintainers, you took that out of context and it was more that I just had no desire to assist you in any way. Just of note, I do have two co-maintainers on my Imagemenu project.

Look... Enough... I don't like you, but as per this thread - there is no point in having two modules with duplicate functionality, and in providing a release for TM you'll automatically inherit some 400-odd users. That's a good amount of people who will then be testing and using your codebase. That means more to me than money - that the community will benefit. We will not have to work together at all on this, I will not be committing into your branch or answering your issues - you're simply taking over the name, there will be no more interaction between us. Which I'm sure can only be a good thing...

Pobster

pobster’s picture

Apologies I'd already posted on the other thread before I saw your reply. Anyways, it's all irrelevant imo... I only said some of the things I said because I'd had enough of you and wanted to force your hand at starting from scratch. Which... You did... So... Well... Hats off to you, I'm actually fairly impressed that you've managed to pull it off, it's no small deal - I'm interested to see the codebase. To quell your fears, don't worry I will have no input to it - unless there are security issues, but that would only be in the form of reporting them which I'd do for any module I have an interest in. I've no desire to work with you at all, my decision to give you Tablemanger by name is only born from my love of the community.

Pobster

john.kenney’s picture

ok, thanks, pobster. an actual compliment. i'm touched.

yes, your module is 'no small deal'. it's an impressive and extremely useful bit of functionality. it has taken many, many manhours to recreate and it still has to be battle hardened by use by the commnity.

i appreciate the fulsomeness of your offer - i hear what you are saying.

as mentioned, this is not my decision per se, but a group one, so it has to be run by the others, too. since it is the weekend, it will take a couple days to get back with a response.

john

john.kenney’s picture

StatusFileSize
new38.46 KB

also, i've attached the latest version of the code for you. i'm not sure the others would agree with doing this right now since the code remains a work in progress, but we'll be posting it relatively soon in some fashion.

so please appreciate it is not a final product and work continues on it as we speak. that said, it works pretty darn well.

also, please note that the code was written by snufkin and zserno. i had no hand in the code, have never even opened the files, and wouldn't know what to do if i did. i just install it and test it.

point being: if you want to provide feedback on the code, please spare snufkin and zserno the vitriol that you direct at me. they've worked very hard on this and deserve to be treated with respect.

pobster’s picture

Don't worry, I'm not an angry person at all - I reserve my vitriol, as you put it, solely for you because you're so unreasonable ;o)

Anyways, yes the code looks good from first impressions - I notice that there's still a function to sort rows manually? (_nodetable_row_sort_by_weight) Is this absolutely necessary given the nodetable_rows table holds a weight? Couldn't you rely on using Drupals own tablesort functionality to pass in db parameters instead of chugging through code? I only point it out as I got so many issues in TM commenting about the slowdown when maintaining large tables, which is completely understandable owning to my misuse of serialisation (TM was the first PHP I'd ever written in my life, it was a learning thing...) Meh, it's just a suggestion - I've only scanned through the code, I haven't installed it...

Pobster

john.kenney’s picture

well, it's nice to know i'm special. :)

good to hear that your initial reactions are positive. that's encouraging.

as to specific questions/suggestions. i haven't got a clue. i will point erno here for his comments. and we probably should move any such discussion someplace else altogether so we don't clog up this thread.

if what you are talking about relates to the drag and drop reordering of rows, that is something that comes in handy for me and i'd like to keep it. but if it doesn't relate to that and is more about the way it is done in the code, i've no opinion and defer to you, erno, et al as to the best way to accomplish it.

thank you.

john.kenney’s picture

our group has been discussing the merge idea between NodeTable and TableManager and we have unanimously decided against it.

while we do see some benefits to the community in a merge, there are a few things weighing against it. first off is that we have been working well together as a team for several months already. second is the obvious clash of personalities and the potential distraction this might cause. third is the potential for confusion about responsibilities because we'd have, in some sense, 2 teams: one handling 'existing' TM and one handling 'new' TM. if the personalities meshed better, this might not be a problem, but they don't.

to overcome the confusion this approach may generate for the community, we suggest 2 things:

1. TableManager put a notice on their project page announcing NodeTable as the recommended module for D6 and beyond and pointing people to our project page. http://drupal.org/project/nodetable.

2. TableManager marshal some resources to contribute to the build out of an upgrade path from TableManager to NodeTable on D6. Such collaboration should help us get a smooth upgrade path build out both sooner and better.

If there are other things we can do, we are open to hearing them.

regarding #1. If we receive permission from pobster, we will put up the notice ourselves. Otherwise, we will email suggested copy. This will be handled by Andrew (amariotti).

thank you for everyone's participation in this thread. if there are other points of discussions, please let us know. otherwise, we will focus on getting our code cleaned up and posted as soon as possible.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

Project: Drupal.org site moderators » Drupal.org project ownership
Component: Project ownership » Ownership transfer