-
-
Notifications
You must be signed in to change notification settings - Fork 13
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
Detect platform identifier with init script #60
Conversation
There are a couple of issues right now:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rather than true/false for glibc, can this be:
check for glibc: true/false
check for musl: true/false
If neither comes up, we error out?
@Theodus are you thinking with this that we have 2 ponyup packages for Linux, one for musl, one for gnu and folks download the one that is appropriate for their distro? |
532bed7
to
7ff7df5
Compare
We want to do bootstrap in a completely Pony free environment. Previously, it was being done in an environment that had Pony installed. It probably wouldn't ever be a problem, but this is a better test setup.
7ff7df5
to
a820564
Compare
6de6188
to
ae25280
Compare
5b2833d
to
38a624c
Compare
@Theodus I'm having reservations about this. The problem: We need to link to libSSL. If we also link to Glibc, then we have to dynamically link the SSL lib. The statically linked binaries are very nice. Having a single ponyup is very nice. I think that linking against Glibc might be worse than having musl users have to give their platform. Rustup defaults to Glibc and requires you to explicitly request musl. I like the bootstrap testing changes that have been added to this PR. I think we should definitely keep them in some form (they already found a bug). Ideas:
|
@SeanTAllen I agree with your concerns. I'll remove the libc detection bits from this PR and add go forward with expecting the user to provide the libc in |
Ok, you do it |
@Theodus ok, the temporary -musl bootstrap test is in, once this is merged, it can be removed via PR after the next nightly to verify everything fully works. |
@Theodus I updated the PR comment with additional info. If there is anything else you think should be added to it, please do and we can use that comment as the commit comment when we squash and merge. |
Looks good to me. I should probably remove the bit about needing |
@Theodus ya and the README update for ponyc, I'll update that as well. And we can merge that after the next ponyup release (which I plan to do before the end of the year). |
@Theodus should the bootstrap test be running |
Just make seems fine to me |
@Theodus are these failures at this point because not all the tools have macOS releases yet? The error messages are really obscure at this point, we should definitely improve them. It's unclear to me what the failures are. |
They are a result of the packages not being available, yes |
@Theodus what do you think of breaking the tests apart so that release and nightly are different? that would be a bit more clear. it appears that release tests are hardcoded to specific versions. what is the idea with that? is it recent releases, any releases, all releases? what is your thought for those. |
Only the select test has hard coded versions. The sync tests are a port from the shell script and uses the 2 most recent nightly and release builds. |
What about |
Good idea, I always forget that pony has ifdefs |
All CI tests are passing now except for the macOS bootstrap (which we expect to fail) |
Merged. After tonight's nightly we should be able to remove the temporary musl script. @Theodus can you open an issue to remove the |
No longer needed. Was only needed until the code under test was available as a nightly. See #60
No longer needed. Was only needed until the code under test was available as a nightly. See #60
No longer needed. Was only needed until the code under test was available as a nightly. See #60
No longer needed. Was only needed until the code under test was available as a nightly. See #60
No longer needed. Was only needed until the code under test was available as a nightly. See #60
Detect platform using a
.platform
config file created by the init script. This also cleans up much of the code for theshow
command and adds tests for the platform string parsing.With this change, supplying
--platform=musl
on musl-based Linux distros like Alpine should no longer be required as "musl-based" should be detected when ponyup is installed.If ponyup is upgraded from an earlier version without using the init script, then this change will have no impact and
--platform=musl
will continue to be needed.