{"action":"created","issue":{"url":"https://api.github.com/repos/django/djangoproject.com/issues/479","labels_url":"https://api.github.com/repos/django/djangoproject.com/issues/479/labels{/name}","comments_url":"https://api.github.com/repos/django/djangoproject.com/issues/479/comments","events_url":"https://api.github.com/repos/django/djangoproject.com/issues/479/events","html_url":"https://github.com/django/djangoproject.com/pull/479","id":85029232,"number":479,"title":"Improve Bower integration","user":{"login":"xavierdutreilh","id":1058901,"avatar_url":"https://avatars.githubusercontent.com/u/1058901?v=3","gravatar_id":"","url":"https://api.github.com/users/xavierdutreilh","html_url":"https://github.com/xavierdutreilh","followers_url":"https://api.github.com/users/xavierdutreilh/followers","following_url":"https://api.github.com/users/xavierdutreilh/following{/other_user}","gists_url":"https://api.github.com/users/xavierdutreilh/gists{/gist_id}","starred_url":"https://api.github.com/users/xavierdutreilh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xavierdutreilh/subscriptions","organizations_url":"https://api.github.com/users/xavierdutreilh/orgs","repos_url":"https://api.github.com/users/xavierdutreilh/repos","events_url":"https://api.github.com/users/xavierdutreilh/events{/privacy}","received_events_url":"https://api.github.com/users/xavierdutreilh/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-06-04T10:27:29Z","updated_at":"2015-10-07T21:03:30Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/django/djangoproject.com/pulls/479","html_url":"https://github.com/django/djangoproject.com/pull/479","diff_url":"https://github.com/django/djangoproject.com/pull/479.diff","patch_url":"https://github.com/django/djangoproject.com/pull/479.patch"},"body":"Hello,\r\n\r\nAs I was trying to set up the project on my laptop, I noticed some inconsistencies with how Bower was integrated. So, I took some time to work on it:\r\n1. Bower is installed locally from now on. A folder called `node_modules` is created when `npm install` is run and it contains all modules specific to the project (in our case, only Bower). This solution is a lot more clean since it takes some of the good ways from virtual environments (like installing things per project).\r\n2. `npm install` is now run automatically via `make install`. So, it ensures Bower is always installed.\r\n3. The package name in `bower.json` has been renamed from `Django Project` to `djangoproject`. My main concern was that such name is not permitted in Node.js modules. So, I had to stick with something consistent among all files and `djangoproject` seemed to be a good name.\r\n4. However, installing things locally creates an issue. Local binaries are not found any more and so, you need to find an alternative. The first solution is to append the `PATH` with `node_modules/.bin` but you have to run Bower from the root directory... The second solution is to use the `scripts` section from Npm. Commands like Bower could be run like this after that: `npm run bower install`. It chose that solution.\r\n\r\nI think that is all. If you have any question, feel free to ask. If you want some modifications to the pull request or spot any mistake, I am listening."},"comment":{"url":"https://api.github.com/repos/django/djangoproject.com/issues/comments/146328809","html_url":"https://github.com/django/djangoproject.com/pull/479#issuecomment-146328809","issue_url":"https://api.github.com/repos/django/djangoproject.com/issues/479","id":146328809,"user":{"login":"timgraham","id":411869,"avatar_url":"https://avatars.githubusercontent.com/u/411869?v=3","gravatar_id":"","url":"https://api.github.com/users/timgraham","html_url":"https://github.com/timgraham","followers_url":"https://api.github.com/users/timgraham/followers","following_url":"https://api.github.com/users/timgraham/following{/other_user}","gists_url":"https://api.github.com/users/timgraham/gists{/gist_id}","starred_url":"https://api.github.com/users/timgraham/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/timgraham/subscriptions","organizations_url":"https://api.github.com/users/timgraham/orgs","repos_url":"https://api.github.com/users/timgraham/repos","events_url":"https://api.github.com/users/timgraham/events{/privacy}","received_events_url":"https://api.github.com/users/timgraham/received_events","type":"User","site_admin":false},"created_at":"2015-10-07T21:03:30Z","updated_at":"2015-10-07T21:03:30Z","body":"Yes"}}