Announcing the start of SMF 3.0 development

November 05, 2023, 07:55:26 PM Posted by Sesquipedalian on November 05, 2023, 07:55:26 PM in Announcing the start of SMF 3.0 development | 61 Comments
Hello everyone,

We have a couple of important announcements to make regarding SMF development.

First, @shawnb61 has recently decided to step down as lead developer. We're sad to see him leave that role, but the good news is that he will still be around as a contributor. I will be taking over the role of lead developer in the interim until the next team elections in July 2024. Thanks, shawnb61, for all that you have done for us!

Second, the Dev Team also wants to let you know that we are making a significant change to the currently published roadmap for SMF. Specifically, we have decided not to create an SMF 2.2 branch. Instead, we are launching development of SMF 3.0.

The revised development roadmap is as follows:

Release  Functional Updates  Technical Updates  Maintenance Focus 
2.1.5
  • SVG support
  • WebP support
  • PHP 8.3 support
  • Subscriptions
  • Attachments
  • Notifications
3.0
  • Custom board icons
  • Accessibility improvements
  • Theme & CSS simplification
  • Improved likes reporting
  • Recurring calendar events
  • Admin Panel layout
  • Custom profile field multi-select
  • Anonymization upon delete
  • Open redirect link in new window
  • Improvements to auto image resizing
  • URL autolinking improvements
  • OOP refactoring
  • Minimum PHP 8.0
  • UTF8MB4
  • MySQL 8+ changes
  • Theme Hooks
  • Upgrader improvements
  • Homoglyph detection
  • Separate languages from themes
  • TBD

The largest change in SMF 3.0 is a massive overhaul and modernization of under-the-hood code. Specifically, the code in SMF 3.0 Alpha 1 has been entirely rewritten to use modern, object oriented programming paradigms. This is a major update that helps ensure the continued longevity of SMF and, we hope, will also prove attractive to new generations of PHP coders who want to contribute.

Additionally, a great deal of effort has gone into maintaining backward compatibility with modifications and integrations that rely on integration hooks. Generally speaking, mods designed for SMF 2.1 and marked as "hooks only" in the SMF Customization database should be compatible out-of-the-box with SMF 3.0.

User facing improvements in SMF 3.0 will include a fresh, modern theme with better accessibility for users with various disabilities, improvements to the likes system, easy anonymization upon account deletion (important for GDPR), and more.

To help ensure a timely release, the development roadmap for 3.0 will remain tightly defined. As always, the timeline for the release is "when it's ready" (so don't bother asking ;) ) but our intention is to stick closely to our roadmap and release once those goals are reached. We might add some more features and changes to the roadmap beyond those already listed, but a convincing case will need to be made for any such additions.

Comments


Antechinus on November 05, 2023, 08:07:56 PM said
Sounds useful. :)

TwitchisMental on November 05, 2023, 08:55:57 PM said

Tyrsson on November 05, 2023, 10:08:56 PM said
Awesome, awesome, awesome.

@Sesquipedalian great work man, great work.

[offtopic]
I must say I am confused by the min version for 3.0 being 8.0 if 2.1.6 is adding php 8.3 support... I guess my question is really why target a version that is about to drop security support?
[/offtopic]

Guess it's time to knock the dust off :)

Sesquipedalian on November 05, 2023, 10:46:06 PM said
Quote from: Tyrsson on November 05, 2023, 10:08:56 PMI must say I am confused by the min version for 3.0 being 8.0 if 2.1.6 is adding php 8.3 support... I guess my question is really why target a version that is about to drop security support?

SMF 2.0's maximum supported PHP version is 8.0. Pegging SMF 3.0's minimum supported version to PHP 8.0 is intended to ease the upgrade path for forum admins that are still running SMF 2.0. We might decide later to raise the minimum PHP version requirement to something more recent, but for the time being that is where we have put it.

Tyrsson on November 05, 2023, 11:05:57 PM said
Quote from: Sesquipedalian on November 05, 2023, 10:46:06 PM
Quote from: Tyrsson on November 05, 2023, 10:08:56 PMI must say I am confused by the min version for 3.0 being 8.0 if 2.1.6 is adding php 8.3 support... I guess my question is really why target a version that is about to drop security support?

SMF 2.0's maximum supported PHP version is 8.0. Pegging SMF 3.0's minimum supported version to PHP 8.0 is intended to ease the upgrade path for forum admins that are still running SMF 2.0. We might decide later to raise the minimum PHP version requirement to something more recent, but for the time being that is where we have put it.
Makes sense.

d3vcho on November 06, 2023, 01:00:00 AM said
Lovely!

Weirdo on November 06, 2023, 08:41:18 AM said
Awesome news!

TheRaven on November 06, 2023, 07:23:10 PM said
I'm excited for this! :D

Oldiesmann on November 06, 2023, 09:37:41 PM said
Great to see. I'm not all that familiar with OOP (at least not on the PHP side of things - I did some with Visual Basic / C# and ASP .NET years ago in college), but I'm always willing to learn new things. Looking forward to playing around with it more once the installer fixes get merged in.

Tyrsson on November 06, 2023, 10:26:21 PM said
Quote from: Oldiesmann on November 06, 2023, 09:37:41 PMGreat to see. I'm not all that familiar with OOP (at least not on the PHP side of things - I did some with Visual Basic / C# and ASP .NET years ago in college), but I'm always willing to learn new things. Looking forward to playing around with it more once the installer fixes get merged in.
Install ran fine for me....

Oldiesmann on November 06, 2023, 10:30:34 PM said
Quote from: Tyrsson on November 06, 2023, 10:26:21 PM
Quote from: Oldiesmann on November 06, 2023, 09:37:41 PMGreat to see. I'm not all that familiar with OOP (at least not on the PHP side of things - I did some with Visual Basic / C# and ASP .NET years ago in college), but I'm always willing to learn new things. Looking forward to playing around with it more once the installer fixes get merged in.
Install ran fine for me....

Not for me. See https://github.com/SimpleMachines/SMF/issues/7852

Tyrsson on November 06, 2023, 11:13:27 PM said
Quote from: Oldiesmann on November 06, 2023, 10:30:34 PM
Quote from: Tyrsson on November 06, 2023, 10:26:21 PM
Quote from: Oldiesmann on November 06, 2023, 09:37:41 PMGreat to see. I'm not all that familiar with OOP (at least not on the PHP side of things - I did some with Visual Basic / C# and ASP .NET years ago in college), but I'm always willing to learn new things. Looking forward to playing around with it more once the installer fixes get merged in.
Install ran fine for me....

Not for me. See https://github.com/SimpleMachines/SMF/issues/7852
Check my question on Discord. Might be relevant.

CRM 114 on November 06, 2023, 11:22:24 PM said
I am looking forward to. :D

_sebas_ on November 10, 2023, 04:10:42 AM said
Hello, Great Announcement!!
 Do you have any estimate on the possible dates of these implementations?
 .. or when can there be a working version of SMF 3.0 for production?

aprox.

thatjustit on November 10, 2023, 06:35:15 AM said
And my day just got brighter! Great news.

Kindred on November 10, 2023, 06:45:27 AM said
Quote from: _sebas_ on November 10, 2023, 04:10:42 AMHello, Great Announcement!!
 Do you have any estimate on the possible dates of these implementations?
 .. or when can there be a working version of SMF 3.0 for production?

aprox.

You should know better than that.
The answer,  as always is -- when it is ready.

Antechinus on November 10, 2023, 02:42:35 PM said
Quote from: _sebas_ on November 10, 2023, 04:10:42 AMHello, Great Announcement!!
 Do you have any estimate on the possible dates of these implementations?
 .. or when can there be a working version of SMF 3.0 for production?

aprox.
It will definitely be done by Christmas.
But not by Christmas this year. :)

JBlaze on November 10, 2023, 11:02:22 PM said
Exciting news!

CrazyCreator on November 14, 2023, 03:21:03 PM said
Is a Beta or so available?

Sesquipedalian on November 14, 2023, 03:22:45 PM said
No, not for a while yet. We're still working on Alpha 1.

Oldiesmann on November 14, 2023, 11:04:08 PM said
You can download the code from GitHub (the "release-3.0" branch), but there aren't any frontend changes right now - it looks exactly the same as 2.1 (and features/functionality are the same as well - though not everything is working yet due to the code changes).

ColinJM on November 19, 2023, 08:50:11 PM said
Great Job Guys, love that 3.0 includes recurring Calendar events!

Thomas057 on November 20, 2023, 07:02:11 AM said
Please don't forget to make it SEO Responsive with Indexing thanks  :'(  :'(  O:)

Kindred on November 20, 2023, 08:52:37 AM said
"SEO responsive"?   that's a stupid buzzword that means nothing.


SMF is already pretty SEO friendly (and uses canonical to assist with that)  but **NO** forum is ever going to be SEO "great" because it's user written content - not curated content.

SMF 2.1.x (and even 2.0.x) already responsive design (as long as the custom theme or mods don't break it)

landyvlad on November 21, 2023, 01:29:41 AM said
This is encouraging news.

A big thank you to @shawnb61 for all your work to date and to @Sesquipedalian for stepping up.


Given the whole world is moving that way - though I'm NOT suggesting it be integrated as core functionality or anything - but the potential use of AI should be contemplated as a design consideration.
That is, making it so that AI tools can be integrated into SMF in future.

I know very little about it or protocols etc (is there a version of 'hooks' for AI? )but I think it's a potential opportunity which if missed may make SMF less attractive as an option,. if other forum software does take it into account.

Ok I've even lost myself now :)

Anyway keep up all the good work ladies, gentlemen and well, everyone.


asmith on November 27, 2023, 03:02:53 AM said
@Sesquipedalian What's your take on jQuery? Do you think 3.0 is a good opportunity to drop it in favor of vanilla JS? (I know we're heavily relying on it. caret/atwho/scrollbar/datepicker etc...)

Sesquipedalian on November 27, 2023, 03:28:06 AM said
Quote from: asmith on November 27, 2023, 03:02:53 AM@Sesquipedalian What's your take on jQuery? Do you think 3.0 is a good opportunity to drop it in favor of vanilla JS? (I know we're heavily relying on it. caret/atwho/scrollbar/datepicker etc...)

Personally, I'm indifferent. However, I'm pretty sure @live627 wants to remove it. If he (or anyone else) wants to make that happen by the time 3.0 is ready for beta testing, I won't object one bit.

StarredSkies on December 12, 2023, 03:53:14 PM said
This is amazing to hear! Great work guys. :)

m4z on December 14, 2023, 04:21:36 AM said
Quote from: _sebas_ on November 10, 2023, 04:10:42 AMHello, Great Announcement!!
 Do you have any estimate on the possible dates of these implementations?
 .. or when can there be a working version of SMF 3.0 for production?

aprox.

I'm willing to bet my nonexistent third nipple that it will be done before the year 2030.

KensonPlays on December 20, 2023, 12:20:51 AM said
I haven't used SMF since 2.0. I'm looking forward to seeing what 3.0 is like!

asmith on December 25, 2023, 12:59:37 AM said
SMF coding style was always to use a separate line for curly braces.

if (condition)
{

}

However in 3.0, I'm seeing the opening curly braces on the same line.
if (condition) {

}

Why this change? I myself was pretty much used to it. Was there a discussion?

Sesquipedalian on December 25, 2023, 03:28:02 AM said
We've decided to change our coding standard to more closely align with PSR-12. It was a decision reached unanimously in discussion by the dev team.

