-
Notifications
You must be signed in to change notification settings - Fork 10
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
discussion #4
Comments
Hello @timotheecour, thanks for this detailed feedback!
Done. Thanks! I am a big fan of the unofficial bash script mode, but I forgot to use that in Travis.
I intend to use a common config.nims for all my projects like this. With config.nims, I simply
I was bothered by bash scripts inline in Travis earlier, but not such much after I discovered the multi-line YAML syntax. Also, I haven't used Appveyor, and don't intend to use it as Travis works for my projects. So I didn't yet think about having to port Travis stuff to Appveyor :)
I haven't measured but I didn't like the idea of caching and then restoring ~250MB of csources. It very likely that building it from scratch as I am doing right now is taking much more time. I need to reconsider if I really need to rebuild nim from csources each time. Thanks.
I am not sure.
You mean why I used
Yes, you understood why I wasn't using
This is the blocking issue: nim-lang/nimble#542. So far, for each new Nim project, I need to copy just the .travis.yml, and it works almost as is with very little tweaks if needed (and thus I do weird things like this in the |
Thinking aloud, may be I should move part of my .travis.yml and the config.nims to a custom koch like nim project like you suggested. Thanks for the suggestion! |
you need
set -e
.travis.yml as done here https://github.com/nim-lang/Nim/blob/fbd6743ea1db89eef3dd89ceb7c0cdcb648c8055/.travis.yml#L35 so it fails 1st error ; it'll make the script more robust, and probably simplerinstead of a giant (and complex) https://github.com/kaushalmodi/hello_musl/blob/master/config.nims why not instead have a bootstrapping nim binary where u can enjoy full benefits of nim (instead of nims limitations), analog to koch.nim eg:
nim musl foo.nim
would become:nim c -r musl.nim foo.nim
(with proper caching, u'd only pay (minimal IMO) cost of buildingmusl.nim
the 1st time; alternatively u can turn your repo into a proper nimble project that contains a binarymusl
that gets built; u can even keep themusl
task but it'd forward to :exec "musl ..."
likewise, instead of a giant travis.yml (which would be a pain to port to appveyor), why not move bulk of it to a bootstraping nim file (maybe same as above) that takes care of everythign once there is an initial nim built; ie, same spirit as what i did here: [CI] fix #10041 move bulk of
travis
andappveyor
logic to koch.nim nim-lang/Nim#10183 which greatly simplified my life after that PRis this actually needed (ie makes a practical difference)? if so, could we benefit from it in Nim's travis/appveyor too?
ditto with:
git clone --single-branch --branch devel --depth=1 "${NIMREPO}" "${NIMDIR}"
instead of what we have in Nim's travis (simply git clone)replace a bunch of lines with:
sh build_all.sh
eg:if that doesn't work for u, maybe we should make it work for u by improving
sh build_all.sh
(eg making optional some of the stuff u may not need like koch tools)=> that way, things r more DRY
Figure out how to have nimble install install the binary generated by nim musl
happy to help if u tell me where you're blocking
The text was updated successfully, but these errors were encountered: