Jump to content

Development update for August 2022

Welcome to our August (and June and July) developer's Update!

We've had a busy summer so far, with our team working on the final touches to 4.7 which introduced range of new Cloud specific features. In our August release we also added a way to schedule topics.

@Jordan Miller announced the new solutions improvements here, this will be included in our September release (4.7.2)

PHP8 Compatibility Scanner

We are excited to announce that as a platform we (finally) are starting the process of migrating from PHP7 to PHP8 in order to keep the software secure, modern, and performant.

Since PHP8 includes some breaking changes from PHP7, we've built a Method Scanner that will iterate through third party apps and plugins to find fatal issues, disabling any such customizations on upgrade. The apps and plugins disabled in this manner will not be able to be re-enabled until they are updated with the fixes. Developers, please make sure that your resources are fully tested with PHP 8+ and the method signatures match.

For developers, the main issue the scanner looks for is instances in which a method's signature is altered when extending a class; this can cause fatal errors that make even the AdminCP inaccessible. Violating code can be found both in your hooks as well as other PHP classes your app/plugin uses. See the PHP8 Incompatible Apps and Plugins in the AdminCP Support Page to see exactly the issues identified and how to resolve:

Could contain: File, Text, Webpage

 

Pre-Upgrade Resource Checker

We're also introducing a new AdminCP upgrade step to check installed resources for whether compatibility updates are available for version they're upgrading to.

Could contain: Document, Text, File, Word, Webpage, Page

 

Here is the full changelog for our upcoming September release.

Core

- Added ACP Tool to scan all hooks to identify PHP8 fatal errors related to method overloading.
- Added AdminCP new search terms to guide admins to the new areas.
- Added a pre-upgrade Marketplace compatibility check.
- Fixed an issue where a large number of profile field options can break the page layout on the member stats overview page.
- Fixed an issue where members following an item may not be following the remaining item after a merge.
- Fixed an issue where word filters could cause an item to be held for approval even if the author had more than the required number of posts to bypass.
- Fixed an issue with hCaptcha where an incorrect language override could be requested.
- Fixed an issue where it was possible to create an alert with forced reply from a moderator/admin account with a disabled messenger.
- Fixed an issue where editing the ACP => System => Postings page with disabled registrations would throw an exception while the submission.
- Fixed an issue where some alerts were not shown if they had an end date.
- Fixed an issue where post to Twitter could potentially result in an uncaught exception
- Fixed an issue where the oauth configuration page was missing the required css files.
- Fixed an issue where a report title may appear in trending content (does not expose any sensitive data).
- Fixed an issue where removing a manually added badge would not remove the badge
- Fixed an issue where the rank progression chart may not work when non-default ranks are used.
- Fixed an issue where the achievements rebuild may fail.
- Fixed an issue where content tags from content created by the RSS Import feature could be associated with a guest account.
- Fixed an issue where alerts could not be dismissed if they had long titles.
- Fixed an issue where search options may break on profiles when status updates were disabled.

Pages

- Fixed an issue where orphaned categories could break syncing from topics.
- Fixed an issue when using the REST API to fetch records where fields may not have the image lazyload removed.

Forums

- Added multiple improvements to "Mark as solution" including a re-engagement email, new UI to prompt authors to mark a reply as the solution and new stats.
- Fixed an issue where the default forum views may not be used for guests.
- Fixed an issue where soft deleted items may be archived and then subsequently deleted leaving orphaned reports.
- Fixed an issue where a malformed findComment link caused a 404 error instead of loading the topic from the start.

Commerce

- Fixed a typo on the invoice settings page.
- Fixed an issue on the credits page
- Fixed an issue where deleting a subscription package would leave some orphaned data in the database.


Changes affecting third-party developers and designers

- Fixed an issue where plugin index.html files may get included as CSS causing a browser rendering issue.

 

Comments

Recommended Comments

TSP

Posted

Is it disabled only if the installations uses PHP 8 or is it disabled on 7.4 too? 

Is the next version 4.7.2 requiring PHP 8 already, or does that come later? 

Stuart Silvester

Posted

17 minutes ago, TSP said:

Is it disabled only if the installations uses PHP 8 or is it disabled on 7.4 too? 

Is the next version 4.7.2 requiring PHP 8 already, or does that come later? 

It's all versions. Since we're preparing to move our platform and self hosted requirements to PHP 8 this change is aimed at getting communities ready and also preventing a complete fatal error when upgrading PHP. I'm sure you'll have seen many of the support issues recently where customers have 3rd party resources that won't work.

Balto

Posted

9 minutes ago, Stuart Silvester said:

It's all versions. Since we're preparing to move our platform and self hosted requirements to PHP 8 this change is aimed at getting communities ready and also preventing a complete fatal error when upgrading PHP. I'm sure you'll have seen many of the support issues recently where customers have 3rd party resources that won't work.

But what will happen for those plugins we are still using but are not updated anymore (because the plugin's developer is not active anymore, for example)?

Stuart Silvester

Posted

40 minutes ago, Balto said:

But what will happen for those plugins we are still using but are not updated anymore (because the plugin's developer is not active anymore, for example)?

They'll only be automatically disabled if the scanner knows they will break (and I mean completely take your community offline). If you have a plug-in that will cause such an error it will need to be updated by someone. You might need to hire a developer to update it for you if the original author isn't active.

Balto

Posted

1 hour ago, Stuart Silvester said:
2 hours ago, Balto said:

 

They'll only be automatically disabled if the scanner knows they will break (and I mean completely take your community offline). If you have a plug-in that will cause such an error it will need to be updated by someone. You might need to hire a developer to update it for you if the original author isn't active.

Thanks! Where can we find this scanner? Is it already available?

Stuart Silvester

Posted

Just now, Balto said:

Thanks! Where can we find this scanner? Is it already available?

It is included in 4.7.2. You can see it via the AdminCP > Support page (if there are any changes needed, it'll show up in the top left block). It'll also run on every upgrade to make sure your third party resources are not going to break the new release.

aXenDev

Posted

If I am a developer how can I refresh the app status? I updated my app, but it's still locked (IN_DEV mode enabled).

aXenDev

Posted

On 8/28/2022 at 4:18 PM, aXenDev said:

If I am a developer how can I refresh the app status? I updated my app, but it's still locked (IN_DEV mode enabled).

anyone? :< @Matt Finger or @Stuart Silvester?

Stuart Silvester

Posted

1 hour ago, aXenDev said:

In 4.7.2 beta 4+ apps will no longer be locked disabled if you are using a development install.

Updating via uploading a new version or updating from the Marketplace should remove the lock. I will check this further to make sure it's working as expected.

aXenDev

Posted (edited)

58 minutes ago, Stuart Silvester said:

In 4.7.2 beta 4+ apps will no longer be locked disabled if you are using a development install.

I have beta 5, but my app is still locked.
Could contain: File, Menu, Text, Webpage

Edited by aXenDev
All Astronauts

Posted (edited)

You'll have to manually open it with a database edit. For plugins just the 'disabled' and 'requires manual intervention' fields in the entry need adjusting (to zero); ditto for applications. You probably need to dump your datastore after making the manual edits.

Also, you are right @aXenDev, this current beta 5 still locks on upgrading. If they are making just an IN_DEV check, then yeah, it would still lock as we upgrade outside of dev mode. If IPS is actually checking for the -TESTINSTALL flag on the key, then it's just broken.

I suppose I'm lucky. Just one thing locked for me... that has been running on PHP 8 for a year. I'm more weirded out by all the log messages saying it can't parse the plugin directories as they think they are not there.

EDIT: The latter is caused by missing widget and tasks directories. They can change the log message for that to better indicate that is the problem rather than just say the plugin directory itself is the problem.

Edited by All Astronauts

×
×
  • Create New...