Question: https://github.com/cryogen-project/cryogen/pull/220 switches incremental compilation on by default for those creating a new blog. I think it is OK as it doesn't change any existing behavior but maybe worth discussing and hearing your opinions. So for existing sites, incremental compilation is opt in, for new ones it would be opt out.
Suppose we make a release that includes cryogen-core
with PR#149 and cryogen
with PR#220, how would someone using those releases, who creates a new blog, then opt-out of the incremental compilation?
I'll change 220 to be opt in with the separate lein alias etc
Great, thanks. Do PR#149 and PR#200 need to be coordinated and applied together? Meaning, can we make a release of cryogen-core
with PR#149, and then later, make a release of cryogen
with PR #220? Another way of asking - if we release cryogen-core
with PR#149 and someone starts using the new release with the current release of cryogen
, will that work?
Yes, do core release first. The change there is non breaking and backwards compatible. Notice 220 does not change anything, it only adds new behavior.
OK. Thanks. That makes my life a lot easier. I was trying to figure out how to test PR#220 and PR#149 at the same time. I will now focus on getting out a new release for cryogen-core
.
Now that the new version of cryogen-core
is out, I took another look at PR#220. I looked at the code diffs, and it visually looks okay. I am trying to figure out how best to test this. Can you share the commands you used? Thanks.
I created a new blog site then implanted the #220 changes to it. Then I run 1 by 1, lein serve, lein serve-fast, clojure - X:serve, clojure - X:serve-fast and, while running, changed a blog post.
The ideal situation would be to recompile only those pages that need it by using a dependency graph. But, that might take a long time to implement. In the mean time, the currently implemented incremental compilation does provide significant practical value to some subset of users right now. So, I'd be okay with it being an opt-in for present and future blogs. Being an explicit opt-in, users will be aware of the tradeoffs they are making.