3.4.0 Release Candidate Ready for testing

A Release Candidate for the upcoming phpList 3.4.0 is available for testing.

Key changes

  • jQuery updated from v.1.12.1 to v.3.1.1 – thanks to @kgarland
    jQuery release notes here

  • New default campaign template added, and a new default template selection option, accessed via the pre-existing templates page
    Known issue – ‘Template with Logo’ is currently empty and will be removed on the next RC

  • Two settings for controlling automatic updater notifications, one for all update notifications (in the config.php file) and one specific to release candidate notifications (on the settings page)

  • Bounces to system messages are now associated with the subscriber they belong to for the first time.

This Release Candidate includes the new REST API, provided by phpList 4, and disabled by default. Guidance on testing the REST API will be included in the next Release Candidate, expected early next week.

Full list of changes here

If you have experienced issues with previous installations please install this update and see if those issues are resolved.

Download the Release Candidate here if you are running a version older than 3.3.7-RC1.

Guidelines

Upgrading

Upgrade from releases older that phpList 3.3.7-RC1 following the usual upgrade process.

Use the Automatic Updater if you are running phpList 3.3.7 or later.

Use your phpList as normal, and report any new problems you find.

Reporting issues

Report any issues you find to the phpList Bugtracker, selecting “3.4.0-RC1” as the Product Version

Use the usual bug fixing process if you know how to fix it.

Happy testing and stay tuned for more :slight_smile:

2 Likes

@samtuke Is this the new “lists/base” directory? That directory appears to be just a straight copy of a github repository rather than a “released” package.
It increases the on-disk size of phpList by about 48MB with more than 12,000 files.
image

phpList on-disk is now more than 90MB with over 16,000 files.

image

Please can you rethink how the API should be packaged? This will be a nightmare for anyone using FTP, which transfers a file at a time, to install phplist.

Yes it is. What’s the difference between a repository vs a release? Are you referring to asset (js, css, image) minification? The base directory is generated from the base-distribution repository using composer to install and configure dependencies.

Yes the file size is considerable. The folder is already generated without development components included (which are significantly larger), by using a production mode flag at build time. I’m not sure how to reduce the size or file count further, and I’m not aware of tools for symfony or otherwise which do this (outside of additional asset management, which would presumably have minimal impact).

The Automatic updater should solve this problem for many users. Do you have other ideas for improving the experience for FTP users?

@samtuke I’m not familiar with how a Symfony application is structured and installed but the contents of the base directory seem to be at the wrong level. Much of that should not be within the web root at all - the various composer files, the tests subdirectory (unless the intention is for the test to be runnable after installation). But on closer looking, it appears to be the vendor subdirectory that contains the vast majority of the files.

What is the reason for including the “base” directory within “lists”? Perhaps have it as a parallel directory so that people can choose whether to install it or not. Or even as a separate download, as in my experience, the majority of installations are not going to be using the API.

A while ago I saw this article about reducing the files included within a composer package by excluding those used for development (tests, docs, etc)
https://www.reddit.com/r/PHP/comments/2jzp6k/i_dont_need_your_tests_in_my_production/

Much of the vendor directory has README files, docs etc. With a bit of work those could be excluded through .gitignore.

As an example with Common Plugin I use .gitignore so that only the source of the packages, and the licence, is included in the plugin.

1 Like

I have had a look at the Drupal structure and this isn’t too different. Maybe some of the empty directories and irrelevant files could be removed.
The large size is caused by the vendor directory, which I guess isn’t going to be reduced by much even with my previous suggestions.

Still, I would prefer to be able to download and install just phplist 3, as the API is of no current interest.

1 Like

Following the first round of testing a New Release Candidate for the upcoming phpList 3.4.0 is now available for download.

This release includes some changes on issues reported on RC1 and what’s more important a new REST API powered by phpList 4.

Key changes to look for in RC2

  • More files had the jQuery updated from v.1.12.1 to v.3.1.1
    jQuery release notes [here](https://blog.jquery.com/2018/01/20/jquery-3-3-1-fixed-dependencies-in-release-tag/)
  • Minor fixes on the new default campaign template added, and the new default template selection page, accessed via the pre-existing templates page
  • New REST API provided by phpList 4 is included but disabled by default - details on activation below

Full list of changes here

If you have experienced issues with previous installations please install this update and see if those issues are resolved.

Download the Release Candidate here if you are running a version older than 3.3.7-RC1.

Guidelines

Activating the REST API

  • System Requirements: PHP 7
    For more information on the REST API please check the GitHub Repo: https://github.com/phpList/rest-api
  • Enable the REST API:
    • Open the following file with a text editor: public_html/lists/base/config/config_modules.yml
    • Change false to true on the following line: { view_response_listener: { enabled: false } }
    • Delete this folder entirely: public_html/lists/base/cache
    • To enable REST API logging (errors, requests), edit the following file: public_html/lists/base/vendor/phplist/core/config/config_prod.yml
    • Remove the pound (#) from the beginning of every line from line 4 onwards to uncomment them
    • All these and more are added on a dedicated chapter on the manual, API and Integrations

Upgrading

Upgrade from releases older that phpList 3.3.7-RC1 following the usual upgrade process.

Use the Automatic Updater if you are running phpList 3.3.7 or latter.

Use your phpList as normal, and report any new problems you find.

Reporting issues

Report any issues you find with phpList3 to the phpList Bugtracker, selecting “3.4.0-RC2” as the Product Version.
Use the usual bug fixing process if you know how to fix it.

Report any issues you find with phpList 4 core or REST API to the corresponding repo on GitHub.
Please read the contribution guide on how to contribute and how to run the unit tests and style checks locally.

Happy testing!

1 Like

Am I doing something wrong? I do not see the directory below.

  • Open the following file with a text editor: public_html/lists/base/config/config_modules.yml

Hello, are you using 3.4.0?

This is what version I have. Thanks for the help.

Upgrade phpList

Your database version: 3.4.2

Your database is already the correct version, there is no need to upgrade