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

Clean up build artifacts #180

Open
straight-shoota opened this issue Mar 16, 2022 · 1 comment
Open

Clean up build artifacts #180

straight-shoota opened this issue Mar 16, 2022 · 1 comment

Comments

@straight-shoota
Copy link
Member

straight-shoota commented Mar 16, 2022

The following files are currently produced as build artifacts of the nightly release workflow on circleci (see https://app.circleci.com/pipelines/github/crystal-lang/crystal/8502/workflows/77e21f43-14ad-4840-91c7-53a30649ca20/jobs/68065).

crystal-1.4.0-dev-1-darwin-universal.tar.gz (46 MB)
crystal-1.4.0-dev-1-linux-x86_64-bundled.tar (95 MB) ❌
crystal-1.4.0-dev-1-linux-x86_64-bundled.tar.gz (30 MB)
crystal-1.4.0-dev-1-linux-x86_64.tar (94 MB) ❌
crystal-1.4.0-dev-1-linux-x86_64.tar.gz (29 MB)
crystal-1.4.0-dev-1-linux-x86_64.tar.xz (19 MB) ❓
crystal-1.4.0-dev-1.universal.pkg (46 MB)
crystal-1.4.0-dev-docs.tar.gz (13 MB)
crystal_1.4.0-dev_amd64.snap (24 MB) ❓
docker-1.4.0-dev-alpine-build.tar.gz (262 MB) ❓
docker-1.4.0-dev-alpine.tar.gz (173 MB) ❓
docker-1.4.0-dev-ubuntu-x86_64-build.tar.gz (370 MB) ❓
docker-1.4.0-dev-ubuntu-x86_64.tar.gz (208 MB) ❓
versions-1.4.0-dev.json (2.1 kB) ❌

I'm wondering about the purpose of some of them. I suppose some are just intermediary steps that just happen do end up being published.

  • ❌ The uncompressed .tar files are redundant and more wasteful than the compressed counterparts.
  • ❓ Compressed packages are usually tar.gz, but the linux build also has a tar.xz. Is there a particular reason for this? The xc compression seems quite more efficient than gz. But it's still a question whether the duplication makes sense. Or if we should consider xc compressed files for other artifacts as well.
  • ❓ The docker images are already published to docker hub. The snap package is uploaded to snapcraft. Do they even need to be available as directly downloadable files?
  • ❌ The json file is completely unnecessary. That's just a temporary artifact from the API docs build process.

This initiative is related to crystal-lang/crystal#11902.

Some of these artifacts probably don't need to be pushed at all, others may be useful for debugging but don't need to be made publicly available.

@straight-shoota
Copy link
Member Author

straight-shoota commented Mar 16, 2022

For reference, these are the files published on the last GitHub release (https://github.com/crystal-lang/crystal/releases/tag/1.3.2):

crystal-1.3.2-1-darwin-universal.tar.gz (43.8 MB) 2.5k
crystal-1.3.2-1-linux-x86_64-bundled.tar.gz (28.3 MB) 162
crystal-1.3.2-1-linux-x86_64.tar.gz (27.9 MB) 12.0k
crystal-1.3.2-1.universal.pkg (43.8 MB) 41
crystal-1.3.2-docs.tar.gz (12.1 MB) 30
crystal-1.3.2-windows-x86_64-msvc-unsupported.zip 30.8 MB 167

(The numbers at the end are the numbers of downloads.)

This also sparks the question whether the darwin .pkg is actually useful when almost everyone uses the .tar.gz. I don't even know if there's a significant difference between the two formats.

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

No branches or pull requests

1 participant