Problem/Motivation
As part of #3031642: Deprecate hook_help() and combine with Topics, we need to convert the module overview help for each core module, located in the hook_help() implementation, into one or more help topics. This meta issue collects the child issues (one per core module) and explains the task.
Proposed resolution
Complete the child issue for each core module. The child issues have information on how to create and review the topics. All topics will conform to the Help Topic Standards
Clean-up and finalization issues
- #3121340: Fix up minor copy problems in help topics
- #3215784: [META] Fix up topics to use new help_route_link function and child issues
- #3219923: Add tests to enforce correct use of help_topic_link and help_route_link functions
- #3204175: Add security advisories Help Topic
Already done
Topic writing issues
- Pre-existing topics in the help_topics module: #3072312: Review/fix/delete existing help topics
- system-related modules: automated_cron, ban, dblog, syslog, system, update, and user #3041926: Convert automated_cron, ban, dblog, syslog, system, update, and user module hook_help() to topic(s)
- speed-related modules: big_pipe, dynamic_page_cache, page_cache #3044059: Convert big_pipe, dynamic_page_cache, page_cache module hook_help() to topic(s)
- action and views bulk operations #3094482: Convert action module hook_help() to topic(s), including views bulk operations
- appearance-related modules: breakpoint, color, layout_builder, layout_discovery #3055055: Convert appearance-related modules: breakpoint, color, layout_builder, layout_discovery module hook_help() to topic(s)
- aggregator #3046957: Convert aggregator module hook_help() to topic(s)
- block, block_content #3047709: Convert block and block_content module hook_help() to topic(s)
- block follow-up: #3093089: Minor improvements to block topics
- book #3047806: Convert book.module hook_help() to topic(s)
- ckeditor, editor, filter #3067614: Convert filter, ckeditor, editor module hook_help() to topic(s)
- comment, node, path, taxonomy #3067727: Convert comment, node, path, taxonomy module hook_help() to topic(s)
- contact #3067617: Convert contact module hook_help() to topic(s)
- config #3095734: Convert config module hook_help() to topic(s)
- content_moderation, workflows #3047722: Convert content_moderation, workflows module hook_help() to topic(s)
- field-related modules: datetime, datetime_range, field, field_ui, link, options, telephone, text #3087562: Convert datetime, datetime_range, field, field_ui, link, options, telephone, text modules hook_help() to topic(s)
- forum #3067622: Convert forum module hook_help() to topic(s)
- history, statistics, tracker #3055317: Convert history, statistics, tracker module hook_help() to topic(s)
- internationalization modules: config_translation, content_translation, locale, language #3095737: Convert internationalization modules: config_translation, content_translation, locale, language module hook_help() to topic(s)
- menu_link_content, menu_ui #3095740: Convert menu_link_content, menu_ui module hook_help() to topic(s)
- media-related: file, image, media, media_library, responsive_image #3047711: Convert file, image, media, media_library, responsive_image module hook_help() to topic(s)
- migrate, migrate_drupal, migrate_drupal_ui #3073476: Convert migrate, migrate_drupal, migrate_drupal_multilingual, migrate_drupal_ui module hook_help() to topic(s)
- search #3047719: Convert search module hook_help() to topic(s)
- services-related modules: basic_auth, hal, jsonapi, rdf, rest, serialization #3047703: Convert basic_auth, hal, jsonapi, rdf, rest, serialization module hook_help() to topic(s)
- views, views_ui #3047723: Convert views, views_ui module hook_help() to topic(s)
- admin UI-related modules: contextual, help, inline_form_errors, quickedit, settings_tray, shortcut, toolbar, tour #3095739: Convert admin UI-related modules: contextual, help, inline_form_errors, quickedit, settings_tray, shortcut, toolbar, tour module hook_help() to topic(s)
Cleanup issues
- #3192585: Fix up topics to use new help_topic_link function
Modules we are not doing help topics for (hidden/removed modules)
(see also #3013276: [META] Remove deprecated modules on the Drupal 9 branch):
block_place
entity_reference
path_alias
simpletest
We are also not doing experimental modules -- we might do them later, or let the module developers make help topics for them later, depending on the timing -- but they are subject to change so it doesn't really make sense to do them in the first pass:
field_layout
config_environment
workspaces
migrate_drupal_multilingual
Remaining tasks
- This issue cannot be marked Fixed until all the child issues (one per module) are Fixed.
- Before we mark this as Fixed, we also need to review the list of modules and make sure it is current -- new modules are added, and old modules are deleted, from Drupal Core from time to time. So, we need to make sure that all modules have been converted, and create new child issues (and fix them) if modules are missing from the list.
- See also #3013276: [META] Remove deprecated modules on the Drupal 9 branch
User interface changes
Help topics will be added to cover tasks currently covered in modules' hook_help() implementations.
API changes
None.
Data model changes
None.
Release notes snippet
None.
| Comment | File | Size | Author |
|---|
Comments
Comment #2
jhodgdonConverting this into a recipe for making child issues.
Comment #3
jhodgdonAdding novice tag to this and to the child issues.
Comment #4
jhodgdonI just went through the whole process for the core Action module. I think it is fine, except that it's not really ready to go until we get the initial core patch in:
#2920309: Add experimental module for Help Topics
Which should be soon, so I have not bothered to mark this issue as Postponed, but I did add a note to the issue summary.
Comment #5
jhodgdonUpdating issue summary for working on this before the initial experimental module patch is committed.
Comment #6
rishi.kulshreshthaComment #7
jhodgdonPlease don't assign yourself this entire meta issue! Updating issue summary here to clarify. Also I need to make a small edit on the template issue.
Comment #8
jhodgdonAlso as a note, I think it is best to only create issues you are ready to work on right now. As we go, we may want to edit the issue template (as I just did). Thanks!
Comment #9
jhodgdonTagging for DrupalCon
Comment #10
jhodgdonUpdating issue summary with tag suggestion.
Comment #11
vadim.hirbu commentedComment #12
vadim.hirbu commentedComment #13
jhodgdonUpdating issue summary with suggestion that when editing to add an issue, you also put a short note in the comments. :)
Thanks for getting started on this @vadim.hirbu!!
Comment #14
jhodgdonSince the parent issue's patch has not yet been committed, here is a Twig file that can be used as a sample (from the actions module child issue patch). Updating issue summary to point to this file. I will also add a note to the child issue template.
Comment #15
jhodgdonAdding note about file name of the sample Twig template.
Comment #16
gringoinc commentedAdding link for Aggregator
Comment #17
benjifisherSimplify the instructions for creating child issues. Use a carefully crafted link.
If we do not add all the child issues at DrupalCon Seattle, then we should update that link, removing the Seattle2019 issue tag.
Comment #18
benjifisherComment #19
benjifisherI am preparing to lead a group to work on this issue during Contribution Day at DrupalCon Seattle.
I can use a few each of
For a child issue of this issue, I think the Twig files should go in the
help_topics/directory of the appropriate module. In general, we can also usercore/help_topics/orcore/modules/help_topics/help_topics/. I am not sure how to choose between these two options, but either of these is appropriate for Help Topics of the form "If you want to do ... then enable the ... module."Style question: all the Twig files added in #2920309: Add experimental module for Help Topics are written without any blank lines. If I were writing them, I would add some blank lines: after the metadata lines, after the
<% set ... %}lines (if any), and (probably) before each<h2>element. I would also wrap most lines at 80 characters (or maybe 78). (Long lines do not work as well with version control.) Should we be consistent with the "existing" Twig files?Looking at the sample help topic Twig file, note that it has the following elements:
help_topic:label(required)help_topic:top_level(optional: probably we will have exactly one top-level topic for each core module in this issue)help_topic:related(optional, can be more than one){% set regional_url = render_var(url('system.regional_settings')) %}(optional, can be more than one){% trans %} ... {% endtrans %}so that it can be translated.If we want to link to other help topics, then we can do something like this:
{% set site_settings_url = render_var(url('help_topics.help_topic', {'id': 'core.config_basic'})) %}We do not have to apply the patch from #2920309: Add experimental module for Help Topics in order to write the Twig files. It does help for testing.
Testing
Once a patch has been written and uploaded, we can test either locally or with SimplyTest.me. In either case, we have to apply both the patch from #2920309: Add experimental module for Help Topics and the patch from the child issue. For example, suppose we want to test the patch from #3041926: Convert automated_cron, ban, dblog, syslog, system, update, and user module hook_help() to topic(s).
https://www.drupal.org/files/issues/2019-02-04/2920309-366.patchhttps://www.drupal.org/files/issues/2019-03-25/3041926-5.patchIn a few minutes, you should have a Drupal site. The admin user name and password are both "admin".
Whether working locally or with SimplyTest.me, the next steps are
help_topics) module at/admin/modulesor (locally) usingdrush./admin/config/development/performanceor (locally) usingdrush./admin/help).Comment #20
jhodgdonThanks again for leading the mentored group today! Your steps look perfect!
Although I have to say the last time I tried simplytest.me as you suggested, it didn't come up. Hopefully that has been fixed for the mentoring day... I imagine it will get some heavy use. Anyway you might want to test it with those patchs and make sure it does work today, if you didn't already.
To answer your questions:
- For these patches, let's just put each module's new Twig file(s) in core/modules/that_module/help_topics. We have another issue to write more topics and organize them, so that will work fine -- we can decide then if topics belong elsewhere.
- Adding blank lines in the Twig is fine with me, probably a good idea.
- Wrapping the text lines at 80 characters may be problematic. The text has to be extracted with POTX and get onto localize.drupal.org. I don't think it should have line feeds in it in random places. So, let's not wrap them. You might look at other existing Twig files in Core with %trans text in them and see if they have line feeds, and then check on localize to see if those line feeds look weird... or better yet just don't put in line feeds to be safe.
I have to go out for an early morning appointment, but should be back by 9 AM Seattle time, so I'll be online on Slack and DrupalChat for the contribution day today, if you have any more questions. Thanks again!!
Comment #21
benjifisherThanks for answering those questions.
I tested my instructions before posting the previous comment. The SimplyTest.me site is still available: https://d0ly5.ply.st/
In
core/modules/update/templates/update-project-status.html.twig, I see the linesThis seems to lead to the following lines in the
.pofile:I found a total of 31 places in core where an
.html.twigfile had{% trans %}on a line without a matching{% endtrans %}. Almost half of them are insidecore/modules/system/tests/, and these do not seem to be included in the extracted.pofile. I did not find any examples where there were line breaks within the translated text (as opposed to at the beginning and end). I did notice that a long line like(
core/modules/node/templates/node-add-list.html.twig) leads toIn general, I have a lot of faith in the robustness of GNU tools, so I expect that the PO format handles line breaks well. I guess it is possible that our template extractor is less robust.
Comment #22
jhodgdonYeah, the PO and POT formats have that funky multi-line thing going on. But what I'm talking about is what gets stored in the Drupal and/or localize.d.o database if there are newlines in the middle of the trans/endtrans text.
So, I looked at the POTX code that Drupal and localize.d.o use to extract strings from Twig, which is at
https://git.drupalcode.org/project/potx/blob/7.x-3.x/potx.inc#L1766
There are various places in there and a function it calls that save strings, but they pretty much all look like one of these two calls:
Notice the trim() there -- initial/final whitespace will be removed (including newlines). The call to _potx_format_quoted_string just escapes quotes.
The second example line there says that if $text is an array, it's imploded. That array is being generated by successive Twig parsing tokens... but I'm not really sure whether a newline corresponds to a different token, or whether a string with newlines in it will all be one token, thus not be imploded. The Twig parsing code is not exactly easy to read.
https://github.com/fabpot/Twig/blob/master/lib/Twig/Lexer.php [not sure if that is the version being used either]
Anyway, it is definitely OK to have a newline after the opening {% trans } tag, and one before the endtrans tag too.
But that one Core example you have from core/modules/node/templates/node-add-list.html.twig suggests that long lines should not be broken up in Twig files.
Comment #23
amber himes matzSo, we can go ahead and create child issues as part of the DrupalCon Seattle sprint, but for all current intents and purposes this issue is postponed until #2920309 is committed. (And it is definitely on the radar of the right folks, so no additional nudging or pressure is required on that front, please and thank you.)
Comment #24
benjifisherI am updating the issue-creation instructions: the status should be Postponed, according to the previous comment.
Comment #25
james.shee commentedAdding issue for the basic_auth module
Comment #26
petedussin commentedAdded issue for #3047709
Comment #27
petedussin commentedComment #28
petedussin commentedfix typo
Comment #29
james.shee commentedAdding issue for the basic_auth module
Comment #30
shwetaneelsharma commentedComment #31
petedussin commentedadded issue 13065077
Comment #32
james.shee commentedAdding issue for the media_library module
Comment #33
petedussin commentedadded link to issue for block_place
Comment #34
0sarah0al commentedAdding issue for the search module
Comment #35
shwetaneelsharma commentedComment #36
amber himes matzOk, there's a lot of activity on this today because of the sprint and there's been some back-and-forth as to whether creating these child issues is premature. (That's why I marked it as postponed.) However, after a conversation with xjm and benjifisher (benjifisher is leading a group at the sprint in creating these issues), we decided that even if this list of modules changes before Drupal 9 (which it likely will), the process of doing the module overview conversions is valuable because it will help us discover other issues and provide more information to issues such as:
- Do we need hierarchy/order for help topics?
- Add support for the url() function to twig {%trans%}
So, changing this back to active.
Comment #37
shwetaneelsharma commentedComment #38
shwetaneelsharma commentedComment #39
jhodgdonAdding another task to the Remaining Tasks section of the issue summary about making sure that the list of modules is current before marking this as Fixed.
Comment #40
jhodgdonA question has come up about permissions links. Making a child issue to discuss/decide what to do.
#3047781: Decide what to do about permissions links in help topics
Comment #41
bwood commentedComment #42
aaustin commentedComment #43
amarphule commentedCreated Color module Issue Convert color module hook_help() to topic(s)
Comment #44
amarphule commentedComment #45
amarphule commentedAdded link for History module.
Comment #46
tatarbjComment #47
jhodgdonWe need to postpone this until the #2920309: Add experimental module for Help Topics gets committed. No idea when/if that might happen right now...
Comment #48
andypostFinally unblocked!
Comment #49
gábor hojtsyRemoved note from the top.
Comment #50
jhodgdonI will now unblock the child issues too. And actually removing the notes about the parent issue from the summary.
Comment #51
jhodgdonFixing link to create new issues in the issue summary so they start out Active now not Postponed.
Comment #52
andypostI think it makes sense yo define common testing strategy for topics, like required elements and some syntax test, then a set of asserts in trait or base test class
Comment #53
jhodgdonThat sounds like a good idea.
The current tests for the module overviews from hook_help test for certain content, like the appearance of the module name. But I don't think we can/should test for content in help topics, because they're not supposed to be module-oriented. I also don't think we should require each module to have at least one topic file, because there may be circumstances where a particular module's files are put elsewhere (like a group of modules that share topics or putting them in the core space), or where a particular module doesn't need help because its tasks are described elsewhere.
So... for templates that do exist, I think we could write a test. Here's the sample template file (linked in the issue summary): https://www.drupal.org/files/issues/2019-04-08/sample.html_.twig_.txt
Here are some things I think we could maybe test for:
- meta tag for the title (label) must be present (help_topic:label)
- allowed meta tags: help_topic:label, help_topic:top_level, help_topic:related -- there must not be any others [although maybe someone would write a subclass of the plugin manager that would use other meta tags?]
- there must not be an H1 tag
- if there is an h3 tag, there must be an h2 tag; if there is an h4, there must be an h3; etc. (proper hierarchy of headings)
- can we test for HTML syntax validation, once it's rendered from Twig?
- is it possible to test whether all of the text in the file is actually wrapped in translation commands {% trans }?
Comment #54
jhodgdonActually, shouldn't we move this discussion of tests to #3037228: Add more test coverage to Help Topics? I'll do that...
Comment #55
jhodgdonYesterday I asked in Slack about whether we should have one issue per module (as we currently have here), or put the issues into larger chunks. The answer was that it would be better to group certain modules together. For example, all the migrate modules should probably be in one patch, so that the migrate system maintainer can review them together, and because the topics might refer to multiple modules.
So... looking through the list of modules, as well as MAINTAINERS.txt, here are some proposed groups. Any thoughts? If we like these groups, I will adjust the issue summary and/or combine issues that we already have:
Modules to leave as "loners":
aggregator, book, forum, contact, search, simpletest
Thoughts?
Comment #56
jhodgdonWe should start some review notes for these issues... starting with the syntax checks mentioned in #53 until we have a test written. I'll put those, and what andypost and I just discussed in Slack, into the issue summary.
Comment #57
andypostAlso makes sense to add top level "Core modules" (maybe experimental ones should have own section if enabled)
Bellow screenshots of history module link in top level - it looks ugly
That's why it could be organized in separate issue under new topic(s)
after changed to "History module overview" it just becomes useless
Comment #58
jhodgdonAs a note, we will need to reorganize the topics on #2687107: Reorganize topics into sensible outline, and/or write more topics -- for now I think it is OK to just make most of them top-level. Adding this to the review notes.
Comment #59
jhodgdonI do not think we want to have a top-level topic called "Core Modules". We don't want any module overview topics. We want task-oriented topics instead. These issues about "convert hook_help" really mean "rewrite useful content from hook_help into task-oriented help". The issue summary template for the child issues explains this.
Comment #60
jhodgdonThe groups in #55 seem to be OK (after Slack discussion). So, reorganizing the list in the issue summary, and I'll combine the existing issues too.
I'm going to do these in 2 batches. Here's the first set.
Comment #61
jhodgdonMore issue combining. List is done now.
Comment #62
andypostAction module needs to point only about ui additions to system module
Comment #63
volkswagenchickTagging for the next to North American contrib days, Asheville and Colorado
Comment #64
volkswagenchickTo followup on the previous tagging:
DrupalCamp Asheville contrib days are July 13-14, 2019
DrupalCamp Colorado contrib day is Aug 4, 2019
Comment #65
luwoldy commentedComment #66
volkswagenchick@CelSki created this in the first time contributing shop at Drupal Camp Asheville. Adding issue for the contact module. #3041924: [META] Convert hook_help() module overview text to topics
Comment #67
volkswagenchickComment #68
eeyorrAdding issue for the forum module in a first contributor workshop at Asheville Drupal Camp.
Comment #69
kdassingComment #70
jhodgdonWe really need to come up with better standards for what we want in help topics than what we have in the issue template on
#3041928: ISSUE TEMPLATE -- Do not edit -- template for making child issues
All it really says right now is:
This is not enough... or at least it doesn't seem to be. People are just copy/pasting the hook_help and thinking that is good enough, or are reviewing without actually looking critically at whether it's good help.
We probably need standards for the topic titles too, which if they are task based, I suggest we do like the User Guide and have them be "Verbing a noun" titles?
Comment #71
jhodgdonRegarding the last comment, we made some changes to the template issue today and I'm copying them to all the child issues.
Comment #72
jhodgdonWe are now maintaining the review tips on #3041928: ISSUE TEMPLATE -- Do not edit -- template for making child issues (and if they change, copying them to the child issues), so removing that section from here. I verified the information there is pretty much duplicated on the child issues.
Comment #73
jhodgdonI added a new issue to make sure the help topics that were committed in the initial commit of Help Topics adhere to the new standards (they don't currently).
#3072312: Review/fix/delete existing help topics
Comment #74
quietone commentedAdding issue for the migrate, migrate_drupal, migrate_drupal_multilingual, migrate_drupal_ui module
Comment #75
jhodgdonFixing issue link for the Contact module issue.
Comment #76
volkswagenchickTagging for badcamp2019, thanks! (October 2-5)
Comment #78
jhodgdonI asked in Slack and found out from @xjm that all of the code *and topics* related to the Help Topics module need to stay under core/modules/help_topics until we are Stable. I have updated all the existing child issues as well as the template issue, to reflect that policy.
Comment #79
dwebpoint commentedComment #80
dwebpoint commentedComment #81
jhodgdonUpdating summary to remove outdated link to sample file. Point to standards instead.
Comment #82
jhodgdonRemoving entity_reference and block_place modules from the list (will also go to their issues and remove), as they are both "hidden" modules in Drupal Core as of now.
Comment #83
jhodgdonJust a note that I went through the list of modules currently in core/modules for 8.9.x and all of them are in the issue list in the issue summary, as of today.
Comment #84
jhodgdonIt looks like there are possibly plans to rename or deprecate several modules for Drupal 9. See this related issue.
Comment #85
jhodgdonAdding a little follow-up issue for Block topics.
Comment #86
jhodgdonSplitting off actions and views bulk operations into their own issue.
Comment #87
jhodgdonCreated issues for the few remaining module groups. Also checked over the list of modules and verified it contains all the current, non-hidden modules.
Comment #88
jhodgdonMoving filter module from #3067727: Convert comment, node, path, taxonomy module hook_help() to topic(s) to #3067614: Convert filter, ckeditor, editor module hook_help() to topic(s) (see comments on either issue about this change).
Comment #89
jhodgdonI don't think we want to be creating help topics for experimental modules (too much in flux, and may not get added to core for real), so adding a note to the issue summary.
Comment #90
volkswagenchickI am tagging this for
midcamp2020which is a virtual event March 21, 2020 - 10am - 4pm CDT.Visit https://www.midcamp.org/2020/contribution-day for more details.
Comment #91
jhodgdonSimpletest module is gone in 9.0 so removing that issue.
Comment #92
benjifisherI created a patch combining the patches from all the Help Topics issues currently marked RTBC. I plan to use this to set up a sample site we can use to see examples of good help topics and use this at MidCamp tomorrow.
Comment #93
jhodgdon@benjifisher found a typo in one of the topics, so I created a child issue to collect minor cleanup fixes in committed patches:
#3121340: Fix up minor copy problems in help topics
Comment #95
andypostThere's 30% done with commited
- #3046957: Convert aggregator module hook_help() to topic(s)
- #3055317: Convert history, statistics, tracker module hook_help() to topic(s)
Comment #96
andypostOrdered summary
Comment #97
andypostDone #3067617: Convert contact module hook_help() to topic(s)
Comment #98
jhodgdonWe don't need the instructions for creating child issues any more.
Comment #99
jhodgdonCommenting to update the summary colors.
Comment #100
jhodgdonI inadvertently moved Contact out of the Done category with my last change. Moving back to done.
Comment #101
andypostOne more accepted #3047806: Convert book.module hook_help() to topic(s)
Comment #102
jhodgdonAnd Big Pipe too!
Comment #103
jhodgdonThe Appearance group of modules has also been committed. Thanks alexpott!
Comment #104
andypost2 blockers commited, unpostponed dependent issues, sort IS
- #3067614: Convert filter, ckeditor, editor module hook_help() to topic(s)
- #3047723: Convert views, views_ui module hook_help() to topic(s)
Comment #105
andypostForum is done
Comment #106
volkswagenchickTagging this for DrupalCon Global happening July 14-17
Comment #107
andypostsearch module done
Comment #108
jhodgdonmenu done
Comment #109
andypostServices are done #3047703: Convert basic_auth, hal, jsonapi, rdf, rest, serialization module hook_help() to topic(s)
Comment #111
jhodgdonMigrate is done #3073476: Convert migrate, migrate_drupal, migrate_drupal_multilingual, migrate_drupal_ui module hook_help() to topic(s)
Comment #112
jhodgdonThis should not really be a Novice issue.
Comment #113
jhodgdonAnother one done!
Comment #114
jhodgdonConfig is done!
Comment #115
jhodgdonInternationalization modules are done!
Comment #116
jhodgdonContent moderation is done!
Comment #117
andypostAdded #3192585: Fix up topics to use new help_topic_link function to summary as final polishing for "Remaining tasks"
Comment #118
jhodgdonMoving above issue to top of summary and adding a few other clean-up things.
Comment #119
amber himes matzThe last 3 topics listed in the IS are now RTBC. Yay! (Hopefully that will stick and they will be Fixed soon.)
Comment #121
jhodgdonOne more done, woot! Thanks @larowlan.
Comment #122
jhodgdonAnd another one... getting close here!
Comment #123
daffie commentedAnd the last one is done!
Comment #124
andypostOnly finalization issues left + new functionality #3204175: Add security advisories Help Topic
Comment #125
andypostAdded 2 remaining clean-up issues to summary
Comment #126
jhodgdonone cleanup done!
Comment #129
amber himes matzComment #131
andypostClosed meta as only #3307695: Update sentence-embedded internal links in content_moderation, core.content_structure, search.overview help topics to use help_route_link function left
Comment #132
andypostSet active #3121340: Fix up minor copy problems in help topics and only #3219923: Add tests to enforce correct use of help_topic_link and help_route_link functions is left to fix here - final clean-up
Comment #133
andypostLast conversion is commited, #132 still valid
Comment #134
andypostThinking a bit more and reading issues I consider it fixed because
- points in #3121340: Fix up minor copy problems in help topics are only related to future renames in UI
- extra test addition #3219923: Add tests to enforce correct use of help_topic_link and help_route_link functions is follow-up to #3090659: Make a way for help topics to generate links only if they work and are accessible