At 3:07 PM -0500 9/30/14, Ryan Schmidt wrote:
On Sep 30, 2014, at 10:37 AM, Craig Treleaven wrote:
> By way of background, my MythTV ports depend on p5.16-dbd-mysql, py27-mysql and php-5-mysql. Previously, all of these defaulted to the now-obsolete mysql5 variant. Now, py-mysql defaults to mariadb55. p516-dbd-mysql offers a "mariadb" variant; not "mariadb55". php5-mysql defaults to mysqlind ("MySQL native driver") and offers a "mariadb" variant; again not "mariadb55". p5.16-dbd-mysql still defaults to mysql5.

The subtle variance in naming the variants creates confusion. The range of defaults can lead to bloat and confusion.

Initially, I found there was a ticket related to py-mysql database variants [1] and I filed additional tickets for php5-mysql [2] and p5-dbd-mysql [3]. Since then, I thought to search for other ports that offer variants related to MySQL ('port echo variant:mysql*')--a total of 89 ports, of which about 20 are subports.


I've refined my list a little and I've found 83 ports that offer variants related to MySQL-compatible databases, see attached pdf. The chart lists all the current variant names; a "1" indicates that a particular port offers that a variant with that name.

> The tickets have been open for 6 weeks or more with no movement. I've started to do some analysis on this (with another thread asking for help) to see if we can standardize on a list of MySQL-related variant names and maybe even agree on a common default.
 >
That's where the dictator comes in. At the moment, I would say the obvious choices for a default MySQL variant would be mysql55, mariadb55 or, maybe, mysql56. AFAICT there is no clear-cut, compelling reason to choose one over the others (technical, legal, religious, whatever). Other threads have touched on this issue, recently, with no clear consensus developed. Nonetheless, I think the MacPorts project would be better served by blessing one that can hold us for a few years rather than have various ports going in all different directions.

 Is this something that the PortMgr group could take the lead on?

Indeed we have discussed this before, and it was proposed that the latest stable MariaDB version should be the default variant of ports that have MySQL support.

I don't think we can or should select a default to last us for years. We don't want to stagnate like we did with the +mysql5 variant. Rather, we should let the latest stable version be the default, and update ports as needed.

Currently, the latest stable version of MariaDB is 10.0.

Really? Has MariaDB 10.0 really been sufficiently exercised in the OS X environment to become the default? Currently, not a single port that I've identified even offers mariadb-10.0 as a variant. Only 4 ports in my list currently default to mariadb or mariadb55:

Port                Default Variant
akonadi             mariadb55
amarok              mariadb55
py24-mysql          mariadb55
py25-mysql          mariadb55
py26-mysql          mariadb55
py27-mysql          mariadb55
qore-mysql-module   mariadb


The question is what to name the variants. This has also been brought up for discussion before. My most recent thread on the topic from 2 weeks ago got no replies on the list; perhaps I was too wordy.

My suggestion was that using dots in version numbers, but no underscores, would be the cleanest and most informative, which would make the complete list of proposed MySQL variant today: +mariadb5.5, +mariadb10.0, +mariadb10.1, +mysql5.1, +mysql5.5, +mysql5.6, and +percona5.6.

Adopting this format means renaming every variant of every affected port.

This may also break the upgrade path for existing installs, no? We really should keep legacy-named variants for a period of time along with the new standard which leads to an explosion of variants for some ports. For example, apr-util currently has mariadb, mysql5, mysql51, mysql55, mysql56, and percona variants related to db selection. We'd have to keep those 6 and add at least 6 more (maybe 8 if maridb10.0 and mariadb10.1 are supported).

Perhaps we* could control the explosion of variants by creating a new Portfile contruct: "legacy-variant". It might act just like the current variant declaration except that it would be invisible to 'port info' and 'port variants'. Users wouldn't normally see the legacy-variants thus reducing the temptation to keep using them. If necessary, perhaps they could be displayed by passing the -v or -d flags to port.

Craig

* By "we", I mean someone more clever than me!

Attachment: MacPorts_MySQL_Variants_2014Oct1.xlsx.pdf
Description: Binary data

_______________________________________________
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to