-
Improvement
-
Resolution: Fixed
-
Critical
-
-
Blue Ocean - 1.1-beta-1, Blue Ocean - 1.1-beta2, Blue Ocean 1.1-beta4, Blue Ocean 1.1, Blue Ocean 1.1, Blue Ocean 1.2-beta1, Blue Ocean 1.2-beta2, Blue Ocean 1.2-beta3, Blue Ocean 1.2-beta4, Blue Ocean 1.3, Blue Ocean 1.4 - beta 1, Blue Ocean 1.4 - beta 2
Publishing of npm modules like core-js and jdl is error prone.
This could be automated away via tooling, or an alternative mavenised way of delivering shared should be invested in to speed up development and improve sharing of code.
Impacts on extensibility and plugin development.
cc cliffmeyers kzantow if there are always going to be pure JS modules, then perhaps we should split this in 2 - one for modularity/shared code and one for better publishing of vanilla npm modules - thoughts?
- blocks
-
JENKINS-42333 Consolidate all the annoying urlconfig's and tidy up how corejs exports stuff
-
- Open
-
-
JENKINS-42601 reduce or eliminate core-js footprint
-
- Open
-
-
JENKINS-44592 Upgrade nodejs, npm
-
- Open
-
-
JENKINS-44593 Upgrade to React 16
-
- Open
-
- is blocked by
-
JENKINS-42173 Blue Ocean SDK design document - extensibility improvements
-
- In Progress
-
- is blocking
-
JENKINS-47567 POST-JENKINS-42602 recreate shrinkwrap files
-
- Closed
-
-
JENKINS-47569 POST-JENKINS-42602: finalize npm modules & executor info
-
- Closed
-
-
JENKINS-47568 POST-JENKINS-42602: move core-js i18n to core-js plugin
-
- Open
-
- relates to
-
JENKINS-47752 Fix issue with tests and lint not being run for JDL and CoreJS in master
-
- Closed
-
-
JENKINS-38876 extension point improvements using decorators
-
- Open
-
I think the shape this ticket takes depends a lot on where we land w/ the extensibility work.
I know kzantow and I have discussed that core-js could be largely obviated if "blueocean-personalization" could simply depend on "blueocean-dashboard" as a Maven dep, and then we had a little magic to pull the right JS dependencies downstream into node_modules. Then things like the Run/Replay buttons, the mobx services, etc could be used in both BO modules without being forced to put them in core-js.
It seems to the follow then that "blueocean-dashboard" might depend on another plugin (perhaps "blueocean-web") that is providing all the necessary under the hood JS stuff (extension loading, React, etc). If someone wanted to build their own totally separate UI that had nothing to do with the BO UI, they'd just depend on "web" and not on "dashboard".
To me, those are the changes that would impact plugin developers.
But even if we manage to eliminate core-js, we still have the JDL which I'm not sure we'd fold into anything else (but could). And then we still have a lot of smaller JS libs like js-builder, extensions, etc which should all have a uniform way of being published.
I know one tool we looked at was "release-it" to simplify and formalize NPM publishing. Whatever we land on, I think it should be as close as possible to process we use to release and publish Maven plugins.