Skip to content
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

New features: automatic dependency order and resumable builds #14

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

hlship
Copy link

@hlship hlship commented Mar 14, 2017

This patch adapts code previously implemented in-house as a hook.

It allows lein-sub to analyze the sub-projects and work out inter-dependencies and, from that, the build order.

It works around a bug in lein-cljsbuild.

It also makes build resumable; our project has 48 sub-projects, so being able to recover from minor problems and typos is very important.

@kumarshantanu
Copy link
Owner

@hlship Thanks for putting in so much meticulous work in the PR, though I need some time to understand the patch in its entirety. One thing I am curious to know is when/how does the inter-dependency resolution trigger. Is it always automatic, irrespective of whether the sub-projects are specified via :sub entry in project.clj or via the command-line? Is there a way to opt out of the automatic resolution?

@hlship
Copy link
Author

hlship commented Mar 24, 2017

I'll have answer for you in a bit ... busy week for me! Lacinia release, Clojure/West next week!

@hlship
Copy link
Author

hlship commented Apr 13, 2017

I may have a chance to get back to this tomorrow. Meanwhile, I may have found a problem on novel artifacts, not yet in a repository.

@hlship hlship closed this Apr 13, 2017
@hlship hlship reopened this Jun 2, 2017
@hlship
Copy link
Author

hlship commented Jun 2, 2017

... now, where we we?

It's driven by the :sub key of the master project; it builds the dependency ordering file if it does not already exist (or is out of date) and then iterates in the order defined there.

I had closed this for a couple of reasons, one of which I can't reproduce, and was probably a problem when I was working with it. Basically, I was worried that ordering would fail if the dependencies weren't in the local repository, but that is not the case, so I think this is good to go.

@kumarshantanu
Copy link
Owner

@hlship I tried to test the PR by running cd subtest followed by lein sub clean. With lein-sub 0.3 I get the order [child child2], but with this PR the order I'm getting is [child2 child]. It appears the PR auto-discovers the order even though the order is specified in project.clj under the :sub key. What am I missing?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants