Top-posting as an attempt to sum up the next steps.

I think we are more or less in agreement over what to do, and what each
piece of the puzzle should do ( starter, ITs, feature model tooling,
kickstart, etc).

I would like to create more tasks to track the work that needs to be
done. As part of that, I think SLING-8350 [1] needs to stay open as a
top-level task, and I will create sub-tasks that represent individual
units of work that anyone can pick up.

Does that sound ok to everyone?

Thanks,
Robert

[1]: https://issues.apache.org/jira/browse/SLING-8350

On Tue, 2020-05-12 at 18:26 +0200, Robert Munteanu wrote:
> On Mon, 2020-05-11 at 14:34 -0700, Andreas Schaefer wrote:
> > Yes, that sums it up pretty much.
> 
> Great!
> 
> > Also the Kickstart is replacing Launchpad more than the
> > SlingStarter
> > as the PMs go to the wayside in favor of the FMs that are then
> > managed outside of the Kickstart.
> 
> Ack, fully agree on that.
> 
> > With that said the testing of Sling FM should be done in a new
> > module
> > (Kickstart Testing?) than re-using Launchpad Testing but that seems
> > to be pretty straight forward as we can use Kickstart Plugin and
> > the
> > converted Sling FM.
> 
> Not sure about that. The direction we're heading towards is that
> Launchpad testing should be going away and the test launcher folded
> in
> the starter. The reasoning is that integration tests in the same
> module
> have a much higher chance of catching regressions early.
> 
> But then again I think we should keep this out of scope and focus on
> the conversion itself [1].
> > For me the basics on how to convert Sling to FMs from PMs and how
> > to
> > launch it is pretty much laid out. The next part is:
> > 
> > - Create native Sling Module FMs
> > - Aggregate them into a Sling FM / FAR
> > - Adjust testing
> > - Write documentation
> > - Composite Nodestore
> 
> +1 from me.
> 
> Also the composite nodestore is a great feature to have set up. I
> would
> still like to focus on the feature model first, and then on the
> niceties :-)
> 
> Regarding the feasibility of using the feature model tooling
> directly,
> I was able to tweak your great work from the kickstart and add an
> 'on-
> the-fly' conversion to the Sling Starter, so that the oak_tar
> aggregate
> is packaged. [2]
> 
> Proof-of-concept to support the discussion, not necessarily the way
> we
> will go, so it's on a branch for now.
> 
> Thanks,
> Robert
> 
> [1]: 
> https://cwiki.apache.org/confluence/display/SLING/Migrating+the+Sling+Starter+to+the+Feature+Model#MigratingtheSlingStartertotheFeatureModel-Outofscope
> [2]: 
> https://github.com/apache/sling-org-apache-sling-starter/compare/feature/create-feature-aggregate?expand=1
> > - Andy
> > 
> > > On May 11, 2020, at 2:07 PM, Robert Munteanu <romb...@apache.org>
> > > wrote:
> > > 
> > > On Mon, 2020-05-11 at 13:43 -0700, Andreas Schaefer wrote:
> > > > Hi Robert
> > > > 
> > > > I think there is a misconception what the Kickstart is. Here is
> > > > my
> > > > rundown:
> > > > 
> > > > - Provides a Sling FM
> > > > - Creates a Control Thread
> > > > - Offers Sling specific CLI options and converts them to Sling
> > > > properties
> > > > - Launches Sling through the Feature Launcher
> > > > - Provides the ability to access Sling running in another
> > > > thread
> > > > 
> > > > Because of the current situation it also does that:
> > > > 
> > > > - Provides a mean to convert Sling PMs to FMs
> > > > - Aggregates these FMs
> > > 
> > > Ack.
> > > 
> > > > That said this is just temporary and should go away as soon as
> > > > Sling
> > > > is Feature Model-yfied.
> > > > 
> > > > I am not sure how Sling is used in production environments
> > > > (beside
> > > > Peregrine) but I assume customers use Sling Start one way the
> > > > other
> > > > even if they create their own PM(s) to launch it with the
> > > > Starter
> > > > (Peregrine does that).
> > > > The Kickstart can take a custom Sling FM (override the packaged
> > > > one)
> > > > as well as custom project FM(s).
> > > > 
> > > > As a user I do not want to hunt down the properties on how to
> > > > launch
> > > > Sling but rather have an option in a Start (here Kickstart).
> > > > Instead of “-Dsling.port=8080” something like “-p 8080” would
> > > > be
> > > > better especially because the Kickstart expose these options
> > > > with
> > > > the
> > > > “—help”” option.
> > > > 
> > > > The Kickstart project does not compete or shadow any of the
> > > > feature
> > > > tooling but rather leverages them. In addition support for
> > > > Composite
> > > > Nodestores is something the Feature Launcher cannot do and
> > > > would
> > > > require scripts to run which are harder to manage for an admin.
> > > 
> > > Right.
> > > 
> > > I get the feeling that I am missing something, as I think we
> > > write
> > > the
> > > same things but don't necessarily agree :-)
> > > 
> > > Let me try and rephrase my draft proposal in a very compact
> > > manner,
> > > let's see where the difference lie.
> > > 
> > > 1. The feature model provides tooling for assembling and
> > > validating
> > > feature model files.
> > > 
> > > 2. Kickstart is a convenient, featureful high-level launcher, and
> > > some
> > > (most?) users will like to use that for starting Sling.
> > > 
> > > 3. The feature model launcher is a pure OSGi launcher for users
> > > that
> > > either desire to not be tied to the kickstart or do not have an
> > > use
> > > for
> > > the additional features of the kickstart.
> > > 
> > > Does that match how you see things? If not, I'd love to
> > > understand
> > > where things don't align.
> > > 
> > > Thanks,
> > > Robert
> > > > Cheers - Andy
> > > > 
> > > > > On May 11, 2020, at 1:05 PM, Robert Munteanu <
> > > > > romb...@apache.org>
> > > > > wrote:
> > > > > 
> > > > > Hi Andy,
> > > > > 
> > > > > On Mon, 2020-05-11 at 09:50 -0700, Andreas Schaefer wrote:
> > > > > > Hi Robert
> > > > > > 
> > > > > > Thanks for the nice rundown here but I think it is slightly
> > > > > > "behind
> > > > > > the curve”.
> > > > > > 
> > > > > > The current Kickstart project will:
> > > > > > - take the Provisioning Model (PM) files and convert them
> > > > > > into a
> > > > > > Feature Model (FM) files
> > > > > > - aggregates the FM files into a single FM (feature-
> > > > > > sling12.json)
> > > > > > - launches the Sling with the Feature Launcher with the
> > > > > > feature-
> > > > > > sling12.json
> > > > > > - has the ability to launch Sling12 with a FAR file if
> > > > > > provided
> > > > > > - run Sling in the background as a service (if needed) (-s
> > > > > > option)
> > > > > > - can obtains status and stop a launched instance
> > > > > > - add additional FMs (custom projects) to the launch (-af
> > > > > > option)
> > > > > 
> > > > > Right, the kickstart project is quite featureful, and I
> > > > > personally
> > > > > see
> > > > > it as a 'batteries-included' launcher, which goes beyond what
> > > > > the
> > > > > 'stock' feature launcher offers. There are scenarios where
> > > > > kickstart is
> > > > > better suited, and scenarios where the additional complexity
> > > > > is
> > > > > not
> > > > > needed.
> > > > > 
> > > > > (Hindsight being 20/20 and all, I'd have suggested 'thinpad'
> > > > > as
> > > > > the
> > > > > name for it, as I currently see it as a replacement for the
> > > > > launchpad,
> > > > > but thinner).
> > > > > 
> > > > > 
> > > > > > Right now this is only tested for oak_tar but there it
> > > > > > works
> > > > > > like
> > > > > > a
> > > > > > charm.
> > > > > > 
> > > > > > Down the road I would like the Kickstart to be able to
> > > > > > launch
> > > > > > Sling
> > > > > > with a composite node store (read-only libs, writable
> > > > > > content)
> > > > > > w/o
> > > > > > any user interaction.
> > > > > > 
> > > > > > From my point of view the coding part of Phase 1 and 2 is
> > > > > > mostly
> > > > > > done.
> > > > > > 
> > > > > > These are the next step I see:
> > > > > > - add support for analyzer (when I created Kickstart the
> > > > > > analyzer
> > > > > > was
> > > > > > not working properly so I took it out)
> > > > > > - test Kickstart with oak_mongo
> > > > > > - add composite node-store support to Kickstart
> > > > > > - migrate Sling Modules to creating FMs
> > > > > > - aggregating Sling based on FMs directly (no PMs involved)
> > > > > > - lots and lots of documentation
> > > > > 
> > > > > Here is where I see an overlap with the feature model
> > > > > tooling.
> > > > > We
> > > > > have
> > > > > analysers, aggregators, launchers, etc in the feature model
> > > > > as
> > > > > standalone applications, java libraries and Maven plug-ins.
> > > > > 
> > > > > I think it makes sense to have each tool with its own well-
> > > > > defined
> > > > > purpose. I definitely see the value in having a full-fledged
> > > > > replacement for the launchapd - that is the kickstart. 
> > > > > 
> > > > > However, it would be confusing to have the same functionality
> > > > > defined
> > > > > in both the feature and the kickstart plugins, and while I
> > > > > don't
> > > > > claim
> > > > > to be the hardest person to confuse :-) I think that this
> > > > > confusion
> > > > > would apply to our users as well.
> > > > > 
> > > > > I believe that the kickstart should focus on being an
> > > > > advanced
> > > > > launcher, while the feature tooling providers the core
> > > > > services.
> > > > > 
> > > > > This is why I suggested that we adopt the kickstart as a part
> > > > > of
> > > > > the
> > > > > feature build - the rest should be supported by the other
> > > > > feature-
> > > > > based 
> > > > > tooling.
> > > > > 
> > > > > > In my view each Sling Module should create their own FM
> > > > > > that
> > > > > > includes
> > > > > > all the configurations (Service User Mappings etc) and the
> > > > > > repoinit
> > > > > > it needs to run properly. 
> > > > > 
> > > > > (snip)
> > > > > 
> > > > > I don't necessarily disagree, but let's please split this off
> > > > > into
> > > > > a
> > > > > different discussion. I think the 'in-place' conversion of
> > > > > the
> > > > > Starter
> > > > > is a large enough topic for now.
> > > > > 
> > > > > Thanks,
> > > > > Robert

Reply via email to