LT--
Consider asking HOWTO questions at Stack Overflow: http://stackoverflow.com/tags/dart
If you want to support circular dependencies, by all means go ahead. I personally think that dependencies should form a DAG and I strive for that in my libraries.
So here's another approach that could solve my problem -- the notion of "development dependencies" or "test dependencies". It isn't that uncommon, you can find them e.g. in Ruby world or Java world (maybe elsewhere too). They would be only symlinked into the "packages" directory in the "test" directory (which would mean that it couldn't be a symlink to the root "packages" directory anymore, but I see that only as a cosmetic issue).
Or another option (more complicated and more questionable) -- something like a "scope" of a dependency (that's actually what we have in Java/Maven world):
dependencies:
detester:
git: ...
scope: test
It would be a list of directories where the package would be symlinked (possible values: root, bin, example, test, web -- I think that's all we have). Unset value means "all".
Both options also have an additional benefit of self-documentation.
Ideas?
LT
If you want to support circular dependencies, by all means go ahead. I personally think that dependencies should form a DAG and I strive for that in my libraries.
So here's another approach that could solve my problem -- the notion of "development dependencies" or "test dependencies". It isn't that uncommon, you can find them e.g. in Ruby world or Java world (maybe elsewhere too).
They would be only symlinked into the "packages" directory in the "test" directory (which would mean that it couldn't be a symlink to the root "packages" directory anymore, but I see that only as a cosmetic issue).
Or another option (more complicated and more questionable) -- something like a "scope" of a dependency (that's actually what we have in Java/Maven world):
dependencies:
detester:
git: ...
scope: testIt would be a list of directories where the package would be symlinked (possible values: root, bin, example, test, web -- I think that's all we have). Unset value means "all".
Both options also have an additional benefit of self-documentation.
Ideas?
Also, Dart allows cyclic library imports, so it would feel strange to disallow that at the package level.
So here's another approach that could solve my problem -- the notion of "development dependencies" or "test dependencies". It isn't that uncommon, you can find them e.g. in Ruby world or Java world (maybe elsewhere too).
Dev dependencies are definitely on our radar. I don't think there's a bug yet (and if you'd like, feel free to file one), but I believe it's something we intend to support.
--