erlef / build-and-packaging-wg

Build and Packaging Working Group
19 stars 5 forks source link

Improve Erlang & Elixir availability through Windows' package manager, Chocolatey #42

Closed JamesLavin closed 1 year ago

JamesLavin commented 2 years ago

(Thank you all for your incredible contributions to the Erlang & Elixir community!!! Apologies if I'm sending this request to the wrong working group.)

Background

As an Erlang & Elixir developer and fan And as an Elixir developer forced to use Windows at work and prohibited from installing binaries but allowed to install Choco packages I want recent versions of Erlang & Elixir to be downloadable from Windows' package manager, Chocolatey To foster Erlang & Elixir usage on all OSes, including Windows

The Elixir package on Chocolatey has not been updated in over a year: https://community.chocolatey.org/packages/Elixir#versionhistory

And the Erlang package on Chocolatey has not been updated in half a year: https://community.chocolatey.org/packages/Erlang#versionhistory

While I very much appreciate efforts of those who have enabled downloading of Erlang & Elixir via Chocolatey, perhaps the EEF could improve the frequency of updates and reduce the current very high latency between Erlang/OTP & Elixir releases and Choco package releases?

Tasks

The following tasks must be completed to resolve this issue.

Again, THANK YOU all for your amazing work!!!

josevalim commented 2 years ago

Hi @JamesLavin! 🎄

Elixir has a mailing list only for announcements of new releases. My suggestion is for someone to subscribe to this mailing list and publish new Chocolatey versions. My personal take is that we shouldn't be responsible for it because then we will be easily maintaining 5 different distributions but I believe we should coordinate with individuals that do so.

I believe @OnorioCatenacci is responsible for Elixir in Chocolatey.

JamesLavin commented 2 years ago

Thank you for taking time to respond, @josevalim. Will close this issue.

Cheers,

James

josevalim commented 2 years ago

@JamesLavin, I reopened because it is only my opinion and I definitely do not speak for the working group. We should definitely wait for others' feedback and the smart thing might be to ignore me. :)

JamesLavin commented 2 years ago

I want to seize this opportunity to express my tremendous gratitude for you taking the time, risk, and initiative to create Elixir and move this community and ecosystem forward so incredibly far, @josevalim! In "Ted Lasso," a character exclaims "Football is life!" I feel "Elixir is life!" You discovered the amazing -- but very niche -- Erlang and managed to extend it into something even greater and bring along many other wonderful developers to embrace and extend your creation. I listen to the burgeoning Elixir podcast industry, and it's clear a whole generation of developers is falling in love with Elixir, some even as their first programming language. Some of these young developers call out the Elixir community for being especially welcoming, for which you deserve great credit because you have been a tremendous role model for us all. Thank you for everything!!!

ferd commented 2 years ago

Yeah, mostly this is a question of finding volunteers to do it. Most of the packaging work is voluntary and done in people's free time. I assume the former maintainer for Chocolatey may have moved on to a different role or no longer has the time to deal with it.

I've switched this from an action item to an agenda item to discuss in the working group, but truth is that unless someone steps up and decides to take over the ownership, the current group is unlikely to do it. We can however facilitate discussions and track the relevant people to make it easier to coordinate all of that.

OnorioCatenacci commented 2 years ago

I'm sorry I couldn't respond to this sooner. I posted this on the Elixir Forum in November of 2020

https://elixirforum.com/t/support-of-chocolatey-nuget-packages/35470

As you can see from the thread there were no takers. My time hasn't gotten more free since but since apparently I'm the only one willing to actually take on the job, I will see about updating the CNG packages when I can find some time. Honestly I didn't think this would be so much of an issue since there's a perfectly good Windows installer and the CNG package isn't really that advanced as CNG packages go. If you'd be willing to take this on James, I'd be happy to hand it off to you.

I used to be able to release new CNG versions as soon as they were available but honestly my time outside of work (especially since the pandemic started) has not been abundant. Plus I no longer work on a Windows box for the day job; I do have a Windows VM available for testing but soon they're going to release Windows 11 and I won't have that. Even when I did Windows work for the day job it was difficult for me to support the CNG via my work machine due to them having restrictions on using PowerShell.

I guess to bottom line this, I can see about getting the CNG packages all updated but I would really like to hand off the work to someone else.

On Thu, Dec 23, 2021 at 4:01 PM JamesLavin @.***> wrote:

I want to seize this opportunity to express my tremendous gratitude for you taking the time, risk, and initiative to create Elixir and move this community and ecosystem forward so incredibly far, @josevalim https://github.com/josevalim! In "Ted Lasso," a character exclaims "Football is life!" I feel "Elixir is life!" You discovered the amazing -- but very niche -- Erlang and managed to extend it into something even greater and bring along many other wonderful developers to embrace and extend your creation. I listen to the burgeoning Elixir podcast industry, and it's clear a whole generation of developers is falling in love with Elixir, some even as their first programming language. Some of these young developers call out the Elixir community for being especially welcoming, for which you deserve great credit because you have been a tremendous role model for us all. Thank you for everything!!!

— Reply to this email directly, view it on GitHub https://github.com/erlef/build-and-packaging-wg/issues/42#issuecomment-1000521618, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABFOFJKFVKDWVPIY6M4C53USOE2XANCNFSM5KVMBZAQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

JamesLavin commented 2 years ago

I COMPLETELY understand, @OnorioCatenacci. You shouldn't feel even one iota of guilt over this. You're not responsible for maintaining this forever. Thank you so very much for creating this and for maintaining it for as long as you have!!! You have certainly enabled many Windows-based developers to learn and use Elixir! Thanks also for taking time to try to find someone to adopt the project.

The main reason I brought this to this WG is because I didn't want to burden you and hoped that maybe EEF could figure something out.

I would very much like to take this on, but I use only Macs & Linux at home and face serious institutional constraints at my current employer. Contributing to open source has basically been off-limits due to legal concerns. (That said, there was a recent discussion that might possibly soften that stance eventually. Sorry to be so vague... I'm not allowed to share any details.) And we met in June with the creators of a popular and very reasonably priced Elixir tool I was excited to use, but six months later the enterprise licensing team has not -- to my knowledge -- done anything. So I have reason to believe bureaucratic constraints would prevent me from taking this on, but I will certainly ask when I "return to the office" (speaking metaphorically, of course!) next week. Won't share my personal feelings about this situation. Just please understand that the decision to take this on through my job must be signed off way above my pay grade.

tsloughter commented 2 years ago

Can this be automated? Aside from figuring out how to trigger the build process, could the publishing to Chocolatey be automated if that issue were taken care of?

JamesLavin commented 2 years ago

@tsloughter There appears to be a mechanism for "automatic packaging":

Ruby and Python both list "chocolatey-community" as a "package maintainer":

(I'm uncertain whether this is what we want/need because I've never built a Choco package -- except by pushing a button to trigger a CI pipeline someone else built -- or pushed a package to Chocolatey.org, but this appears promising.)

ferd commented 2 years ago

@OnorioCatenacci How doable do you feel it is to be able to turn the steps you usually do manually and automate them? If it seems doable, we can probably absorb that into some other build automation and make this lighter (and without people fearing they'd have to "own the maintainership" to patch a thing)

josevalim commented 2 years ago

Good call. We are automating Elixir releases. We might as well make the publishing of Chocolatey packages part of it if someone wants to contribute. :)

OnorioCatenacci commented 2 years ago

Actually I had written an Elixir script to automate creation of the CNG artifacts a while back. It's up on GitHub (here: https://github.com/ElixirWin/choco_util). If you can point me in the direction of your automation, I'd be happy to see if we can work something up. It's all there--the Erlang stuff, the Rebar stuff and, of course the Elixir stuff.

On Tue, Jan 4, 2022 at 11:10 AM José Valim @.***> wrote:

Good call. We are automating Elixir releases. We might as well make the publishing of Chocolatey packages part of it if someone wants to contribute. :)

— Reply to this email directly, view it on GitHub https://github.com/erlef/build-and-packaging-wg/issues/42#issuecomment-1004940812, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABFOFKVHVWHPOIWA4HPNPDUUMLY3ANCNFSM5KVMBZAQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

josevalim commented 2 years ago

Sorry @OnorioCatenacci, I missed your follow up and saw it just now. The Elixir automation would help only with Elixir but not the the other packages.

Perhaps we could have a GitHub Actions runner that checks for new releases every 6 hours or so. If one is available, we go ahead and publish new packages? Maybe someone with GitHub Actions experience help setup the basic structure?

I will be happy to fund the work via Dashbit or request funds to the EEF. :)

OnorioCatenacci commented 2 years ago

I am happy to give the time for free. I will try to draft something no later than Friday the 25th

On Sun, Feb 20, 2022 at 1:02 PM José Valim @.***> wrote:

@OnorioCatenacci https://github.com/OnorioCatenacci we could have a GitHub Actions runner that checks for new releases every 6 hours or so. If one is available, we go ahead and publish new packages? Maybe someone with GitHub Actions experience help setup the basic structure?

I will be happy to fund the work via Dashbit or request funds to the EEF. :)

— Reply to this email directly, view it on GitHub https://github.com/erlef/build-and-packaging-wg/issues/42#issuecomment-1046290647, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABFOFMJV7Q6657J32WRWZLU4EUEFANCNFSM5KVMBZAQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

-- Onorio

josevalim commented 2 years ago

/cc @paulo-ferraz-oliveira @max-au as they seem to be working on sort of CI for the working group.

EDIT: Sorry @garazdawi, I pinged you by accident. :/

paulo-ferraz-oliveira commented 2 years ago

Hello.

@josevalim, thanks for the CC. I was actually talking to @max-au about this, this morning. I'm not (yet?) involved in the CI process for building the Erlang/Elixir/... artefacts (I am involved in the GHA for using said artefacts - and may help with GHA if required - via erlef/setup-beam), and still have a few pending questions about this (and where the direction is expected with regards to Windows and macOS, ..., triggering the builds - you talk about 6-hour interval polling, Docker images, ...).

I'll let @max-au reply, since he's much better equipped for it than I am.

Cheers.

OnorioCatenacci commented 2 years ago

Do you guys know what kind of languages are available for GHA? I'm assuming bash scripts but I confess I haven't looked yet.

On Mon, Feb 21, 2022 at 6:04 AM Paulo F. Oliveira @.***> wrote:

Hello.

@josevalim https://github.com/josevalim, thanks for the CC. I was actually talking to @max-au https://github.com/max-au about this, this morning. I'm not (yet?) involved in the CI process for building the Erlang/Elixir/... artefacts (I am involved in the GHA for using said artefacts - and may help with GHA if required - via erlef/setup-beam), and still have a few pending questions about this (and where the direction is expected with regards to Windows and macOS, ..., triggering the builds - you talk about 6-hour interval polling, Docker images, ...).

I'll let @max-au https://github.com/max-au reply, since he's much better equipped for it than I am.

Cheers.

— Reply to this email directly, view it on GitHub https://github.com/erlef/build-and-packaging-wg/issues/42#issuecomment-1046753746, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABFOFMTMK5VJ6MHKMFIWQ3U4IL3FANCNFSM5KVMBZAQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

josevalim commented 2 years ago

I assume anything because we can download any runtime that we need. :)

paulo-ferraz-oliveira commented 2 years ago

@OnorioCatenacci, what @josevalim said :) but if you're thinking about "out-of-the-box" shells, you have stuff like:

so it really depends on what virtual env. you start with (at the moment, Ubuntu, Windows and macOS)

OnorioCatenacci commented 2 years ago

I was trying to get a 1.13.3 package up on Chocolatey so we could have some time to work on GHA. My script I used to automatie it (shoot, back in 2017) isn't working for some reason. At any rate, I'll give it a whirl tomorrow when I can get to a genuine Windows box rather than a VM.

On Mon, Feb 21, 2022 at 5:38 PM Paulo F. Oliveira @.***> wrote:

@OnorioCatenacci https://github.com/OnorioCatenacci, what @josevalim https://github.com/josevalim said :) but if you're thinking about "out-of-the-box" shells, you have stuff like:

  • pwsh (all)
  • bash (all)
  • Python (all)
  • sh (Linux + macOS)
  • cmd (Windows)
  • ...

so it really depends on what virtual env. you start with (at the moment, Ubuntu, Windows and macOS)

— Reply to this email directly, view it on GitHub https://github.com/erlef/build-and-packaging-wg/issues/42#issuecomment-1047274464, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABFOFKEFTCBVEEDSHQBAA3U4K5G7ANCNFSM5KVMBZAQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

max-au commented 2 years ago

At the moment, the problem I am blocked on is inability to build OTP on Windows using Docker (for Windows). Current build process involves WSL1 installation, and I haven't yet figured out how to do that (how to install WSL1 into Windows Docker container).

Due to security considerations, GitLab's "shell" executor cannot be used to produce Windows builds.

Ideally I'd love to get some help with either enabling WSL1 in Windows Docker, or changing OTP build for Windows not to use WSL (given that WSL1 may not be futureproof, I'd prefer not to use it)

OnorioCatenacci commented 2 years ago

Ok--I got Elixir 1.13.3 on CNG which should help to stem some of the unhappiness people have.

A couple of things I am fairly sure we'll need to do (and I can likely handle):

We will need an account with an API key to post CNG packages up there. If someone can tell me what the name should be (ErlEF or ElixirBuilder or whatever), I can get that created for us and then share the password and API key with everyone. Just a minor detail that I think can be taken care of without holding anything else up.

As far as building Erlang on Windows . . . hmm. Does anyone know who from the Erlang team has been posting the Windows builds? I'm guessing we'd need something like Cygwin or MSys2 or something of that nature to build Erlang on Windows but since I've not had a pressing need to do so, I've never tried.

On Tue, Feb 22, 2022 at 12:11 PM Maxim Fedorov @.***> wrote:

At the moment, the problem I am blocked on is inability to build OTP on Windows using Docker (for Windows). Current build process involves WSL1 installation, and I haven't yet figured out how to do that (how to install WSL1 into Windows Docker container).

Due to security considerations, GitLab's "shell" executor cannot be used to produce Windows builds.

Ideally I'd love to get some help with either enabling WSL1 in Windows Docker, or changing OTP build for Windows not to use WSL (given that WSL1 may not be futureproof, I'd prefer not to use it)

— Reply to this email directly, view it on GitHub https://github.com/erlef/build-and-packaging-wg/issues/42#issuecomment-1048021867, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABFOFI3UEETVLWGJUWJ37TU4O7VBANCNFSM5KVMBZAQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

josevalim commented 2 years ago

Ok--I got Elixir 1.13.3 on CNG

Thank you!

We will need an account with an API key to post CNG packages up there. If someone can tell me what the name should be

@OnorioCatenacci you can call it Erlang Ecosystem Foundation (ErlEF if you need a shortcut). You can send me the password and I can make sure it goes to the appropriate parties.

As far as building Erlang on Windows . . . hmm. Does anyone know who from the Erlang team has been posting the Windows builds?

How have you published Erlang to Chocolatey so far?

JamesLavin commented 2 years ago

Ok--I got Elixir 1.13.3 on CNG which should help to stem some of the unhappiness people have.

Thank you so very much, @OnorioCatenacci!!! Greatly appreciated.

And thank you again for all the work you've put into making various versions of Erlang & Elixir available through Chocolatey over the years!!!

--James

ferd commented 2 years ago

@OnorioCatenacci you can call it Erlang Ecosystem Foundation (ErlEF if you need a shortcut). You can send me the password and I can make sure it goes to the appropriate parties.

We have a 1password vault for the B&P working group, so if you have access that's where it goes -- and if you don't have access, I can add it there.

max-au commented 2 years ago

I'm guessing we'd need something like Cygwin or MSys2 or something of that nature to build Erlang on Windows

Starting with OTP24, Windows build switched to WSL1 (from MSYS2). But then Microsoft has deprecated WSL1 (and WSL2 has issues with doing OTP build). It'd be great to have a PR to OTP that brings back MSYS2 build.

OnorioCatenacci commented 2 years ago

How have you published Erlang to Chocolatey so far?

Well so far there was an installer .exe which I'd just fetch from erlang.org. Then CNG would simply run the installer on the target machine.

On Wed, Feb 23, 2022 at 9:19 AM José Valim @.***> wrote:

Ok--I got Elixir 1.13.3 on CNG

Thank you!

We will need an account with an API key to post CNG packages up there. If someone can tell me what the name should be

@OnorioCatenacci https://github.com/OnorioCatenacci you can call it Erlang Ecosystem Foundation (ErlEF if you need a shortcut). You can send me the password and I can make sure it goes to the appropriate parties.

As far as building Erlang on Windows . . . hmm. Does anyone know who from the Erlang team has been posting the Windows builds?

How have you published Erlang to Chocolatey so far?

— Reply to this email directly, view it on GitHub https://github.com/erlef/build-and-packaging-wg/issues/42#issuecomment-1048828663, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABFOFK2FGGYBSAT4OOJRVLU4TUGRANCNFSM5KVMBZAQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

OnorioCatenacci commented 2 years ago

I'll create an ErlEF user id on CNG as soon as I get a chance. I'll forward the password to Jose. There's an API key associated with the accounts too but I'm pretty sure once you've got the ID and password you can simply log in and grab the API key. I haven't had to do that one in a long while so I can't completely remember. :)

On Wed, Feb 23, 2022 at 11:08 AM Maxim Fedorov @.***> wrote:

I'm guessing we'd need something like Cygwin or MSys2 or something of that nature to build Erlang on Windows

Starting with OTP24, Windows build switched to WSL1 (from MSYS2). But then Microsoft has deprecated WSL1 (and WSL2 has issues with doing OTP build). It'd be great to have a PR to OTP that brings back MSYS2 build.

— Reply to this email directly, view it on GitHub https://github.com/erlef/build-and-packaging-wg/issues/42#issuecomment-1048944936, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABFOFKRYWZ6TGB6B5RF3P3U4UA55ANCNFSM5KVMBZAQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

OnorioCatenacci commented 2 years ago

Ok, so I've created an ErlEF user on CNG. I can share the password with Jose via a direct email. I added the ErlEF user as a maintainer on the Elixir, Erlang and Rebar3 packages. There's some oddness going on from CNG but it shouldn't be anything that will hold us up significantly.

On Wed, Feb 23, 2022 at 11:11 AM Onorio Catenacci < @.***> wrote:

I'll create an ErlEF user id on CNG as soon as I get a chance. I'll forward the password to Jose. There's an API key associated with the accounts too but I'm pretty sure once you've got the ID and password you can simply log in and grab the API key. I haven't had to do that one in a long while so I can't completely remember. :)

On Wed, Feb 23, 2022 at 11:08 AM Maxim Fedorov @.***> wrote:

I'm guessing we'd need something like Cygwin or MSys2 or something of that nature to build Erlang on Windows

Starting with OTP24, Windows build switched to WSL1 (from MSYS2). But then Microsoft has deprecated WSL1 (and WSL2 has issues with doing OTP build). It'd be great to have a PR to OTP that brings back MSYS2 build.

— Reply to this email directly, view it on GitHub https://github.com/erlef/build-and-packaging-wg/issues/42#issuecomment-1048944936, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABFOFKRYWZ6TGB6B5RF3P3U4UA55ANCNFSM5KVMBZAQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

OnorioCatenacci commented 2 years ago

Jose could you send me a private email address to share this password to? Also I had to sign up for this under my own email address. Is there an email address that would be appropriate to use for ErlEF?

On Thu, Feb 24, 2022 at 1:52 PM Onorio Catenacci < @.***> wrote:

Ok, so I've created an ErlEF user on CNG. I can share the password with Jose via a direct email. I added the ErlEF user as a maintainer on the Elixir, Erlang and Rebar3 packages. There's some oddness going on from CNG but it shouldn't be anything that will hold us up significantly.

On Wed, Feb 23, 2022 at 11:11 AM Onorio Catenacci < @.***> wrote:

I'll create an ErlEF user id on CNG as soon as I get a chance. I'll forward the password to Jose. There's an API key associated with the accounts too but I'm pretty sure once you've got the ID and password you can simply log in and grab the API key. I haven't had to do that one in a long while so I can't completely remember. :)

On Wed, Feb 23, 2022 at 11:08 AM Maxim Fedorov @.***> wrote:

I'm guessing we'd need something like Cygwin or MSys2 or something of that nature to build Erlang on Windows

Starting with OTP24, Windows build switched to WSL1 (from MSYS2). But then Microsoft has deprecated WSL1 (and WSL2 has issues with doing OTP build). It'd be great to have a PR to OTP that brings back MSYS2 build.

— Reply to this email directly, view it on GitHub https://github.com/erlef/build-and-packaging-wg/issues/42#issuecomment-1048944936, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABFOFKRYWZ6TGB6B5RF3P3U4UA55ANCNFSM5KVMBZAQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

OnorioCatenacci commented 2 years ago

Ok so we can progress a bit in this conversation:

1.) As you may have guessed by now, I've been using the Precompiled.zip that Jose builds for Elixir and the installer app provided by Erlang.org for Erlang. If we wanted to continue to do that we could see about adopting the scripts I've used to use with GHA and that's that. Main hiccup I've had with them for several versions is this function: https://github.com/ElixirWin/choco_util/blob/bba4e4c80bb10a7af934c1e0c102be35d6435ce6/lib/choco_util.ex#L67. A few versions (of Erlang) back something changed on the Erlang side that it refused to connect securely. I can give you an exact error message if it helps but I've just been manually downloading the file and then running the script.

That said it seems as if the thought is to add something to the build process currently used to create precompiled.zip to create the CNG package from that. Am I understanding this correctly? If so, that's fine with me too. The Erlang stuff would be a different situation but if we can get the Elixir stuff fixed up that's a good step in the right direction.

2.) I added ErlEF to Elixir, Erlang and Rebar3 (those are the three CNG packages I've been maintaining). So when we're ready we should be able to directly post the completed packages to CNG without any further intervention.

3.) I don't have (nor have I ever had) automated unit or regression tests for the packages. CNG does it's own checking and I manually run a few smoke tests but I've never gotten round to automating anything. Since we're trying to reduce manual intervention, proper regression tests and unit tests seem a bit more important now. Would you all agree?

