gap-packages / io

GAP package IO to do input and output
https://gap-packages.github.io/io/
Other
14 stars 14 forks source link

Directory name changes from io to IO #16

Closed olexandr-konovalov closed 10 years ago

olexandr-konovalov commented 10 years ago

I've noticed that the name of the directory was changed from io-X.Y to IO-X.Y, since my package building scripts tripped over it. Please confirm if this change is deliverate, so I will update them. If this is the case, may be worth to update README and other places where the path is mentioned.

fingolfin commented 10 years ago

That's an accident. I'll fix it ASAP. Thanks for noticing and reporting.

fingolfin commented 10 years ago

Should be fixed now, please try again.

olexandr-konovalov commented 10 years ago

I can't see new release - same version 4.4 as it was yesterday. Since the release already happened, you should increment the version number to 4.4.1 or 4.5 and update PackageInfo.g file at http://gap-system.github.io/io/PackageInfo.g

fingolfin commented 10 years ago

Huh? The PackageInfo.g for 4.4 always referenced the files (and download URLs) io-4.4.tar.gz and io-4.4.tar.bz2. These did not exist previously. So, your scripts should have failed with an error, since downloading the source failed. Are you saying by some magic, they still managed to find the incorrectly named source files on the download server?

In any case: Nothing has changed except for the case in the name of the archive files, as well as the case of the directories they extract to. I don't see why this would warrant a change of the version number.

olexandr-konovalov commented 10 years ago

No, it works differently. The script retrieved the same PackageInfo.g for the version 4.4 as it was this morning, figured out that there are no changes in this file and did nothing else. The files io-4.4.tar.gz and io-4.4.tar.bz2 should have existed previously since IO 4.4. was picked up this morning. Now it's not possible to quietly replace them with a different content, sorry...

This is a part of the log from this morning:

* IO - new version 4.4 discovered!!!
  ============================================
  Getting new archives from 
  https://github.com/gap-system/io/releases/download/v4.4/io-4.4
[ ".tar.bz2", ".tar.gz" ]
  unpacking io-4.4.tar.gz
  Validation of the info file successful!
  Package IO (version 4.4 from 24/09/2014) has dependencies:
  * NeededOtherPackages [ [ "GAPDoc", ">= 1.2" ] ]
  * GAP >=4.7.4
  finding text files  . . .

=====================text files==========================
IO-4.4/CHANGES
IO-4.4/GPL
olexandr-konovalov commented 10 years ago

P.S. Thus, the name of the archives was in lowercase all the time - is the name of the directory which accidentally was written in uppercase.

fingolfin commented 10 years ago

Well, I still have the files around that I originally uploaded -- they definitely have "IO" and not "io". I also just restored things to how they were half an hour ago, see https://github.com/gap-system/io/releases and the files are clearly listed with upper case, there.

However, it seems that the GitHub file server is case agnostic. If I click on the download link there, linking to https://github.com/gap-system/io/releases/download/v4.4/IO-4.4.tar.gz then it downloads IO-4.4.tar.gz. But if I manually change the filename to lowercase, it still accepts this and downloads the file with the incorrect filename.

YUCK. This is a bug with GitHub's file services then. Really annoying.

fingolfin commented 10 years ago

I just put the correct files back, and tried the reverse, i.e., the files on the server now have lowercase name, but I changed the download URL string to https://github.com/gap-system/io/releases/download/v4.4/IO-4.4.tar.bz2 and tried to download that. This also performed a download, but this time, the file name did not get changed, i.e. the actual file ended up having a lowercase name. This is really bad.

olexandr-konovalov commented 10 years ago

Why not to make io-4.5.1 then? (sorry I meant io-4.4.1 of course)

fingolfin commented 10 years ago

First off, I submitted a bug reported to GitHubg. Secondly, I will (grudgingly) make a 4.4.1 release (not 4.5.1 -- I assume that was just a typo?) Thirdly, I still think it's silly that I need to make a new version just for changing the case of the directory files are contained in (though if I put my "unix packager" hat on, I must admit I see the point... still, it's annoying sigh).

But luckily, with the ReleaseTools scripts, that should be a matter of minutes. :)

olexandr-konovalov commented 10 years ago

Thanks - will restart the check manually now (that is, when 4.5.1 will appear).

Regarding the new version requirement - since you've released publicly 4.4, it's already a release. It could be downloaded by the user (or an author of the alternative distribution) from IO website within minutes, especially with GitHubs system of notifications. Imagine that later we will discover that there is a new release and will download something, which may be already different. As we see, even the change of the case of the directory names may cause a trouble, and resolving support issues would be unnecessary complicated if we can't speak about the same version of the package.

This happened in real life with some packages in the past, and debugging took two days until it was discovered that there were several versions of archives with the same release.

Of course, I am running check for package updates only daily, so there is a small window when package authors still can manage to swap the archive silently at their risk.

fingolfin commented 10 years ago

As I said: as a unix packager, I am fully aware of this problem (I have had to deal with it for the past 10-15 years :). But normally, it would not have mattered, because the release would not have reached anybody, as its filename was wrong, and the only place referencing it all used the correct filename. Only due to the broken behaviour of the GitHub file servers did anybody see the files...

Anyway, 4.4.1 is up.

olexandr-konovalov commented 10 years ago

Have you replaced the http://gap-system.github.io/io/PackageInfo.g ? It still says 4.4, while the website says 4.4.1

fingolfin commented 10 years ago

I did (and I just verified that by downloading the PackageInfo.g, it says 4.4.1 for me).

olexandr-konovalov commented 10 years ago

Thanks - the new version has been picked up:

* IO - new version 4.4.1 discovered!!!
  ============================================
  Getting new archives from 
  https://github.com/gap-system/io/releases/download/v4.4.1/io-4.4.1
[ ".tar.bz2", ".tar.gz" ]
  unpacking io-4.4.1.tar.gz
  Validation of the info file successful!
  Package IO (version 4.4.1 from 25/09/2014) has dependencies:
  * NeededOtherPackages [ [ "GAPDoc", ">= 1.2" ] ]
  * GAP >=4.7.4
  finding text files  . . .

=====================text files==========================
io-4.4.1/CHANGES
io-4.4.1/GPL
...