colemanw [Mon, 17 Jan 2022 17:38:42 +0000 (12:38 -0500)]
Merge pull request #22533 from eileenmcnaughton/phpcs
More comments & style fixes
demeritcowboy [Mon, 17 Jan 2022 16:45:09 +0000 (11:45 -0500)]
Merge pull request #22470 from eileenmcnaughton/isAdmin
Smarty notice fix on Email help
Eileen McNaughton [Mon, 17 Jan 2022 08:56:34 +0000 (21:56 +1300)]
Merge pull request #22536 from eileenmcnaughton/regen
Re-run regen
Eileen McNaughton [Mon, 17 Jan 2022 08:56:15 +0000 (21:56 +1300)]
Merge pull request #22535 from eileenmcnaughton/style
Fixes to spaces from phpcs
Eileen McNaughton [Mon, 17 Jan 2022 05:57:33 +0000 (18:57 +1300)]
Re-run regen
Eileen McNaughton [Mon, 17 Jan 2022 05:51:39 +0000 (18:51 +1300)]
Fixes to spaces from phpcs
Eileen McNaughton [Mon, 17 Jan 2022 05:34:16 +0000 (18:34 +1300)]
Merge pull request #22531 from seamuslee001/example_regenerate
[NFC] Update test example template and regenerate examples
Eileen McNaughton [Mon, 17 Jan 2022 05:29:23 +0000 (18:29 +1300)]
More comments & style fixes
This is mostly generated by code sniffer but I also added the deprecation to the isEnvironment function
as I wound up having to do cleanup on something never called....
demeritcowboy [Mon, 17 Jan 2022 03:24:44 +0000 (22:24 -0500)]
Merge pull request #22530 from eileenmcnaughton/category
Remove category from case activity template
Seamus Lee [Mon, 17 Jan 2022 02:47:39 +0000 (13:47 +1100)]
[NFC] Update test example template and regenerate examples
Eileen McNaughton [Mon, 17 Jan 2022 01:22:11 +0000 (14:22 +1300)]
Merge pull request #22527 from eileenmcnaughton/phpcs2
Run stricter phpcs on Civi dir
Eileen McNaughton [Mon, 17 Jan 2022 00:20:08 +0000 (13:20 +1300)]
Remove category from case activity template
Seamus Lee [Sun, 16 Jan 2022 23:53:53 +0000 (10:53 +1100)]
Merge pull request #22528 from eileenmcnaughton/phpcs3
Run 'full drupal strictness' standard over api/v3/examples
Eileen McNaughton [Sun, 16 Jan 2022 23:47:26 +0000 (12:47 +1300)]
Merge pull request #22444 from eileenmcnaughton/isform
Remove empty check
Seamus Lee [Sun, 16 Jan 2022 23:13:06 +0000 (10:13 +1100)]
Merge pull request #22517 from eileenmcnaughton/skip
Move deprecated function back to the only class that calls it
Eileen McNaughton [Sun, 16 Jan 2022 22:50:42 +0000 (11:50 +1300)]
Merge pull request #22526 from eileenmcnaughton/phpcs
Fix php comments
Eileen McNaughton [Sun, 16 Jan 2022 22:27:35 +0000 (11:27 +1300)]
Run 'full drupal strictness' standard over api/v3/examples
I just removed all the rules we weren't enforcing cos too-hard from
our drupal code standard & ran phpcbf over the directory. I figure
we aren't really updating these so getting them to what strict phpcs will
tolerate could save time when we next tighten the noose
and if someone ever regenerates them
they can deal with re-running it or improving the tpl
Seamus Lee [Sun, 16 Jan 2022 22:24:27 +0000 (09:24 +1100)]
Merge pull request #22482 from eileenmcnaughton/token
Add unit test on updateGreeting & remove deprecated fn call
Eileen McNaughton [Sun, 16 Jan 2022 22:21:51 +0000 (11:21 +1300)]
Run stricter phpcs on Civi dir
Eileen McNaughton [Sun, 16 Jan 2022 21:57:46 +0000 (10:57 +1300)]
Merge pull request #22520 from colemanw/contactTypeCleanup
[REF] - Use CRM_Contact_BAO_ContactType::basicTypes()
Eileen McNaughton [Mon, 10 Jan 2022 01:19:31 +0000 (14:19 +1300)]
Remove empty check
We had to ensure this was always assigned for default modifier so remove the
empty to make it clear it is 'sorted'
Eileen McNaughton [Sun, 16 Jan 2022 21:29:09 +0000 (10:29 +1300)]
Fix php comments
As per https://github.com/civicrm/civicrm-core/pull/22515
Eileen McNaughton [Sun, 16 Jan 2022 21:22:05 +0000 (10:22 +1300)]
Merge pull request #22524 from braders/contacttype-types
[NFC] Fixes to the type definitions for contactType methods
colemanw [Sun, 16 Jan 2022 17:37:31 +0000 (12:37 -0500)]
Merge pull request #22525 from braders/remove-charts-colours
[Ref] Remove unused _colours property
colemanw [Sun, 16 Jan 2022 17:31:26 +0000 (12:31 -0500)]
Merge pull request #22522 from braders/phpdoc-fixes-2
Another set of PHPDoc fixes
colemanw [Sun, 16 Jan 2022 17:28:52 +0000 (12:28 -0500)]
Merge pull request #22521 from braders/phpdoc-links
Fix more phpdoc comments in member links functions
Coleman Watts [Sun, 16 Jan 2022 04:23:27 +0000 (23:23 -0500)]
REF - Use CRM_Contact_BAO_ContactType::basicTypes() instead of hardcoded lists
demeritcowboy [Sun, 16 Jan 2022 14:52:39 +0000 (09:52 -0500)]
Merge pull request #22518 from colemanw/cleanupBadCode
Remove unreachable, nonsensical code
demeritcowboy [Sun, 16 Jan 2022 14:38:05 +0000 (09:38 -0500)]
Merge pull request #22515 from eileenmcnaughton/phpcs
Fix php comments
demeritcowboy [Sun, 16 Jan 2022 14:30:48 +0000 (09:30 -0500)]
Merge pull request #22442 from demeritcowboy/tests-22429
Unit tests for 22429 and apply same treatment to other money format functions
Bradley Taylor [Sun, 16 Jan 2022 13:59:07 +0000 (13:59 +0000)]
[Ref] Remove unused _colours property
Bradley Taylor [Sun, 16 Jan 2022 13:42:05 +0000 (13:42 +0000)]
[NFC] Fixes to the type definitions for contactType methods
Bradley Taylor [Sun, 16 Jan 2022 12:00:50 +0000 (12:00 +0000)]
Another set of PHPDoc fixes
Bradley Taylor [Sun, 16 Jan 2022 11:08:04 +0000 (11:08 +0000)]
Fix more phpdoc comments in member links functions
Eileen McNaughton [Sat, 15 Jan 2022 19:24:37 +0000 (08:24 +1300)]
Fix php comments
This commit contains 14 files worth of changes from the following steps
1) install https://github.com/civicrm/coder.git
2) comment out <rule ref=Drupal.Commenting.FunctionComment.IncorrectParamVarName><severity>0</severity></rule>
3) run phpcbf --standard=Drupal
This follows on from efforts from @braders - there are not many
instances (although I kept the comment small) and we could fairly easily get rid of them
all and enable that rule in CI - which would lift the bar a little
colemanw [Sun, 16 Jan 2022 02:30:55 +0000 (21:30 -0500)]
Merge pull request #22497 from eileenmcnaughton/mem_ids
Test cleanup - remove direct calls to BAO_Membership::add
Eileen McNaughton [Sat, 15 Jan 2022 19:44:14 +0000 (08:44 +1300)]
Move deprecated function back to the only class that calls it
This function is only called from the importer (in core) - copy back there & noisily
deprecate (one known extension usage).
Note that I removed 2 parts of it in the copy back that are unreachable
as only specific params are passed in we know they don't include
case & always include skipRecent
https://github.com/civicrm/civicrm-core/blob/
5484728757de4c85d44305a92bfa2aa35351fbce/CRM/Contact/Import/Parser/Contact.php#L880-L887
Eileen McNaughton [Sun, 16 Jan 2022 02:11:39 +0000 (15:11 +1300)]
Merge pull request #22516 from eileenmcnaughton/legacy2
Merge function back into parent function
Coleman Watts [Sat, 15 Jan 2022 20:40:37 +0000 (15:40 -0500)]
Remove unused frozen form blocks
These blocks appear to be unused because these forms are never displayed in frozen "view" mode.
If they were in use they would be broken because the urls are incorrectly output raw
instead of being properly passed to `CRM_Utils_System::url()`.
Coleman Watts [Sat, 15 Jan 2022 20:32:18 +0000 (15:32 -0500)]
Remove unreachable, nonsensical code
This block of code appears to be unreachable, because the contribution page
wizard is never frozen in "view" mode.
If it were reachable, it would do nothing sensible, as the button would link
to a completely unrelated page (configure custom data) and the link would be
broken because it is incorrectly bypassing `CRM_Utils_System::url()`.
Eileen McNaughton [Fri, 14 Jan 2022 18:41:47 +0000 (07:41 +1300)]
Merge function back into parent function
It isn't a logical separation of responsibility & doesn't reduce code
colemanw [Sat, 15 Jan 2022 17:57:18 +0000 (12:57 -0500)]
Merge pull request #22514 from braders/feature/report-statistics-docblock
Add type to phpdoc comment for report statistic function
colemanw [Sat, 15 Jan 2022 17:56:32 +0000 (12:56 -0500)]
Merge pull request #22513 from braders/phpdoc-self
Update phpdoc references to $self to include type
Bradley Taylor [Sat, 15 Jan 2022 11:29:31 +0000 (11:29 +0000)]
Add type to phpdoc comment for report statistic function
Bradley Taylor [Sat, 15 Jan 2022 11:21:09 +0000 (11:21 +0000)]
Update phpdoc references to $self to include type
Seamus Lee [Sat, 15 Jan 2022 04:03:00 +0000 (15:03 +1100)]
Merge pull request #22512 from colemanw/weightTest
[test] - Add test coverage for adjusting custom group weights
Coleman Watts [Sat, 15 Jan 2022 00:20:01 +0000 (19:20 -0500)]
[test] - Add test coverage for adjusting custom group weights
demeritcowboy [Fri, 14 Jan 2022 23:57:49 +0000 (18:57 -0500)]
Merge pull request #22471 from eileenmcnaughton/noticesm
Enotice fixes
demeritcowboy [Fri, 14 Jan 2022 22:24:06 +0000 (17:24 -0500)]
Merge pull request #22505 from colemanw/fixSelect2Collapsible
Select2 - Fix auto-expanding collapsible optgroups for multi-selects
Seamus Lee [Fri, 14 Jan 2022 22:04:37 +0000 (09:04 +1100)]
Merge pull request #22511 from totten/master-ref-getEntityRefMetadata
(REF) CRM_Core_Resources - Limit visibility of `getEntityRefMetadata`
demeritcowboy [Mon, 10 Jan 2022 00:25:07 +0000 (19:25 -0500)]
tests for 22429 and apply same treatment to other functions
Tim Otten [Fri, 14 Jan 2022 20:46:11 +0000 (12:46 -0800)]
Merge pull request #22509 from braders/phpdoc-fixes
Various phpdoc fixes
Tim Otten [Fri, 14 Jan 2022 20:44:42 +0000 (12:44 -0800)]
Merge pull request #22510 from eileenmcnaughton/legacy2
(REF) ContactUtils - Rename local variables
Tim Otten [Fri, 14 Jan 2022 19:54:51 +0000 (11:54 -0800)]
(REF) CRM_Core_Resources - Limit visibility of `getEntityRefMetadata`
Before
------
* `CRM_Core_Resources::getEntityRefMetadata()` is nominally `public`.
* The only callers are within `CRM_Core_Resources` and `CRM_Core_ResourcesTest`.
* It seems likely that the method was `public` to support that unit-test.
* This seems like a weird place for the method to live.
After
------
* `CRM_Core_Resources::getEntityRefMetadata()` no longer `public`.
* The method is still in a weird place, but at least no one will expect it to remain there.
Tim Otten [Fri, 14 Jan 2022 19:53:45 +0000 (11:53 -0800)]
Merge pull request #22506 from colemanw/cleanupRes
[REF] CoreResources - Simplify disabled component check
Bradley Taylor [Fri, 14 Jan 2022 18:35:10 +0000 (18:35 +0000)]
Various phpdoc fixes
Eileen McNaughton [Fri, 14 Jan 2022 18:34:35 +0000 (07:34 +1300)]
Rename variable
Coleman Watts [Fri, 14 Jan 2022 15:17:43 +0000 (10:17 -0500)]
[REF] CoreResources - Simplify disabled component check
Now that component DAOs have a COMPONENT defined, checks like this are much easier.
Coleman Watts [Fri, 14 Jan 2022 14:40:11 +0000 (09:40 -0500)]
Select2 - Fix auto-expanding collapsible optgroups for multi-selects
Fixes dev/core#3032
colemanw [Fri, 14 Jan 2022 14:11:47 +0000 (09:11 -0500)]
Merge pull request #22495 from eileenmcnaughton/fin2
Move permission checks from Query & BAO to financialacl extension
colemanw [Fri, 14 Jan 2022 14:06:37 +0000 (09:06 -0500)]
Merge pull request #22491 from eileenmcnaughton/legacy2
Rationalise relationship validation
Eileen McNaughton [Fri, 14 Jan 2022 04:45:47 +0000 (17:45 +1300)]
Merge pull request #22503 from totten/master-pipe-nfc
(NFC) Civi::pipe - Swap various quotes
Eileen McNaughton [Fri, 14 Jan 2022 04:45:37 +0000 (17:45 +1300)]
Merge pull request #22501 from mattwire/alterdisplayname
NFC: Clean up description for alterDisplayName hook
Tim Otten [Fri, 14 Jan 2022 03:00:11 +0000 (19:00 -0800)]
(NFC) Civi::pipe - Swap various quotes
These are just some double-quoted PHP strings that need double-quotes.
Eileen McNaughton [Fri, 14 Jan 2022 01:40:41 +0000 (14:40 +1300)]
Merge pull request #22262 from totten/master-pipe
Civi::pipe - Add support for background worker-processes with JSON pipes
Eileen McNaughton [Fri, 14 Jan 2022 01:34:07 +0000 (14:34 +1300)]
Merge pull request #22502 from eileenmcnaughton/add_test
Port test form earlier PR
Seamus Lee [Thu, 13 Jan 2022 22:38:31 +0000 (09:38 +1100)]
Merge pull request #22343 from totten/master-gencode-mailqueue
MailingEventQueue - Use consistent CamelCaseName. Prevent conflicts.
Eileen McNaughton [Thu, 13 Jan 2022 22:31:38 +0000 (11:31 +1300)]
Port test form earlier PR
The test from this PR is now passing
https://github.com/civicrm/civicrm-core/pull/20095
So, I've rescued the test & cleaned up the class - assume
an interim fix addressed the bug
Tim Otten [Thu, 13 Jan 2022 21:36:20 +0000 (13:36 -0800)]
Civi::pipe - Comply with newer `authx_login()` contract. Declare flow names.
1. The original Civi::pipe() patch was built on a draft version of `authx_login()`. The
signature changed during review.
2. The original Civi::pipe() patch hacked the `flow` name - ie it used the
flow name `xheader` even though it wasn't HTTP-based. Now, it
uses either the existing `script` flow (for trusted/backend/principal-asserted runtimes)
or the new `pipe` flow (for untrusted/credential-based runtimes).
Matthew Wire [Thu, 13 Jan 2022 21:30:50 +0000 (21:30 +0000)]
Clean up description for alterDisplayName hook
Eileen McNaughton [Thu, 13 Jan 2022 21:28:46 +0000 (10:28 +1300)]
Merge pull request #22355 from colemanw/searchKitAddJoins
SearchKit - Enable joins for custom fields and option groups
Tim Otten [Thu, 16 Dec 2021 00:11:34 +0000 (16:11 -0800)]
Civi::pipe - Flip default for $apiError from `array` to `exception`
My initial use-case will likely benefit from `array`; however, for bespoke
code that works with a pipe, the `exception` is probably easier.
Tim Otten [Wed, 15 Dec 2021 22:36:18 +0000 (14:36 -0800)]
(REF) Civi::pipe() - Add authentication tests to AllFlowsTest
Tim Otten [Wed, 15 Dec 2021 22:21:48 +0000 (14:21 -0800)]
(REF) Civi::pipe - Extract `BasicPipeClient` from `CliRunnerTest`.
Make it is easier to use in other tests.
Tim Otten [Wed, 15 Dec 2021 09:41:18 +0000 (01:41 -0800)]
(REF) Civi::pipe - Add test coverage for interaction of (un)trusted & checkPermissions
Tim Otten [Wed, 15 Dec 2021 08:22:22 +0000 (00:22 -0800)]
(REF) Civi::pipe - Tighten up docblocks and type-hints
Tim Otten [Wed, 15 Dec 2021 07:47:00 +0000 (23:47 -0800)]
Civi::pipe - Convet from service-registry to negotation-flags
How will the protocol evolve? This changes the planned mechanism that will allow evoluation.
_Previous/Original_: Protocol had a version number.
_Previous/Interm_: Any change to the protocol requires registering a new service. New
connections must strictly choose between one service XOR another service.
_Now_: Any change to the protocol requires defining a flag. There is a list
of default flags, but callers may request alternative flags. The header
line indicates success or failure of these flags.
Comment: Handy characteristics of this design:
* Default info is generally more useful and skimmable.
* Addresses the current trusted/untrusted flag.
* Expands the default info to include (1) CiviCRM version and (2) whether logins are allowed.
* Allows augmenting or replacing jsonrpc-2.0 (if we don't like it).
* The `Civi::pipe()` shell statements remain pithy - even if they require extra flags.
Tim Otten [Wed, 15 Dec 2021 06:27:48 +0000 (22:27 -0800)]
(NFC) JsonRpc
Tim Otten [Wed, 15 Dec 2021 06:11:43 +0000 (22:11 -0800)]
Civi::pipe - Introduce `$trusted` flag and `$apiCheckPermissions` option
* `bool $trusted` is an immutable property of the session that determines whether you
can request special operations like:
* Bypassing API permissions
* Setting the active user without credentials
* `bool $apiCheckPermissions` is a convenience option for `api3` and `api4`.
This toggles the default value of `checkPermissions` / `check_permissions`
on API calls. (It is only applicable to trusted sessions.)
Tim Otten [Wed, 15 Dec 2021 06:23:30 +0000 (22:23 -0800)]
Civi::pipe - Comply more strictly with JSON-RPC v2.0. Don't allow scalar `params`.
Tim Otten [Wed, 15 Dec 2021 05:13:48 +0000 (21:13 -0800)]
(REF) Civi::pipe - Rename JsonRpcSession to PipeSession
Not supporting multiple session types
Tim Otten [Wed, 15 Dec 2021 05:10:15 +0000 (21:10 -0800)]
Civi::pipe - Extract class JsonRpc
Tim Otten [Wed, 15 Dec 2021 03:43:13 +0000 (19:43 -0800)]
Civi::pipe - Remove BasicJsonSession
Tim Otten [Wed, 15 Dec 2021 03:33:47 +0000 (19:33 -0800)]
Civi::pipe - Rename maxLines to bufferSize
Tim Otten [Wed, 15 Dec 2021 01:53:09 +0000 (17:53 -0800)]
Civi::pipe - Define option `apiError`
This option balances two interests:
- For generic plumbing code, it's easier to keep the API errors in their canonical format.
- For bespoke JSON-RPC client code, it's easier to bind errors into JSON-RPC errors. This way
downstream clients can adapt the errors to their own convention (PHP exceptions, JS exceptions,
promise-failures, ad nauseum)
Tim Otten [Wed, 15 Dec 2021 00:38:00 +0000 (16:38 -0800)]
Civi::pipe - Add top-level facade. Add E2E test.
Tim Otten [Wed, 15 Dec 2021 00:39:01 +0000 (16:39 -0800)]
Civi::pipe - JSON-RPC 2.0 session
Tim Otten [Wed, 15 Dec 2021 00:37:38 +0000 (16:37 -0800)]
Civi::pipe - Basic JSON session
Tim Otten [Wed, 15 Dec 2021 00:34:56 +0000 (16:34 -0800)]
Civi::pipe - Add some initial utilities
Tim Otten [Thu, 30 Dec 2021 03:35:29 +0000 (21:35 -0600)]
MailingEventQueue - Use consistent short/camel-name.
Unchanged
---------
* XML: `xml/schema/Mailing/Event/Queue.xml`
* DAO: `CRM/Mailing/Event/DAO/Queue.php`
* BAO: `CRM/Mailing/Event/BAO/Queue.php`
* APIv3: `api/v3/MailingEventQueue.php`
Changes: Before
---------------
* TLDR: Inconsistent mix of `MailingEventQueue` and `Queue`
* `AllCoreTables` lists the short/CamelCaseName as `Queue`, which
does not match the APIv3 name (`api/v3/MailingEventQueue.php`).
* When formatting results for `MailingEventQueue.create`, it
uses `_civicrm_api3_basic_create(...'Queue')`. Again, that
name does not match `api/v3/MailingEventQueue.php`.
(Substantively, this means that it may call `Queue.getfields`
to read extra metadata. But this returns an empty list...)
Changes: After
---------------
* TLDR: Consistent use of `MailingEventQueue`
* `AllCoreTables` lists the short/CamleCaseName as `MailingEventQueue`
which does match the `api/v3/MailingEventQueue.php`
* When formatting results for `MailingEventQueue.create`, it
uses `_civicrm_api3_basic_create(...'MailingEventQueue')`.
This matches. (Substantively, this means that it may call `MailingEventQueue.getfields`
to read extra metadata. As before, this returns an empty list...)
Comments
--------
In reconciling the conflicted names, I looked at both APIv3 and APIv4.
APIv4 does not expose an entity for this; so the Before+After ocuses on APIv3.
Tim Otten [Thu, 30 Dec 2021 03:25:21 +0000 (21:25 -0600)]
GenCode - Allow overriding the short entity name
Before
------
The short entity-name must always be an exact match to the _last_ part of the class-name.
Ex: The class `CRM_Mailing_Event_BAO_Queue` has short entity-name of `Queue`.
This will cause a conflict if any other subsystem has a class ending in `Queue`
(eg `CRM_Contribute_BAO_Queue` or `CRM_Queue_Queue`).
After
-----
By default, the short entity-name matches the last part of the class-name.
But this can be overridden in `xml/schema/*`, eg
```xml
<table>
<base>CRM/Mailing/Event</base>
<class>Queue</class>
<entity>MailingEventQueue</entity>
```
Comments
---------
To see that this change is generally safe (ie does not impact existing entity), I force-regenereated all DAOs
```
GENCODE_FORCE=1 ./bin/setup.sh -g
```
This produced no substantive change in existing DAOs -- because they do not have the `<entity>` tag.
Eileen McNaughton [Thu, 13 Jan 2022 00:52:14 +0000 (13:52 +1300)]
Move permission checks from Query & BAO to financialacl extension
Eileen McNaughton [Thu, 13 Jan 2022 00:27:44 +0000 (13:27 +1300)]
Clean up buildPermissionedWhereClause
Eileen McNaughton [Wed, 12 Jan 2022 21:32:13 +0000 (10:32 +1300)]
Rationalise relationship validation
The previous relationship validation was
1) throw a message is no valid employer relationship - this seems to be done
in a place that would make the site unusable I've centralised this check into a
cached function that gets the id & throws the exception & is used from
places previously fetching it (there is one that
didn't throw an exception previously but I think enough places did
that extending to that place would not break the site any more if it didn't exist
2) complicated look up to determine if the contact types match the relationship's
expectations. Since we already know the relationship's expectations we
can simplify this to just check contact a is an individual and b is an org which is
much more reasonable. It doesn;t seem like this would ever actually be false so
I added a deprecation to be a bit vocal if it is
Eileen McNaughton [Sat, 8 Jan 2022 00:28:39 +0000 (13:28 +1300)]
Function to get employer relationship type id
Eileen McNaughton [Thu, 13 Jan 2022 05:29:37 +0000 (18:29 +1300)]
Merge pull request #22496 from civicrm/5.46
5.46
colemanw [Thu, 13 Jan 2022 03:27:14 +0000 (22:27 -0500)]
Merge pull request #22443 from eileenmcnaughton/download
Remove support for deprecated key
colemanw [Thu, 13 Jan 2022 03:25:39 +0000 (22:25 -0500)]
Merge pull request #22485 from eileenmcnaughton/ab
Fully remove contactAB function
colemanw [Thu, 13 Jan 2022 03:24:55 +0000 (22:24 -0500)]
Merge pull request #22498 from eileenmcnaughton/mem_act
Don't default membership type create to inactive
Eileen McNaughton [Thu, 13 Jan 2022 02:08:56 +0000 (15:08 +1300)]
Merge pull request #22464 from colemanw/extRequirementCheck
Extensions - Add dependency status check