Problem/Motivation

Tested 8.x-3.x and it's great but I noticed a number of things and wasn't sure where to report them. Putting them here with numbers and added some screenshots. Take them with a grain of salt.

  1. Under GATHER DATA, IMO it's not obvious why this is suggested Install Composer Deploy or Git Deploy as appropriate for accurate update recommendations and the fact it says for accurate makes it look like the report won't be accurate without doing this which might not be the intention (or maybe it is?)

  2. For Drupal core should be 8.8.x or 8.9.x, it shows Version 8.9.3 allows to upgrade but 9.0.3 is available and it's marked yellow, but since this module is for checking if the Drupal 8 site is ready for Drupal 9, shouldn't it be marked green since the Drupal 8 site is on the latest version of Drupal 8 in this case? Perhaps differentiate if they are already on the latest of Drupal 8 vs need to update to the latest. I didn't try on an earlier version of Drupal 8 though to see the difference.

  3. In the tables that have a PROJECT column, when hovering over a project name, it looks like it's clickable yet when you click, nothing happens.

  4. At first, it was unclear to me what LOCAL 9-READY meant but then I understood after seeing the other columns. Might be nice to have tooltips for some of these columns, e.g. LOCAL 9-READY, LOCAL SCAN RESULT, DRUPAL.ORG 9-READY. But, after thinking about it more, won't LOCAL 9-READY always be Compatible if it's in the last table and Incompatible otherwise? If so, is that column necessary since we'd know if the local is compatible or not based on what table it's in?

  5. Clicking Export selected as HTML button resulted in fatal error: TypeError: Argument 1 passed to Drupal\Core\Form\FormState::setResponse() must be an instance of Symfony\Component\HttpFoundation\Response, null given, called in /var/www/html.original/modules/contrib/upgrade_status/src/Form/UpgradeStatusForm.php on line 925 in Drupal\Core\Form\FormState->setResponse() (line 986 of /var/www/html.original/core/lib/Drupal/Core/Form/FormState.php)

  6. Clicking Export selected as text button resulted in fatal error: TypeError: Argument 1 passed to Drupal\Core\Form\FormState::setResponse() must be an instance of Symfony\Component\HttpFoundation\Response, null given, called in /var/www/html.original/modules/contrib/upgrade_status/src/Form/UpgradeStatusForm.php on line 925 in Drupal\Core\Form\FormState->setResponse() (line 986 of /var/www/html.original/core/lib/Drupal/Core/Form/FormState.php)

  7. For the UPDATE section, I was confused because the text said There is an update available. Even if that is not fully Drupal 9 compatible, it may be more compatible than what you have, so best to start with updating first. but more than one module was in the table. Then I realized that the message is probably singular because only one of the modules has a version shown for DRUPAL.ORG VERSION. The others show N/A. Not sure why some show N/A for DRUPAL.ORG VERSION when there is a version on drupal.org unless that is supposed to be for if there is a newer version than what is installed.

  8. Overlay when looking at results for one module is cut off at the top so I can't close it unless I use escape.

  9. When scanning the Token module, the LOCAL SCAN RESULT still showed N/A even though other modules showed the number of problems, e.g. 113 problems. If a project has no problems after scanning, it would be good if it showed 0 problems so we know it was scanned.

  10. When scanning modules that were in the DRUPAL 9 COMPATIBLE section, some still showed a lot of "problems" yet these appear to be due to the autoload issue (e.g. Class Drupal\Tests\migrate\Kernel\MigrateSqlSourceTestBase not found.. This is confusing as people might think something is broken. The note on top says Errors without Drupal source version numbers including parse errors and use of APIs from dependencies. but IMO that's not clear enough. I think it would be good to be more explicit with the autoloading errors if possible. Maybe they could be marked a different color and have a special note.

  11. The DRUPAL.ORG ISSUES column in the DRUPAL 9 COMPATIBLE table is re-purposed so at first it links to the issue queue and later shows the information from the Drupal 9 field on the project page. I find this confusing as the heading stays the same. And you might have a mixture of the two if you don't scan everything.

Steps to reproduce

Enable Update Status 8.x-3.x-dev along with several modules that can be checked and look at the reports.

Proposed resolution

TBD, not sure everything needs addressing.

Remaining tasks

TBD

User interface changes

API changes

Data model changes

Comments

Kristen Pol created an issue. See original summary.

kristen pol’s picture

Issue summary: View changes
kristen pol’s picture

kristen pol’s picture

Title: Various feedback on 8.x-3.x (work in progress) » Various feedback on 8.x-3.x
Issue summary: View changes
StatusFileSize
new288.57 KB

I think I'm done updating the issue summary. :)

kristen pol’s picture

Issue tags: +DCCO2020

This was part of my DrupalCamp Colorado contribution day so tagging.

kristen pol’s picture

Issue tags: +Drupal 10 Readiness

Using this issue to make a tag. I'll remove in a minute. :)

kristen pol’s picture

Issue tags: -Drupal 10 Readiness
gábor hojtsy’s picture

Thanks!

#1: We are doing a best effort to identify projects and versions with the tools at hand. Without the *_deploy modules, projects checked out of git will not have the project information and version information, so they may be misidentified as custom projects and their version will be unknown (we cannot suggest updates for them). We do have some heuristics to detect custom vs contrib modules, eg. detecting if they are in modules/custom or modules/contrib directory, but that is a suggested way of organization and not necessarily used on a Drupal site (see https://git.drupalcode.org/project/drupal/-/tree/9.0.x/modules). Additionally because there are multiple alternate *_deploy modules to possibly use so we cannot add a hard requirement on one. Also you may in fact have each contributed project added from specific versions with project info and version info, so you may not need either module at all. We cannot really tell from the data available if we miscategorize something and thus you must have one of these modules, otherwise we would know not to miscategorize them. Maybe the only sure-fire detection method is you needing them is if we have identified contributed projects where we don't know the version. In that case, you almost surely need one of those modules. How would you explain this succinctly on the UI? :)

#2 is also on 2.x and was raised in #3154325: If site is one the latest 8.x version don't show warning that a 9.x version is available, @tedbow proposed a fix. I should commit that :) Credited you there too.

#3: was found and fixed in #3163522: Incorrect label for id attribute on 3.x branch. Added a credit for you there too :)

#4: I agree it would be the same in one table and the same across all other tables, however if you have a lot of projects in a table, you don't necessarily see what data you are looking at. Also I am not sure it is quite evident that only projects in the last table would be compatible, so that is either worth repeating or otherwise highlighting.

#5 and #6 were resolved by #3168546: Fix automated tests on 3.x branch, will credit you there too now.

(To be continued, need to run now).

gábor hojtsy’s picture

Continued.

#7: It is currently singular at all times. I did not both with doing plural magic. If there are multiple rows in that table, it would be plural as all of the items in that table were identified as belonging to that next step. However this is a good bug find because the ones you did not get version numbers were already up to date. Opened #3168907: Projects already up to date are categorised as to be updated to properly categorise those.

#8: is this new in 3.x? I think this would be a pre-existing thing? Not that it should not be fixed, but I don't think there was any change about the dialog.

#9: I believe this was also resolved in #3168546: Fix automated tests on 3.x branch in particularly with:

+++ b/src/Form/UpgradeStatusForm.php
@@ -334,7 +336,7 @@ class UpgradeStatusForm extends FormBase {
-      $result_summary = $this->t('N/A');
+      $result_summary = !empty($report) ? $this->t('No problems found') : $this->t('N/A');

#10: We cannot really tell apart valid vs. invalid autoload issues. If you try to autoload a class name and have a typo, that is totally valid and needs fixing. We caught a lot of such problems even in high profile contrib modules in the early days (in less used parts of the modules). There may be any number of problems identified in projects that declare they are Drupal 9 compatible given that they may have conditional codepaths for Drupal 8 compatibility that need to use the old class names, etc. That does not by itself mean they are not Drupal 9 compatible. This is an area where we need to trust the maintainers that if they declared the project Drupal 9 compatible than it is even if there are those problems found. I would not silence the problems though given that then if you are fixing a project locally and start with updating the info file, then the module would suddenly remove all reporting of the remaining problems, which is not intended. I think this is an area where some user understanding is required. Do you have suggestions to improve the UI to achieve this?

#11: Yeah this is a real problem. I think the issue queue link is useful even for cases where the project declares Drupal 9 compatibility but especially for those projects where they did not declare compatibility. It would be great to find a way to grab this info without scanning projects first. This needs more thought for sure. We could also append the Drupal.org issues link to the plan even in that case.

gábor hojtsy’s picture

gábor hojtsy’s picture

gábor hojtsy’s picture

To reiterate it looks like these are outstanding potential improvements:

IMHO #11 would be the biggest improvement if we can figure it out.

Look at #10 again that is not new with 3.x either, 2.x already shows those as compatible. Not sure if we can do anything about that.

The rest I already indicated as fixed above.

gábor hojtsy’s picture

Status: Active » Fixed

I think this was resolved as much as it could based on the above. Thanks again for your extensive testing.

Status: Fixed » Closed (fixed)

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