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

binary Windows releases (on github) #130

Open
c33s opened this issue Apr 11, 2023 · 13 comments
Open

binary Windows releases (on github) #130

c33s opened this issue Apr 11, 2023 · 13 comments
Labels
help wanted Extra attention is needed

Comments

@c33s
Copy link

c33s commented Apr 11, 2023

it would be nice to have binary releases on github (including windows). for golang tools it is quite common that they provide multiplatform builds on github.

@bagder
Copy link
Member

bagder commented Apr 12, 2023

If someone wants to work on that I'll help out, but it's not a priority for me personally.

@bagder
Copy link
Member

bagder commented Apr 12, 2023

lots of distros already ship trurl.

@bagder bagder closed this as completed Apr 15, 2023
@c33s
Copy link
Author

c33s commented Apr 17, 2023

having a official windows binary would still be a thing

@bagder
Copy link
Member

bagder commented Apr 17, 2023

Agreed. It would be great if someone provided such.

@bagder bagder reopened this Apr 17, 2023
@bagder bagder changed the title binary releases on github binary Windows releases (on github) Apr 17, 2023
@bagder bagder added the help wanted Extra attention is needed label Apr 17, 2023
@fragolinux
Copy link

fragolinux commented Apr 19, 2023

@bagder i started working on this a few days ago, but had no time to go on... if you want to take a look...

it builds, but both gh actions files should be merged in a single one using matrix, so there will be a single final release, with all the artifacts generated and attached to it...

or maybe 2 files, 1 for build and 1 for release...

right now, the fastest build will push the binary and create release, the slowest follows and halts overwriting the other built one (different arch), and cannot create a new release because it already exists...

once merged these 2 files in a single build one, i think the windows part should be trivial to add...

edit:
i see now that you already build the 3 platforms, so you're just missing the "upload artifacts" and "release" steps

@bagder
Copy link
Member

bagder commented Apr 19, 2023

I would presume that for Linux and macOS this is less interesting than for Windows.

@fragolinux
Copy link

I would presume that for Linux and macOS this is less interesting than for Windows.

why? Having binaries instead of just sources published on releases page would allow to release an asdf plugin, too, to have this versioned

@c33s
Copy link
Author

c33s commented Apr 19, 2023

i also think that having official binaries for all platforms is good thing. being able to simply wget the binary with the latest version from the official source is so nice. not having to wait for third parties until they update their packages or fiddle around with docker. one of the main reasons i meanwhile narrow my search to golang for small cli tools (sometimes rust too) - they offical sources ship binaries.

@bagder
Copy link
Member

bagder commented Apr 26, 2023

If someone wants to provide builds for any platform, feel free to work on it.

@fragolinux
Copy link

If someone wants to provide builds for any platform, feel free to work on it.

@bagder done! :D
example release: https://github.com/fragolinux/trurl/releases/tag/v0.6.0

@vszakats
Copy link
Member

vszakats commented Nov 9, 2023

I've added trurl to curl-for-win. For now I did not enable it in the live releases,
but if we agree that this would be desired, it's certainly possible. Let me know.

They are already present in the daily curl-for-win builds:
https://github.com/curl/curl-for-win/actions/workflows/daily.yml

FWIW it's not only Windows (3 CPUs), but also LInux MUSL (amd64, aarch64,
riscv64), Linux glibc (amd64, aarch64, riscv64) and
macOS (Universal Apple Silicon + Intel).

@vszakats
Copy link
Member

vszakats commented Nov 15, 2023

Windows builds are running now in CI.

For release purposes it may use a slightly different configuration, for a bit smaller binaries with longer build times. Otherwise the existing CI logic can be re-used for this Issue almost as-is. The question is where to upload the result, how to trigger it and adding the necessary logic for these.

It would be a better way to distribute trurl than adding them to the official curl package. The latter features shared trurl.exe (~40KB), while the ones here are building a static trurl.exe with a thin libcurl, making it 350-400KB per .exe.

UPDATE: After further optimizing thin libcurl, .exe size is down to 250KB. And 189KB without IMAP URL options support.

@vszakats
Copy link
Member

vszakats commented Dec 7, 2023

After another round of optimizations with trurl builds, the size of the reference Windows ARM64 turl.exe is down to 89KB with IMAP, and 53KB without. Can use "unity" mode now without side-effects on build size. It means the existing CI process can be reused as-is for live builds.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

4 participants