Skip to content

Allow packages and tools to use .tar.xz format #2008

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

Closed
3 tasks done
PaulStoffregen opened this issue Dec 9, 2022 · 6 comments · Fixed by #2012
Closed
3 tasks done

Allow packages and tools to use .tar.xz format #2008

PaulStoffregen opened this issue Dec 9, 2022 · 6 comments · Fixed by #2012
Assignees
Labels
conclusion: resolved Issue was resolved topic: code Related to content of the project itself type: enhancement Proposed improvement

Comments

@PaulStoffregen
Copy link

PaulStoffregen commented Dec 9, 2022

Describe the request

Please support .tar.xz compression for packages and tools.

xz compression saves about 40% compared to bz2, which can substantially reduce download time for user and bandwidth cost for hosting large package and tools files.

Describe the current behavior

Here is a test package index using .tar.xz.

https://www.pjrc.com/teensy/td_158-beta3-xztest/package_teensy_index.json

Install Teensy version 0.58.3 to test.

capture

Arduino CLI version

0.29

Operating system

N/A

Operating system version

any

Additional context

No response

Issue checklist

  • I searched for previous requests in the issue tracker
  • I verified the feature was still missing when using the nightly build
  • My request contains all necessary details
@PaulStoffregen PaulStoffregen added the type: enhancement Proposed improvement label Dec 9, 2022
@per1234 per1234 added the topic: code Related to content of the project itself label Dec 10, 2022
@facchinm
Copy link
Member

If we add new formats, thus obsoleting for good the java ide, I'd love if we'd also consider adding support for zstd, which is crazy fast for extraction and also provides good compression.

@PaulStoffregen
Copy link
Author

PaulStoffregen commented Dec 14, 2022

This may be a stupid question, but is just releasing IDE 1.8.20 completely out of the question?

@cmaglie cmaglie self-assigned this Dec 14, 2022
@cmaglie cmaglie added this to the Arduino CLI 0.30.0 milestone Dec 14, 2022
@ubidefeo
Copy link

I had a conversation with @per1234 and @cmaglie

We decided that we'll do the following:

  • support .tar.xz in Arduino CLI (likely from 0.30.x)

  • support zstd in the same version of Arduino CLI

  • IDE 2.x will use this Arduino CLI version when available and we'll release it

  • Platform specs will be updated to reflect the changes in supported formats

  • IDE 1.x will remain untouched

  • Arduino will keep releasing its platform index with the old format

  • We'll announce the new formats and let developers implement them

  • We'll specify that they are only available as of the specific versions of Arduino CLI and IDE 2.x

  • Legacy Teensyduino won't break IDE 1.x because everything is bundled

  • @PaulStoffregen will have to keep the format for future Teensyduino releases (if any) to the old format

Everyone happy with it?
I'm pushing this one into the next Sprints set

Thank you for your patience.

PS: great input, @PaulStoffregen
I'm always down with saving on data transfers 🙌🏼

@PaulStoffregen
Copy link
Author

IDE1 frozen is nice for me. Really not missing porting Java patches and publishing new installers for each IDE release!

@cmaglie cmaglie linked a pull request Dec 15, 2022 that will close this issue
5 tasks
@PaulStoffregen
Copy link
Author

I had to move the test case URL and .tar.xz files. New location:

https://www.pjrc.com/teensy/td_158-beta3-xztest/package_teensy_index.json

As before, install Teensy version 0.58.3 to test.

@per1234 per1234 added the conclusion: resolved Issue was resolved label Jan 16, 2023
@PaulStoffregen
Copy link
Author

PaulStoffregen commented Dec 1, 2023

Quick followup, we're testing performance of BZ2, ZST, XZ for installing Teensy's package, now that IDE releases have this additional compression support. Conversation and several people's experience is at this forum thread: https://forum.pjrc.com/index.php?threads/should-we-use-bz2-or-zst-or-xz-compression-for-teensy-downloads-in-arduino-ide-2-2-x.73981/ TL;DR = zstd looks like the clear winner.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
conclusion: resolved Issue was resolved topic: code Related to content of the project itself type: enhancement Proposed improvement
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants