{"action":"closed","issue":{"url":"https://api.github.com/repos/cljsinfo/api-docs-generator/issues/17","labels_url":"https://api.github.com/repos/cljsinfo/api-docs-generator/issues/17/labels{/name}","comments_url":"https://api.github.com/repos/cljsinfo/api-docs-generator/issues/17/comments","events_url":"https://api.github.com/repos/cljsinfo/api-docs-generator/issues/17/events","html_url":"https://github.com/cljsinfo/api-docs-generator/issues/17","id":73830789,"number":17,"title":"fix for upcoming .cljc rename","user":{"login":"shaunlebron","id":116838,"avatar_url":"https://avatars.githubusercontent.com/u/116838?v=3","gravatar_id":"","url":"https://api.github.com/users/shaunlebron","html_url":"https://github.com/shaunlebron","followers_url":"https://api.github.com/users/shaunlebron/followers","following_url":"https://api.github.com/users/shaunlebron/following{/other_user}","gists_url":"https://api.github.com/users/shaunlebron/gists{/gist_id}","starred_url":"https://api.github.com/users/shaunlebron/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shaunlebron/subscriptions","organizations_url":"https://api.github.com/users/shaunlebron/orgs","repos_url":"https://api.github.com/users/shaunlebron/repos","events_url":"https://api.github.com/users/shaunlebron/events{/privacy}","received_events_url":"https://api.github.com/users/shaunlebron/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-05-07T04:08:45Z","updated_at":"2015-05-12T08:50:27Z","closed_at":"2015-05-12T08:50:27Z","body":"in anticipation of bootstrapping the compiler, some key files have been [renamed](https://github.com/clojure/clojurescript/commit/11113cea2f599d685b60f8fbdcb56d944240ea25) to change the extension from `clj` to `cljc`:\r\n\r\n- `analyzer.cljc`\r\n- `compiler.cljc`\r\n- `env.cljc`\r\n- `repl.cljc`\r\n- `util.cljc`\r\n\r\nThinking long-term, cljs will be making plenty of these changes that will cause the autodocs to miss some data in new versions.  Ideally, we can update the parser to work in a backward compatible way.  For example, the special forms were originally in `compiler.clj`, but later moved to `analyzer.clj`.  The fix was to just look in both files everytime.\r\n\r\nDetecting these kinds of breaking changes will be easy by looking at the generated `changes` file to see which symbols have been removed since the previous version.\r\n\r\nIt's hard to pre-optimize a solution before knowing what kind of changes will be around in the future.  For now, I'll just keep making simple patches, and will keep a note of changes in the wiki."}}