Hi Pierre,

OK you lost me completely. You would rather have no version capability in PECL beyond the module itself? What's so confusing about 'if you have PECL
 code that is specific to PHP 6 use the PHP_6_0 branch in PECL'?

I still have no idea what you are talking about. For which build? PHP
snapshots or PECL snapshots? releases builds?

I'm totally confused by your confusion :) All of those builds could prioritise an appropriately-named branch. The only one that currently does this is the PHP build (any), for core extensions only. There's no total independence of PHP in PECL because everything's geared towards one or another of the PHP branches anyway. On the other hand, there are a number of PECL modules that manage very well to cover all the bases in a single package that builds against all PHP branches.

Those multi-version modules share a problem with the symlinked ones - nowhere to experiment - since CVS HEAD is effectively a release area in both cases.

You obviously haven't looked at the source, because pecl4win doesn't use any
 PECL branches at all.

It does or was supposed to last times Edin discussed it. There was a
set of branches to be used for each PHP version, but I did not check
the code lately.

I did. It uses different PHP branches, not different PECL branches - the only exception is for core modules, which are built (from a hard-coded list) as branch-specific PHP extensions rather than as PECL modules. That said, PECL developers don't tend to use PECL branches anyway - the vast majority develop purely in CVS HEAD, which isn't a big problem so long as the code builds against all versions of PHP.

From the very begining you defined what you like to do right now
(after having made some clarifications):

1. Provide DLL per active branche

Actually that would be 'per release branch'. I've no intention of providing PECL release DLLs for development branches - what would be the point?

2. add version info in these DLLs

You missed:
3. add version info in the PHP_MINFO section using the same macro.

The 2nd point is why you have created the RFC.

and 3rd...

That's what we should
try to finish this dicussion and the RFC. For the 1st point you
clearly said that you want it simple and easy as a first step, I
hardly follow you right now as you move in every direction about every
single need of PECL. And that's exactly what I was trying to avoid,
not to block a good move or innovations, but to avoid a chaotic move
in many direction without any specs. Please don't take this last
sentence badly, it is also valid for me.

I don't do this in isolation, Pierre :)

The problem is that it is very easy in such discussions to be
distracted by other topics and forget the initial RFC (versionning).
If we don't focus on it and your initial goal, we will waste energy
and time to discuss things again and again without any actual results.

I certainly wasted a great deal of time yesterday responding to lengthy emails rather than getting the job done. I don't intend to do the same today.

I'm sorry if you taken any of my answers badly or personally, none of
them was meant to hurt you or your ideas. It is a discussion about a
RFC and I try to understand what you are asking or discussing. I also
hardly try to stay on the topic.

It's simple. I want to see PECL modules versioned in a standard way. The issues raised concerning this (not all of them on-list) have been:

- symlinked modules: We agreed to use the -core tag for these for now.
- PHP-version-specific modules: (most likely case: a PECL module in CVS HEAD builds against everything but PHP 6). This is dealt with in package.xml, but we still don't have a way to distinguish a PHP 6-only module either through phpinfo() or on the pecl.php.net download page. However, unless it's a core module, that same code will be used in snaps. That was the bit I was trying to talk about earlier, but the scripts for snaps and bundles (any) would need to be adapted to prioritise the appropriate branch in PECL for my suggestion to work. - versioning rules: You want to use PEAR's versioning structure, and I agree with all of that apart from the -devel and -stable tags... x.0.0 is by definition stable, anything less is by definition pre-alpha unless it has an -alpha tag. However the existing PECL packages don't always use PEAR rules, so we need to adapt a little to the current circumstances while also recommending the PEAR x.x.x structure for new packages. Also, as with PHP, anything other than a release should be tagged -dev, excepting modules that ship with the core (as per temporary measure above). - space for experimental development: This isn't a major problem because a) experimental code shouldn't really be distributed and b) it's already possible to create a non-release branch or branches in PECL for this kind of thing. Just look at SDO :)

We need to revisit: core module versioning and PHP-version-specific PECL builds. I think we've already enough to work with for the majority of cases tho'.

- Steph


--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to