asmith on December 25, 2023, 04:11:55 AM said
Yep that also explains why single rule inside if statements are also wrapped in curly braces.  :( 

Anyway, the bigger picture is that SMF is still going strong and that's what matters *thumbs up*

thepoorman on February 19, 2024, 11:07:39 AM said
Not sure if I'm in the correct place, but can you place the "ADD A BOARD" BUTTON on the top of the category list. Instead of having to scroll down to the add a button. Would be nice if the 2 was updated.

Arantor on February 19, 2024, 11:26:26 AM said
Quote from: thepoorman on February 19, 2024, 11:07:39 AMNot sure if I'm in the correct place, but can you place the "ADD A BOARD" BUTTON on the top of the category list. Instead of having to scroll down to the add a button. Would be nice if the 2 was updated.

If memory serves its at the bottom of each category, so it's tied to that category rather than a generic "add board" button.

Adding the button at the top would make it generic and mean you just have to spend the same effort in a different time/place, namely selecting which category it goes in...

Julius_2000 on February 20, 2024, 06:11:41 AM said
Oh, I somehow missed this announcement. Sounds wonderful. Thanks to @shawnb61 for your contribution!

I am wondering, for css, are you going to implement "&" nesting to make things a bit more lean and clear, now that almost all browsers support it?

Will it be necessary for custom themes to be adapted like it was for the transition from 2.0.x to 2.1.x ?

Anyways, I am pretty excited!

Diego Andrés on February 20, 2024, 08:24:00 AM said
Support for it is not ideal yet so it's not currently in the scope. Could still change during the next year, but for now the CSS still getting a cleanup regardless.

And yes, themes likely need to be adapted. However currently there is a 90% chance they work but it's only going to get worse (probably), so I'd advise to adapt them to avoid issues.

live627 on February 20, 2024, 09:55:12 PM said
Quote from: Julius_2000 on February 20, 2024, 06:11:41 AMI am wondering, for css, are you going to implement "&" nesting to make things a bit more lean and clear, now that almost all browsers support it?
no plans for a preprocessor like sass which enables such nesting

SleePy on February 20, 2024, 10:16:16 PM said
CSS now has native support for &, no preprocessor.  But it's 2023 new, so fairly new support in browsers. https://caniuse.com/css-nesting https://developer.mozilla.org/en-US/docs/Web/CSS/Nesting_selector

live627 on February 21, 2024, 12:26:58 AM said
Cool! Maybe we can implement such a structure in a future version once those newer browsers are more widely deployed.

Arantor on February 21, 2024, 04:45:14 AM said
Adding a preprocessor isn't that hard. The trick is actually splitting up the theme sanely.

But then you get to pass variables in from admin without juggling things oddly - it becomes possible to do things like upload new fonts to the admin and have them be available in the editor and in posts.

The other benefit is that you can have multiple files and assemble them into a single source to send to the user.

Julius_2000 on February 21, 2024, 05:24:18 AM said
Quote from: SleePy on February 20, 2024, 10:16:16 PMCSS now has native support for &, no preprocessor.  But it's 2023 new, so fairly new support in browsers. https://caniuse.com/css-nesting https://developer.mozilla.org/en-US/docs/Web/CSS/Nesting_selector
Quote from: live627 on February 21, 2024, 12:26:58 AMCool! Maybe we can implement such a structure in a future version once those newer browsers are more widely deployed.
Yeah, that was my reasoning for asking. Last year FF enabled nesting natively and I started to test it and it worked great.

Bugo on February 21, 2024, 09:13:09 AM said

Diego Andrés on February 21, 2024, 09:22:24 AM said
Some of those are already in the Theme PR, definitely looking forward to other features we could utilize once the theme it's more polished.

TaGBaN on February 26, 2024, 10:33:04 PM said
Just confirming because SMF is widely used for forums where they're geared towards older generation computers (ones that for instance don't support HTTPS, or CSS/Java). Will 3.0 support that endeavor? I assume most if not all of the changes I'm concerned about are at the theme level, and not the core level.

Sesquipedalian on February 27, 2024, 12:27:37 AM said
Quote from: TaGBaN on February 26, 2024, 10:33:04 PMJust confirming because SMF is widely used for forums where they're geared towards older generation computers (ones that for instance don't support HTTPS, or CSS/Java). Will 3.0 support that endeavor? I assume most if not all of the changes I'm concerned about are at the theme level, and not the core level.

