Problem/Motivation

The module is deprecated and should be removed

https://www.drupal.org/node/3223395#s-contact

Proposed resolution

  • The change record for this issue should include a link to recommendations page, https://www.drupal.org/node/3223395#s-contact. (For example, the CR for removing HAL)
  • Tag this issue 'Needs release note.'
  • Remove the extension ;-).
  • Update Update path tests as needed. See Writing Automated Update Tests for Drupal 8 (or later) for details.
  • Remove references from core/phpstan-baseline.neon.
  • Remove any spelling words specific to the extension from the dictionary
  • Add the extension to the relevant removed list, either DRUPAL_CORE_REMOVED_MODULE_LIST in system.install.
  • Check for references in @todo.
  • Handle migration tests.
    • In all the functional tests in migrate_drupal_ui make sure that Contact is not installed. Contact should also be removed from the methods getAvailablePaths() and moved to getMissingPaths() in the tests using those methods.

Remaining tasks

remove with all references

User interface changes

Introduced terminology

API changes

Data model changes

Release notes snippet

The contact module has been removed from core, and can now be installed as a contrib module.

Issue fork drupal-3573484

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

andypost created an issue. See original summary.

andypost’s picture

andypost’s picture

Status: Active » Needs work
andypost’s picture

Issue summary: View changes
andypost’s picture

Asked Claude code to create script to find all scpell words iterating both files for cspell

and result is

drupal$ ./cspell.sh 
=== Checking dictionary.txt for orphaned words ===                                                                                                                
  ORPHANED: subtheme's

Total orphaned in dictionary.txt: 1                                                                                                                               
                                                                                                                                                                  
=== Checking drupal-dictionary.txt for orphaned words ===                                                                                                         
                                                                                                                                                                  
Total orphaned in drupal-dictionary.txt: 0    

The script itself

#!/bin/sh                                                                                                                                                         
                                                                                                                                                                  
cd /home/andy/www/drupal/drupal                                                                                                                                   
                                                                                                                                                                  
echo "=== Checking dictionary.txt for orphaned words ==="                                                                                                         
count1=0                                                                                                                                                          
while IFS= read -r word; do                                                                                                                                       
    [ -z "$word" ] && continue                                                                                                                                    
    match=$(git grep -il "$word" -- ':!core/misc/cspell/' 2>/dev/null | head -1)                                                                                  
    if [ -z "$match" ]; then                                                                                                                                      
        echo "  ORPHANED: $word"                                                                                                                                  
        count1=$((count1 + 1))                                                                                                                                    
    fi                                                                                                                                                            
done < core/misc/cspell/dictionary.txt                                                                                                                            

echo ""
echo "Total orphaned in dictionary.txt: $count1"

echo ""
echo "=== Checking drupal-dictionary.txt for orphaned words ==="
count2=0
while IFS= read -r word; do
    [ -z "$word" ] && continue
    match=$(git grep -il "$word" -- ':!core/misc/cspell/' 2>/dev/null | head -1)
    if [ -z "$match" ]; then
        echo "  ORPHANED: $word"
        count2=$((count2 + 1))
    fi
done < core/misc/cspell/drupal-dictionary.txt

echo ""
echo "Total orphaned in drupal-dictionary.txt: $count2"
andypost’s picture

Status: Needs work » Needs review

Tests passed, all remaining mentions of "contact" word looks unrelated

smustgrave’s picture

Is the related issue a blocker?

andypost’s picture

No, as it discussed in the issue we need to create new trait to remove it. So better keep the dead code

smustgrave’s picture

Status: Needs review » Reviewed & tested by the community

In that case looks like a good removal.

catch’s picture

Issue tags: +Avoid commit conflicts

It looks like for whatever reason, we don't have to remove contact module from the 10.3.0 filled.standard database dump fixture - maybe that already happened in another issue in-between?

In general with module removals, I think we should try to have a single issue to remove them from the database dump fixtures for all modules that we're intending to remove, so that we can do that task once, instead of once per module. It's a lot of work, and every module will conflict with every other module, as well as when we need to create new 11.3 fixtures too.

Tagging with avoid commit conflicts for now anyway.

andypost’s picture

quietone’s picture

Issue summary: View changes
Issue tags: +Needs change record, +Needs release note
quietone’s picture

Sorry, wrong issue

quietone’s picture

Issue tags: +12.0.0 release notes
longwave’s picture

Status: Reviewed & tested by the community » Needs work

Merge conflict, needs rebasing.

andypost’s picture

Status: Needs work » Needs review

rebased

smustgrave’s picture

Does this need to be added to DRUPAL_CORE_REMOVED_MODULE_LIST also? I saw the comment on the ban ticket.

andypost’s picture

smustgrave’s picture

Status: Needs review » Reviewed & tested by the community

Rebase LGTM to me

longwave’s picture

Status: Reviewed & tested by the community » Needs work

Needs rebasing.

andypost’s picture

Status: Needs work » Needs review

rebased

andypost’s picture

Status: Needs review » Reviewed & tested by the community

each time it's fixtures conflicts so Avoid commit conflicts is not working)

catch’s picture

Status: Reviewed & tested by the community » Fixed

Yes every module removal that adds an uninstall fixture adds it to the same places, so even if they're all tagged with avoid commit conflicts, they will conflict with each other. Let's do #3569127: Add new 11.3.x database dump fixtures, without modules deprecated for removal in 12.x so we don't need the fixtures before other removals, then hopefully they'll be able to go in independently with less conflicts. Migrate Drupal/Migrate Drupal UI removal first would help avoid more conflicts too.

Committed/pushed to main, thanks!

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

  • catch committed 6e15fec9 on main
    task: #3573484 Remove Contact module from core
    
    By: andypost
    By:...
xmacinfo’s picture

quietone’s picture

@xmacinfo, For all removed extensions that information is in the change record.

In general, it is best to refer to the change record first and if documentation is missing update that or the relevant d.o docs.

Status: Fixed » Closed (fixed)

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