Jump to content

Matt

Management
  • Posts

    69,957
  • Joined

  • Last visited

  • Days Won

    624

 Content Type 

Downloads

Release Notes

IPS4 Guides

IPS4 Developer Documentation

Invision Community Blog

Development Blog

Deprecation Tracker

Providers Directory

Projects

Release Notes v5

Forums

Events

Store

Gallery

Everything posted by Matt

  1. I split this from the other topic so we can manage this issue for you.
  2. Possibly not, I will investigate and we can isolate that check. We have to check signatures though, so if the parent was: function foo( \IPS\Member $member ) And third party code overloaded with function foo( $member ) Then you would get an error, so it's probably good practise to match the param signatures exactly moving forwards. Here's a good blog outlining the cool new things PHP 8 brings (and the breaking changes): https://stitcher.io/blog/new-in-php-8 I have updated the release notes to include a link to this topic. This will be visible in the upgrade block in the AdminCP.
  3. Invision Community 4.7.2 now features a third party application and plug-ins PHP 8 compatibility scanner. Please read this post as you may find applications of plugins disabled after upgrading. Why do we need this? The underlying programming language that Invision Community uses is PHP. The latest version, PHP 8 was released in November 2020 and features many breaking changes and incompatibilities that are not backwards compatible. Some of these changes mean that what was a harmless silent notice, is now a fatal error which would mean that if you upgrade with incompatible code, your community would throw a fatal error which results in either a white screen, or a server level error message in your browser. These fatal errors cannot be captured by Invision Community and managed. The fatal errors are deeper in the execution chain. PHP 8 has been out for close to two years, and PHP 7.4 is 'end of life' and security updates will cease from November which means that it becomes insecure, so everyone will have to move to PHP 8 very shortly. What is it The compatibility checker examines all third party applications and plugins that you have added from the Marketplace. We encourage our Marketplace authors to test with PHP 8 but not all do, and as such applications and plugins that work fine with PHP 7.4 will fail with PHP 8. The compatibility checker scans all third party code for issues that could cause fatal errors, and if it finds them it will disable the application or plugin on upgrade. The only way to re-enable the application or upgrade is to update it to a 4.7.2 compatible version from the marketplace. Can I re-enable disabled third party plugins and applications? Yes, if you are confident the plugins and applications are fine to run with your current PHP version then you can re-enable them until our November release which will then enforce the disabling of applications. It's worth reaching out to the authors of key plugins and applications to see if they have a PHP8 compatible version available, or plan to have one by November so you can prepare for the November upgrade. Is this really needed? Unfortunately yes. PHP are making bold changes that are not backwards compatible. Invision Community is fortunate to have so many third party developers releasing apps and plugins to further enhance the feature-set, but we do not have direct control over this code. Our priority is to ensure that your site upgrades smoothly and remains online. Why now? We finally ran out of road. We have been working towards PHP 8 compatibility for a while, and we have encouraged our third party authors to do so too, and to test with PHP 8. We also informed the developers in August about the scanner and what it may do to their applications. We also have been releasing Invision Community 4.7 betas since May of this year to give them as much time as possible to update their applications. Enforcing this change is painful in the short term but benefits everyone in the longer term. What else can I do? Your self-hosting license allows you a test install which you should use as a staging site and test any upgrades on that staging site before performing the upgrade on your production site. This will enable you to capture any issues that may arise before you run it on your production site. As always, we recommend that a back-up snapshot is taken before any upgrade so that you can easily rollback if you encounter any issues. I'm using PHP 7, does this affect me? Yes, the compatibility scanner will still run on the upgrade and check for PHP 8 issues so that when you do upgrade to PHP 8 you won't find that your community is no longer working. Thanks for reading!
  4. You will only have an issue if you are using third party applications that the authors haven’t had a chance to update since we started releasing betas in May of this year. I would think that most sites will be fine. To be clear, PHP 8 made breaking changes that will completely brick your site if we did nothing.
  5. It is also possible that the visual translation tool is still enabled? This can be disabled via the AdminCP.
  6. This is true, however PHP 8 compatibility was a big focus for 4.7, and PHP 8 made a lot of breaking changes (https://www.php.net/manual/en/migration80.incompatible.php). I would encourage all our marketplace developers to ensure they are using PHP 8 when developing and testing their apps to ensure they catch fatal errors before they are published. Wait until PHP 8.2... 🤪
  7. Yes, we have since we started releasing betas for 4.7 in May, and we wrote a dev blog outlining what the scanner will do including locking applications about a month ago.
  8. Yes, because you can upgrade to PHP 8 after the upgrade and then have a bricked install. Given that PHP 7 is EOL and security support ends in November this year, I'd suspect most hosts will start planning their upgrades to PHP 8 very soon. As mentioned above, PHP 8 have made things that used to send a hidden notice now throw a fatal error we cannot capture or adjust.
  9. A pre-upgrade check wouldn't solve much as once you have the files up there, you either proceed, or you restore a back-up which is not a great choice either. We are going to be working through the marketplace queue to ensure we can get as many apps as possible through the approval process.
  10. The way to unlock it is to upload a new version. As mentioned above, it's a bit of a frustrating time given PHP 8s drastic changes.
  11. Yes, it's quite frustrating but the PHP 8 upgrade is very destructive and what were harmless notices are now fatal errors. We had to add quite robust checking and even disabling applications to prevent bricked upgrades. It's taken us a few revisions to get it completely accurate.
  12. Unfortunately not. If your site heavily relies on specific applications or plug-ins, I'd advise checking to see if 4.7 compatible versions exist before upgrading.
  13. It looks like MySQL is treating it as the same word which is interesting. Run the following query, and check to see if the Collation is 'utf8mb4_unicode_ci' show table status where Name='core_profanity_filters' You may need to add your table prefix in the name of the table inside the quotes.
  14. 99% of support issues can be dealt with in this forum and others may benefit from the conversation. If you need to post sensitive data, then just state that in the topic and we'll convert it to a ticket for you. "I'm getting an issue with MySQL and I have a slow query log, can I send it privately or have a ticket opened?" is all you need to do. 🙂
  15. Indeed we are! We have plans to change how we package up JS to make it smaller and faster.
  16. Not at all, just trying to keep our platform moving in the correct direction. We would be doing the same as any other modern platform.
  17. Matt

    4.7.2.1

    This is our September maintenance release. Key changes include: PHP 8 Marketplace app/plugin Compatibility Scanner (please read before upgrading) Improvements to marking posts as solutions
  18. Just as a note to future readers of this topic, the issue looks to be by the Elastisearch provider not allowing access to the task and update by query APIs. If you get any odd issues with multiple entries where there shouldn't be in streams, it's almost always update by query not working or being blocked by the host.
  19. Don't say it. Don't say it. Don't say it. Don't say it. Don't say it.
  20. It looks like you are experiencing a MySQL problem. Get in touch with your host and see if they are aware of any issues. A missing table is not a good sign, so it's worth investigating the cause of that.
  21. That looks to be the History.js jQuery plug-in we use. We can possibly do without it in the near future.
  22. Yes, I like the idea of notifying someone when a topic is viewed a lot.
×
×
  • Create New...