My feature tells me "Needs review", with no further explanation of what this might mean or what the problem might be.

Review how? What am I meant to do? what should I be looking for?

Comments

yhahn’s picture

Assigned: Unassigned » yhahn
Category: bug » task

Yes, this needs some more helptext.

For the time being, there is a description of why this shows up in API.txt.

hadsie’s picture

I'm also curious about this :). In the description it states "User input is necessary to resolve this state" but I've never actually had to do anything (or had an option to do anything afaik). Basically on some of my sites, (all with identical code bases running the same updates (aegir migration)) I get overridden and others I get "needs review". The only difference in this particular case was that the site with "needs review" was newer and the feature had never been reverted before.

abeger’s picture

As far as I can tell, the "user input" needed is either to update or revert. I ran a "drush fr" and it resolved the issue for me.

ianthomas_uk’s picture

Assigned: Unassigned » yhahn
Status: Closed (works as designed) » Active

Make sure you know what you're doing before following abeger's advice

Both "needs review" and "overridden" statuses mean that the feature in the database does not match the feature in code. Running "drush fr" (feature revert) will replace the feature in the database with the feature in code, which may or may not be what you want to do.

My workflow when this happens is as follows:
1. Make sure the existing feature code is committed to version control.
2. Run "drush fu feature-name" to replace the code for feature-name with the configuration from the database
3. Diff the file with the version in version control so you understand the changes and can pick and choose which you want.
4. Commit you changed feature code and/or revert the feature in Drupal

Remember, revert for Drupal features means copy configuration from code to the database.

mpotter’s picture

Assigned: yhahn » Unassigned
Status: Active » Closed (works as designed)
ianthomas_uk’s picture

Assigned: yhahn » Unassigned
Issue summary: View changes
Status: Active » Closed (works as designed)

I think this got its status flipped by drupal.org's upgrade to D7.

euk’s picture

Hello!

The last question is - how bad is "Needs review" state and who has precedence in this case - DB or code? I mean - what values will be used - stored in DB or in code?

thanks!

mitchelljj’s picture

After recreating a feature I sometimes get "Needs Review" displayed but it many cases it goes away once I have cleared the Drupal Cache.

dman’s picture

"needs some more helptext" is still an issue in the current UI.
I had to come to Google to figure out what this was telling me.
There's no explanation in /admin/help/features or any link to online docs like this where it's needed.

I got it today when applying a rebuilt feature (that included a version number update) over top of a recently pulled DB.

Hint : enabling the 'diff' module (always handy with Features) showed me that there was a trivial change where the upstream DB had diverged from the one I was rebuilding the feature from (content type field weights again, *sigh*). Using diff helped me confirm that yes, I did want to revert to the code version.

alexharries’s picture

I'd like to "+1" dman's comment - it would be a huge UX improvement if we could annotate the "Needs review" text with something like, "(download and install the Diff module to view these changes)".

Greg Boggs’s picture

Does anyone know exactly what triggers needs review vs overridden?

jlstrecker’s picture

Yes. From the API.txt file mentioned in #1:

- **Overridden** (`FEATURES_OVERRIDDEN`) The code remains constant but the database object does not match the state of the component in code. Changes must be reverted before the component can be updated from code.

- **Needs review** (`FEATURES_NEEDS_REVIEW`) The previous code state, database state, and current code state all differ. This occurs most commonly when a user changes one of her components and then pulls updates to her codebase. Since there is no way to tell whether the code state or the database state is more recent/valid, user input is necessary to resolve this state.