{"action":"created","issue":{"url":"https://api.github.com/repos/jwiegley/use-package/issues/159","labels_url":"https://api.github.com/repos/jwiegley/use-package/issues/159/labels{/name}","comments_url":"https://api.github.com/repos/jwiegley/use-package/issues/159/comments","events_url":"https://api.github.com/repos/jwiegley/use-package/issues/159/events","html_url":"https://github.com/jwiegley/use-package/pull/159","id":60470899,"number":159,"title":"Eval the argument to :disable","user":{"login":"brontitall","id":2127253,"avatar_url":"https://avatars.githubusercontent.com/u/2127253?v=3","gravatar_id":"","url":"https://api.github.com/users/brontitall","html_url":"https://github.com/brontitall","followers_url":"https://api.github.com/users/brontitall/followers","following_url":"https://api.github.com/users/brontitall/following{/other_user}","gists_url":"https://api.github.com/users/brontitall/gists{/gist_id}","starred_url":"https://api.github.com/users/brontitall/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brontitall/subscriptions","organizations_url":"https://api.github.com/users/brontitall/orgs","repos_url":"https://api.github.com/users/brontitall/repos","events_url":"https://api.github.com/users/brontitall/events{/privacy}","received_events_url":"https://api.github.com/users/brontitall/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-03-10T09:22:20Z","updated_at":"2015-03-11T11:00:05Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/jwiegley/use-package/pulls/159","html_url":"https://github.com/jwiegley/use-package/pull/159","diff_url":"https://github.com/jwiegley/use-package/pull/159.diff","patch_url":"https://github.com/jwiegley/use-package/pull/159.patch"},"body":"This allows disabling a package conditionally, e.g.:\r\n\r\n    (use-package smex\r\n      :disable (< emacs-major-version 24)\r\n      :ensure t\r\n      ...)\r\n\r\nor\r\n\r\n    (use-package paradox\r\n      :disable (version< emacs-version \"24.4\")\r\n      :ensure t\r\n      ...)\r\n\r\nIt might be nice to have a feature of use-package that gracefully dealt with packages that can't be installed, but this allows fairly general logic to be used when disabling a package."},"comment":{"url":"https://api.github.com/repos/jwiegley/use-package/issues/comments/78242835","html_url":"https://github.com/jwiegley/use-package/pull/159#issuecomment-78242835","issue_url":"https://api.github.com/repos/jwiegley/use-package/issues/159","id":78242835,"user":{"login":"brontitall","id":2127253,"avatar_url":"https://avatars.githubusercontent.com/u/2127253?v=3","gravatar_id":"","url":"https://api.github.com/users/brontitall","html_url":"https://github.com/brontitall","followers_url":"https://api.github.com/users/brontitall/followers","following_url":"https://api.github.com/users/brontitall/following{/other_user}","gists_url":"https://api.github.com/users/brontitall/gists{/gist_id}","starred_url":"https://api.github.com/users/brontitall/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brontitall/subscriptions","organizations_url":"https://api.github.com/users/brontitall/orgs","repos_url":"https://api.github.com/users/brontitall/repos","events_url":"https://api.github.com/users/brontitall/events{/privacy}","received_events_url":"https://api.github.com/users/brontitall/received_events","type":"User","site_admin":false},"created_at":"2015-03-11T11:00:05Z","updated_at":"2015-03-11T11:00:05Z","body":"I understand this position, and I can see its merits in the cause of consistency between the arguments of `use-package`. The arguments to `:init` and `:config` are not evaluated by default at macro expansion time, so why should this one be?\r\n\r\nI would only suggest that due to the way it acts the only possible time when the argument to `:disabled` is of any use is at expansion time, so evaluating at that time would have the most utility. In other words, I feel it's more in the style of `:pre-load` than of `:command`.\r\n\r\nBy the way, I've not seen this behaviour before (where a macro or anything else uses a comma not lexically inside a back-quoted form). In fact, until your comment I was unaware of this behaviour of `:command`, `:diminish`, `:defines`, etc. It doesn't seem to appear in the documentation. Clearly I need to spend more time looking at the code. Maybe I'm missing some idiom that I've not noticed which makes this expected. Is this widely used?"}}