Re: [Mingw-w64-public] RFC: How shall we plan releases of new major versions?

2012-10-27 Thread JonY
On 10/28/2012 06:01, Erik van Pienbroek wrote:
> Jacek Caban schreef op do 25-10-2012 om 14:51 [+0200]:
>> A few more words about ensuring stability: We mostly know what risky
>> changes have been made and we occasionally hear back from users when
>> something breaks. I myself would know quickly if something really bad
>> happened. I do Mozilla code base builds as cron nightly job and update
>> mingw-w64 every few days on that box. It exercises headers and crt
>> pretty heavily, so it's quite a compelling test. Now, if we had a few
>> such projects (eg. regular Qt builds) that we can easily ensure to be
>> working correctly before each release, that's a pretty good test case.
>> Buildbot would be great for that, but so would be active
>> users/developers that would test builds on regular basis, or at least
>> after tagging for RC. Same for packagers, if it could be coordinated
>> with them to ensure RC works for them, that's probably enough for release.
> 
> Perhaps I can help in this area. In Fedora we currently have over 125
> different mingw packages and we are frequently pushing updated mingw-w64
> trunk snapshots to the Fedora development branch. I could try to write a
> script which tries to mass rebuild all these packages against recent
> mingw-w64 snapshots and report any breakage automatically. This script
> could then be run periodically (say once every week) so regressions can
> be spotted relatively soon. For this I need to find one or more machines
> where this script can be executed periodically but that shouldn't be too
> hard of a problem.
> 
> Kind regards,
> 
> Erik van Pienbroek

Does that include several large C++ programs? I need to test a patch for
trunk headers.

If so, I can push in the less invasive change and hopefully it should
not affect any builds.




signature.asc
Description: OpenPGP digital signature
--
WINDOWS 8 is here. 
Millions of people.  Your app in 30 days.
Visit The Windows 8 Center at Sourceforge for all your go to resources.
http://windows8center.sourceforge.net/
join-generation-app-and-make-money-coding-fast/___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] RFC: How shall we plan releases of new major versions?

2012-10-27 Thread Erik van Pienbroek
Jacek Caban schreef op do 25-10-2012 om 14:51 [+0200]:
> A few more words about ensuring stability: We mostly know what risky
> changes have been made and we occasionally hear back from users when
> something breaks. I myself would know quickly if something really bad
> happened. I do Mozilla code base builds as cron nightly job and update
> mingw-w64 every few days on that box. It exercises headers and crt
> pretty heavily, so it's quite a compelling test. Now, if we had a few
> such projects (eg. regular Qt builds) that we can easily ensure to be
> working correctly before each release, that's a pretty good test case.
> Buildbot would be great for that, but so would be active
> users/developers that would test builds on regular basis, or at least
> after tagging for RC. Same for packagers, if it could be coordinated
> with them to ensure RC works for them, that's probably enough for release.

Perhaps I can help in this area. In Fedora we currently have over 125
different mingw packages and we are frequently pushing updated mingw-w64
trunk snapshots to the Fedora development branch. I could try to write a
script which tries to mass rebuild all these packages against recent
mingw-w64 snapshots and report any breakage automatically. This script
could then be run periodically (say once every week) so regressions can
be spotted relatively soon. For this I need to find one or more machines
where this script can be executed periodically but that shouldn't be too
hard of a problem.

Kind regards,

Erik van Pienbroek



--
WINDOWS 8 is here. 
Millions of people.  Your app in 30 days.
Visit The Windows 8 Center at Sourceforge for all your go to resources.
http://windows8center.sourceforge.net/
join-generation-app-and-make-money-coding-fast/
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] RFC: How shall we plan releases of new major versions?

2012-10-27 Thread Erik van Pienbroek
Kai Tietz schreef op wo 24-10-2012 om 21:19 [+0200]:
> Hello everybody,
> 
> I want to raise this discussion on public mailing-list, as mingw-w64's
> release-cycle might be also of interest to some of our users.  Right
> now we do the major-release by gut feeling with a background plan
> about features new version shall include.   Now I got the request to
> do major release like some other ventures - eg gcc, binutils - after a
> fixed time-line.  For example if we would decide for a one-year
> release-cycle, it would Mean that we work about 6 - 8 months on new
> features, then we switch to stabelizing phase for 3 months, and then
> doing major-version branching and doing just bug-fixing on that
> branch.
> Another approach would be to do branching only if we are
> feature-complete for one version.  That of course means we should
> switch from gut-feeling to more detailed feature-plan.
> 
> So I would like to get your opinion.  You might have complete
> different opinion about planning mingw-w64's release-cycles, so don't
> hesitate to tell us what you think about this subject.

Hi,

Before I start I would like to point out that the points mentioned below
aren't meant as criticism, but they are areas which I think can
potentially be improved. For the TL;DR variant, see the bottom of this
mail for my conclusion

>From my packager/distributor point of view I would like to vouch for the
release-early-release-often strategy. This means more frequent
releases. 

Version 2.0 of mingw-w64 was already released over a year ago. In the
past year the v2 branch has seen several backports and several releases.
However, the difficult thing is that these new releases aren't announced
on the website or on the mailing list at all. This makes it hard for
packagers and other users to find out if a new version of mingw-w64 is
available. Also, if people want to know what has changed between
releases then they have are forced to check the SVN repo history.

Another thing that I consider is missing are unstable releases. In
Fedora RPM packages always need to have a version number and a release
number. For mingw-w64 releases based on the v2 branch this is simple
(for example: version=2.0.7, release=1). However as there are no
unstable mingw-w64 releases being created for the trunk branch (and we
in Fedora want to provide packages based on the trunk branch) we had to
invent our own version number in Fedora. We want to make sure that
whenever users want to update from the current trunk version to the
final 3.0 release (once it will be released) that RPM thinks that the
final 3.0 release is more recent than the current trunk version and
allows the update. Because of this reason we're currently building our
mingw-w64 packages using version=2.0.999 and release=0.1.trunk.20121023.
With this pattern users can see that we're using a trunk snapshot dated
20121023 and the upgrade path will work when mingw-w64 version 3.0 will
be released. In the end this custom version number is confusing to
end-users as on the mingw-w64 website there are no references to version
2.0.999. One way to solve this issue is to publish unstable releases
from time to time.

To sum it up I would like to propose the following:
* Publish unstable releases (from the trunk branch) periodically
  (this can be time based)
* Once the trunk has reached a certain level of stability/new
  set of features branch it and make a stable release
* When regressions are detected in a stable branch publish a
  new stable release
* Give more visibility to new releases on the website and the
  mailing list and include a global outline of the most important
  changes

A potential versioning scheme for this could be the GNOME one. They're
using uneven major version numbers to mark unstable releases (like
3.5.x) and even major version numbers to mark stable releases (like
3.6.x). Perhaps something similar can be used for mingw-w64 too

Kind regards,

Erik van Pienbroek





--
WINDOWS 8 is here. 
Millions of people.  Your app in 30 days.
Visit The Windows 8 Center at Sourceforge for all your go to resources.
http://windows8center.sourceforge.net/
join-generation-app-and-make-money-coding-fast/
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] RFC: How shall we plan releases of new major

2012-10-27 Thread JonY
On 10/27/2012 19:33, Corinna Vinschen wrote:
> On Oct 26 21:11, Herb Thompson wrote:
>> On 2012-10-26 1:35 PM, Earnie Boyd wrote:
>>> On Fri, Oct 26, 2012 at 12:27 PM, Ruben Van Boxem
>>>  wrote:

 Also, can someone clarify that you only need to be able to provider the
 source when asked for it vs providing it in some public place, which might
 not even be reachable everywhere in the world?
