[BlueOcean] BlueOcean Extensibility JEP

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[BlueOcean] BlueOcean Extensibility JEP

Ivan Meredith
Hello everyone,

I have been working on a JEP for Blue Ocean Extensibility. This will come in several parts that cover the technical aspects of how javascript extensions are registered and how packaging is done as well as documentation and an SDK to help develop extensions.

I've opened a PR for https://github.com/imeredith/jep/tree/jep-submission/jep/0000 that explains Blue Oceans extensibility generally, and https://github.com/imeredith/jep/tree/jep-submission-extensibility-api/jep/0000 that defines a Javascript API for plugins to use. 

I'm currently working on a JEP for packaging/bundling the Javascript extensions and assets.

Any feedback/questions on the JEPs or just the general direction is welcome.

Thanks, Ivan








--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/da5fb343-a91d-48e0-ba98-ab7a7122e3ab%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [BlueOcean] BlueOcean Extensibility JEP

Liam Newman
https://github.com/jenkinsci/jep/pull/112 - Merged 
https://github.com/jenkinsci/jep/pull/113 - Merged

Blue Ocean Extensibility - https://github.com/jenkinsci/jep/tree/master/jep/203
Blue Ocean Extensibility API - https://github.com/jenkinsci/jep/tree/master/jep/204


On Tuesday, June 5, 2018 at 8:12:01 PM UTC-7, Ivan Meredith wrote:
Hello everyone,

I have been working on a JEP for Blue Ocean Extensibility. This will come in several parts that cover the technical aspects of how javascript extensions are registered and how packaging is done as well as documentation and an SDK to help develop extensions.

I've opened a PR for <a href="https://github.com/imeredith/jep/tree/jep-submission/jep/0000" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fimeredith%2Fjep%2Ftree%2Fjep-submission%2Fjep%2F0000\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGkFSDK-3yZS-cqrvJfSa6V_Gpwtw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fimeredith%2Fjep%2Ftree%2Fjep-submission%2Fjep%2F0000\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGkFSDK-3yZS-cqrvJfSa6V_Gpwtw&#39;;return true;">https://github.com/imeredith/jep/tree/jep-submission/jep/0000 that explains Blue Oceans extensibility generally, and <a href="https://github.com/imeredith/jep/tree/jep-submission-extensibility-api/jep/0000" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fimeredith%2Fjep%2Ftree%2Fjep-submission-extensibility-api%2Fjep%2F0000\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFNjjcAG8_NlmRz4EbHk4b3TkuwaA&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fimeredith%2Fjep%2Ftree%2Fjep-submission-extensibility-api%2Fjep%2F0000\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFNjjcAG8_NlmRz4EbHk4b3TkuwaA&#39;;return true;">https://github.com/imeredith/jep/tree/jep-submission-extensibility-api/jep/0000 that defines a Javascript API for plugins to use. 

I'm currently working on a JEP for packaging/bundling the Javascript extensions and assets.

Any feedback/questions on the JEPs or just the general direction is welcome.

Thanks, Ivan








--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/32582ea5-164e-4bb1-bf2b-82e1bfe6b872%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [BlueOcean] BlueOcean Extensibility JEP

Oleg Nenashev
Hi,

Great to see that BlueOcean is finally going to get some extensibility.
I was waiting for it since Beta, and it was blocker for BlueOcean adoption in some of my projects.

JEP-204 looks good to me. Few questions there:
  • What is the reason to create a new extension engine/store? I'd guess there are many existing engines for JS/TS
  • There is no logic to unregister extensions. IIUC it means that I may need to reload BlueOcean page if the master restarts and uninstalls some plugins
  • Does BlueOcean project plan switch to TypeScript? Or is it just a quick reference implementation?
Sorry if I ask stupid questions, I am not a JavaScript guy.

JEP-203... Would it be possible to clarify the specification in JEP-203?
From what I see it's a top-level document which defines the extensibility goals and announces breaking changes in existing APIs.
Without links to downstream JEPs describing particular sections, IMHO there is no much value in this JEP. And I doubt it can be accepted in the current state until there are specifications for all sections in the document (in downstream JEPs?).

Best regards,
Oleg

On Tuesday, June 12, 2018 at 7:24:56 PM UTC+2, Liam Newman wrote:
<a href="https://github.com/jenkinsci/jep/pull/112" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fjep%2Fpull%2F112\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNG6191hP5_PfC5AXLw3Rol633yWjA&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fjep%2Fpull%2F112\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNG6191hP5_PfC5AXLw3Rol633yWjA&#39;;return true;">https://github.com/jenkinsci/jep/pull/112 - Merged 
<a href="https://github.com/jenkinsci/jep/pull/113" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fjep%2Fpull%2F113\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNE7u5W5elDrzr7fcvDsK-0pBxjPPg&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fjep%2Fpull%2F113\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNE7u5W5elDrzr7fcvDsK-0pBxjPPg&#39;;return true;">https://github.com/jenkinsci/jep/pull/113 - Merged

