Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support more archive formats #6

Open
4 tasks
taiki-e opened this issue Jul 27, 2021 · 9 comments
Open
4 tasks

Support more archive formats #6

taiki-e opened this issue Jul 27, 2021 · 9 comments
Labels
enhancement New feature or request

Comments

@taiki-e
Copy link
Owner

taiki-e commented Jul 27, 2021

@taiki-e taiki-e added the enhancement New feature or request label Jul 27, 2021
@joepio
Copy link

joepio commented Aug 14, 2021

No archive would be awesome :)

@samtay
Copy link
Contributor

samtay commented May 5, 2023

No archive would be awesome :)

Seconded! My use case is that I want the user to be able to run a very portable sh install.sh that fetches binaries, and I don't want to make any assumptions about what archive tools they have installed.

@taiki-e taiki-e mentioned this issue Oct 5, 2023
@damooo
Copy link

damooo commented Nov 11, 2023

Supporting upx will enable shipping really consise binaries.

@matiaskorhonen
Copy link
Contributor

matiaskorhonen commented Aug 14, 2024

Supporting DMG on macOS would be nice (especially as DMGs support stapling the notarization)

create-dmg might be helpful for this…

@taiki-e
Copy link
Owner Author

taiki-e commented Sep 3, 2024

Btw, "no archive" is not yet officially supported (#6 is tracking issue for it), but it is considered possible to work around that limitation by using the asset option.

@taiki-e
Copy link
Owner Author

taiki-e commented Sep 3, 2024

I think there are two possible APIs here.

One is to deprecate the existing tar option and add a tar-gz option which means the same thing, and then will add options such as:

with:
  tar-gz: unix     # .tar.gz (alias: tar, default: unix)
  tar-bz2: none    # .tar.bz2 (default: none)
  tar-xz: none     # .tar.xz (default: none)
  zip: windows     # .zip (default: windows)
  no-archive: none # binary with no archive (default: none)
  dmg: none        # .dmg (default: none)
  deb: none        # .deb (default: none)
  upx: none        # upx (default: none)
  # etc...

This should be consistent with existing APIs and very easy to add implementations.

The second is to add an option for comprehensive file formatting. Something like:

with:
  format: tar.gz, tar.bz2, tar.xz, zip, no-archive # etc...

This is not consistent with existing APIs and would likely need to be made mutually exclusive.

I don't have a strong opinion on which one to adopt, and was going to discuss it with who said they were interested in working on this issue, but since no one seems to be interested in working on this issue, I'll just leave the idea here.

@matiaskorhonen
Copy link
Contributor

If there are breaking changes coming, one thing I'd quite like to see is more granularity for the archive selection.

For example, I'd like to have be able to select zip for Windows and Mac but tar.gz for linux. Or zip for Windows, dmg for Mac, and tar.gz for linux.

@taiki-e
Copy link
Owner Author

taiki-e commented Sep 3, 2024

@matiaskorhonen

Unless we change the defaults, adding variants other than unix and windows doesn't break anything in particular. For example, even if we add the variants linux and macos, we can implement the variant unix to mean linux,macos,freebsd,etc., as-is.

Or do you want a completely different API?

@matiaskorhonen
Copy link
Contributor

Ah, I'd have no problem if that could be accomplished with the existing API. I just assumed that it would cause some breakage…

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants