Makefile: various improvements#495
Makefile: various improvements#495maxim-belkin wants to merge 5 commits intocarpentries:gh-pagesfrom
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 usebundleorjekyllbased on the presence ofGemfileorGemfile.lockUse(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/envfindingbash.bundletarget for building.vendor/bundledirectory with required gems:a. This is an alias for
.vendor/bundletarget which depends onGemfileandGemfile.lockb. It installs/updates bundled gems only if necessary
Gemfiletarget for lessons that don't use it.a.
Gemfile.locktarget that creates it based onGemfile(implemented in Makefile: better cleanup #560)cleantarget: remove.vendorand.bundledirectories andGemfile.lockfile.