Blue Ocean Extensibility - <a href="https://github.com/jenkinsci/jep/tree/master/jep/203" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fjep%2Ftree%2Fmaster%2Fjep%2F203\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNF2kwsbEzM4X9d9sBVdg14IJ0-k7w&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fjep%2Ftree%2Fmaster%2Fjep%2F203\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNF2kwsbEzM4X9d9sBVdg14IJ0-k7w&#39;;return true;">https://github.com/jenkinsci/jep/tree/master/jep/203
Blue Ocean Extensibility API - <a href="https://github.com/jenkinsci/jep/tree/master/jep/204" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fjep%2Ftree%2Fmaster%2Fjep%2F204\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFJ1eqUDaqvLZLmGBOgd5aE2Ak6IQ&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkinsci%2Fjep%2Ftree%2Fmaster%2Fjep%2F204\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFJ1eqUDaqvLZLmGBOgd5aE2Ak6IQ&#39;;return true;">https://github.com/jenkinsci/jep/tree/master/jep/204


On Tuesday, June 5, 2018 at 8:12:01 PM UTC-7, Ivan Meredith wrote:
Hello everyone,

I have been working on a JEP for Blue Ocean Extensibility. This will come in several parts that cover the technical aspects of how javascript extensions are registered and how packaging is done as well as documentation and an SDK to help develop extensions.

I've opened a PR for <a href="https://github.com/imeredith/jep/tree/jep-submission/jep/0000" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fimeredith%2Fjep%2Ftree%2Fjep-submission%2Fjep%2F0000\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGkFSDK-3yZS-cqrvJfSa6V_Gpwtw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fimeredith%2Fjep%2Ftree%2Fjep-submission%2Fjep%2F0000\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGkFSDK-3yZS-cqrvJfSa6V_Gpwtw&#39;;return true;">https://github.com/imeredith/jep/tree/jep-submission/jep/0000 that explains Blue Oceans extensibility generally, and <a href="https://github.com/imeredith/jep/tree/jep-submission-extensibility-api/jep/0000" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fimeredith%2Fjep%2Ftree%2Fjep-submission-extensibility-api%2Fjep%2F0000\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFNjjcAG8_NlmRz4EbHk4b3TkuwaA&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fimeredith%2Fjep%2Ftree%2Fjep-submission-extensibility-api%2Fjep%2F0000\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFNjjcAG8_NlmRz4EbHk4b3TkuwaA&#39;;return true;">https://github.com/imeredith/jep/tree/jep-submission-extensibility-api/jep/0000 that defines a Javascript API for plugins to use. 

I'm currently working on a JEP for packaging/bundling the Javascript extensions and assets.

Any feedback/questions on the JEPs or just the general direction is welcome.

Thanks, Ivan








--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/5ec022bb-056e-47f5-b7c9-e89eb61472a4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: [BlueOcean] BlueOcean Extensibility JEP

Ivan Meredith-2
Hi Oleg,

Sorry for taking so long to reply, I have been distracted from this for a bit.

JEP-204 looks good to me. Few questions there:
  • What is the reason to create a new extension engine/store? I'd guess there are many existing engines for JS/TS
Not really anything browser based from what we have seen. Atlassian has some libraries, but its iframe based.

  • There is no logic to unregister extensions. IIUC it means that I may need to reload BlueOcean page if the master restarts and uninstalls some plugins
Currently if the master restarts Blue Ocean will reload automatically because of the plugin issue. Maybe in the future this could be enhanced. Incidentally we currently have no way to detect when plugins are installed without a restart which I will add to the JEP 
  • Does BlueOcean project plan switch to TypeScript? Or is it just a quick reference implementation?
Yes. Typesript is a superset of ES2015 which we were already using. Typescript helps a lot with type safety, and its also provides code completion driven by the types which is supported by basically all editors 

Sorry if I ask stupid questions, I am not a JavaScript guy.

JEP-203... Would it be possible to clarify the specification in JEP-203?
From what I see it's a top-level document which defines the extensibility goals and announces breaking changes in existing APIs.
Without links to downstream JEPs describing particular sections, IMHO there is no much value in this JEP. And I doubt it can be accepted in the current state until there are specifications for all sections in the document (in downstream JEPs?).

I agree.

I have not had the time to work on this JEP recently as something came up basically just after I created this thread. But I will be spending some time on this each week now.

- Ivan

--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/155f496d-f571-4c7f-b1c0-eb5e0734940d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.