Subject: | a race condition/last mod times from Mercurial/Bitbucket |
I've never heard of Mercurial until now, I'm from Git world. When I downloaded from bitbucket the snapshot https://bitbucket.org/jpeacock/version/get/8f1352c79510.zip I get stuck into race condition, since Makefile.PL's last mod time is about 3-4 hours away into the future inside the .zip (1-5-2014 4:31 AM) and therefore on my disk when extracted. According to the log Makefile.PL was last changed in https://bitbucket.org/jpeacock/version/commits/c2cc74f7ebf49c57504f914ede77c3d873e6d70c/raw/ at "# Date 1388893050 18000" which bitbucket is saying is "2 hours ago". I have no idea if the problem is in your client, in bitbucket, or my zip tools (I tried WinRAR, 7zip, and MS Explorer Shell zip tool, all give the same time). I know the solution on my end is to "touch" Makefile.PL, but other less human things will find this to be a problem.
---------------------------------------------------
C:\Documents and Settings\Owner\Desktop\cpan libs\jpeacock-version-8f1352c79510>
perl makefile.pl
Testing if you have a C compiler
compilet-yWYCD.c
Creating library compilet.lib and object compilet.exp
Generating code
Finished generating code
Checking if your kit is complete...
Warning: the following files are missing in your kit:
Changes
META.yml
Please inform the author.
Generating a nmake-style Makefile
Writing Makefile for version::vxs
Writing MYMETA.yml and MYMETA.json
Generating a nmake-style Makefile
Writing Makefile for version
Writing MYMETA.yml and MYMETA.json
C:\Documents and Settings\Owner\Desktop\cpan libs\jpeacock-version-8f1352c79510>
nmake test
Microsoft (R) Program Maintenance Utility Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
Makefile out-of-date with respect to Makefile.PL
Cleaning current config before rebuilding Makefile...
nmake -f Makefile.old clean > NUL
Microsoft (R) Program Maintenance Utility Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
Microsoft (R) Program Maintenance Utility Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
C:\perl519\bin\perl.exe Makefile.PL
Testing if you have a C compiler
compilet-znyia.c
Creating library compilet.lib and object compilet.exp
Generating code
Finished generating code
Checking if your kit is complete...
Warning: the following files are missing in your kit:
Changes
META.yml
Please inform the author.
Generating a nmake-style Makefile
Writing Makefile for version::vxs
Writing MYMETA.yml and MYMETA.json
Generating a nmake-style Makefile
Writing Makefile for version
Writing MYMETA.yml and MYMETA.json
==> Your Makefile has been rebuilt. <==
==> Please rerun the nmake command. <==
C:\perl519\bin\perl.exe -e "exit 1" --
NMAKE : fatal error U1077: 'C:\perl519\bin\perl.exe' : return code '0x1'
Stop.
C:\Documents and Settings\Owner\Desktop\cpan libs\jpeacock-version-8f1352c79510>
nmake test
Microsoft (R) Program Maintenance Utility Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
Makefile out-of-date with respect to Makefile.PL
Cleaning current config before rebuilding Makefile...
nmake -f Makefile.old clean > NUL
Microsoft (R) Program Maintenance Utility Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
Microsoft (R) Program Maintenance Utility Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.
C:\perl519\bin\perl.exe Makefile.PL
Testing if you have a C compiler
compilet-_Q3_r.c
Creating library compilet.lib and object compilet.exp
Generating code
Finished generating code
Checking if your kit is complete...
Warning: the following files are missing in your kit:
Changes
META.yml
Please inform the author.
Generating a nmake-style Makefile
Writing Makefile for version::vxs
Writing MYMETA.yml and MYMETA.json
Generating a nmake-style Makefile
Writing Makefile for version
Writing MYMETA.yml and MYMETA.json
==> Your Makefile has been rebuilt. <==
==> Please rerun the nmake command. <==
C:\perl519\bin\perl.exe -e "exit 1" --
NMAKE : fatal error U1077: 'C:\perl519\bin\perl.exe' : return code '0x1'
Stop.
C:\Documents and Settings\Owner\Desktop\cpan libs\jpeacock-version-8f1352c79510>
dir
Volume in drive C has no label.
Volume Serial Number is 4C2D-0BFA
Directory of C:\Documents and Settings\Owner\Desktop\cpan libs\jpeacock-version
-8f1352c79510
01/05/2014 12:51 AM <DIR> .
01/05/2014 12:51 AM <DIR> ..
01/05/2014 04:31 AM 67 .hgignore
01/05/2014 04:31 AM 4,774 .hgtags
01/05/2014 04:31 AM 149 .hg_archival.txt
01/05/2014 04:31 AM 261 .shipit
01/05/2014 12:49 AM <DIR> lib
01/05/2014 12:51 AM 32,797 Makefile
01/05/2014 04:31 AM 4,447 Makefile.PL
01/05/2014 04:31 AM 404 MANIFEST
01/05/2014 04:31 AM 138 MANIFEST.SKIP
01/05/2014 12:51 AM 982 MYMETA.json
01/05/2014 12:51 AM 545 MYMETA.yml
01/05/2014 04:31 AM 9,985 README
01/05/2014 12:49 AM <DIR> t
01/05/2014 12:51 AM 45,056 vc70.pdb
01/05/2014 12:49 AM <DIR> vperl
01/05/2014 12:51 AM <DIR> vutil
12 File(s) 99,605 bytes
6 Dir(s) 1,425,846,272 bytes free
C:\Documents and Settings\Owner\Desktop\cpan libs\jpeacock-version-8f1352c79510>
--------------------------------------------------
FWIW, (I can't figure out if the same race condition can happen with your CPAN releases if a CPAN smoker tries them within seconds of being uped to PAUSE), looking at your CPAN tarball,
PAUSE tail log says
2014-01-04 20:44:40 $$7776 v1049: Info: renamed '/home/ftp/tmp/J/JP/JPEACOCK/version-0.9906.tar.gz' to '/home/ftp/pub/PAUSE/authors/id/J/JP/JPEACOCK/version-0.9906.tar.gz' (paused:789)
http://www.cpan.org/authors/id/J/JP/JPEACOCK/ says
[ ] version-0.9906.tar.gz 04-Jan-2014 12:44 111K
inside the tarball with WinRAR decompression tool says for Makefile.PL last mod 1-4-2014 9:45 AM. Changes is last mod 1-4-2014 3:34PM. I'm not sure how to analyze these 3 different times, (which are UTC and which are local time to someone's machine).