On Thu, Feb 24, 2022 at 1:59 PM Onorio Catenacci < @.***> wrote:

Jose could you send me a private email address to share this password to? Also I had to sign up for this under my own email address. Is there an email address that would be appropriate to use for ErlEF?

On Thu, Feb 24, 2022 at 1:52 PM Onorio Catenacci < @.***> wrote:

Ok, so I've created an ErlEF user on CNG. I can share the password with Jose via a direct email. I added the ErlEF user as a maintainer on the Elixir, Erlang and Rebar3 packages. There's some oddness going on from CNG but it shouldn't be anything that will hold us up significantly.

On Wed, Feb 23, 2022 at 11:11 AM Onorio Catenacci < @.***> wrote:

I'll create an ErlEF user id on CNG as soon as I get a chance. I'll forward the password to Jose. There's an API key associated with the accounts too but I'm pretty sure once you've got the ID and password you can simply log in and grab the API key. I haven't had to do that one in a long while so I can't completely remember. :)

On Wed, Feb 23, 2022 at 11:08 AM Maxim Fedorov @.***> wrote:

I'm guessing we'd need something like Cygwin or MSys2 or something of that nature to build Erlang on Windows

Starting with OTP24, Windows build switched to WSL1 (from MSYS2). But then Microsoft has deprecated WSL1 (and WSL2 has issues with doing OTP build). It'd be great to have a PR to OTP that brings back MSYS2 build.

— Reply to this email directly, view it on GitHub https://github.com/erlef/build-and-packaging-wg/issues/42#issuecomment-1048944936, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABFOFKRYWZ6TGB6B5RF3P3U4UA55ANCNFSM5KVMBZAQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

josevalim commented 2 years ago

That said it seems as if the thought is to add something to the build process currently used to create precompiled.zip to create the CNG package from that. Am I understanding this correctly?

That's what I was originally thinking but I am not sure if it makes sense if we don't have Erlang and Erlang will require a separate build. In any case, I think relying on the Windows Installers for the Erlang one is fine by me, and I would focus on automating that first?

Thank you @OnorioCatenacci!

OnorioCatenacci commented 2 years ago

Hi all!

Ok, I've started working on the GitHub actions--still very preliminary but I figured better to make an imperfect start, right?

Couple of things I wanted to ask about:

1.) It seems that in order to trigger a github action between repos (in this case I'll put the stuff to build the ChocolateyNugetPackage in the build-and-packaging-wg repo and I'll have the action triggered by the publication of a new release on the Elixir repo), I need a Personal Access Token on both sites. At least as far as I can tell anyway. May only need the PAT on the build-and-packaging-wg repo. I don't think I could create a new PAT on either repo. I've forked both of them in order to work on this but I don't want to wander too far down that path without knowing we can set up a PAT to make this all work.

2.) Does that seem like the best approach? I mean having the publication of a new Elixir release trigger a GH action on build-and-packaging? Or is there somewhere else you'd like this code to live?

Anyway, if all of you could share your thoughts on this, it'd be helpful!

On Fri, Feb 25, 2022 at 1:23 PM José Valim @.***> wrote:

That said it seems as if the thought is to add something to the build process currently used to create precompiled.zip to create the CNG package from that. Am I understanding this correctly?

That's what I was originally thinking but I am not sure if it makes sense if we don't have Erlang and Erlang will require a separate build. In any case, I think relying on the Windows Installers for the Erlang one is fine by me, and I would focus on automating that first?

Thank you @OnorioCatenacci https://github.com/OnorioCatenacci!

— Reply to this email directly, view it on GitHub https://github.com/erlef/build-and-packaging-wg/issues/42#issuecomment-1051089464, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABFOFL7JF37M7OCNGAZTBDU47CLTANCNFSM5KVMBZAQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

josevalim commented 2 years ago

@OnorioCatenacci I can definitely setup a token that pings on of the build and packaging repositories on the Elixir side and I think we can ask the OTP team to do the same too. If we can't, then we can always setup something that checks every 1 hour or so if there is a new release. So I would not worry about this part, we can definitely figure something out!

garazdawi commented 2 years ago

When a tag is pushed to the Erlang/OTP repository, there is no guarantee that the corresponding windows binary is available yet. So triggering of our repository is probably going to be error prone. I would suggest instead to poll the releases for when the windows binary artifacts are added there.

OnorioCatenacci commented 2 years ago

That's good to know.

