I hadn't considered all those points when going for the news module. At the time, Madfish was still actively developing his modules, and his modules were based on the last version of IPF, so it seemed like a given to integrate modules that were built on the most recent best practices.
I think it's OK that we have more than one option for a type of module, that's been part of our heritage and what fuels the OSS community. There have always been multiple options for various types of content - news, blogs, galleries, downloads, links, calendars. The same is true in other environments, too - WordPress, Drupal, XOOPS.
The choices are also available in other markets - Microsoft Office (Word, Excel, PowerPoint), or Google Apps (Docs, Sheets, Slides)? Or, LibreOffice? Zoom, Teams, or Google Meet?
For me, it is the least amount of resistance to move forward. News from InstantZero is much more mature, robust, and feature rich than any other news module available. It does things - and I use them - that no other similar module does. The news module we use here is based on IPF and needs another module to create and manage categories (a good thing, actually, from a site management perspective). So does imBlogging - but it uses a different category/tag module. SmartSection had even more features - allowing a preview of an article, but viewing the entire article required another level of authentication, if you chose to do that. I'm not going to wait until one module can do it all. I don't think one module should do it all.
We can't create and support all the variations webmasters will demand, nor should we have to. That is why the marketplace exists.
The key at this point - what do we do with the core, and how does that affect the marketplace? Once I know what to aim for in module compatibility, I know what to do with my sites and the modules they use.
Totally agree. I've been going through some problematic libraries for PHP 8.0 and I'm updating them one by one. But I don't know if @skenow wants to wait for all those upgrades before launching the new 2.0 release into the wild.
I still need to clean up PR #1397 before it can be merged. That's going to be done right after.
I think right now is not a good time to merge these two modules. They are written in different code styles - one is IPF another not. Right now these modules are needed just for testing. Faster icms release is better.
I have sites where I use both, and could probably merge them into a single module with some thought to the navigation changes. One for reporting events and activities, the other more for conversation, ideas, and opinions.
The news module I've been using is the one from InstantZero and it has the ability to manage submit, approve, and viewing based on groups and topic (category). It also has the ability to expire articles and move them to the 'archive', which I like. That's a lot to try and build into another module, along with bringing it up to the latest ImpressCMS, PHP, and MySQL versions. I'm open to it, though.
Yes, I did - https://github.com/ImpressCMS/impresscms/issues/1368
@skenow did you create a ticket for this search optimisation on github?
I think imBlogging and news more or less have the same use case? Perhaps we should prioritise one of the two. We use news on the impresscms site for example, but it should be possible to do a conversion from one to the other.
I also know which modules I will prioritize -
I do need to figure out what to do with forms (Formulize), and decide on which news module. A downloads module, a links module, and iForum are also on my list.
Loosely based on what I use normally on my sites:
Just choice 10 modules for now.
All these stats are cool but not possible right now.
To be honest, the feature was a bit wonky, so it would need a bit more work to bring back 😁
Might be a good subject for a newsletter.
It would have been nice if that feature stayed active. I know we used a different server instance for gathering the data.
We could put up a survey and capture information via Google Forms. Download information is always another option to get a sense of what people are trying.
How can we capture our top must have modules?
We had something in that direction several years back, with the heartbeat functionality each time impresscms was installed. Short term, we could look into a similar system that sends the modules and the versions once every month with a autotask. Setting up the receiving end will be the hardest (Google Docs perhaps?)
On the longer term, we can look at the installation statistics from packagist when our modules are installed using composer.
I agree - progress in the core cannot and should not be held back by the lack of module development. And the core should not get so far ahead that no one can follow.
What we do not have is a good sense of what modules are being used, other than what we are using ourselves. Some have alternatives that could be used in place of the module selected. In those situations, when the alternative is compliant with the core and the underlying architecture, we proceed. In cases where there are limited options and the module is highly used, we need to work together to improve the core and the module.
What I see as the outcome of this next release is a way to gauge what modules are active and will be updated. We will be better off as a community when we all have a path forward together.
How can we capture our top must have modules?
I made a new milestone for this release called new 2.0
This will make it easier to follow up what should be finalised before releasing the final release.
You're correct there @Mekdrop. And that is the difficulty : we have no idea what situation most of our users are in. I think Skenow is one of the user with most active sites a the moment, and I know of a few users in Germany that are awaiting newer PHP support because of the shutdown of PHP 7.4 by hosting companies there (they try to be up-to-date).
But other than that, it's a big unknown.
I'm trying to get htmlpurifier 4.15.0 standalone updated but Git is giving me some dificulties with unchanged files that it keeps marking as changed. And I'm still waiting for the PRs for 1.5.x to be approved in order to be able to continue.
I think the answer to the question about PHP compatibility and icms is same as 'what modules should run on newer PHP?'. Because there is no quick way to fix everything. So at least for now ICMS should run at least something that is required by most users.
This all depends on requirements and how far we want to go here. Getting this release out sooner, while it is not yet fully 8.0 compliant could be an option. However once that branch is out, I don't intend to focus much more time on it, so further releases to polish up this branch would be mostly up to you then. This renumbering has had too much of an impact already on the development of the next version (former 2.0 branch).
If I spend time on modules, it will first of all be to rewrite them to be compliant with the next version. I might do bugfixes for the older version, but there are so many modules that need attention that I cannot commit to php version upgrades or feature improvements.
I would expect you could say that 2.0 will only upgrade from 1.4.4, partly because of the difficulty to get everything to run on such a wide range of PHP versions. But I'm not in that situation that I need to upgrade from sites older than 1.4.2.
According to PHP Code Sniffer and the PHP Compatibility rule, our current 1.5.x branch will have errors below PHP5.6. The changes to make ImpressCMS run on PHP7+ haven't raised the minimum required version as of this point.
There still are some things that need to be addressed to eliminate errors when running under PHP7.0 - PHP7.4. Some are external libraries, as @fiammybe noted, and some are in code that won't get used (mysql extenstions aren't used when PDO is the db connection type, but the code is still there) or get used often (mostly in external libraries).
We do need to become PHP8+ compliant ASAP. Will having another release come sooner get us more testing with the various environments everyone is using? Will it help get other modules updated to be compliant with the newer versions of PHP faster?
Once we have a proper scope, we can better estimate the timeline to deliver.