{"action":"created","issue":{"url":"https://api.github.com/repos/asciidoctor/asciidoctorj/issues/697","repository_url":"https://api.github.com/repos/asciidoctor/asciidoctorj","labels_url":"https://api.github.com/repos/asciidoctor/asciidoctorj/issues/697/labels{/name}","comments_url":"https://api.github.com/repos/asciidoctor/asciidoctorj/issues/697/comments","events_url":"https://api.github.com/repos/asciidoctor/asciidoctorj/issues/697/events","html_url":"https://github.com/asciidoctor/asciidoctorj/issues/697","id":370959040,"node_id":"MDU6SXNzdWUzNzA5NTkwNDA=","number":697,"title":"Binary incompatible changes in 1.6","user":{"login":"wilkinsona","id":914682,"node_id":"MDQ6VXNlcjkxNDY4Mg==","avatar_url":"https://avatars3.githubusercontent.com/u/914682?v=4","gravatar_id":"","url":"https://api.github.com/users/wilkinsona","html_url":"https://github.com/wilkinsona","followers_url":"https://api.github.com/users/wilkinsona/followers","following_url":"https://api.github.com/users/wilkinsona/following{/other_user}","gists_url":"https://api.github.com/users/wilkinsona/gists{/gist_id}","starred_url":"https://api.github.com/users/wilkinsona/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wilkinsona/subscriptions","organizations_url":"https://api.github.com/users/wilkinsona/orgs","repos_url":"https://api.github.com/users/wilkinsona/repos","events_url":"https://api.github.com/users/wilkinsona/events{/privacy}","received_events_url":"https://api.github.com/users/wilkinsona/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2018-10-17T08:37:44Z","updated_at":"2018-10-17T08:58:56Z","closed_at":null,"author_association":"NONE","body":"[This change that's in 1.6](https://github.com/asciidoctor/asciidoctorj/commit/7d288724dabef9fdd53e11ebc32ae209a05f6dd3), means that it isn't binary compatible with 1.5. When an extension that was compiled against 1.5 is run with 1.6, a failure like this will occur:\r\n\r\n```\r\nException in thread \"main\" java.lang.NoSuchMethodError: org.asciidoctor.extension.JavaExtensionRegistry.docinfoProcessor(Lorg/asciidoctor/extension/DocinfoProcessor;)V\r\n        at io.spring.asciidoctor.SpringAsciidoctorExtensionRegistry.register(SpringAsciidoctorExtensionRegistry.java:31)\r\n        at org.asciidoctor.extension.internal.ExtensionRegistryExecutor.registerAllExtensions(ExtensionRegistryExecutor.java:21)\r\n        at org.asciidoctor.internal.JRubyAsciidoctor.registerExtensions(JRubyAsciidoctor.java:118)\r\n        at org.asciidoctor.internal.JRubyAsciidoctor.processRegistrations(JRubyAsciidoctor.java:107)\r\n        at org.asciidoctor.internal.JRubyAsciidoctor.create(JRubyAsciidoctor.java:87)\r\n        at org.asciidoctor.internal.JRubyAsciidoctor.create(JRubyAsciidoctor.java:83)\r\n        at org.asciidoctor.Asciidoctor$Factory.create(Asciidoctor.java:823)\r\n        at org.asciidoctor.gradle.remote.AsciidoctorJavaExec.getAsciidoctorInstance(AsciidoctorJavaExec.groovy:80)\r\n        at org.asciidoctor.gradle.remote.AsciidoctorJavaExec.run(AsciidoctorJavaExec.groovy:42)\r\n        at org.asciidoctor.gradle.remote.AsciidoctorJavaExec.main(AsciidoctorJavaExec.groovy:128)\r\n```\r\n\r\nCan you please consider reverting this change? While it's possible to work around the breaking change by using reflection, that will require changes in every extension in the ecosystem. In my opinion, that cost outweighs the benefit of being able to chain methods when working with `JavaExtensionRegistry`."},"comment":{"url":"https://api.github.com/repos/asciidoctor/asciidoctorj/issues/comments/430547518","html_url":"https://github.com/asciidoctor/asciidoctorj/issues/697#issuecomment-430547518","issue_url":"https://api.github.com/repos/asciidoctor/asciidoctorj/issues/697","id":430547518,"node_id":"MDEyOklzc3VlQ29tbWVudDQzMDU0NzUxOA==","user":{"login":"mojavelinux","id":79351,"node_id":"MDQ6VXNlcjc5MzUx","avatar_url":"https://avatars2.githubusercontent.com/u/79351?v=4","gravatar_id":"","url":"https://api.github.com/users/mojavelinux","html_url":"https://github.com/mojavelinux","followers_url":"https://api.github.com/users/mojavelinux/followers","following_url":"https://api.github.com/users/mojavelinux/following{/other_user}","gists_url":"https://api.github.com/users/mojavelinux/gists{/gist_id}","starred_url":"https://api.github.com/users/mojavelinux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mojavelinux/subscriptions","organizations_url":"https://api.github.com/users/mojavelinux/orgs","repos_url":"https://api.github.com/users/mojavelinux/repos","events_url":"https://api.github.com/users/mojavelinux/events{/privacy}","received_events_url":"https://api.github.com/users/mojavelinux/received_events","type":"User","site_admin":false},"created_at":"2018-10-17T08:58:56Z","updated_at":"2018-10-17T08:58:56Z","author_association":"MEMBER","body":"I'll be the first to admit we have a serious versioning problem right now. We've been trying to get out of it for years, but I've made mistakes that prevented it from being rectified. So we're trying to rectify it now.\r\n\r\n> 1.6 is still alpha isn't it?\r\n\r\nIt's even hard for me to describe what that alpha label actually means. It was meant to be temporary, but temporary had a way of becoming rather long term.\r\n\r\nThe alpha label was there so people didn't assume that it was providing Asciidoctor 1.6 (which doesn't yet exist...and will now never exist). The code is *more* stable than 1.5 by orders of magnitude. So it's not really alpha software at all.\r\n\r\n\r\n...but the API has continued to change, so in that regard it has allowed the API to continue changing. That's why recently I proposed we drop the alpha label and just release 1.6.0."}}
{"actor":{"display_login":"mojavelinux"}}