Version Constraints DSL
When adding a dependency on a package, you must specify a constraint on the version. Since Buckaroo can work directly on Git, this is a little different to other package managers:
v1,1,1.0.0,1.0.0take only semantic version1.0.0>= 1.2take only semantic versions >=1.2.0^1.2works as in NPM~1.2works as in NPMbranch=mastertake only commits on branchmastertag=some-tagtake only commits at tagsome-tagrevision=dc16c91af2519b6129a33bd6e1675ebf73739103take only revisiondc16c91...any(branch=master tag=abc 1.2.3)take versions that satisfy at least one of:branch=mastertag=abc1.2.3
all(branch=master branch=develop)take versions that satisfy all of:branch=masterbranch=develop
!tag=abctake any version that does not satisfytag=abc
As you might expect, these building blocks can be combined to write complex expressions:
all(!branch=master any(tag=abc tag=def 1.0.0))all(>=1.0.0 !any(1.0.0 1.3.4 revision=dc16c91af2519b6129a33bd6e1675ebf73739103))