Re: WSL-4.0 release candidate

Earnie Boyd <[email protected]> Mon, 18 Mar 2013 09:50:38 -0400
Newsgroups gmane.comp.gnu.mingw.devel
Message-ID <CA+sc5mky1hGUcQ9j2ZbAVZRG+mtODk8QKtLt7dDEaq1H9eqqnA@mail.gmail.com>
On Sat, Mar 16, 2013 at 2:03 PM, Keith Marshall wrote:
> On 14/03/13 16:56, Keith Marshall wrote:
>>
>> I know you're itching to get a candidate out, but I'll need to get back
>> to you; I'll aim to do that by end of play tomorrow.
>
>
> Okay.  A day late, curtailed by a disk crash, here it is.
>
> First, in a local testing branch, I modified mingw-dist, per the attached
> diff; then, I ran 'make' on the modified tree.
>
> Second, I copied the *unpublished* modified mingw32-runtime.xml.lzma,
> resulting from the 'make', to a locally created and otherwise empty
> var/lib/mingw-get/data directory, whence I unlzma'd it and packaged it as
> wsl_rc-4.0-1-mingw32-rc-1-meta.tar.lzma; this, we would publish to the FRS
> file store; we SHOULD NOT otherwise publish this modified
> mingw32-runtime.xml.lzma to the online catalogue.
>

You method is having far too many potentials of hazard, both for the
developer and the user.  Your "SHOULD NOT" is a fail point that we
should not have.

> Third, I set up a virgin Win7 sandbox directory, installed mingw-get,
> updated to match the current online catalogue, and installed G++.
>

Ack.

> Fourth, to simulate publication of my mingw-dist changes, I copied my
> unpublished mingw32-wsl_rc.xml.lzma and mingw32-package-list.xml.lzma to the
> var/lib/mingw-get/data directory in the sandbox, and unlzma'd it in place,
> (as 'mingw-get update' would have done, had they been already published to
> the online catalogue).
>

Ack.

> Fifth, to simulate the effect of publication and subsequent download, I
> copied my wsl_rc-4.0-1-mingw32-rc-1-meta.tar.lzma to the package cache
> directory within the sandbox.
>

Ack.

> Sixth, to simulate availability of actual release candidate packages, I
> simply hard linked all existing mingwrt and w32api version-3.x packages
> within the cache, to similarly named packages with appropriate version
> adjustments.
>

That wasn't quite enough, I added a -lic and a -doc file, but ack.

> Finally, to both test and demonstrate the capabilities of this delivery
> technique, I ran the sequence of operations in the attached transcript.

The transcript is handy but here is where a get queasy.  The addition
of wsl_rc-test and wsl_rc-revert is a bit over the top for what we
need to do.  You statements of

# Having done this, we don't need to keep the subsidiary meta-package
# installed; best to remove it straight away, (lest we should forget to
# do so later)...

and

# Once again, it seems prudent to remove the meta-package immediately,
# lest we should forget later...

make me gag with horror that one should miss it.


With my method of a new package names of rc_mingwrt and rc_w32api I
don't have to do voodoo magic to get the release candidate installed.

$ mingw-get show mingw32-mingwrt-dev mingw32-w32api-dev | grep Version
Installed Version:  mingwrt-3.20-2-mingw32-dev.tar.lzma
Repository Version: mingwrt-3.20-2-mingw32-dev.tar.lzma
Installed Version:  w32api-3.17-2-mingw32-dev.tar.lzma
Repository Version: w32api-3.17-2-mingw32-dev.tar.lzma

$ mingw-get show mingw32-rc_mingwrt-dev mingw32-rc_w32api-dev | grep Version
Installed Version:  rc_mingwrt-4.0-1-mingw32-rc-1-dev.tar.lzma
Repository Version: rc_mingwrt-4.0-1-mingw32-rc-1-dev.tar.lzma
Installed Version:  rc_w32api-4.0-1-mingw32-rc-1-dev.tar.lzma
Repository Version: rc_w32api-4.0-1-mingw32-rc-1-dev.tar.lzma

$ mingw-get remove mingw32-rc_mingwrt mingw32-rc_w32api
remove: rc_mingwrt-4.0-1-mingw32-rc-1-dev.tar.lzma
 removing release rc_mingwrt-4.0-1-mingw32-rc-1-dev.tar.lzma
remove: rc_mingwrt-4.0-1-mingw32-rc-1-dll.tar.lzma
 removing release rc_mingwrt-4.0-1-mingw32-rc-1-dll.tar.lzma
remove: rc_mingwrt-4.0-1-mingw32-rc-1-doc.tar.lzma
 removing release rc_mingwrt-4.0-1-mingw32-rc-1-doc.tar.lzma
remove: rc_mingwrt-4.0-1-mingw32-rc-1-lic.tar.lzma
 removing release rc_mingwrt-4.0-1-mingw32-rc-1-lic.tar.lzma
remove: rc_w32api-4.0-1-mingw32-rc-1-dev.tar.lzma
 removing release rc_w32api-4.0-1-mingw32-rc-1-dev.tar.lzma
remove: rc_w32api-4.0-1-mingw32-rc-1-doc.tar.lzma
 removing release rc_w32api-4.0-1-mingw32-rc-1-doc.tar.lzma
remove: rc_w32api-4.0-1-mingw32-rc-1-lic.tar.lzma
 removing release rc_w32api-4.0-1-mingw32-rc-1-lic.tar.lzma

$ mingw-get show mingw32-rc_mingwrt-dev mingw32-rc_w32api-dev | grep Version
Installed Version:  none
Repository Version: rc_mingwrt-4.0-1-mingw32-rc-1-dev.tar.lzma
Installed Version:  none
Repository Version: rc_w32api-4.0-1-mingw32-rc-1-dev.tar.lzma

$ mingw-get show mingw32-mingwrt-dev mingw32-w32api-dev | grep Version
Installed Version:  mingwrt-3.20-2-mingw32-dev.tar.lzma
Repository Version: mingwrt-3.20-2-mingw32-dev.tar.lzma
Installed Version:  w32api-3.17-2-mingw32-dev.tar.lzma
Repository Version: w32api-3.17-2-mingw32-dev.tar.lzma

$ mingw-get install --reinstall mingwrt w32api
reinstall: mingwrt-3.20-2-mingw32-dll.tar.lzma
 installing mingwrt-3.20-2-mingw32-dll.tar.lzma
reinstall: mingwrt-3.20-2-mingw32-dev.tar.lzma
 installing mingwrt-3.20-2-mingw32-dev.tar.lzma
reinstall: w32api-3.17-2-mingw32-dev.tar.lzma
 removing release w32api-3.17-2-mingw32-dev.tar.lzma
 installing w32api-3.17-2-mingw32-dev.tar.lzma

I prefer my method to your meta data jumping hoops magic; the end user
has less to do to get back to normal.  The fewer steps provides fewer
opportunities to have garbage.  Also with my new packages the
mingw-dist is updated properly, the developer should not be afraid of
messing up the repository.  Your method provides opportunity for the
developer to do just that.  My method allows the mingw-dist repository
to remain correct.

That said, I will review your paragraph words to incorporate into my
rc_mingwrt and rc_w32api packages.  I do like some of what you said.
I do not like the rc_wsl-test and rc_wsl-revert meta pretend to be a
package that I must remember to remove bits.

-- 
Earnie
-- https://sites.google.com/site/earnieboyd

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar