Motivation

This issue is to coordinate the development of the module.

It tackles a number of old stale outstanding issues, cleanup from the 6.x to 7.x upgrade, changing API to make Diff entity aware, potential UI enhancements and any other relevant issues from the last few years that are still active in the issue queues.

Proposed resolution

To tackle these issues in a coordinated fashion.

Remaining tasks

Menu change with no update?

This effects users that are upgrading within Drupal 6 (about 1000). I just haven't parsed the commits to see where these were added / altered. Only effects Drupal 6

#882186: Exception after upgrading to 2.1 from 2.0
#1145130: require_once(/diff.pages.inc) ... No such file or directory in /includes/menu.inc

However, the recent commit of the changed menu in the Drupal 7 may also need this too.

Trivial patches to review / push through

These have already been applied to the 7.x-3.x branch.

To consider backporting:

#888680: drupal_alter() for $node_diffs - 7.x-2.x & 6.x-2.x
#1280892: Diff should track the variables that it defines - 7.x-2.x & 6.x-2.x
#1304658: Remove "Add new comment" section from revisions view - 7.x-2.x
#1122206: "Show diffs inline" produces Notice - 7.x-2.x
#1175064: Provide variables for leading and trailing context - 7.x-2.x
#1673864: Allow users to skip the administration theme / overlay. - 7.x-2.x

#1673856: Use hook_form_BASE_FORM_ID_alter() rather than hook_form_alter() - 7.x-2.x
#1673876: Use autoloading - 7.x-2.x

Support Entities and Fields

These have already been applied to the 7.x-3.x branch.

Should directly resolve

#1418760: Optional setting to honour the display settings
#1347316: Selectable view mode for inline diffs and "Current revision" display view mode.
#1550698: Diff of "select from list" fields shows change in key, not change in value
#248778: Taxonomy diff
#1458814: File (and image) field support
#1211282: File / Image Field Diff Integration
#1324714: Guide for module developers needed: How to allow diff to track changes to their modules
#1458906: Improve performances

indirectly resolves non-core field support

General UI improvements

#521212: Make diff comparison page themable

Revisions page
#114308: add jQuery for hiding radios that shouldn't show diffs

Comparison page
#1671484: Show number of lines changed on revisions page
#1004040: Inline diff in view revision page
#1365716: How to display HTML format of Revisions from difference module?

Other related issues / threads

Core internals / Plugin Diff engines

#925706: Diff caching
#458672: Use real HTML-Diff algorithm in Drupal Diff module
#864408: Create a separate diff API

Generic ones to tackle separately

The remaining D7 and D6 issues from the last 2 years.

#1013146: Need More Granular Permissions
#1320162: Inline diff not working when node is based on a Panel page
#641480: Expose diff functionality to views
#1412908: Diff table format is broken when viewing changes between nodes in Chrome browser.
#114699: Diff module should support Token
#1672836: Rules integration for Diff module
#1211282: File / Image Field Diff Integration

These haven't been reviewed to see if required.

To tackle outside of the Diff project

#188253: Compare Two Different Entities (Nodes Entities)
#1424162: Diff in Taxonomy term description.

Initial sandbox project suggests that this is actually super trivial now, it is just a matter of the UI for this to work out and implement.

User interface changes

The #1365750: Generalize API and Integrate with core field types will minimize these and focus at getting the Drupal 7 version inline with the Drupal 6 version in relation to how it handles the field comparisons.

API changes

These are detailed in CHANGELOG.txt and diff.api.php

  • Internal: System variable names have been changed
  • Exposed: hook_diff() is replaced by hook_entity_diff().
  • Exposed: hook_entity_diff_alter() is introduced.
  • Exposed: Individual field callbacks are introduced, so do not implement hook_diff() or hook_entity_diff() to implement field comparisons. These follow the pattern FIELD_MODULE_field_diff_view_prepare() and FIELD_MODULE_field_diff_view().
  • Exposed: hook_field_diff_view_prepare_alter() and hook_field_diff_view_alter() are introduced.
  • Exposed: All new hooks can be placed in the file MODULE.diff.inc. The field callbacks will also look at this file if the field module includes this file.
  • And many more... (changelog)

Original report by Alan D.

This is an important module and the queues seem a bit stagnant at the moment. So if you need help, I can make myself available on a limited basis.

Comments

mitchell’s picture

Title: Need help co-maintaining? » Diff module appears unmaintained
Project: Diff » Drupal.org site moderators
Version: 7.x-2.x-dev »
Component: Code » Project ownership
Category: feature » task
Status: Active » Postponed (maintainer needs more info)

@Alan D.: Can you still help co-maintain diff? We use this on d.o, so I agree it's very important.

alan d.’s picture

I think that this is a bit premature to push this into the Project Webmasters queue although Taxoman realityloop has been fairly slow to respond...

I have to admit that I'm pushed already with my current modules, but I can help out where possible. I posted a fairly big patch and I have not had feedback on this from any of the existing maintainers. It resolves the remaining core field issues and changes the API to make this more extendable.

#1365750: Generalize API and Integrate with core field types, which #1371916: Restructure around the Entity / Field system is a duplicate trying to trigger some discussion on this.

Which would also resolve

#1550698: Diff of "select from list" fields shows change in key, not change in value
#248778: Taxonomy diff
#1458814: File (and image) field support
#1211282: File / Image Field Diff Integration

Leading into

#1418760: Optional setting to honour the display settings & #372957: HTML Strip for Diff, WYSIWYG Friendly, #304618: HTML Filtering (How?)

I would like to have at least their blessing before pushing this forward. Basically, I want to use the module for webform submissions and user diff too, and that patch is the first step towards integration. (Two separate projects, both currently on hold). The webform one is going to be interesting if we get this, as it could involve multiple comparisons. And there was some suggestions of a scaled color difference too, maybe the Levenshtein distance or Normalized Compression Distance but I'm guessing their budget would not cover this :)

I am coming in fairly green into this project, and really need experienced eyes to look at this to ensure that I haven't caused any regressions in the process. I have never actually use it personally, rather just set it up on multiple sites for clients. (aka: Only enabled the module and set permissions!)

Short answer: I can help but really love to have someone that has experienced in the module to review things.

realityloop’s picture

Status: Postponed (maintainer needs more info) » Active

Sorry, I've been really busy with work lately.. I will go through the issue queue tonight and apply as many RTBC patches that I can. I've also set myself up to get weekly emails of issues now, the realtime reports creates inbox overload unfortunately.

Alan D. I have no problem adding you as a co-maintainer if you are still interested, I kind of fell in to being the main maintainer myself. Due to a d6 patch I was working on yhahn gave me maintainer access and then all the other maintainers dissappeared.

I will try to be a bit more active on the queues though.

alan d.’s picture

Title: Diff module appears unmaintained » Diff module maintenance status
Project: Drupal.org site moderators » Diff
Version: » 7.x-2.x-dev
Component: Project ownership » Miscellaneous

There are a lot of these and they will conflict with the work I am pushing through. My changes are mainly limited to this thread #1365750: Generalize API and Integrate with core field types and zip rather than patches to save time over the last couple of days. This is 85% through from changing the unconfigurable back end comparison for nodes only to any entity based comparison with configurable view modes. It is going to be borderline (if accepted) that these will need a new branch or not. In relation to the API, then yes a branch is warranted, but if I do things right there should be no front end changes other than full field diffs and some strings, so a branch shouldn't be needed.

But yes, happy to help out, but a plan of attack is vital for moving forward.

alan d.’s picture

[Edit] I've moved this to the main header for easier tracking.

alan d.’s picture

Issue summary: View changes

Changing to a meta issue to track changes.

alan d.’s picture

Title: Diff module maintenance status » Developmental Roadmap
StatusFileSize
new20.7 KB

The basic patches are listed on the sandbox front page - http://drupal.org/sandbox/aland/1674308

These were rolled out in the order listed and may differ from the core project patches already listed here. For example, the tracking variables one was missing the content type delete hook.

The next patch will be the big patch to merge the new suggested Entity / View mode, reverting of (& hopefully re-adding) the HTML friendly patch.

I have noticed that a lot of the field patches are starting to do append the asset ID to the diff output. This differs from Diff 6.x, and could be confusing to normal users. Ideas to mask this?

alan d.’s picture

StatusFileSize
new341 bytes
new1.61 KB
new492 bytes
new2.61 KB
new2.26 KB
new2.33 KB
new134.11 KB

I have no problem adding you as a co-maintainer if you are still interested

I will take you up on this offer if you are interested.

The current process is getting little (zero) feedback and is confusing the issue queues, so maybe we need to pump out a new branch to get users actually testing my stuff.

I would recommend checking out the dev project if you want to handle this yourself and pasting it over the existing modules code and committing to the 3.x branch, but here is the patch if you prefer (check that the patch is upto date using the sandbox)

The change log is here: http://drupalcode.org/sandbox/aland/1674308.git/blob/refs/heads/7.x-2.x:...

The additional files are support for non-core Fields and should be posted into the corresponding queues.

alan d.’s picture

Issue summary: View changes

Fixed link

alan d.’s picture

Issue summary: View changes

Updated summary

mitchell’s picture

Version: 7.x-2.x-dev » 7.x-3.x-dev

3.x is now the latest branch, in code, as well as in the issue queue. I organized the entire issue queue around this, because 3.x has the latest API changes, the latest module integrations, and the greatest need for testing.

In order to maintain both 3.x and 2.x, I proposed #1806958: [Policy - No Patch] Sync 2.x branches of D6 and D7 to help with backports also marked issues that were fixed in 3.x as such. My goals were to aid in undistracted development and to focus initiatives to backport fixes in separate issues with the appropriate 7.x-2.x or 6.x-2.x branch tag.

I hope you will all agree that this is a reasonable way to make the issue queue usable and organized for developers who want to know what needs to be done for each version. Also, please note that entity revisions in core is progressing very well, and perhaps Diff 7.x-3.0 may provide the basis for Diff 8.x-1.x through #120955: Integrate Diff into Core.

@Alan D.:
IMHO, it's important to move 3.x out of alpha. Your API changes and module integrations stand well on their own and would be an attractive foundation for adopters. The diverse set of ongoing enhancements are also reason for people to update and start testing patches.

Out of all the current issues, are any of these enhancements necessary for a 3.0 release? What else do you plan on doing to get 7.x-3.x to beta and in preparation for the 3.0-RC1 release.

mitchell’s picture

Issue summary: View changes

Updated and removed references to the now deleted sandbox dev version.

hass’s picture

I remember from testing 7.x-3.x that the background colors shown in #6 are missing on my box... looks like a bug

alan d.’s picture

Status: Active » Fixed

Yes. I normally switch to the boxes theme (in the global diff settings), so I missed this. Committed.

This issue appears to have run it's course, so closing. Refer to or open individual issues, to followup.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

Anonymous’s picture

Issue summary: View changes

Added infor about References and Entity references field diff support.