flat assembler
Message board for the users of flat assembler.

Index > Feedback > fasmg: provide version-specific download

Author
Thread Post new topic Reply to topic
teapot



Joined: 06 Jun 2020
Posts: 3
Location: Gensokyo
teapot
Packages managers downloading from upstream url will not download the correct file after a new version is released.
It could be useful to provide version-specific download urls, like fasmg-VERSION.zip.
This would also allow to download previous versions, as it is already possible for fasm.
Post 13 Jul 2020, 01:15
View user's profile Send private message Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 7782
Location: Kraków, Poland
Tomasz Grysztar
Well, now that fasmg has matured, this make a little more sense, in the past new versions were more like a development snapshots, coming out sometimes very frequently.

However, if you rely on a specific version package to not change over time, please note that - both with fasm 1 and fasm g - I used to sometimes update the latest package when the only changes were in various auxiliary files, like examples, documentation, even OS interfaces. The version number of fasm/fasmg refers just to the version of actual assembler core - and this is why there is also the date of the last update provided next to download links.

I have updated my scripts to include the version string in file name now, but...

Well, it turns out I have a perfect opportunity to demonstrate why I may not always be able to keep previously released packages in unchanged form: I had to update the contents of current release, because the previous variant of the same package was causing too many false positives in various AV software and because of that the entire website has been marked as unsafe by Google. Apparently it went unnoticed until I added a file with a new name to the site, and it immediately got picked up, scanned and flagged as malicious.
Post 13 Jul 2020, 11:49
View user's profile Send private message Visit poster's website Reply with quote
teapot



Joined: 06 Jun 2020
Posts: 3
Location: Gensokyo
teapot
I understand the idea of not updating the version number when only auxiliary files have been modified.
However, I think version change should not just represent change in the core components, but it should be any modification that need to reach users.
Modifying current package will cause problems with package managers downloading from upstream and using checksums to verify integrity.
Package managers not downloading from upstream will create a package corresponding to upstream's at the time of creation. It will then only be updated when a new version number is available.
Also, I don't think you should expect the user (or package maintainer) to check the date of last update when you already provide a version number.
Package managers rely on version numbers to update, if the version does not change then it cannot be differentiated from the old one.

My reasoning is:
- If a modification is made that is not important enough to update the version number, then it may not be worth updating the current package. It could wait for next release.
- If the modification is worth updating the current package, then you should consider updating the version number because otherwise it may not reach users.
Post 14 Jul 2020, 10:37
View user's profile Send private message Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 7782
Location: Kraków, Poland
Tomasz Grysztar
Yes, I understand the issues with package managers and for this reason nowadays I mostly refrain from updates that do not change the version number. However, as demonstrated above, sometimes I may be forced to remove/update the previously published packages due to external pressure, for instance if I want to avoid warnings in some of the most popular browsers. And thus I feel I need to maintain my statements that the date of the package is the only reliable point of reference. For packages that are not the latest release and therefore are not linked from the main page, the matter is a bit simpler - they should remain unchanged, although they may get removed in the future (especially if they start causing any trouble).

With all the potential issues in mind, perhaps you might prefer to look for another route, for example getting fasmg from its official GitHub repository - a reference to specific commit should be reliably stable. I generally keep this repository synchronized with Fossil-based one (which is the original, but does not distribute binaries - you would have to also download fasm 1 to be able to bootstrap from it).

A side note about the core version vs interface version numbers: this is generally an important matter in case of fasm and some interfaces, like fasmw, have their own, separate version numbers. The version of the core warrants that a given source code should be assembled the same as with any other variant of fasm that uses the same core, no matter the interface.
Post 14 Jul 2020, 10:58
View user's profile Send private message Visit poster's website Reply with quote
teapot



Joined: 06 Jun 2020
Posts: 3
Location: Gensokyo
teapot
The github/fossil repos are exactly what solves the problem. I didn't know about them.
Is there something similar for fasm 1?

Github repo works fine, but is it normal for the fossil repo to restrict the download of tarballs?
I may be doing it wrong, but I tried something like https://flatassembler.net/fossil/repo/fasmg/tarball/fasmg.tar.gz?r=8e238706f2014f85437e2b9239ef51754ccd48fb.

Anyway, github works great for what I need.
Also, thanks for the fast replies!
Post 14 Jul 2020, 16:21
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You can attach files in this forum
You can download files in this forum


Copyright © 1999-2020, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.

Website powered by rwasa.