Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
Big changes: New Feeds Log module, Drupal 10 support
New Feeds Log module!
A module is added to Feeds with which you can track your imports. It lets you see in detail which items were created or updated and which one failed.
See the video for a quick introduction: https://youtu.be/P3ipggf5Irs
PHP 8.1 support; Book target; Catch EmptyFeedException on cron imports
This release adds support for PHP 8.1. It also adds a new target for importing books for the core book module.
An important bug was fixed that would cause filling up the log: an EmptyFeedException was not being catched on cron imports. This could happen when using the Download (http) fetcher. The more serious part of the bug was that the import task was being kept on the queue, possibly causing concurrent imports to happen for the same feed. Concurrent imports are especially bad when using the feature to delete or unpublish items that are no longer provided by the source.
Custom source UI added; new plugin type "FeedsCustomSource" added; new permissions added for "own" feeds.
In this release, a UI for managing custom sources is added. You can now edit and delete custom sources that you typically add when using the CSV parser or when using one of the parser that are provided by Feeds extensible parsers. For that module a new release has also been made in order to make use of this new feature.
This release adds compatibility with Drupal 9.3, replacing Zend components with Laminas components. This release is still compatible with Drupal 8, though the version requirement has been raised to Drupal 8.9 (the previous release required at least Drupal 8.8).
There are also a few new features in this release, among them are a feature to only updating content and a feature to map a source to a temporary target.
Drush support; targets for entity ID, user role, password
Feeds now support several drush commands, including "feeds:import", "feeds:list-feeds" and "feeds:unlock".
A mapping target to the entity's ID was added, which you can use to update content by. You cannot change the ID for existing entities.
A mapping target to user role is added. Roles not specified by the source are not revoked by default. For security reasons, an option exist to only allow some roles to be imported.
This releases contains a fix for a bug, introduced in 8.x-3.0-alpha7, that could result into imported taxonomy terms not being editable in the UI. Specifically it's about terms imported in the default language, via a taxonomy reference field and using the "autocreate" option.
There are no big changes in this release, but when you update from 8.x-3.0-alpha6 or earlier, be sure to read the release notes from 8.x-3.0-alpha7, because that release introduced some BC breaks.
This release contains some small bug fixes and one new feature: for timestamp targets (like 'Authored on' and 'created') date strings are now accepted as source (previously it only accepted integers).
In this release lots of bugs have been fixed, including ones that did cause fatal errors!
One of the bugs that were fixed was that deleting a field used in mapping caused the mapping page and the import to crash. This is fixed by declaring dependencies on fields that are used in mapping. Be sure to run database updates so all your feed types get these dependencies calculated.
There are also two big new features in this release:
A generic content entity processor, allowing you to import content for a whole lot more content entity types!
FeedsSource plugins, with which you can add in additional sources, above the "main" source.
The first alpha release for Feeds 8.x-3.x is finally here!
This release is usable for basic use cases. Importing from CSV, RSS feeds, OPML and Sitemap XML is possible. Supported target entity types are node, user and taxonomy term.
In this release a big issue is fixed: downloaded content is no longer cached in the database! An other improvement is that you can now see on the import page when Feeds will run the next import. For this release there is also a small chance of a backwards compatibility break if you use a custom fetcher. Read on for more details.
In this release Drush support has been added to Feeds! You can now use the command drush feeds-import to perform an import. There are also commands for deleting all imported items (drush feeds-clear) and for operations on an importer (enable, disable, revert, delete).
Also new in this release:
Some issues with importing dates have been fixed, most notability timezone support.
An option is added to specify if files to import should overwrite existing or not (the default is renaming the file to import).
If you are using the Administration menu module, you can now go straight to the import page for a particular importer via Content > Import > [importer name], rather than having to type "import" manually in the URL bar.
This is a security release. People running 7.x-2.0-alpha8 or below should update. This release only contains security fixes, no additional bug fixes or features.
Changes since 7.x-2.0-alpha8:
#2495145 by twistor, cashwilliams, greggles, klausi: Possible XSS in PuSHSubscriber.inc
#2502419 by klausi: Log messages XSS attack vector
#1848498 by twistor: Respect allowed file extensions in file mapper
This release is usable for basic use cases. Importing from CSV, RSS feeds, OPML and Sitemap XML is possible. Supported target entity types are node, user and taxonomy term.
Not all features from the D7 version of Feeds have been ported yet. You may also run into some bugs.
#953538 yhahn: Remove BOM from UTF-8 files. Adds sanitizeFile() and sanitizeRaw() methods to FeedsFetcherResult. Extending classes that override either the getRaw() or getFilePath() methods should call these sanitization methods to ensure that the returned output / file has been cleaned for parsing.
Expand batch support to fetchers and parsers. Drastically lowers memory consumption for large CSV imports.
Support batching through directories on disk.
All tests passing.
This release is the first usable upgrade from Drupal 6. It also brings full batch support for fetching and parsing with a series of API changes. This is the reason why we branched to 2.x.
Maintainers of plugins
If you are a maintainer of a third party plugin for Feeds, make sure to carefully read these release notes and upgrade your module accordingly. Expect further changes to the API until we reach beta phase.
Up to version 1.0 beta4, the included Feeds Defaults module captured a couple of useful default importer configurations that could be enabled as needed. This release replaces this module with three "Feature modules" capturing equivalent configurations. When upgrading from beta 4 or lower, these modules will be enabled by default. Read more about these Feature modules in the README.txt file.
Note for maintainers of Feeds plugins:
Function signatures for FeedsProcessor::map(), FeedsProcessor::existingItemId(), FeedsProcessor::uniqueTargets(), FeedsParser::getSourceElement() have changed.
Batching API for FeedsProcessors has changed, this affects all processors that support batching.
If a parser uses free textfield entries for defining source elements it must override getMappingSources() and return FALSE.
Changes since 1.0 beta 4 release
#849840 adityakg, rbayliss, alex_b: Submit full mapping on every submission.
#849834 rbayliss, alex_b: Generalize feeds_config_form() to feeds_form().
#856408 c.ex: Pass all $targets for hook_feeds_node_processor_targets_alter() by reference.
#853194 andrewlevine, alex_b: Mapping: don't reset all targets.
#853144 alex_b: Consistent use of "replace" vs "update".
#850998 alex_b: Clean up file upload form. Note: If you supply file paths directly in the textfield rather than uploading them through the UI, you will have to adjust your importer's File Fetcher settings.
#850652 alex_b: Make ParserCSV (instead of FeedsCSVParser) populate column names.
- #753426 Monkey Master, andrewlevine, alex_b: Partial update of nodes.
- #840626 andrewlevine, alex_b: Support using same mapping target multiple times.
- #624464 lyricnz, alex_b: Fix to "support tabs as delimiters".
- #840350 lyricnz: (Optionally) Transliterate enclosure filenames to provide protection from awkward names.
- #842040 dixon_: Accept all responses from the 2xx status code series.
- #836982 Steven Merrill: Fix Feeds.module tests do not work when run from the command line.