Skip to content

Migrate repository to haskell org? #6252

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

Open
hasufell opened this issue Sep 22, 2023 · 11 comments
Open

Migrate repository to haskell org? #6252

hasufell opened this issue Sep 22, 2023 · 11 comments

Comments

@hasufell
Copy link
Contributor

Historically, GHCup has provided more stack binaries than upstream: https://downloads.haskell.org/~ghcup/unofficial-bindists/stack/2.11.1/

This mainly is about Darwin M1. I've stopped doing that, because it's too much work.

@angerman and me have set up private Github runners for Darwin M1 and linux aarch64. However, these can only be shared amongst the github haskell org.

If stack would migrate the main repo there, then we could share those runners. This would change nothing in terms of ownership.

Opinions @mpilgrem @snoyberg @cdornan @david-christiansen @chreekat

@david-christiansen
Copy link

Far be it from me to tell open-source maintainers what to do :)

I will share some information that I've heard in conversation with Haskell users, however. GHCup's ARM binaries of Stack have been very useful for a number of teams who would otherwise have been building their own from scratch, taking valuable time away from the problems that they actually wanted to solve. Anything that can be done to help make it easier to support aarch64 would be useful for the Haskell ecosystem as a whole.

@chreekat
Copy link
Member

Just exploring options: could the runners also be enabled for this group?

@hasufell
Copy link
Contributor Author

Just exploring options: could the runners also be enabled for this group?

No, github runners don't work like that. It would require spawning a separate instance/process. That is expensive and complicates load issues.

@mpilgrem
Copy link
Member

If this is mainly about macOS/AArch64, I do have a macOS/AArch64 machine at home. I have sometimes wondered: could I just build the stack executable locally, put it in an archive file and manually add it to the GitHub release, with its .sha256 file?

I've always assumed that the sticking point is the .asc file. It appeared to me that somehow required a secret GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}, which is unknown to me. However, if that an .asc file is something that I could make locally, and somebody could give me/trust me with the step-by-step 'recipe' for making one, then I'd be happy to do that.

@mpilgrem
Copy link
Member

I do follow this: github/roadmap#528 (GitHub Actions: Apple Silicon (M1) powered macOS runners (Public Beta)) which, if I am interpreting it correctly, implies that something is planned for October-December 2023.

@hasufell
Copy link
Contributor Author

I've always assumed that the sticking point is the .asc file.

That is the release signing key.

echo "$RELEASE_SIGNING_KEY"|gpg --import
cd _release
for asset in *; do
shasum -a 256 "$asset" >"$asset.sha256"
gpg --digest-algo=sha512 --detach-sig --armor -u 0x575159689BEFB442 "$asset"
done

You could retrieve and export it manually in CI, by connecting to the runner: https://github.com/mxschmitt/action-tmate

Since the gpg key is imported and doesn't appear to have a password, you'd run: gpg --armor --export-secret-key 0x575159689BEFB442.

Then import it on your machine like the GH action code does.

Make sure to set up a tmate session with a registered ssh key, so you're 100% sure the session is secure and no one else sees the key: https://github.com/mxschmitt/action-tmate#use-registered-public-ssh-keys

@mpilgrem
Copy link
Member

@hasufell, many thanks for the recipe. By way of experiment, I think I have successfully added a binary distribution for macOS/AArch64 to the assets for the Stack 2.13.0.1 release.

@hasufell
Copy link
Contributor Author

The question about sharing CI resources still stands.

@simonmichael
Copy link
Contributor

As an interested user, I'd be happy to see stack appearing among the "first class haskell tools" at https://github.com/haskell .

I imagine a lot of links and docs would need updating (even if github redirects).

Wouldn't there be some implication for ownership, by moving from the commercialhaskell org to the haskell org ? Eg, now the Haskell Foundation would be the ultimate authority instead of FP Complete ?

@hasufell
Copy link
Contributor Author

Eg, now the Haskell Foundation would be the ultimate authority instead of FP Complete ?

I don't think so. The Haskell Foundation doesn't own the haskell namespace afaik.

The ownership of said namespace isn't very clearly defined. I'd guess it started through haskell.org and various admins were added (I'm admin too).

I don't see this as controversial from an ownership perspective. I don't think anyone is going to abuse their power in the haskell Github org without major repercussions.

It allows us to share infrastructure however and is also a soft signal to the community that we're past tooling wars and consider stack and stackage as intrinsic parts of it.

@mpilgrem
Copy link
Member

Outside of code comments and in-app documentation, I think there are only two references to https://github.com/commercialhaskell/stack in Stack's own code, and they are:

  1. in the defaults for stack upgrade (Stack.Options.UpgradeParser); and

  2. in Stack.Setup.downloadStackReleaseInfoGitHub.

There are, of course, a lot of references in Stack's own documentation and in relation to its online documentation. For example, at https://github.com/commercialhaskell/get-haskellstack-org/blob/main/_redirects and at the corresponding Read The Docs account.

https://github.com/commercialhaskell/stackage-content, the location of Stack's default setup-info dictionary, contains a lot of references to https://github.com/commercialhaskell/stack/releases.

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

No branches or pull requests

5 participants