> 
> Per GPLv2 and v3, this requires a *written* offer to provide the
> source code when asked for.  GPLv3 also restricts this right even
> more, see
> https://www.gnu.org/licenses/old-licenses/gpl-2.0.html, section 3b.
> https://www.gnu.org/licenses/gpl.html, section 6c (and 6b).
> 
> So, usually you provide source code in a public place.
> 
> I'm still puzzled, though, why providing source code is such a hassle,
> apparently.  After all, this is called open source for a reason.
> 
> Again, for the third time, Open Source is *not* made for the developer
> in the first place.  The idea is to grant the *user* the right to access
> the source code of the application she's using, and the GPL is designed
> this way to make sure that this right isn't conveniently forgotten along
> the way, just because a developer is too lazy (and we devs *are* lazy,
> isn't it?) to create a neat source package and to upload it in a
> *visible* way to the same place as the object package.

This. Unfortunately some developers too have some entitlement issues,
too many think Free means do whatever you want, including enslaving the
downstream users, not sharing the Freedom they received.

Sure, other licenses have their uses in other areas, but with GPL, the
beauty of it is that it does not allow such hypocrisy.




signature.asc
Description: OpenPGP digital signature
--
WINDOWS 8 is here. 
Millions of people.  Your app in 30 days.
Visit The Windows 8 Center at Sourceforge for all your go to resources.
http://windows8center.sourceforge.net/
join-generation-app-and-make-money-coding-fast/___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


Re: [Mingw-w64-public] RFC: How shall we plan releases of new major

2012-10-27 Thread Corinna Vinschen
On Oct 26 21:11, Herb Thompson wrote:
> On 2012-10-26 1:35 PM, Earnie Boyd wrote:
> > On Fri, Oct 26, 2012 at 12:27 PM, Ruben Van Boxem
> >  wrote:
> >>
> >> Also, can someone clarify that you only need to be able to provider the
> >> source when asked for it vs providing it in some public place, which might
> >> not even be reachable everywhere in the world?

Per GPLv2 and v3, this requires a *written* offer to provide the
source code when asked for.  GPLv3 also restricts this right even
more, see
https://www.gnu.org/licenses/old-licenses/gpl-2.0.html, section 3b.
https://www.gnu.org/licenses/gpl.html, section 6c (and 6b).

So, usually you provide source code in a public place.

I'm still puzzled, though, why providing source code is such a hassle,
apparently.  After all, this is called open source for a reason.

Again, for the third time, Open Source is *not* made for the developer
in the first place.  The idea is to grant the *user* the right to access
the source code of the application she's using, and the GPL is designed
this way to make sure that this right isn't conveniently forgotten along
the way, just because a developer is too lazy (and we devs *are* lazy,
isn't it?) to create a neat source package and to upload it in a
*visible* way to the same place as the object package.

> > AIUI, at least for v2 of the license, you need to be able to provide
> > the source for the exact version the user has in possession via the
> > same media that the binary was delivered when asked for it.  It is
> > easier if you just deliver the source and the same time you deliver
> > the binary since you can tell the user he already has the source.
> >
> 
> Not that this thread needs yet another opinion, but this is an 
> interesting and important discussion.
> 
> So two minor comments:
> 
> (1) As I see it, the distinction between "distribute" and "provide" is 
> important.  All of the major Linux distros I'm acquainted with (e.g. EL, 
> Suse, Ubuntu, etc) *distribute* libstdc++.so via ISO images that do not 
> include the source code, but *provide* the source code via some other 
> means (that isn't always very visible to the end user).
> 
> (2) Depending on how one interprets "via the same media that the binary 
> was delivered", I'm not sure that all of the major distros would achieve 
> that. If for example I obtain a libstdc++.so via an Ubuntu ISO, I'm not 
> sure I could get the source code in the same form.

GPLv2 is older than the Internet.  At the time the idea of bulk data
interchange was more or less restricted to physical media.  Read section
3 of the "terms and conditions for copying" here:
https://www.gnu.org/licenses/old-licenses/gpl-2.0.html

Today a "medium customarily used for software interchange" is the
Internet.  If you pull the binary ISO from the Fedora project page,
everything's ok if you also can pull the source packages from the same
page.  Or, FWIW, it's mirrors.


Corinna

--
WINDOWS 8 is here. 
Millions of people.  Your app in 30 days.
Visit The Windows 8 Center at Sourceforge for all your go to resources.
http://windows8center.sourceforge.net/
join-generation-app-and-make-money-coding-fast/
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public