- Revert update semver version from 2.x to 5.x, fixes (#1896)
- Make bower commands work from subdirectories, fixes (#1893)
- Put auto shallow cloning for git behind a flag, fixes (#1764)
- If cwd provided explicitly, force using it, fixes #1866
- Pluggable Resolvers! http://bower.io/docs/pluggable-resolvers/
- Update semver version from 2.x to 5.x (#1852)
- Auto-sort dependencies alphabetically (#1381)
- Make bower commands work from subdirectories (#1866)
- No longer prefer installing bower as global module (#1865)
- [fix] Reading .bowerrc upwards directory tree (#1763)
- [fix] Update bower-registry-client so it uses the same bower-config as bower
- Add login and unregister commands (#1719)
- Automatically detecting smart Git hosts (#1628)
- [bower/config#23] Allow npm config variables (#1711)
- [bower/config#24] Merge .bowerrc files upwards directory tree (#1689)
- Better homedir detection (514eb8f)
- Add --save-exact flag (#1654)
- Ensure extracted files are readable (tar-fs) (#1548)
- The version command in the programmatic API now returns the new version (#1755)
- Some minor fixes: #1639, #1620, #1576, #1557, 962a565, a464f5a
- Improved Windows support (AppVeyor CI, tests actually passing on Windows)
- OSX testing enabled on TravisCI
It also includes improved test coverage (~60% -> ~85%) and many refactors.
- [stability] Fix versions for unstable dependencies (#1532)
- [fix] Update tar-fs to support old tar format (#1537)
- [fix] Make analytics work again (#1529)
- [fix] Always disable analytics for non-interactive mode (#1529)
- [fix] Bower init can create private packages again (#1522)
- [fix] Show again missing newline for bower search output (#1538)
- [fix] Restore install missing dependencies on update (1519)
- [fix] Back down concurrency from 50 to 5 (#1483)
- [fix] Read .bowerrc from specified cwd (#1301)
- [fix] Disable shallow clones except those from GitHub (#1393)
- [fix] Expose bower version (#1478)
- [fix] Bump dependencies, including "request" (#1467)
- [fix] Prevent an error when piping bower output to head (#1508)
- [fix] Disable removing unnecessary resolutions (#1061)
- [fix] Display the output of hooks again (#1484)
- [fix] analytics: true in .bowerrc prevents user prompt (#1470)
- [perf] Use
tar-fs
instead oftar
for faster TAR extraction (#1490)
- [fix] Handle
tmp
sometimes returning an array (#1434)
- [fix] callstack error when processing installed packages with circular dependencies (#1349)
- [fix] Prevent bower list --paths` failing with TypeError (#1383)
- "bower install" fails if there's no bower.json in current directory (#922)
- [fix] Make --force always re-run installation (#931)
- [fix] Disable caching for local resources (#1356)
- [fix] Emit errors instead throwing them when using bower.commands API (#1297)
- [fix] Main files and bower.json are never ignored (#547)
- [fix] Check if pkgMeta is undefined during uninstall command (#1329)
- [fix] Make custom tmp dir and ignores play well with each other (#1299)
- Warn users when installing package with missing properties (#694)
- Search compatible versions in fetching packages (#1147)
- Resolve a situation in which the install process gets into an infinite loop (#1169)
- Improved CLI output for conflicts (#1284)
- Changed
bower version
to mirror the tag format ofnpm version
(#1278) - Allow short commit SHAs to be used (#990)
- Do not cache moving targets like branches (#1242)
- Suppress output if --quiet option is specified (#1124)
- Use "svn export" for efficiency (#1224)
- Prevent loading insights and analytics on CI (#1221)
- Make "bower list" respect custom components directory (#1237)
- Improve non-interactive loading performance 2x (#1238)
- Load commands only on demand, improving performance (#1232)
- Added yui moduleType PR #1129
- Fixes for concurrency issues PR #1211
link
now installs package dependencies PR #891- Improved conflict installation message Commit
- Add --production switch to "prune" command PR #1168
- No longer ask for permission to gather analytics when running on in a CI environment.
- Removed support for node 0.8. It may still work but we will no longer fix bugs for older versions of node.
- Add Bower Insight for opt-in analytics integration to help improve tool and gain insight on community trends
- Old overview of Insight, Issue #260
- Reporting to GA. Public Dashboard is in progress.
- Turn off interactive mode if you run Bower in a CI environment
- Add
moduleType
property to bower init (#934) - Fix prune command to log only after cleanup is completed (#1023)
- Fix git resolver to ignore pre-release versions (#1017)
- Fix shorthand flag for
save
option onuninstall
command (#1031) - Add
bower version
command (#961) - Add .bowerrc option to use
--save
by default when usingbower install
command (#1074) - Fix git resolver caching (#1083)
- Fix reading versions from cache directory (#1076)
- Add svn support (#1055)
- Allow circular dependencies to be installed (#1104)
- Add scripts/hooks support (#718)
NOTE: It's advisable that users use --config.interactive=false
on automated scripts.
- Fix absolute paths ending with / not going through the FsResolver, (#898)
- Allow query string parameters in package URLs
- Swapped 'unzip' module for 'decompress-zip', and some other small unzipping fixes(#873, #896)
- Allow the root-check to be overridden when calling bower programmatically.
- Fixed some bugs relating to packages with a very large dependency tree
- Fix a bug caused by a recent change to semver
- Do not swallow sync errors when using the programmatic API (#849)
- Fix resolutions not being saved if
--force-latest
is specified (#861) - Fix
bower register
warning about URL conversion, even if no conversion occurred - Fix
bower update
not correctly catching up branch commits - Add configured directory in
.bowerrc
to the ignores inbower init
(#854) - Fix some case sensitive issues with data stored in registry cache (e.g.: jquery/jQuery, #859)
- Fix bower not checking out a tag if it looks like a semver (e.g.: 1.0, #872)
- Fix install & update commands printing the wrong versions in some cases (#879)
- Give priority to mime type headers when deciding if a package need to be extracted, except if it is
octet-stream
NOTE: It's advisable that users run bower cache clean
.
- Bower now reports download progress even for servers that do not respond with
content-length
header. - Do not translate endpoints when registering a package to a private registry server (#832)
- Detect corrupted downloads by comparing downloaded bytes with
content-length
header if possible; this fixes Bower silently failing on unstable networks (#824 and #792) - Fix quotes in fields causing Bower to crash in the
init
command (#841)
- Fix persistent conflict resolutions not working correctly for branches (#818)
- Fix Bower failing to run if HOME is not set (#826)
- Bower now prints a warning if HOME is not set (#827)
- Fix progress message being fired after completion of long running
git clone
commands - Other minor improvements
- Fix ignored nested folders not being correctly handled in some cases (#814)
- Fix read of environment variables that map to config properties with dashes and also support nested ones (#8@bower-config)
- Fix
bower info <package> <property>
printing the available versions (it shouldn't!) - Fix interactive shell not being correctly detected in node
0.8.x
(#802) - Fix
extraneous
flag in thelist
command being incorrectly set for saved dev dependencies in some cases - Fix linked dependencies not being read in
bower list
on Windows (#813) - Fix update notice not working with
--json
- Standardize prompt behaviour with and without
--json
- Improve detection of
git
servers that do not support shallow clones (#805) - Ignore remote tags (tags ending with ^{})
- Fix bower not saving the correct endpoint in some edge cases (#806)
- Fix bower throwing on non-semver targets (#800)
- Bower no longer installs a pre-release version by default, that is, if no version/range is specified (#782)
bower info <package>
will now show the latest<package>
information along with the available versions (#759)bower link
no longer requires an elevated user on Windows in most cases (#472)- Init command now prompts for the whole
bower.json
spec properties, filling in default values forauthor
andhomepage
based ongit
settings (#693) - Changes to endpoint sources in
bower.json
are now catched up bybower install
andbower update
(#788) - Allow semver ranges in
bower cache clean
, e.g.bower cache clean jquery#<2.0.0
(#688) - Normalize
bower list --paths
on Windows (#279) - Multiple mains are now correctly outputted as an array in
bower list --paths
(#784) - Add
--relative
option tobower list --json
so that Bower outputs relative paths instead of absolute (#714) bower list --paths
now outputs relative paths by default; can be turned off with--no-relative
(#785)- Bower no longer fails if
symlinks
to files are present in thebower_components
folder (#783 and #791) - Disable git templates/hooks when running
git
(#761) - Add instructions to setup git workaround for proxies when execution of
git
fails (#250) - Ignore
component.json
if it looks like a component(1) file (#556) - Fix multi-user usage on bower when it creates temporary directories to hold some files
- Fix prompting causing an invalid JSON output when running commands with
--json
- When running Bower commands programmatically, prompting is now disabled by default (see the updated programmatic usage for more info)
- Other minor improvements and fixes
Fix for #788
requires installed components to be re-installed.
- Detect and fallback if the git server does not support
--depth=1
when cloning (#747)
- Fix silent fail when spawning child processes in some edge cases (#722)
- Fix
home
command not guessing the correct URL forGitHub
ssh endpoints (requiresbower cache-clean
) - Fix bower not correctly filtering packages with symlinks in some cases (#730)
- Fix multi-user usage on bower when it falls back to create a
/tmp/bower
folder (#743) - Bower now sends a fake user agent when behind a proxy by default, so that corporate proxies do not block requests (#698)
- Bower now translates GitHub public
git://
URLs togit@
when behind a proxy (#731) - Minor improvements to the CLI output on small terminals
- Minor programmatic usage improvements
- Minor help usage fixes
- Fix
--save
and--save-dev
not working correctly for the uninstall command in some situations - Attempting to register a package that declares
"private": true
inbower.json
will result in an error (#162) - Fix retry strategy on download error that was causing some strange I/O errors (#699 and #704)
bower prune
now clears pruned packages dependencies if they are also extraneous (#708)bower uninstall
now uninstalls uninstalled packages dependencies if they are not shared (#609)- Fix
bower list
display theincompatible
label even if they are compatible (#710) - Fix
bower cache clean
not working correctly whenpackage#non-semver
is specified - Implement no operation
completion
command to prevent weird output when hitting tab (#691) - Fix
bower info --help
(#703) - Add colorized output for
bower info <package>#<version>
(#571) - Added
bower ls
as an alias tobower list
- Fix regression: do not create a json file when saving is required, warn instead
- Ignore linked packages when reading dependencies in
bower init
(#709) bower list
is now able to (partially) reconstruct the dependency tree, even for dependencies not declared inbower.json
(#622)
- Fix some changes not being saved to bower.json (#685)
- Fix
bower info <package> <property>
not showing information related to property of the latest version of that package (#684)
- Fix severe bug originated from a wrong merge that caused conflict messages to not show up correctly
- Fix
bower register
going ahead even if the answer wasno
(#644) - Fix local endpoints with backslashes on Windows (#2@endpoint-parser)
- Fix usage of multiple registries in the registry-client (#3@registry-client and #2@registry-client)
- File extensions now have more priority than mime types when deciding if extraction is necessary (#657)
- Fix
Bower
not working when calling.bat
/.cmd
commands on Windows; it affected people usingGit portable
(#626) - Fix
bower list --paths
not resolving all files to absolute paths when themain
property contained multiple files (660) - Fix
Bower
renamingbower.json
andcomponent.json
files toindex.json
when it was the only file in the folder (#674) - Ignore symlinks when copying/extracting since they are not portable, specially across different hard-drives (#665)
- Local file/dir endpoints are now exclusively referenced by an absolute path or relative path starting with
.
(#666) - Linked packages
bower.json
files are now parsed, makingbower list
account linked packages dependencies (#659) - Bower now fails to run with sudo unless
--allow-root
is passed (#498) - Add additional system information such as node version, bower version, OS version when an error occurs (#670)
bower install
no longer overwriteslinked
packages unless it needs to (#593).- All endpoint parts are now trimmed so that the Manager can better detect similar endpoints (#3@endpoint-parser)
bower register
now shows the server that will be used (#647)
Total rewrite of bower. The list bellow highlights the most important stuff. For a complete list of changes that this rewrite and release brings please read: https://github.com/bower/bower/wiki/Rewrite-state
- Clear architecture and separation of concerns
- Much much faster
--json
output for all commands--offline
usage for all commands, exceptregister
- Proper
install
andupdate
commands, similar tonpm
in behaviour - Named endpoints when installing, e.g.
bower install backbone-amd=backbone#~1.0.0
- New interactive conflict resolution strategy
- Prevent human errors when using
register
- New
home
command, similar tonpm
- New
cache list
command - New
prune
command - Many many general bug fixes
Non-backwards compatible changes:
- The value of the
json
property from .bowerrc is no longer used --map
and--sources
from the list command were removed, use--json
instead- Programmatic usage changed, specially the commands interface
Users upgrading from bower-canary
and bower@~0.x.x
should do a bower cache clean
.
Additionally you may remove the ~/.bower
folder manually since it's no longer used.
On Windows the folder is located in AppData/bower
.
- Allow specific commits to be targeted (#275)
- Change bower default folder from
components
tobower_components
(#434) - Support semver pre-releases and builds (#188)
- Use
Content-Type
andContent-Disposition
to guess file types, such as zip files (#454) - Fix bower failing silently when using an invalid version value in the bower.json file (#439)
- Fix bower slowness when downloading after redirects (#437)
- Detect and error out with a friendly message when
git
is not installed (#362) - Add
--quiet
and--silent
CLI options (#343) - Minor programmatic usage improvements
NOTE: The components
folder will still be used if already created, making it easier for users to upgrade.
- Better fix for #429
- Update
package.json
, docs and other stuff to point to the newBower
organisation on GitHub - Fix root label of
bower list
being an absolute path; now uses the package name - Fix
bower update <pkg>
updating all packages; now throws when updating an unknown package - Fix
list
command when package use different names than theguessed
one (#429)
- Change from
component.json
tobower.json
(#39) - Compatibility with
node 0.10.x
, including fix hangs/errors when extractingzip
files - Fix
--save
and--save-dev
not working with URLs that get redirected (#417) - Fix
init
command targeting~commit
instead of*
. (#385) - Remove temporary directories before exiting (#345)
- Integrate
update-notifier
(#202) - Use
json
name when a package name was inferred (#192) - Fix
bin/bower
not exiting with an exit code greater than zero when an error occurs (#187) - Fix
--save
and--save-dev
saving resolved shorthands instead of the actual shorthands - Fix bower using user defined git templates (#324)
- Add command abbreviations (#262)
- Improve help messages and fix abuse of colors in output
- Wait for every package to resolve before printing error messages (#290)
- Add
shorthand_resolver
to allow shorthands to be resolved to repositories other than GitHub (#278)
- Emergency fix for
node 0.8.x
users to makezip
extraction work again
- Fix
cache-clean
command clearing the completion cache when the command was called with specific packages - Add error message when an error is caught parsing an invalid
component.json
- Fix some more duplicate async callbacks being called twice
- Preserve new lines when saving
component.json
(#285)
- Fix error when using the
update
command (#282)
- Fix some errors in windows while removing directories, had to downgrade
rimraf
(#274) - Prevent duplicate package names in error summaries (#277)
- Fix some async callbacks being fired twice (#274)
- Add init command similar to
npm init
(#219) - Add devDependencies support (#251)
- Add
--save-dev
flag to install/uninstall commands (#258) cache-clean
command now clears links pointing to nonexistent folders (#182)- Fix issue when downloading assets behind a proxy using
https
(#230) - Fix --save saving unresolved components (#240)
- Fix issue when extracting some zip files (#225)
- Fix automatic conflict resolver not selecting the correct version
- Add
--sources
option to thelist
command (#235) - Automatically clear cache when git commands fail with code 128 (#216)
- Fix
bower
not working correctly behind a proxy in some commands (#208)
- Remove postinstall script from
bower
installation
- Ability to resolve conflicts (#214)
- Ability to search and publish to different endpoints by specifying them in the
.bowerrc
file - Experimental autocompletion
- Ability to exclude (ignore) files
- Fix minor issues in the cache clean command
- Better error message for invalid semver tags (#185)
- Only show discover message in the list command only if there are packages
- Fix mismatch issue due to reading cached component.json files (#214)
- Better error messages when reading invalid .bowerrc files (#220)
- Fix update command when used in packages pointing to assets (#197)
- Bower now obeys packages's
.bowerrc
if they define a differentjson
(#205)
- Improve list command
- Does not fetch versions if not necessary (for --map and --paths options)
- Add --offline option to prevent versions from being fetched
- Fix uninstall command not firing the
end
event - Fix error when executing an unknown command (#179)
- Fix help for the ls command (alias of list)
- Fix uninstall removing all unsaved dependencies (#178)
- Fix uninstall --force flag in some cases
- Add --silent option to the register option, to avoid questioning
- Fix possible issues with options in some commands
- Fix error reporting when reading invalid project component.json
- Improve error handling while reading component.json
- Fix package name not being correctly collected in the error summary
- Fix error summary not being displayed in some edge cases
- Fix bower not fetching latest commits correctly in some cases
- Fix permission on downloaded files (#160)
- Fix version not being correctly set for local packages (#155)
- Fix uninstall --save when there is no component.json
- Fix uninstall when the project component.json has no deps saved (#153)
- Fix uncaught errors when using file writer (they are now caught and reported)
- Fix temporary directories not being deleted when an exception occurs (#153)
- Add link command (similar to npm)
- Fix error reporting for nested deps
- Abort if a repository is detected when installing. This is useful to prevent people from loosing their work
- Minor fixes and improvements
- Add errors summary to the end of install/update commands
- Add windows instructions to the README
- Remove package.json support
- Support for local path repositories (#132)
install --save
now saves the correct tag (e.g: ~0.0.1) instead of 'latest'install --save
now saves packages pointing directly to assets correctly- Bower automatically creates a component.json when install with
--save
is used - Fix issues with list command (#142)
- Fix local paths not being saved when installing with --save (#114)
uninstall
now uninstalls nested dependencies if they are not shared (#83)uninstall
now warns when a dependency conflict occurs and aborts. It will only proceed if the--force
flag is passed- Bower now detects mismatches between the version specified in the component.json and the tag, informing the user
bower ls
now informs when a package has a new commit (for non-tagged repos)- Add jshintrc and fix a lot of issues related with JSHint warnings
bower register
now prompts if the user really wants to proceed