concrete versions explained

In order for everyone to understand and follow Semantic Versioning 2.0 we are going to remove the leading 5 from our versioning. The next major version of concrete5 is going to be Version 8.0.0.

Whats with the 5 anyway?

concrete5 was born in 2003 as a commercial software named Concrete CMS. In 2008 we made Concrete CMS open source, but protecting the word “concrete” was well beyond what we could afford. It was the fifth major rebuild we’d done, we liked the way the bottom of the 5 complimented the lower case c on the other end, so we became concrete5. We kept the brand in our versioning because it felt consistent at the time. Fast forward 8 years, and it has become confusing.

How does this affect Version 8

It doesn’t!

Version 8 will be backwards compatible with version 7. You will be able to just upgrade your version 7 site with a single button press the way we always did before. This is not a manual migration like we did between legacy version 6 and version 7. No one wants to do that again.

We’ll release exciting details on the new features shipping with version 8 shortly.

What is software versioning?

Software versioning is the process of assigning a unique version number to software releases. It allows programmers to know when changes are made. At the same time, it enables our users to easily recognize new releases.

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make API changes or add new features. (Version 8.0.0) The eight would be the Major number.
  2. MINOR version when you add functionality in a backwards-compatible manner (Version 8.5.0) The 5 is the minor number
  3. PATCH version when we make bug and security fixes like last week's release. (Version 8.5.2) 2 is the patch number

Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

What’s “legacy” about?

We’ve started referring to any version of concrete5 that’s earlier than version 7 as “legacy.” Version 6 is still getting maintenance updates, primarily driven by the community on github. There’s no one-click easy way to upgrade from legacy version 6 to version 7, you have to build a new site and migrate content into it. That’s not ideal, but it was required at that one point for all the improvements that went into version 7. It’s not something we want to ever do again.

If you’ve got a site that’s doing its job on legacy, you’ll be fine letting it run for some time. If you’re building new stuff, you should build it on the newest version of concrete5.