{"action":"created","issue":{"url":"https://api.github.com/repos/angular/angular.js/issues/12465","labels_url":"https://api.github.com/repos/angular/angular.js/issues/12465/labels{/name}","comments_url":"https://api.github.com/repos/angular/angular.js/issues/12465/comments","events_url":"https://api.github.com/repos/angular/angular.js/issues/12465/events","html_url":"https://github.com/angular/angular.js/pull/12465","id":98041554,"number":12465,"title":"feat(angular.info): optionally store and access additional info on mo…","user":{"login":"petebacondarwin","id":15655,"avatar_url":"https://avatars.githubusercontent.com/u/15655?v=3","gravatar_id":"","url":"https://api.github.com/users/petebacondarwin","html_url":"https://github.com/petebacondarwin","followers_url":"https://api.github.com/users/petebacondarwin/followers","following_url":"https://api.github.com/users/petebacondarwin/following{/other_user}","gists_url":"https://api.github.com/users/petebacondarwin/gists{/gist_id}","starred_url":"https://api.github.com/users/petebacondarwin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petebacondarwin/subscriptions","organizations_url":"https://api.github.com/users/petebacondarwin/orgs","repos_url":"https://api.github.com/users/petebacondarwin/repos","events_url":"https://api.github.com/users/petebacondarwin/events{/privacy}","received_events_url":"https://api.github.com/users/petebacondarwin/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/angular/angular.js/labels/1.5-candidate","name":"1.5-candidate","color":"207de5"},{"url":"https://api.github.com/repos/angular/angular.js/labels/cla:%20yes","name":"cla: yes","color":"bfe5bf"},{"url":"https://api.github.com/repos/angular/angular.js/labels/component:%20misc%20core","name":"component: misc core","color":"fef2c0"},{"url":"https://api.github.com/repos/angular/angular.js/labels/frequency:%20low","name":"frequency: low","color":"bfe5bf"},{"url":"https://api.github.com/repos/angular/angular.js/labels/needs:%20public%20api","name":"needs: public api","color":"eb6420"},{"url":"https://api.github.com/repos/angular/angular.js/labels/needs:%20review","name":"needs: review","color":"eb6420"},{"url":"https://api.github.com/repos/angular/angular.js/labels/severity:%20inconvenient","name":"severity: inconvenient","color":"006b75"},{"url":"https://api.github.com/repos/angular/angular.js/labels/type:%20feature","name":"type: feature","color":"00a606"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/angular/angular.js/milestones/90","html_url":"https://github.com/angular/angular.js/milestones/1.5.x%20-%20migration-facilitation","labels_url":"https://api.github.com/repos/angular/angular.js/milestones/90/labels","id":1025270,"number":90,"title":"1.5.x - migration-facilitation","description":"","creator":{"login":"petebacondarwin","id":15655,"avatar_url":"https://avatars.githubusercontent.com/u/15655?v=3","gravatar_id":"","url":"https://api.github.com/users/petebacondarwin","html_url":"https://github.com/petebacondarwin","followers_url":"https://api.github.com/users/petebacondarwin/followers","following_url":"https://api.github.com/users/petebacondarwin/following{/other_user}","gists_url":"https://api.github.com/users/petebacondarwin/gists{/gist_id}","starred_url":"https://api.github.com/users/petebacondarwin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petebacondarwin/subscriptions","organizations_url":"https://api.github.com/users/petebacondarwin/orgs","repos_url":"https://api.github.com/users/petebacondarwin/repos","events_url":"https://api.github.com/users/petebacondarwin/events{/privacy}","received_events_url":"https://api.github.com/users/petebacondarwin/received_events","type":"User","site_admin":false},"open_issues":30,"closed_issues":7,"state":"open","created_at":"2015-03-17T12:15:49Z","updated_at":"2015-08-03T22:52:53Z","due_on":null,"closed_at":null},"comments":8,"created_at":"2015-07-29T22:19:27Z","updated_at":"2015-08-04T23:38:19Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/angular/angular.js/pulls/12465","html_url":"https://github.com/angular/angular.js/pull/12465","diff_url":"https://github.com/angular/angular.js/pull/12465.diff","patch_url":"https://github.com/angular/angular.js/pull/12465.patch"},"body":"…dules\r\n\r\nThis feature allows the developer to store additional meta data about a\r\nmodule when it is defined by adding an additional parameter containing\r\nan object to the `angular.module(moduleName, deps, info, configFn)` call.\r\n\r\nDevelopers can then access this information by calling `angular.info(moduleName)`\r\n\r\nSee this https://github.com/angular/material/issues/3842 for more background."},"comment":{"url":"https://api.github.com/repos/angular/angular.js/issues/comments/127797039","html_url":"https://github.com/angular/angular.js/pull/12465#issuecomment-127797039","issue_url":"https://api.github.com/repos/angular/angular.js/issues/12465","id":127797039,"user":{"login":"petebacondarwin","id":15655,"avatar_url":"https://avatars.githubusercontent.com/u/15655?v=3","gravatar_id":"","url":"https://api.github.com/users/petebacondarwin","html_url":"https://github.com/petebacondarwin","followers_url":"https://api.github.com/users/petebacondarwin/followers","following_url":"https://api.github.com/users/petebacondarwin/following{/other_user}","gists_url":"https://api.github.com/users/petebacondarwin/gists{/gist_id}","starred_url":"https://api.github.com/users/petebacondarwin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petebacondarwin/subscriptions","organizations_url":"https://api.github.com/users/petebacondarwin/orgs","repos_url":"https://api.github.com/users/petebacondarwin/repos","events_url":"https://api.github.com/users/petebacondarwin/events{/privacy}","received_events_url":"https://api.github.com/users/petebacondarwin/received_events","type":"User","site_admin":false},"created_at":"2015-08-04T23:38:19Z","updated_at":"2015-08-04T23:38:19Z","body":"> > The configFn is optional and often left out so we would need to do some wrangling either way.\r\n\r\n> I think that the intention of the comment is that if someone wants to make a module that is 1.4.3 and 1.4.4 compatible, then, to be safe, would need to put the info parameter in the forth position anyhow. So why just not make it the forth position in the first place.\r\n\r\n@lgalfaso but both the old (`configFn`) and new (`info`) parameters are optional so it is backward compatible: you can still do:\r\n\r\n```js\r\nangular.module(moduleName, depencencyArray, configFn);\r\n```\r\n\r\nI know that it is the norm to add new parameters to the end of the argument list but when both are optional then it doesn't make much difference. In this case, I believe that it is more pleasant, if you are going to provide both `info` and a `configFn` for the `configFn` to come at the end:\r\n\r\n```js\r\nangular.module('someModule`, ['someDependency'], {version: '1.0.2'}, function() {\r\n  ...\r\n});\r\n```"}}