Disappearing test cases or did another part of MySQL just become closed source?
About a week ago I was looking at MySQL 5.5.27, and noticed a curious thing. Despite the fact that the new MySQL release contained its usual share of bug fixes, not a single one of them was accompanied with a test case.
Now, let me tell you something about tests. For many years MySQL was using its own testing framework, called mysql-test. The first version was written as early as 1999. Over the years it has accumulated a lot of tests. Tests for new features and regression tests — those that guarantee that a bug, once fixed, will never ever show up again. We had pretty strict policies about it in MySQL AB (and, later, Sun Microsystems) — every new bug fix always had to come with a test case for the bug. And because these tests were always run on many platforms for every push (by the continuous integration tool called Pushbuild — developed in-house by Kristian Nielsen) we were reasonably sure that any bug, once fixed, will stay fixed forever. I’m not with MySQL anymore, but I still cannot imagine that Oracle would weaken that rule. So, it must be something else then.
One of the changes that 5.5.27 brings in an extension to the mysql-test-run
script — the driver script of the mysql-test suite — which makes it look for test cases in a new directory. In addition to the usual location (that is, the mysql-test/
directory in the source tree), it will now look for test cases in the internal/mysql-test/
directory. Does this mean that test cases are no longer open source? Oracle did not reply to my question. But indeed, there is evidence that this guess is true. For example, this commit mail shows that new test cases, indeed, go in this “internal” directory, which is not included in the MySQL source distribution.
MySQL test cases were always an important part of the MySQL source tree. They were particularly useful for storage engine developers and for other people extending MySQL, for example, at Facebook, Twitter, and Taobao. But also for Linux distributions which add their patches to the base MySQL, and even to users, who don’t modify the sources — they still want to confirm that a particular bug was fixed or that their custom-built binary has no obvious flaws.
In May, at the Ubuntu Developer Summit in Oakland, Oracle had 7 representatives there, and they promised that Oracle will be more contributor- and distribution-friendly. It is sad to see that instead of that the MySQL source tree is being closed down.
MySQL AB was never very good at building a development community around the product. There weren’t many MySQL developers or contributors to the project outside of MySQL AB, and the company didn’t do much to increase their number. But now Oracle has noticed them — and it intentionally kills whatever is left of the MySQL development community. Without test cases MySQL becomes as opaque to external developers as any piece of closed source software, and only those most experienced and familiar with the MySQL code base will be able to continue working with it.
UPDATE: It’s difficult to find anything more valuable to external developers than test cases. But arguably the revision history is. It groups changes to these millions of lines of source code into change sets, one change set per a distinct feature or a particular bug fix. It allows to see who changed a specific line of code, when, and why. And it seems that Oracle is going to keep this information to itself too. Public MySQL trees on launchpad with the revision history are not being updated.
Now, is there a single successful Open Source project with no developer community at all ?
UPDATE 2: We’re not the only ones this issue affects. See also:
- http://mysqlha.blogspot.com/2012/08/less-open-source.html
- http://ronaldbradford.com/blog/when-is-a-crashing-mysql-bug-not-a-bug-2012-08-15/
Another reason to use postgres then?
I don’t know about that. 🙂 More of a reason to use MariaDB in my mind.
MariaDB relies upon upstream software as much as the next MySQL compatible fork. It’s nothing against MariaDB, but we can’t trust where YOU get YOUR sources from, that inherently breaks the chain of trust.
Actually no. MariaDB doesn’t rely upon the upstream as much as the next compatible fork. Take a look at: http://montyprogram.com/people/ for a list of the Monty Program people who work on MariaDB. I doubt you’ll find another fork with as much MySQL depth.
When the MariaDB developers merge in MySQL code they check and evaluate it and don’t just mindlessly apply it. If there’s anything they don’t like it doesn’t get merged and if it’s a good idea but poorly implemented they re-do it, properly. They’ve also added lots of features that you simply won’t find in any MySQL release.
that’s why, we end up using postgres
Its a consequence of the fork. MariaDB is leaching development without giving back to the propietary project.
Is it really a surprise? Oracle is pretty straight in their policies, they take of their business without any interest to invest in a community that doesnt make profit for them.
Two comments: we are giving back, but it is not easy. I, personally, contributed the complete “pluggable authentication” feature to Oracle, and it was not an experience I’d like to repeat.
And – Oracle is sure within its rights to close-source test cases and not to publish trees on launchpad. Also, I agree that killing a development community provide certain benefits. Short-term.
But it’s like a restaurant raising prices ten times, so that they could make more profit on every customer. Result? People go eat elsewhere.
Base on license included on MySQL community edition, can we sue Oracle Corp. for license violation?
No, Oracle has full rights on the code and test cases. Read about dual-licensing of MySQL – Oracle can even close source the complete MySQL code, if they’d wanted to.
That would cause an immediate response from the European Commission, I think, causing negative effect on Oracle’s business opportunities in Europe. One thing is the license – another the legal guarantees Oracle gave to EU at the time of aquisition of Sun.
how’s European Commission involved? A vendor can close source or open source their stuff as the want, why should European Commission care?
It is the community who cares.
Because the EU had to approve the acquisition of Sun by Oracle. To do so, Oracle had to make promises and keep it clear what direction they’d take. If they break that promise, they broke the approvement and can expect penalties because of it.
It’s doubtful that the European Commission would have “an immediate” response because Oracle closed-source MySQL. Your geek values aren’t universally held. Besides it would be a sad state on European politics if they wasted time on something as trivial as that.
EU cannot decide om Oracle’s business decisions (since Oracle is a US company). But EU (and European governments) can decide on Oracle’s business opportunities and terms in Europe – and if they don’t by themselves I think “somebody” will help them opening their eyes. I don’t think the boundary has been crossed yet – but it is coming close. Oracle gave legal guarantees to to the EU commission that MySQL would continue as Open Soruce. Seizure of Oracle property (but more likely fines in the first place) in Europe is not out of question.
Interesting that even here many people can’t get rid of their fan boy attitudes and keep on posting to do the switch to PostgreSQL. I just hope that you guys keep up developing MariaDB further, even if Oracle is going to shut down the complete MySQL project. I mean, do you guys really need their stuff?
Any time a member of one community calls members of another community “fanboys”, everyone is diminished. Shame on you.
It simply is obvious that there are trolls involved if someone calls himself Monty and recommend to use PostgreSQL instead of MySQL based DBS.
Personally I think only the Oracle DBS is bad, hated to work with it. Although I don’t have many experience with Microsoft DBS. PostgreSQL is definitely a very good DBS and the best fact is, that it’s really fully open source. But statistics still give MySQL more market share (ref. W³Techs and Google Trends). MySQL and PostgreSQL are loosing ground because of the many *new* stuff popping up (e.g. Redis, MongoDB).
Do we really need a RDBMS?
I always wondered how KDE software use a RDBMS, I’d say a noSQL database would be lighter and more appropriate to applications’ uses.
Even in web development, mysql is being used only because it’s practically a standard, not because the application need its feature.
Time to move to mariaDB then… or postgres if you feel like it.
Bug #65831 (http://bugs.mysql.com/bug.php?id=65831) was marked as a duplicate of bug #65740 (65740 is private and crossed out..)
would you like some cheese with your whine?. Come on… you´re on the business of getting more people to use MariaDB and the best way you find to attract people to your project is to trash “evil” Oracle? By your own admission Oracle MySQL is STILL available under an open source GPL “community version”. That is what you downloaded right?. It´s still available at this URL http://www.mysql.com/products/community/ So how the fuck does the lack of test cases makes it less open?. Surely Oracle wants to keep details about internal fixes for corporate clients in a separate internal directory.
You should learn from the past mistakes of the Libreoffice forkers, in Shuttleworth´s words http://ho.io/libreoffice
The amount of toxic trolling you do for Oracle in so many projects you could easily be in their employment, like Florian Mueller is. You twist the truth, ignore realities (do you tell ALL projects that test cases should be kept private?), swear at people and put them down. I hope they are paying you well to be their pet sociopath.
I congratulate trollwatcher for doing some research on my person, and finding out I´ve written positively about Oracle´s funding of Sun´s former open source projects. Congratulations! it means you can use Google. But, you fucked it by being an anonymous weasel. In any case, I take this attack as coming from the project admin weasels.
I saw this coming, the moment some advocates of the LibreOffice freaking forkers said “next, MySQL!”. Unfortunately I didn´t save a screenshot of the Twitter screen at the time. Obviously there´s a concerted effort by Oracle´s competitors to derail every FOSS project handled by the firm and wrestle control of them, painting this image of an Evil Corporation while saying NOTHING for instance about Novell´s deals with Microsoft, RedHat´s efforts to hide patches
http://www.channelregister.co.uk/2011/03/04/red_hat_twarts_oracle_and_novell_with_change_to_source_code_packaging/
Clearly there´s two standards being applied here, and Oracle is always to blame, while others that apply the same methods get a free pass.
Finally, I´m saddened to disappoint you no money has exchanged hands between any US corp and me. In fact, 90% of the times I sent complaints or suggestions to ORCL guys about Java, those went unanswered. They´re not as open as the Sun guys were.
And when they did, they referred me to their PR person.
FC
PS: MySQL is dual-licensed, if you are against dual-licensing should start a campaign against it. Dual licensing is what allows this (and any other firm using dual-licensing)… to release critical patches for their paying customers first, while those being incorporated in the gpl release at a later date. That´s called a sales incentive.
”
Obviously there´s a concerted effort by Oracle´s competitors to derail every FOSS project handled by the firm and wrestle control of them, painting this image of an Evil Corporation while saying NOTHING for instance about Novell´s deals with Microsoft, RedHat´s efforts to hide patches ”
Are you so self-absorb, so hell-bent on avoiding any responsibility and accountability, that you use the oldest excuse in the books: THE OTHERS DO IT TOO!
Never mind that the responsibility for the derailment of those projects was Oracle itself, never mind that Novell and Red Hat’s transgressions were debated to death. Never mind that both of those companies have shown to be good stewards of open source projects for a long, long time. Something that Oracle is incapable of doing!
Giving your face and real name never stop anyone from behaving in a dishonorable manner, just look at yourself!
You’re a pathetic excuse for a human being.
You don’t even know the difference between an accent and apostrophe. Sad!
Man, don’t say anything about Red Hat you don’t know. You can’t compare Red Hat patch obfuscation with closed source. Look, RH can obfuscate, but the source is still open. There’s two different things on what RH does and what Oracle is doing.
open testcases don’t matter much, open development does. That’s the point being made here – Oracle is making tiny steps in the direction of closing development. The fact that something happens to be GPL doesn’t make it an open project in itself.
In terms of what you should depend on as company, the picking order is like this:
Best: open code (gpl/bsd/etc), open development
Not too horrible: open code (gpl/bsd/etc), closed development
Bad: closed code, closed development
Oracle is moving MySQL from Best to Not too horrible. That’s noteworthy for anyone using it and depending on it.
That’s the best that you could come up with? An highlighted passage from more than 12 months ago from the king of trolls?
You don’t know the meaning of responsibility. Reflect… maybe…