How to install latest (untagged) state of a repo using bower?

I have a very small repo in which I do all dev work in the master branch and use tags as "stable" points in history.

I guess by default Bower seems to fetch the latest tagged version of a repo. I'm trying to get the most recent commit in the master branch.

I've tried running all these, in every conceivable order:

bower cache-clean mypackage
bower install mypackage --force-latest
bower install mypackage --force --force-latest
bower install mypackage --force

I've also tried adding latest to my bower.json file:

"dependencies": {
  "mypackage": "latest"
}

And then running:

bower update mypackage

No matter what it seems to always get the latest tagged state.

How do I get the latest, most up-to-date, untagged state of the project?


Solution 1:

Specify a git commit SHA instead of a version:

bower install '<git-url>#<git-commit-sha>'

Example:

bower install 'git://github.com/yeoman/stringify-object.git#d2895fb97d'

You can also specify a branch instead of a SHA, but that's generally not recommended unless it's in development and you control all the parts.

Solution 2:

Yes, you can point to the git url, or use name/repo shorthand (for github repos):

bower.json

{
  "name": "bower-test",
  "dependencies": {
    "dpm": "[email protected]:okfn/dpm.git",
    "docker-nmpjs": "terinjokes/docker-npmjs"
  }
}

More in the docs

As @roi noted in the comments, you can use the --save flag to automatically add dependencies to bower.json, e.g. bower install terinjokes/docker-npmjs --save

Solution 3:

You can install a branch in Bower > 1.0.0:

bower install xxx#foo-branch

More details at https://github.com/bower/bower/issues/107#issuecomment-22352689.

Solution 4:

If you are using a bower.json file you specify the latest version of a branch with a line in either the dependencies or devDependencies as appropriate for your project configuration:

"angular-bootstrap": "[email protected]:angular-ui/bootstrap.git#bootstrap3",

Then when you run bower install the latest version of that branch is installed. That would be branch bootstrap3 of angular-ui in this example.