I'm going to first focus on getting Elixir set up on that automation scheme and then I'll work on Rebar3 and Erlang.

On Mon, Mar 21, 2022 at 5:45 AM Lukas Larsson @.***> wrote:

When a tag is pushed to the Erlang/OTP repository, there is no guarantee that the corresponding windows binary is available yet. So triggering of our repository is probably going to be error prone. I would suggest instead to poll the releases https://github.com/erlang/otp/releases for when the windows binary artifacts are added there.

— Reply to this email directly, view it on GitHub https://github.com/erlef/build-and-packaging-wg/issues/42#issuecomment-1073690372, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABFOFK7RPYI3IKS5DBSA33VBBAJ3ANCNFSM5KVMBZAQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

ferd commented 2 years ago

Anything new on that front or help we can provide?

OnorioCatenacci commented 2 years ago

Hi Jose et al!

I was trying to get ahead of the calls for having Elxiir 1.14.0 on Chocolatey NuGet so I figured since I've not built the automated way to create the package I'd do the manual way to give myself some time.

You used to have a Precompiled.zip at https://github.com/elixir-lang/elixir/releases/download/v/Precompiled.zip but it doesn't seem to be there now. Can you give me the new path for this? Or should I use the elixir-otp-.zip file?

On Wed, Aug 3, 2022 at 6:54 AM Onorio Catenacci < @.***> wrote:

No nothing yet; I have been working on designing a more general solution (packages not just for CNG but also snap and flatpak and rpm etc) but I need to get some sort of MVP going.

On Tue, Aug 2, 2022 at 2:11 PM Fred Hebert @.***> wrote:

Anything new on that front or help we can provide?

— Reply to this email directly, view it on GitHub https://github.com/erlef/build-and-packaging-wg/issues/42#issuecomment-1203059058, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABFOFK6EOCG32LSNCULKX3VXFQE7ANCNFSM5KVMBZAQ . You are receiving this because you were mentioned.Message ID: @.***>

-- Onorio

josevalim commented 2 years ago

Hi Onorio, you should use elixir-otp-<version>.zip file? Ideally the otp-25 version with Erlang/OTP 25. :)

OnorioCatenacci commented 2 years ago

No nothing yet; I have been working on designing a more general solution (packages not just for CNG but also snap and flatpak and rpm etc) but I need to get some sort of MVP going.

On Tue, Aug 2, 2022 at 2:11 PM Fred Hebert @.***> wrote:

Anything new on that front or help we can provide?

— Reply to this email directly, view it on GitHub https://github.com/erlef/build-and-packaging-wg/issues/42#issuecomment-1203059058, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABFOFK6EOCG32LSNCULKX3VXFQE7ANCNFSM5KVMBZAQ . You are receiving this because you were mentioned.Message ID: @.***>

-- Onorio

OnorioCatenacci commented 2 years ago

I know it's been a while since I responded on this. I've been thinking about this right along; I've just been fighting my developer magpie syndrome and trying to force myself to concentrate on this a bit.

Given some of the level of knowledge on this thread, I thought I'd ask; would you build an entire headless phoenix implementation for the listener or would you build something smaller? The main reason I'd be inclined to build something smaller is less attack surface. But building something smaller is, to some extent, fighting the tooling. I mean it's a lot easier to build a phoenix app that just listens for the GitHub action--at least as far as I can tell. Any suggestions?

By the way, I'm trying to get this done for ChocolateyNuget first but I'm also going to work on building binary packages for other platforms as well. I mean it seems silly not to add other platforms if I can so we can have one central means of packaging stuff up.

On Mon, Mar 21, 2022 at 9:16 AM Onorio Catenacci < @.***> wrote:

That's good to know.

I'm going to first focus on getting Elixir set up on that automation scheme and then I'll work on Rebar3 and Erlang.

On Mon, Mar 21, 2022 at 5:45 AM Lukas Larsson @.***> wrote:

When a tag is pushed to the Erlang/OTP repository, there is no guarantee that the corresponding windows binary is available yet. So triggering of our repository is probably going to be error prone. I would suggest instead to poll the releases https://github.com/erlang/otp/releases for when the windows binary artifacts are added there.

— Reply to this email directly, view it on GitHub https://github.com/erlef/build-and-packaging-wg/issues/42#issuecomment-1073690372, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABFOFK7RPYI3IKS5DBSA33VBBAJ3ANCNFSM5KVMBZAQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

ferd commented 2 years ago

Given the current situation, my guess would be that the first thing we want to do is optimize for volunteers' time, even if it comes with a TODO to get something more elegant attached to it.

OnorioCatenacci commented 2 years ago

Yeah I confess I just need to buckle down and get this done. No excuse--simply laziness on my part. I mean I want to get 1.14 going and then I can work on automating. I am the king of procrastination--as I say not any excuse, just the truth.

On Tue, Oct 11, 2022 at 9:14 AM Fred Hebert @.***> wrote:

Given the current situation, my guess would be that the first thing we want to do is optimize for volunteers' time, even if it comes with a TODO to get something more elegant attached to it.

— Reply to this email directly, view it on GitHub https://github.com/erlef/build-and-packaging-wg/issues/42#issuecomment-1274669312, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABFOFPVWYS4QVQNJYTFEYDWCVR3PANCNFSM5KVMBZAQ . You are receiving this because you were mentioned.Message ID: @.***>

ferd commented 2 years ago

Oh my intent was not anything like that. You're free to work or spend your time however you'd like. I was simply encouraging for perfect not to be the enemy of a good enough solution.

lukebakken commented 1 year ago

Hi everyone!

Team RabbitMQ have taken over the maintenance of the Erlang, Elixir and Rebar3 packages. We get enough questions about packages being out-of-date that we contacted @OnorioCatenacci the other day and discussed taking over.

I've started to move the source code here:

https://github.com/chocolatey-beam

If anyone would like an invitation to the org, just let me know. I'll get the Rebar3 work done soon. My eventual goal is to have everything auto-updating, like we do with RabbitMQ.

I see that there is an entire collection of auto-updating community packages here, so that may be a good "final resting place" for this work. We'll see.

Happy New Year!

OnorioCatenacci commented 1 year ago

Thanks Luke for taking this over!

On Thu, Dec 29, 2022 at 6:06 PM Luke Bakken @.***> wrote:

Hi everyone!

Team RabbitMQ (mostly me at the moment) have taken over the maintenance of the Erlang, Elixir and Rebar3 packages. We get enough questions about packages being out-of-date that we contacted @OnorioCatenacci https://github.com/OnorioCatenacci the other day and discussed taking over.

I've started to move the source code here:

https://github.com/chocolatey-beam

If anyone would like an invitation to the org, just let me know. I'll get the Rebar3 work done soonw. My eventual goal is to have everything auto-updating, like we do with RabbitMQ.

I see that there is an entire collection of auto-updating community packages here https://github.com/chocolatey-community/chocolatey-packages, so that may be a good "final resting place" for this work. We'll see.

Happy New Year!

— Reply to this email directly, view it on GitHub https://github.com/erlef/build-and-packaging-wg/issues/42#issuecomment-1367627373, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABFOFJY5JMMSM3ROMQWUTTWPYKQ3ANCNFSM5KVMBZAQ . You are receiving this because you were mentioned.Message ID: @.***>

OnorioCatenacci commented 1 year ago

I'm glad to see you all getting so much done on getting these packages up to date! Glad to see I've handed this off to folks who can get this moving again!

On Thu, Dec 29, 2022 at 6:06 PM Luke Bakken @.***> wrote:

Hi everyone!

Team RabbitMQ (mostly me at the moment) have taken over the maintenance of the Erlang, Elixir and Rebar3 packages. We get enough questions about packages being out-of-date that we contacted @OnorioCatenacci https://github.com/OnorioCatenacci the other day and discussed taking over.

I've started to move the source code here:

https://github.com/chocolatey-beam

If anyone would like an invitation to the org, just let me know. I'll get the Rebar3 work done soonw. My eventual goal is to have everything auto-updating, like we do with RabbitMQ.

I see that there is an entire collection of auto-updating community packages here https://github.com/chocolatey-community/chocolatey-packages, so that may be a good "final resting place" for this work. We'll see.

Happy New Year!

— Reply to this email directly, view it on GitHub https://github.com/erlef/build-and-packaging-wg/issues/42#issuecomment-1367627373, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABFOFJY5JMMSM3ROMQWUTTWPYKQ3ANCNFSM5KVMBZAQ . You are receiving this because you were mentioned.Message ID: @.***>

lukebakken commented 1 year ago

I've published the latest Erlang and Elixir packages to Chocolatey, and I'm waiting on a manual review of Rebar3 here - https://community.chocolatey.org/packages/rebar3/3.20.0

Seems like this issue could be closed? Or, if you'd like to wait until this whole process is automated that's fine. After Rebar3 is approved that's my next step.

ferd commented 1 year ago

I'm fine closing this! Feel free to drop by in the EEF slack with updates whenever you have them, or in issues here as well! Thanks for taking this over :)