Benchmarks
Plugin footprint 64% from 16 tests
Installer Passed 1 test
🔺 Critical test (weight: 50) | The install procedure must perform silently
This plugin's installer ran successfully
Server metrics [RAM: ▲3.97MB] [CPU: ▲35.91ms] 75% from 4 tests
A check of server-side resources used by UpStream: a Project Management Plugin for WordPress
Please fix the following
- RAM: Total memory usage should be kept under 10MB (currently 10.50MB on /wp-admin/admin.php?page=upstream_tasks)
Page | Memory (MB) | CPU Time (ms) |
---|---|---|
Home / | 6.79 ▲3.33 | 63.94 ▲20.67 |
Dashboard /wp-admin | 7.48 ▲4.17 | 94.60 ▲44.51 |
Posts /wp-admin/edit.php | 7.55 ▲4.20 | 80.75 ▲36.46 |
Add New Post /wp-admin/post-new.php | 10.15 ▲4.27 | 139.32 ▲42.05 |
Media Library /wp-admin/upload.php | 7.41 ▲4.18 | 77.72 ▲44.47 |
Tags /wp-admin/edit-tags.php?taxonomy=upstream_tag&post_type=project | 7.40 | 68.16 |
Milestone Categories /wp-admin/edit-tags.php?taxonomy=upst_milestone_category&post_type=upst_milestone | 7.40 | 70.72 |
Projects /wp-admin/edit.php?post_type=project | 7.48 | 77.18 |
Milestones /wp-admin/edit.php?post_type=upst_milestone | 7.48 | 66.26 |
Clients /wp-admin/edit.php?post_type=client | 7.47 | 67.83 |
Extensions /wp-admin/admin.php?page=upstream_extensions | 10.41 | 88.17 |
Bugs /wp-admin/edit.php?post_type=project&page=bugs | 7.40 | 66.58 |
Tasks /wp-admin/admin.php?page=upstream_tasks | 10.50 | 86.67 |
Categories /wp-admin/edit-tags.php?taxonomy=project_category&post_type=project | 7.40 | 67.15 |
Tasks /wp-admin/edit.php?post_type=project&page=tasks | 7.40 | 67.26 |
Server storage [IO: ▲23.38MB] [DB: ▲0.02MB] 67% from 3 tests
A short overview of filesystem and database impact
It is recommended to fix the following issues
- Illegal file modification detected: 1 file (1.48KB) outside of "wp-content/plugins/upstream/" and "wp-content/uploads/"
- (new file) wp-content/debug-upstream.log
Filesystem: 3,067 new files
Database: 1 new table, 21 new options
New tables |
---|
wp_upfs_files |
New WordPress options |
---|
upstream_default_capabilities_set |
upstream_general |
upstream_tasks |
widget_recent-posts |
theysaidso_admin_options |
_upstream_migration_finished_M0000001 |
_upstream_migration_finished_M0000002 |
db_upgraded |
upstream_version |
upstream:role_upstream_users:drop_edit_others_projects |
... |
Browser metrics Passed 4 tests
Checking browser requirements for UpStream: a Project Management Plugin for WordPress
Normal browser usage
Page | Nodes | Memory (MB) | Script (ms) | Layout (ms) |
---|---|---|---|---|
Home / | 2,979 ▲244 | 14.39 ▲0.11 | 1.70 ▼0.04 | 41.72 ▼1.23 |
Dashboard /wp-admin | 2,373 ▲185 | 6.11 ▲1.19 | 118.42 ▲0.90 | 40.80 ▼3.97 |
Posts /wp-admin/edit.php | 2,274 ▲185 | 3.05 ▲1.02 | 50.75 ▲13.87 | 40.29 ▲6.48 |
Add New Post /wp-admin/post-new.php | 1,648 ▲113 | 18.00 ▼5.11 | 620.93 ▲9.89 | 34.51 ▼18.77 |
Media Library /wp-admin/upload.php | 1,565 ▲180 | 5.24 ▲1.02 | 100.29 ▼0.36 | 45.23 ▼1.66 |
Tags /wp-admin/edit-tags.php?taxonomy=upstream_tag&post_type=project | 1,416 | 2.71 | 42.35 | 116.59 |
Milestone Categories /wp-admin/edit-tags.php?taxonomy=upst_milestone_category&post_type=upst_milestone | 1,577 | 3.16 | 53.75 | 56.15 |
Projects /wp-admin/edit.php?post_type=project | 1,582 | 3.15 | 51.93 | 58.62 |
Milestones /wp-admin/edit.php?post_type=upst_milestone | 1,322 | 2.97 | 50.73 | 60.17 |
Clients /wp-admin/edit.php?post_type=client | 1,323 | 3.06 | 44.23 | 53.23 |
Extensions /wp-admin/admin.php?page=upstream_extensions | 1,237 | 3.05 | 52.93 | 59.60 |
Bugs /wp-admin/edit.php?post_type=project&page=bugs | 1,391 | 2.90 | 37.61 | 55.26 |
Tasks /wp-admin/admin.php?page=upstream_tasks | 2,517 | 3.35 | 70.27 | 68.15 |
Categories /wp-admin/edit-tags.php?taxonomy=project_category&post_type=project | 1,441 | 2.68 | 37.93 | 51.81 |
Tasks /wp-admin/edit.php?post_type=project&page=tasks | 1,399 | 2.76 | 38.77 | 52.60 |
Uninstaller [IO: ▲0.00MB] [DB: ▲0.02MB] 50% from 4 tests
🔸 Tests weight: 35 | Checking the uninstaller removed all traces of the plugin
Please fix the following items
- This plugin does not fully uninstall, leaving 1 table in the database
- wp_upfs_files
- Zombie WordPress options were found after uninstall: 21 options
- can_compress_scripts
- upstream_default_capabilities_set
- upstream:role_upstream_users:drop_edit_others_projects
- _upstream_migration_finished_M0000002
- widget_theysaidso_widget
- upstream_tasks
- upstream_projects
- upstream:migration.comments
- upstream_general
- upstream:created_tasks_args_ids
- ...
Smoke tests 50% from 4 tests
Server-side errors Passed 1 test
🔹 Test weight: 20 | A shallow check that no server-side errors were triggered
Good news, no errors were detected
SRP 0% from 2 tests
🔹 Tests weight: 20 | The single-responsibility principle applies for WordPress plugins as well - please make sure your PHP files perform no actions when accessed directly
Please take a closer look at the following
- 1× PHP files perform the task of outputting text when accessed with GET requests:
- > /wp-content/plugins/upstream/includes/libraries/password_compat-1.0.4/version-test.php
- 462× GET requests to PHP files have triggered server-side errors or warnings (only 10 are shown):
- > PHP Fatal error
Trait 'Symfony\\Component\\Debug\\Tests\\Fixtures\\InternalTrait2' not found in wp-content/plugins/upstream/vendor/symfony/debug/Tests/Fixtures/InternalClass.php on line 8
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Component\\Console\\Command\\Command' not found in wp-content/plugins/upstream/vendor/symfony/console/Tests/Fixtures/FoobarCommand.php:7
- > PHP Fatal error
Uncaught Error: Call to undefined function pcntl_signal() in wp-content/plugins/upstream/vendor/symfony/process/Tests/SignalListener.php:12
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Component\\Console\\Command\\Command' not found in wp-content/plugins/upstream/vendor/symfony/console/Tests/Fixtures/FooOptCommand.php:8
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Component\\Console\\Tests\\Descriptor\\AbstractDescriptorTest' not found in wp-content/plugins/upstream/vendor/symfony/console/Tests/Descriptor/MarkdownDescriptorTest.php:18
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Component\\Console\\Command\\Command' not found in wp-content/plugins/upstream/vendor/symfony/console/Tests/Fixtures/FooSubnamespaced1Command.php:7
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Component\\Finder\\Iterator\\FilterIterator' not found in wp-content/plugins/upstream/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php:19
- > PHP Fatal error
Uncaught Error: Class 'PHPUnit\\Framework\\TestCase' not found in wp-content/plugins/upstream/vendor/symfony/console/Tests/Helper/HelperTest.php:17
- > PHP Fatal error
Uncaught Error: Class 'Symfony\\Component\\Console\\Application' not found in wp-content/plugins/upstream/vendor/symfony/console/Tests/Fixtures/DescriptorApplicationMbString.php:16
- > PHP Fatal error
Uncaught Error: Class 'CMB2_Base' not found in wp-content/plugins/upstream/includes/libraries/cmb2/includes/CMB2.php:21
- > PHP Fatal error
User-side errors Passed 1 test
🔹 Test weight: 20 | This is just a short smoke test looking for browser issues
Everything seems fine, but this is not an exhaustive test
Optimizations
Plugin configuration 97% from 29 tests
readme.txt 94% from 16 tests
Often overlooked, readme.txt is one of the most important files in your plugin
Please fix the following attributes:
- Tags: Please reduce the number of tags, currently 13 tag instead of maximum 10
upstream/upstream.php Passed 13 tests
"UpStream: a Project Management Plugin for WordPress" version 2.0.9's primary PHP file adds more information about the plugin and serves as the entry point for WordPress
41 characters long description:
A Project Management Plugin for WordPress
Code Analysis 97% from 3 tests
File types Passed 1 test
🔸 Test weight: 35 | A short check of programming languages and file extensions; no executable files are allowed
Everything looks great! No dangerous files found in this plugin264,284 lines of code in 2,732 files:
Language | Files | Blank lines | Comment lines | Lines of code |
---|---|---|---|---|
PHP | 948 | 20,329 | 33,716 | 88,245 |
PO File | 126 | 19,384 | 27,376 | 45,554 |
JSON | 26 | 0 | 0 | 43,864 |
JavaScript | 131 | 4,418 | 2,106 | 23,616 |
YAML | 34 | 129 | 90 | 19,090 |
CSS | 56 | 4,246 | 1,481 | 18,348 |
SVG | 1,303 | 0 | 5,167 | 11,142 |
Sass | 18 | 504 | 34 | 4,144 |
LESS | 18 | 502 | 55 | 4,107 |
HTML | 3 | 70 | 0 | 3,186 |
Markdown | 35 | 774 | 0 | 1,830 |
XML | 24 | 26 | 2 | 515 |
JSX | 1 | 57 | 123 | 255 |
C | 1 | 52 | 8 | 223 |
Twig | 6 | 9 | 0 | 84 |
m4 | 1 | 11 | 11 | 41 |
C/C++ Header | 1 | 12 | 8 | 40 |
PHP code 50% from 2 tests
An overview of cyclomatic complexity and code structure
It is recommended to fix the following
- Cyclomatic complexity of methods should be reduced to less than 100 (currently 113)
Cyclomatic complexity | |
---|---|
Average complexity per logical line of code | 0.38 |
Average class complexity | 10.84 |
▷ Minimum class complexity | 1.00 |
▷ Maximum class complexity | 259.00 |
Average method complexity | 2.84 |
▷ Minimum method complexity | 1.00 |
▷ Maximum method complexity | 113.00 |
Code structure | ||
---|---|---|
Namespaces | 111 | |
Interfaces | 57 | |
Traits | 9 | |
Classes | 850 | |
▷ Abstract classes | 44 | 5.18% |
▷ Concrete classes | 806 | 94.82% |
▷ Final classes | 17 | 2.11% |
Methods | 5,010 | |
▷ Static methods | 442 | 8.82% |
▷ Public methods | 4,235 | 84.53% |
▷ Protected methods | 499 | 9.96% |
▷ Private methods | 276 | 5.51% |
Functions | 768 | |
▷ Named functions | 437 | 56.90% |
▷ Anonymous functions | 331 | 43.10% |
Constants | 216 | |
▷ Global constants | 52 | 24.07% |
▷ Class constants | 164 | 75.93% |
▷ Public constants | 164 | 100.00% |
Plugin size Passed 2 tests
Image compression Passed 2 tests
Using a strong compression for your PNG files is a great way to speed-up your plugin
26 compressed PNG files occupy 0.05MB
Potential savings
Compression of 5 random PNG files using pngquant | |||
---|---|---|---|
File | Size - original | Size - compressed | Savings |
includes/libraries/cmb2/images/ui-bg_flat_75_ffffff_40x100.png | 0.17KB | 0.08KB | ▼ 51.12% |
includes/libraries/cmb2/images/ui-bg_glass_95_fef1ec_1x400.png | 0.12KB | 0.14KB | 0.00% |
includes/admin/assets/img/datepicker/ui-icons_454545_256x240.png | 4.27KB | 4.11KB | ▼ 3.78% |
includes/libraries/cmb2/images/ui-bg_highlight-soft_75_cccccc_1x100.png | 0.10KB | 0.17KB | 0.00% |
includes/libraries/cmb2/images/ui-bg_glass_55_fbf9ee_1x400.png | 0.12KB | 0.14KB | 0.00% |