On Fri, Jan 17, 2014 at 6:00 AM, Stephen Gallagher sgallagh@redhat.comwrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 01/16/2014 10:14 AM, Kevin Fenzi wrote:
On Wed, 15 Jan 2014 10:32:18 -0500 Stephen Gallagher sgallagh@redhat.com wrote:
Perhaps this would be a good time to reopen the conversation of minor-release policy changes?
Sure.
RHEL releases approximately every six months with a minor release. It seems fair to allow major EPEL upgrades to occur in sync with those releases as well.
So my suggestion would be that EPEL should have two branches for EPEL 7: the epel7 branch and the epel7-pending branch. The idea of this second branch would be sort of an EPEL Rawhide, where major upgrades can be staged. Then, when RHEL releases a minor update (such as RHEL 7.1), we have a (one-month?) integration period where we ensure that packages in epel7-pending work on the newest minor release and then they are merged back to epel7. If they miss this merge window, they have to wait until the next minor release.
This allows us a regular, planned ability to move to newer EPEL packages, without destabilizing EPEL in general.
ok, issues/thoughts:
- Another branch is a fair bit more work rel-eng and infra wise.
Would they be completely seperate? How do we merge them at a update point?
ie, say I have foo. I have 1.0 in epel7 and push 1.2 to epel7-pending. Does the epel7-pending one use bodhi? Does it get signed and composed and push to a repo somewhere? now, say rhel7.1 comes out. How do we reconcile the two branches/trees/composes?
My thoughts are these (in no particular order).
- Treat this branch like Rawhide. All builds targeted at this are
composed to a repo. Signing is nice, but not mandatory in my opinion.
- When rhel7.1 comes out, there is no automatic movement from
epel7-pending into the epel branch. We open a merge window where packages are allowed to merge from the epel7-pending git branch. Merging a major upgrade outside this window is forbidden. At this time, any packager that believes their package is ready for prime-time may manually perform a merge, build and submission to Bodhi.
- The change point seems like it would be kinda fluid, which would
not be great expectation wise. Ie, say rhel7.1 comes out. How long after that do we wait to push the changes? We can't really do it the same time, as we won't know for sure what that will be. We could do it as soon as it's public, but then enterprise rebuilds aren't ready yet. We could wait for CentOS, but then do we wait for SL? OEL? Do we tell users "it can happen some random time after a minor release, please pay attention"?
I think we could set a policy of "merge window opens one week after official RHEL release and remains open for two/three weeks after that". Packages have to go through Bodhi approval for upgrade (perhaps we mandate at least one positive karma review on major upgrades?) which may take longer than the merge window, but they have to be submitted within that time.
- The majority of epel packages I think don't care about this.
It's only a subset. Perhaps we could do something with them? Move them to coprs, get them in as CentOS variants, something?
The majority isn't necessarily as interesting as the popular packages. There are plenty of people out there who want to see new Django, Wordpress, Trac, etc. packages that we simply cannot cleanly upgrade in EPEL 6 today because they aren't fully backwards-compatible.
COPRs is really a workaround for (IMHO) a failure of policy in EPEL to remain useful as the world moves ahead. It's pretty unrealistic to expect volunteer package maintainers to support their packages for the same duration that Red Hat supports RHEL (currently ten years for RHEL 5 and 6). I think we're discouraging community inclusion if we don't offer people a policy that allows them to keep their package closer to upstream for reduced maintenance effort.
Yes, this makes the experience better for maintainers, but makes the experience worse for users and developers of existing tools/infrastructure. All the RHEL users I know choose it because they want a stable platform that isn't changing every 6 months to a year. Like Toshio mentioned before, existing projects want what's there to stay there and new projects want the latest and greatest. The EL mentality is "stable and predictable" and the Fedora mentality is "latest and greatest", so I think that both options are there for those that want them and I don't think that changing EL to be more Fedora like is a good thing.