Since the release of SMF 2.1, our client-side requirements have been as follows:

Quote from: https://wiki.simplemachines.org/smf/SMF2.1:Requirements_and_recommendationsAny web browser that supports HTML5 and CSS3 and that is still supported by its vendor.

We currently have no plans to change that in SMF 3.0. If our client-side requirements do change before SMF 3.0 is released, we will make that information known.

Arantor on February 27, 2024, 03:34:47 AM said
Quote from: TaGBaN on February 26, 2024, 10:33:04 PMJust confirming because SMF is widely used for forums where they're geared towards older generation computers (ones that for instance don't support HTTPS, or CSS/Java). Will 3.0 support that endeavor? I assume most if not all of the changes I'm concerned about are at the theme level, and not the core level.

Failure to support HTTPS at this point in time is doing your users a disservice.

If running on HTTP only, you are putting your users at risk by the fact their password is transmitted unprotected. (2.0 used to try to protect users without HTTPS by way of using client side hashing, this is no longer done in 2.1 because the password hashing scheme is vastly more complex now.)

live627 on February 27, 2024, 10:41:08 PM said
Quote from: TaGBaN on February 26, 2024, 10:33:04 PMolder generation computers (ones that for instance don't support HTTPS, or CSS/Java).
Old text-based computers from 30 years ago and modern software mix just as well as oil and water; or, not at all.

jsx on February 29, 2024, 06:50:59 AM said
Very good news. So, as I understand it, SMF 2.1 will be released for e.g. SMF 2.1.10 and that's it, and then SMF 3.0 comes in? And why is SMF 3.0 development now faster than SMF 2.1? I see it on github.


Aleksi "Lex" Kilpinen on February 29, 2024, 10:40:28 AM said
As always, I don't really like to predict too far in to the future.
3.0 will be ready when it's ready and generally releasing a new major version has not meant that work on the immediately previous version just completely stops. It may, and probably will, limit how much resources is put in to it, but it most likely does not mean that 2.1 is completely abandoned.

Kindred on February 29, 2024, 05:31:16 PM said
as for being faster than 2.1 -- if you read the developers' blog posts, you'll understand.

jsx on March 01, 2024, 04:30:30 PM said
Quote from: Kindred on February 29, 2024, 05:31:16 PMas for being faster than 2.1 -- if you read the developers' blog posts, you'll understand.

Can you give me a link to this blog?

Diego Andrés on March 01, 2024, 05:11:05 PM said
Quote from: jsx on March 01, 2024, 04:30:30 PMCan you give me a link to this blog?
It's this board you're in.
https://www.simplemachines.org/community/index.php?board=129.0

2.1 had several topics over a long period of time.

spiros on March 23, 2024, 02:13:02 PM said
I remember reading ages ago that SMF 3 was supposed to use a framework like Symfony, has that idea been dropped somewhere along the road?

Sesquipedalian on March 23, 2024, 04:34:23 PM said
That not part of the plan, no.

live627 on March 24, 2024, 02:32:09 AM said
I've never even used one.

Tyrsson on April 20, 2024, 08:23:40 PM said
Quote from: live627 on March 24, 2024, 02:32:09 AMI've never even used one.
You should definitely try one some time.

DenDen60 on May 20, 2024, 09:24:58 AM said
I am a bit late, but I happy ot hear that people are working on SMF 3.0

Sesquipedalian on June 13, 2024, 11:37:30 AM said
A bug report has been split and moved to the appropriate location.

Aoife on December 11, 2024, 08:28:13 AM said
Need an alpha tester?  :laugh:

Diego Andrés on December 11, 2024, 09:34:41 AM said
Quote from: Aoife on December 11, 2024, 08:28:13 AMNeed an alpha tester?  :laugh:
Might take a little while for that.
If you don't want to wait for a package to be released/announced, you can just grab the latest files from GitHub and open any issues or pull requests  :D
Advertisement: