HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.

Vanilla 3.0 RC2 (Release Candidate) & Call for Testers

charrondevcharrondev Developer Lead (PHP, JS)Montreal Vanilla Staff

Last month we put out our initial release candidate for Vanilla 3.0. We received an amazing amount of feedback from the community about bugs and pain points with that so thanks everyone for taking the time to test out the release.

We think we've got things pretty close to ready, but with such a large amount of fixes and changes we've decided to do a second release candidate. This one will be much shorter thought. I'm planning to look for any last minute bugs next week, and put out the final release next Friday.

Upgrade Notes

  • Vanilla 3.0 requires PHP 7.1 which is a change from earlier versions. We strongly recommend upgrading to PHP 7.3 as soon as possible. Many hosting plans allow a seamless transition via their control panel.
  • Follow the normal upgrade process, including running /utility/update.
  • Follow additional specific upgrade instructions if upgrading from an earlier version.
  • Test your plugin & theme compatibility in a safe place. This is not a final release yet so it's not recommended to run this on a production forum.

The Release

You can grab the release candidate version here. Please leave feedback in this thread or file a github issue if you can have clear reproduction steps.


  • charrondevcharrondev Developer Lead (PHP, JS) Montreal Vanilla Staff
    edited June 2019

    Breaking Changes

    These are the breaking changes for RC2 release. Please refer to the RC1 release for the rest of the 3.0 breaking changes.

    Removed classes, method, & interfaces

    The following items were all deprecated with the 2.5 release. They have been removed starting in this release.

    • Gdn_Factory
    • ISingleton
    • Gdn::getFactory()
    • Gdn::factoryInstallDependency()
    • Gdn::factoryInstallDependencyFromConfig()
    • Gdn::factoryInstallFromConfig()

    URL rewriting is mandatory!!!

    This was part of the 2.5 release upgrade notes, but if becomes more and more important as time goes on.

    If your forum still uses URLs including ?p=, support for this URL structure has ended. Follow these steps to switch to the simpler format:

    1. Confirm your server is setup to handle rewrites. On Apache, using the .htaccess file provided will accomplish this. Additional setup is required on nginx and other platforms.
    2. Test whether it is working by visiting /discussions - if you see a discussions list (rather than a 404), it is likely setup correctly.
    3. Open /conf/config.php and find the line with $Configuration['Garden']['RewriteUrls'] = false; and delete the entire line.

    APIv2 is not compatible with ?p= style URLs. Going in forward more and more parts of Vanilla will be built on top of our API. Rich Editor requires it. Some upcoming UI features in this years releases will be built on the API.

    Users using nginx can refer to following resources as examples:

    Updated Cache Headers on /entry/*

    If you have any view override for a view in EntryController, eg. signin, register, etc, you have to update it. Otherwise all entry forms will no longer work for signed out users.

    Work was done in this release to allow caching /entry/* pages for guests. As a result Vanilla now sends down standard cache headers for these HTML pages, whereas previously it would prevent caching on these pages.

    The reason for the previous lack of caching was because these entry forms required a TransientKey in a cookie for every user and these need to be private & per user. Eg. cannot be cached.

    These forms no longer require a TransientKey if the request is submitted over AJAX with the X-Request-With header, but the forms must now be submitted over Ajax. The core views have been updated, but if you overrode one of those views, you will need to update it or users signing in will begin seeing errors when signing in or registering.

    Emoji Extender case sensitive rename

    Some changes renaming has occurred within the EmojiExtender plugin and additional upgrade steps are required on certain systems to prevent having duplicate versions of the plugin.

    1. Delete EmojiExtender from your plugins directory. The plugin directory now matches its addon key emojiextender.
This discussion has been closed.