Assorted todo lists carried over from #3207851: [meta] Priorities for 2021-06-02 release of Drupal 7.
These are not necessarily in priority order.
Almost all of these fixes are viewed by some people to be important and may be included in their drush make or composer.json files.
Done
- #3209417: Backport from D8: run-tests.sh should allow single test methods to be run followup to #2959727: drupal_add_html_head_link() needs to allow multiple hreflang tags to point to one URL.
- #3102159: Add tests for Archive_Tar multiple security fixes for Archive_Tar recently and there's no test coverage in D7
- #3247738: sync system.tar.inc with Archive_Tar 1.4.14
- #2959727: drupal_add_html_head_link() needs to allow multiple hreflang tags to point to one URL. Simple fix required for sites using translations.
- #3200198: [D7] password reset form prevent revealing email or username in use Simple fix, backport of issue fixed in D9 with tags "Security & Privacy improvements"
- #3217445: Remove DatabaseUpdateTestCase::testPrimaryKeyUpdate() - backport from D8 This test was removed in D8. Changing primary keys is not a feature Drupal plans on implementing.
- #3090214: PHP 7.2 Warning: count(): Parameter must be an array or an object that implements Countable in taxonomy_form_term_submit() in taxonomy.admin.inc
- #3165377: element_property() causes a notice in 7.4 if $key is integer
- #3210215: [PHP 8] Error: TypeError: round() in parse_size function
- #229825: backport "$_COOKIE['has_js'] must die" patch to 7.x Fixed in D8/9. Recent testing confirms works.
- #3142821: PDO Exception : Incorrect integer value: for column 'weight' (weight column is not being casted to integer)
- #3247935: drupal_add_html_head_link(): URL in link HTTP header should not be HTML-encoded
- #3249605: Color module broken in garland for anything except blue lagoon
- #1232572: Add a variable to disable fixing file permissions during system_requirements() "runtime" checks
- #3002101: Ajax upload with validation throws PHP notice on PHP 7
- #3025439: list_allowed_values_string() function warning when list options are determined by 'allowed_values_function'
- #2907409: Fix the typo in hook_node_validate() documentation
- #1768622: Dzongkha language is missing (wrongly labeled as "Bhutani")
- #2522002: Do not strip www. from cookie domain by default because that leaks session cookies to subdomains Simple patch, security improvement. Sessions table may need to be emptied. Backport. Fixed in D8. Change record for D8 https://www.drupal.org/node/2523826
- #2789723: [D7 backport] drupal_mkdir does not set permissions to directories it created recursively Important fix, includes tests. Backport of D8 fix.
- #2802159: [D7] SQL layer: $match_operator is vulnerable to injection attack Important fix. Backport of D8 fix.
- #1835754: Add last 'changed' property to user entity Nice to have. Adds last modified to user table. Has been added to D8/9
- #2128055: Files should be uploaded to per year/month directories by default
- #3063048: Error 500 when hitting any folders inside en/sites/default/files/styles/
PHP 8.1 compatibility
- #3241412: [PHP 8.1] DrupalCacheArray deprecation notices due to tentative return types
- #3241422: [PHP 8.1] Passing `null` to internal functions deprecation fixes
- #3241427: [PHP 8.1] DatabaseStatementBase and DatabaseStatementEmpty signature mismatch fixes
- #3248752: [PHP 8.1] Implicit conversion from float to int loses precision
- #3248756: [PHP 8.1] Return type of SkipDotsRecursiveDirectoryIterator::next() should either be compatible with DirectoryIterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used
- #3248997: [PHP 8.1] Add PDO::ATTR_STRINGIFY_FETCHES to MySQL connection options
Not done
For consideration
- #3071997: Backport to D7 - inclusion of the announce project in D7 core - see also:
- #3206643: Project messaging channel in core (as experimental) and linked issues
Issues which have had recent activity, and are RTBC.
Simple Fixes: These may only take a few minutes each to review and commit.
- #2884171: The drupal_render() function could use a bit more protection May need to add logging for developers.
- #2994212: SqlContentEntityStorage::loadFromDedicatedTables() does use an unnecessary sort in the DB leading to a filesort Another field storage issue, marked as major with patch by Fabianx that still applies to D7, wile D9 patch needs work.
- #674354: CSS selectors get overridden by narrower selector at style.css when using Seven Simple fix, moves inline with D8 having more specific selectors.
- #1973278: Error in image_styles of image.module on database update Simple fix, does it really need a test?
- #2492191: Remove "Crawl-delay" in robots.txt Simple fix. For parity with D8/9 this should probably be committed to D7 although taking this out of D7 now seems like a big change at such a late stage; users who want to change Crawl-delay will already have done this. The patch itself is trivial so marking RTBC for a D7 core committer to decide whether to commit or close this.
- #920840: Broken images displayed and PHP notices when file/image field values are missing
- #2871459: Simpletest does not reset the $theme* globals
- #2218647: [D7] Undefined property: stdClass::$nid in node_tokens()
- #3182785: PHP 7.4 notice for /modules/system/system.admin.inc
- #2830428: Fix behaviour of entity_load when passed ids with a trailing dot
- #3026560: After upgrade to 7.63, 8.5.10, 8.6.7, 9.4.0 get TYPO3 phar error for drush
- #3182785: PHP 7.4 notice for /modules/system/system.admin.inc A simple fix that could possibly be improved.
- #3255713: [D7] Login fails and no warning is issued if cookies are not enabled This is a D7 backport of #2946: Login fails and no warning is issued if cookies are not enabled, an 18 year old issue that was marked as major and committed to drupal 9.3.x in June 2021.
Important Fixes:
- #1705618: Double click prevention on form submission Important to prevent double submission of forms, creating duplicate nodes, etc. Must clear browser cache to take effect.
- #1899126: [D7] Add wrappers to fix permission checks Required for POSIX filesystem. Fixed in D8? @orlitzky: "I'm just going to keep updating the patch for drupal-7.x for the rest of my life." "I'll keep posting patches until I don't have to any more."
- #1951408: Core Update manager doesn't correctly handle "status" UPDATE_NOT_CHECKED Includes D7 core patch in comment #16 that passes tests and is RTBC. Required for update_advanced module that is used by 2,700 sites. Does not appear to be relevant to D8/D9.
- #1978176: Build menu_tree without loading so many objects @joseph.olstad: "... the performance improvement is huge! .. After several years I see no credible reports of an issue with this patch"
- #2418755: Path alias filter by system path includes 6 year old patch for D7 in comment #1 that has been RTBC and without the patch "it's very hard to find alias which contains few slashes in path."
- #2431283: Cron CSRF vulnerability Security hardening fix. Fixed in D8. Fabianx comment in #31, just before last patch.
- #2550519: Crypt::randomBytes()/drupal_random_bytes() doesn't actually return cryptographically secure random bytes Issue is 6 years old, priority was set as "critical", still needs work.
- #2752783: [D7] file_unmanaged_move() should issue rename() where possible instead of copy() & unlink() Important fix. Mcdruid urging commit. @joseph.olstad: "D8 has this already. It is a good idea."
- #2783153: [D7] Convert drupalSettings from JavaScript to JSON, to allow for CSP in the future FabianX said it looks good, has updated tests
- #2891346: tableheader.js: Source: call to eval() or related function blocked by CSP Another content-security-policy issue.
- #2970929: [D7] Support X-Forwarded-* HTTP headers alternates Important backport for reverse proxies and load balance.
- #3176634: [D7] node_access filters out accessible nodes when node is left joined Issue identified as major. Fixed in D8 with D9 fix pending. Backport to D7 patch from 2016-March-9
- #3210388: Potential dataloss when opting in to "Avoid field storage write when field content did not change" and changing the bundle type of an existing entity
Unsorted Fixes:
- #498752: Partial word search for Drupal 7 Includes working patch from 5 yrs ago. Was closed as won't fix feature request. Now that a similar feature is proposed for D9 core #103548: Partial Search in Drupal Core maybe it's worth considering.
- #822128: "Textarea + summary" widget broken when field allows multiple values (followup) and associated JavaScript uses fragile selectors Has been committed to Drupal 8 and 9. Includes patch for D7 in #39 that is RTBC.
- #2539478: [D7] Allow image fields to use any extensions the current image toolkit supports (instead of hard-coding jpg, png and gif only) Adds svg to allowed extensions for image fields.
- #2819535: x-content-type-options nosniff ignored for anonymous cached pages
- #3017095: Clean up .htaccess and web.config file protection likely needs to go into D9 first
- #111702: Set fixed "from:" and add "Reply-to:" to comply with DMARC
- #965078: HTTP request checking is unreliable and should be removed in favor of watchdog() calls Needs work and needs CR
- #1328696: Problem with _drupal_wrap_mail_line and attachment files Attachment of docx file or files with long names results in email that is not correct. Fixed in D8, backport for D7 has patch.
- #3017522: Make SSL options configurable in drupal_http_request() Verifies SSL certificates in OpenSSL connections (Critical)
- #139015: breadcrumbs wrong on dblog event detail pages Issue seems in good shape, needs a bit of work as of Aug-4
- #691932: Add hook_field_schema_alter()
Comments
Comment #2
izmeez commentedNot to detract from all the work and effort that have gone into the commits for the Drupal 7.81 release, however, I wonder if the maintainers are willing to consider an earlier date (than December 1, 2021) for the next release as there are still a number of issues that are important and reflect the effort and patience of the community. Thank you.
Comment #3
sgdev commented@MustangGB, thanks for taking the time to document all of this. There are a number of patches listed that we have been using with production sites for multiple years, and would be great to finally get them committed into core.
Comment #4
ressaThanks for sharing that some patches have been used in production for many years @ron_s. Should we tag relevant issues to easier prioritize next release, something like this?
Comment #5
izmeez commentedUpdated issue summary, extended note on #2994212: SqlContentEntityStorage::loadFromDedicatedTables() does use an unnecessary sort in the DB leading to a filesort as the D7 patch still appears good to go while the D9 patch needs work.
Some of the other issues need to be RTBC and some need tests in preparation for commit.
How best to prioritize them is still difficult as almost all of them are useful and may be used in production somewhere.
Are there other core issue patches that have been overlooked that are important? This curated list does provide a place for others to see what patches they might wish to add to their own drush make or composer files.
Comment #6
izmeez commentedMinor cleanup of text.
Comment #7
beakerboyComment #8
roderikJust adding some issues to the "Simple fixes" category (found while browsing RTBC issues)...
Comment #9
izmeez commented@roderik Thanks. Added the extra patches to drush make file and they all apply along with other patches without issue.
Wonder if this might help nudge forward the idea of an earlier release possibly in September or October?
Comment #10
mcdruid commentedComment #11
joelpittetComment #12
roderikComment #13
mcdruid commentedAdded the announce project (to the IS), which has the goal of being included in core.
Comment #14
beakerboyWhat else does it take to get RTBC simple fixes merged?
Comment #15
mustanggb commentedThis is D7, why even consider adding a new module, especially one that is only for D8+, doesn't have any releases, doesn't have any documentation, it can live in contrib.
Comment #16
andypostComment #17
mcdruid commentedAdding a http headers issue which came up via seckit.
Also, I'll leave the announce project alone in the IS for now, but the suggestion (from the DA) is that we might want to add a backport to D7 to ensure that e.g. sites which carry on using D7 after EOL can receive significant notifications. This is not the place to discuss that in detail, but I don't think there's a specific backport issue for the project yet. No decisions have been made about adding that to D7 core but that's the proposal. I'll ask for a backport issue to be created and link to it from here.
Comment #18
mcdruid commentedComment #19
mustanggb commented@mcdruid Thanks for the information, is there anywhere where more details about this announce module is, for example where is this proposal/discussion you mentioned documented?
I couldn't find it on: https://www.drupal.org/project/ideas
Or trawling through: https://www.drupal.org/about/core
Comment #20
mcdruid commented@MustangGB I believe it was suggested to me in drupal slack, most likely by @hestenet I think.
I've asked whether there's a D7 backport issue already, and for one to be started if not.
Here's a link to one relevant thread in slack if that's any use to anyone in the meantime:
https://drupal.slack.com/archives/C02AFHAUNET/p1635976045028600?thread_t...
Comment #21
mustanggb commentedThanks for that, found what I was looking for:
https://www.drupal.org/project/ideas/issues/2940739
https://www.drupal.org/project/drupal/issues/3206643
Was pretty disturbed by this abhorrent attitude mentioned in the above issue though:
There had better be a way to ensure this is disableable.
Comment #22
mcdruid commentedAdded announce project D7 backport issue to IS, as discussed.
Comment #23
mcdruid commentedComment #24
mcdruid commentedComment #25
mcdruid commentedremoving a duplicate
Comment #26
damienmckennaAdded #3209417 to the "for consideration" list.
Comment #27
mcdruid commentedMoved several issues to Done.
Comment #28
mustanggb commentedYay, lovely to see some movement in the issue queue, much appreciated!
Comment #29
mcdruid commentedComment #30
mcdruid commentedComment #31
mcdruid commentedPer #3224299: [META] Make Drupal 7 core compatible with PHP 8.1 D7 now passes tests in PHP 8.1 with both MySQL and SQLite; added 6x issues to a PHP 8.1 section under "done".
Comment #32
izmeez commentedUpdated reference to #1951408: Core Update manager doesn't correctly handle "status" UPDATE_NOT_CHECKED
Comment #33
mcdruid commentedA few more added to the "Done" list :)
Comment #34
mcdruid commented..missed another that's now Fixed.
Comment #35
mcdruid commentedAdding a permissions / ACL issue that I think I was pinged about...
Comment #36
mustanggb commentedWhilst juices are flowing I'd like to throw another request forward in the form of #691932: Add hook_field_schema_alter().
Comment #37
damienmckennaAdded #3063048 as it seems relatively minor and has been RTBC for two years.
Comment #38
damienmckennaAdded #2907409 for an innocuous typo, #1768622 for a language name mistake, #3026560 for a long-running Drush problem.
Comment #39
izmeez commentedUpdated the issue references in comments #37 & #38 to titles and links in this comment for those who want to take a quick look:
#3063048: Error 500 when hitting any folders inside en/sites/default/files/styles/
#2907409: Fix the typo in hook_node_validate() documentation
#1768622: Dzongkha language is missing (wrongly labeled as "Bhutani")
#3026560: After upgrade to 7.63, 8.5.10, 8.6.7, 9.4.0 get TYPO3 phar error for drush
Comment #40
poker10 commentedWow, it seems like that there was a lot of work done. Thanks to all!
I am just a bit curious if someone have considered to include in the upcoming D7 December release this issue: #1705618: Double click prevention on form submission? I don't think there will be many maintenance releases until D7 EOL, so it will be worth to push it the sooner the better. I know, that this issue is mentioned here in "Important fixes", but it is not committed yet. I think that this is a very important fix which will greatly improve D7 UX.
Comment #41
mustanggb commentedLots more got done.
Comment #42
mustanggb commentedComment #43
mustanggb commentedComment #44
mcdruid commentedI don't plan to commit anything else for the release on 2021-12-01 other than the CHANGELOG.txt entry etc..
There are a couple of issues which nearly got in but not quite; these should be close to the top of the list for the next release.
Comment #45
strelkov.avThank you so much for the new release, the fixes and the work done! If it works, it would be great to add this fix https://www.drupal.org/project/drupal/issues/3176634 to the next release after that.
Comment #47
mcdruid commentedhttps://www.drupal.org/project/drupal/releases/7.83 released.
Thank you everyone that contributed!
Comment #48
ressaThanks for this early Christmas present @mcdruid, @MustangGB, @izmeez, @DamienMcKenna, and everyone else here and in the issues who helped make it happen! It's so great to see that Drupal 7 now doesn't set any cookies out of the box, after #229825: backport "$_COOKIE['has_js'] must die" patch to 7.x got committed, along with all the other improvements.
Comment #49
izmeez commentedThanks for all the work that went into this release.
Added #2550519: Crypt::randomBytes()/drupal_random_bytes() doesn't actually return cryptographically secure random bytes to the list before it is moved to a new issue for the next release.
Comment #50
izmeez commentedAgain, a huge thank you to the maintainers on the recent release and hotfix.
In anticipation that this issue will be used to create a new issue of priorities for the next release in 2022 a couple of items have been reordered from unsorted fixes to important fixes and one more has been added to the unsorted fixes:
#498752: Partial word search for Drupal 7 Includes working patch from 5 yrs ago. Was closed as won't fix feature request. Now that a similar feature is proposed for D9 core #103548: Partial Search in Drupal Core maybe it's worth considering.
Comment #51
izmeez commentedRemoved duplicate item.
Comment #52
izmeez commentedAdding another issue to the summary prior to rollover to new issue of priorities for next release:
#3255713: [D7] Login fails and no warning is issued if cookies are not enabled This is a D7 backport of #2946: Login fails and no warning is issued if cookies are not enabled, an 18 year old issue that was marked as major and committed to drupal 9.3.x in June 2021.
Comment #53
izmeez commentedAdding another potentially simple fix although there is a suggestion for improvement.
#3182785: PHP 7.4 notice for /modules/system/system.admin.inc A simple fix that could possibly be improved.
Comment #55
izmeez commentedSince this issue has not yet been rolled over into a new issue of priorities for the next release adding one more issue for consideration.
#822128: "Textarea + summary" widget broken when field allows multiple values (followup) and associated JavaScript uses fragile selectors Has been committed to Drupal 8 and 9. Includes patch for D7 in #26 that was RTBC.
Comment #56
izmeez commentedAdded another issue for consideration.
#2539478: [D7] Allow image fields to use any extensions the current image toolkit supports (instead of hard-coding jpg, png and gif only) Adds svg to allowed extensions for image fields.
Comment #57
poker10 commentedThanks for all the work with the last release!
Is there any ETA for the next maintenance release of D7? It seems like that we have here a lot of important issues, some of them would be good to push sooner the better, as they will greatly improve some parts of D7.
I hope that there would not be only one last release shortly before EOL.
Comment #58
izmeez commentedComment #59
mcdruid commentedhttps://www.drupal.org/about/core/policies/core-release-cycles/drupal-7-...
I've not yet had a chance to update that and create a new meta issue for the next maintenance release, which is scheduled for 2022-06-01.
Comment #60
mcdruid commented#3259739: [meta] Priorities for 2022-06-01 release of Drupal 7