Concrete 9.0 Release Candidate 1 Now Available!

I am very excited to announce that the first release candidate for Concrete CMS 9.0 is now available!

There is so much in version 9 that I can’t really put it all into one forum post; please see this blog post I’ve written over here for some high level description into what has changed, as well as some YouTube videos we’ve put together over the past few months detailing some of the larger changes.

Full release notes can be found here: 9.0 Release Notes :: Concrete CMS

You can download the release candidate from our download page. It’s also installable via composer, if you instruct composer to install 9.0.0RC1.

Now that we have version 9’s largest updates built in a way that’s not going to change, we are going to be focusing over the next month and a half on improving backward compatibility with existing themes, and assistance with developers as they work on making changes to their add-ons that might be necessary.

Thanks! We hope you enjoy it.


@andrew The Release Notes returns a 403 Page Forbidden

Whoops! Sorry about that; that link should be fixed (see the original post, it’s a new link)

@andrew Yep, that’s fixed now. Thank you.

v9 looks awesome.

But its backward compatibility is not working for me. I can’t install my v8 packages. I get lots of weird exceptions and then can’t uninstall them because I get even more weird exceptions.

You’ve already made three issues in GitHub (thanks!), but I wanted to add the link for anyone who may come accross problems: Issues · concrete5/concrete5 · GitHub

This is a release candidate and expected to have some bugs. Any you can find and document is going to make the actual release that much better!

Thanks for your help, @linuxoid

Is there documentation how to customize the new theme in v9? In v8 it was a matter of copying the Elemental from core to application and changing the php template and less styling. How is it done in v9? Is it still the same process or do I need to compile the scss?

I recently made Enlil Stack Link compatible with 9.0.0a3. Out of curiosity, does it install in RC1 for you? I haven’t gotten an RC1 install up yet. Will probably be next week some time, as much as I’d love to do it right now!

@enlil I’ve just tried it. It installed fine but then after clicking detail I got an exception:

“Target [Illuminate\Contracts\Container\Container] is not instantiable while building [Concrete\Core\Package\ItemCategory\Manager].”

@andrew Had a quick look at v9 looking good so far. In what form is there going to be assistance for devs looking to update their themes/add-on? will there be a new cat in the forum, or something more direct?

I couldn’t resist and got up and running. I can confirm Stack Link works great in 90rc1 as it does in 90a3! Although, we’re left with this error on the package details button, leaving uninstall “impossible”

@enlil you might want to create a package with nothing in it and see if you get the same error. That might be a c5 (sorry Concrete CMS) bug and nothing to do with your package.

@mnakalay confirming @linuxoid bug. its happening for my Page Tease package also. Certain core issue…

That is a Concrete CMS (used to be a nice c5 before, how do we shorted it now? :slight_smile: ) bug, it happened on all my packages I tried to install and then to uninstall

Sounds like you should head to GitHub

@mnakalay I have already

As well as confirming the above single page from package and uninstall issues, I am also getting missing asset issues when requiring assets. Have noted them on GitHub.

Thanks for all the help so far! Looks like we’ve fixed at least 10 issues and more coming in. Looks like my idea of releasing RC2 in six weeks might be a little optimistic…at this rate I should probably do another release tomorrow! lol :sweat_smile:

In general a lot of these issues boil down to the following:

  1. If your packages register assets or refer to core assets, and those core assets don’t exist any more (and many don’t, we’ve consolidated a lot), you’ll get an error. I’m updating that to use a log entry instead of an error.
  2. There are some multilingual errors with loading languages in the interface that I’m fixing.
  3. Many issues are related to the upgrade of Laravel’s Application/Container libraries. I’m fixing these in the core, but package developers will undoubtedly come across them. In general, if you ever had a class like this

class MyClass {

public function __construct($myVar, $somethingElse)


and you make call this using

$myVar = 'something';
$somethingElse = 'something Else';
$app->make(MyClass::class, [$myVar, $somethingElse]);

then you’ll need to update your code throughout to look like this

$myVar = 'something';
$somethingElse = 'something Else';
$app->make(MyClass::class, ['myVar' => $myVar, 'somethingElse' => $somethingElse]);

Laravel no longer infers which variable you want to pass in just based in the array you send in. You have to key it explicitly. You’ll see this all over the place in core code I’m updating. If you ever see complaints in your package’s Application code when using app->make, this is the likely culprit.

There are other issues we’re hard at work fixing, and I’m anticipating doing an RC2 quite soon. Thanks for all the good questions!

Another issue: Exception causing line hidden from view in Debug screen, the line causing an exception is hidden in the Debug screen (it’s the very first line in the black screen of code hidden beyond the top edge

As I can’t attach screenshot on github, I’ll post it here.

What’s the criteria for the key naming? Does it have to match the variable name exactly? Will this work in v8 as well?

Yes, I believe it does. And yes, I believe it will work in v8.