-
-
Notifications
You must be signed in to change notification settings - Fork 97
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
Makefile: various improvements #495
base: gh-pages
Are you sure you want to change the base?
Conversation
881170a
to
4f20528
Compare
e3032cc
to
153729d
Compare
153729d
to
a2e4546
Compare
@fmichonneau, I rebased this on top of the latest |
Thanks for this Maxim! |
744aa89
to
cd3ff69
Compare
Sounds reasonable. I've updated the PR accordingly.
In the light that we want to be able to run
|
6a81fa5
to
3f73ef2
Compare
@fmichonneau, do you have any concerns or questions about this PR? |
@fmichonneau, ping. If desired, I can factor out the fix for the |
Thanks for the ping @maxim-belkin, this had fell off my radar. |
We can:
Personally, I think |
Also, The Carpentries could remind maintainers to update the bundles (by running |
@fmichonneau, I added |
Failure (R Intro Geospatial (macOS), link) seems to be unrelated to the change. |
I'm going to move the fix for the |
20f284a
to
300b50a
Compare
300b50a
to
c0dc9e3
Compare
1. Internal 'bundler' target to check that Bundler is installed 2. 'bundle' target for building required gems into the `.vendor/bundle` directory: a. This is an alias for `.vendor/bundle` target which depends on Gemfile and Gemfile.lock b. It installs/updates bundled gems only if necessary 3. Gemfile target to check that Gemfile is present Gemfile.lock target
@fmichonneau @zkamvar, I've implemented several improvements to this PR and I think it's ready for your reviews.
And it looks like these changes passed all the tests while I was writing all of the above, so this is promising. |
Technically, prerequisites can be executed in arbitrary order, so we can't rely on 'update-bundle' prerequisite being executed before 'serve-offline' or 'site-offline' prerequisites. Therefore, we have to decouple these targets.
Use proper(implemented in Makefile: fix 'bundle config' command flags #559).bundle config set --local path ...
syntax instead of (incorrect)bundle config --local set path ...
Decide whether to usebundle
orjekyll
based on the presence ofGemfile
orGemfile.lock
Use(implemented in Makefile: use SHELL to call bin/knit_lesson.sh #562)$(SHELL)
to callbin/knit_lessons.sh
: this lets us avoid relying on/usr/bin/env
findingbash
.bundle
target for building.vendor/bundle
directory with required gems:a. This is an alias for
.vendor/bundle
target which depends onGemfile
andGemfile.lock
b. It installs/updates bundled gems only if necessary
Gemfile
target for lessons that don't use it.a.
Gemfile.lock
target that creates it based onGemfile
(implemented in Makefile: better cleanup #560)clean
target: remove.vendor
and.bundle
directories andGemfile.lock
file.