On Fri, Apr 8, 2016 at 12:03 PM, Anca Luca <[email protected]> wrote:

> Hello all,
>
> I think the best would be 2, but it could be discussed on an app by app
> basis and, in my opinion, the options need to be looked in the context of
> what does it mean that an "application needs to pass to Nested Spaces".
> This is my view on it:
>
>
>

>    - Requirement of a nested spaces version should be done if the
>    functionalities of the application demand it (there is a feature that is
>    added to the functionality that needs nested spaces in order to work)
>

+1. IMO it's also very important to distinguish between:

* works with Nested Pages
* uses Nested Pages

At first we should just make sure the applications continue to work with
XWiki 7.2+, i.e. with Nested Pages enabled (without actually using the
Nested Pages feature). This is mostly a matter of using correctly the
entity reference APIs which have been supporting Nested Spaces from the
start (we just assumed so far that there is only one space). The APIs we
added after 7.2 are mostly helpers to ease the work with Nested Pages.

After we make the application work with XWiki 7.2+ we can discuss whether
it should use Nested Pages or not (i.e. whether it should create Nested
Pages or not). As Anca said, it needs to bring some value to the
application as perceived by its users. To give you an example, the reason I
would modify the File Manager to use Nested Pages is to have Access Rights
inheritance for folders and files.

Thanks,
Marius


>       - Note that application can *work* on nested spaces without
>       *requiring* nested spaces (because of the general backwards
>       compatibility of nested spaces feature), this bullet above is about
>       requiring nested spaces.
>    - Even if previous versions can still be supported by an application
>    migrated to nested spaces, if this adds a lot of bloat and "if"s in the
>    code and extra complexity, the benefits are probably not worth it (it
>    should still be discussed though) - this would be option 0
>    - A particular case is when an application does not work on nested
>    spaces in its current form and needs to be modified to support nested
>    spaces. In this case, there needs to be an effort to find a reasonable
>    approach that would allow the application to work, with the same code,
> on
>    both nested spaces and non-nested spaces (which could be possible
> because
>    of the generic backwards compat of nested spaces)
>
>
> Otherwise put, I am fine that there are applications on which we apply 2
> (and even 3) , but there needs to be a good reason  to pass to Nested
> Spaces for an application, potentially joined by a validation discussion
> with the community. If we decide we go to nested for an app, both 2 and 3
> are fine. In such a case I would be against option 0 that Vincent
> mentioned: adds complexity and bloats the code for an application, raises
> the learning curve and it will be removed in the future.
>
> Now please note that applying 2 means that if you're in the middle of the
> developpement for a version of an application, on which some issues were
> already fixed, and you want to move to a nested spaces version, it would be
> nice to release current work first as the "last version before nested
> spaces" and only then break compat. This is also valid for planning the
> versions of the application: bugfixes / features that don't require nested
> spaces should be planned in earlier, separate versions than features that
> would require nested spaces.
>
>
> On Fri, Apr 1, 2016 at 8:48 AM, Alexandru Cotiuga <
> [email protected]> wrote:
>
> > Hello devs,
> >
> > Since I already experimented the Nested Spaces behaviour on the Forum
> > application and there are other applications that might need it also, I
> > think it's time to start discussing this topic and to decide what
> strategy
> > should be implemented on contrib applications.
> >
> > What I have done in the Forum app was to handle both Pre NS and NS
> versions
> > of XWiki, writing specific code for each case (wrapped in if-else
> > statements), which proved to be the most complex and hard to maintain
> way,
> > without much benefit. Sooner or later, everybody will have a NS Xwiki
> > version and then all the support for Pre NS would become useless and then
> > the code should be cleaned, which would be a lot of work again.
> >
> > Besides this already tried strategy, there are some others to be
> discused:
> >
> > 1: Support both Pre NS and NS versions but in different branches.
> > 2: Move to NS, but keep fixing bugs for Pre NS in a separate branch.
> (This
> > is what I'm proposing)
> > 3: Move to NS without any maintance on Pre NS.
> > 4: Others?
> >
> > In all the cases, a data migration should be performed.
> >
>
> Depends on what we understand by data migration: if the data format changes
> (e.g. the data of the application needs to have a new hierarchical
> structure because a functionality requires this hierarchy - e.g. inheriting
> rights) then we need to have a data migration, as in take into account the
> fact that there will be upgrades of the application, and that we should
> have an unique format of data for the application in question (e.g. there
> is no reason that the data structure is different between a user that has
> installed the app on a fresh 7.4 and a user that has upgraded the
> application from a previous version on a 7.4 xwiki).
> If "data migration" is about just transforming all existing pages of
> an/created by an application (which are terminal) into non-terminal pages,
> then it should not be done unless there is a feature that requires it. I
> think this data migration needs to be looked at as a change in the
> application data structure (from a 2 levels hierarchy to an infinite
> hierarchy) and should be done only if there is a functional benefit that
> justifies it. In this context, breaking compat of the FAQ app by moving the
> FAQ pages to a "Data" subspace of the FAQ space for the sole reason that
> this is what AWM is doing now is not ok, because the reason is not good
> enough. So, imo, since these reasons will really differ from app to app and
> evaluation of what "good reason" means depends on the evaluator, we should
> try to reach consensus by discussing it on a case by case basis, and not
> have a single rule applied blindly.
>
> I think I repeated myself 3 times, sorry you had to read through all of it
> :D
>
> Have fun,
> Anca
>
>
> >
> > What we decide to do?
> >
> > Thanks,
> > Alex
> > _______________________________________________
> > devs mailing list
> > [email protected]
> > http://lists.xwiki.org/mailman/listinfo/devs
> >
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to