Hi Chi,

I've just finished a project that took up most of my time, and now I'm planning to set more time aside for maintaining MVW. After looking through the existing releases and open issues I think we should outline a list of features and the versions in which they will be published.
I'd suggest the following:

  • 1.x:
    1. Fix issues with varying element structures once and for all by implementing hook_field_attach_form and replacing #theme there (#2298633: MVW accesses missing indexes on Scald atom reference). I don't feel entirely comfortable about this one, as it brings about some larger internal changes that other modules might have build upon.
      Alternatively we can just add missing checks (e.g. for node reference) and move this to 2.x.
    2. Fix #2369063: ID attribute for wrapper is not guaranteed to be unique.
    3. Create a new beta release.
    4. Write tests.
    5. Create a full release.
  • 2.x: There hasn't been a release yet, so I think we still have a lot of freedom here. I propose the following features:

What do you think?

Comments

Chi’s picture

Assigned: Chi » Unassigned

Hi Ciss.

Drupal 8 is coming soon. Have you got some experience in Drupal 8 development? Is it possible to port 2.x branch and make a stable release without requiring core patches?
Anyway since I do not spare much time on this project feel free to change anything you want to fix in this module.

Thanks.

stefanos.petrakis@gmail.com’s picture

Hello ciss,

I am also - finally - available for some work on MVW.
How do things look on your side at the moment?
I see this as the latest trace of activity from your side (https://www.drupal.org/node/2298639#comment-10900024).

If you need some help with debugging or development tasks let me know.

Best,
Stefanos

stefanos.petrakis@gmail.com’s picture

I just committed a patch that should cover 1.x.1 from the roadmap (2298633-4).
And I am going to be working with the rest of the points under 1.x.1

ciss’s picture

@stefanos.petrakis Thanks for picking this up again!

I've pushed the changes I've made to 7.x-1.x-plugins so that you can use it either directly or as reference. It should fix several issues (among them #2298633: MVW accesses missing indexes on Scald atom reference, per my comment #3 in that issue), but is a major rewrite.

Disclaimer: I didn't find the time to do a final pass/cleanup, but we've been using this version for a while now without problems.

ciss’s picture

I just did a quick review of the 7.x-1.x-plugins (I hadn't touched it in a while), and found the code to be highly readable and maintainable. What's missing is testing, code style fixes and documentation.

Furthermore upgrade requirements need to be determined (e.g. I'm currently not sure if/how the selectors changed).

stefanos.petrakis@gmail.com’s picture

Hey Ciss, happy to see you around.
I also did some refactoring (#2298633-4) as well as wrote some tests (#2901830-2).

In the meantime, here is my point of view: We should not introduce huge changes to 7.x-1.x, but stick to the Roadmap you defined above (and I find solid and doable in our limited time). In that way the next steps could be:

a) Review, commit and start using the tests #2901830-2: Basic test coverage
b) Review, commit and start using the - smaller - refactoring #2298633-4: MVW accesses missing indexes on Scald atom reference
c) Resolve #2369063: ID attribute for wrapper is not guaranteed to be unique
d) Release a new beta
e) Extend the test suite to cover - as much as possible - more scenarios, e.g. including integration with FieldCollections, Entityreference, Node reference, etc.
f) Release a stable version

After that is concluded, or in parallel, we can work with your plugins branch, most importantly by adding tests to it as well as figuring out upgrade paths/options from 7.x-1.x.

I see two possibilities for releasing your plugin code:

a) Break it down and integrate gradually into the 1.x version, or
b) Move it into the 7.x-2.x version, which is what was mentioned before and also makes more sense, since it is a quite different code base and philosophy.

Should we have a chat at some point on IRC/Slack to discuss next steps?

ciss’s picture

Hi Stefanos,

I never intended to merge the new branch into 1.x. I named it 7.x-1.x-plugins to clarify that it was branched off the 7.x-1.x branch instead of the 7.x-2.x branch that already existed at that time. Also, I shyed away from creating yet another 7.x-3.x branch as it would have created too much confusion in my opinion.

I'm completely with you regarding the roadmap. The only thing I would reintegrate from the plugins branch would be the field widget #theme fix that generically deals with all sorts of special field types (ER, Scald etc). Beyond that I'd focus on getting good test coverage in. Ideally we can merge these tests almost 1:1 into 7.x-1.x-plugins later on.

When reviewing my branch I noticed that I renamed some classes (notably "-group-" to "-item-"). Semantically "item" makes a lot more sense than "group", so I'm torn wether this (potentially BC breaking) change should be reverted in favor of a simpler upgrade path. Might be worth discussing in a separate issue.

I'm practically always idling on IRC. Ping me there during the day (UTC+2) and I'll get back to you as soon as I can.