farmOS/CHANGELOG.md

39 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

3.1.0 2024-02-02

Added

Changed

3.0.1 2024-01-18

Added

Changed

  • Allow users with asset view access to see /asset/%id/locations.

Fixed

3.0.0 2024-01-05

This is the first "stable" release of farmOS v3. See the release notes for 3.0.0-beta1 below for more information about major changes in the 3.x branch, including breaking changes to be aware of.

Changed

Deprecated

Fixed

3.0.0-beta3 2023-11-27

Fixed

3.0.0-beta2 2023-11-03

Fixed

3.0.0-beta1 2023-11-01

This is the first release of the farmOS 3.x branch, following semantic versioning. This means changes have been made which may be incompatible with existing integrations. These "breaking" changes are described below, with links to specific issues/pull requests for more details.

farmOS v3 updates Drupal to version 10. Drupal 9 is end-of-life as of November 1st, 2023. If you have built any add-on modules for farmOS, you will need to check that they are compatible with Drupal 10, and declare support in your *.info.yml file by changing core_version_requirement from ^9 to ^9 || ^10 (to indicate that it works on both versions), or just ^10 (to indicate that it only works on Drupal 10). The PHPStan tool that is included with the farmOS 3.x-dev Docker image can be used to perform static analysis of your module code to see if there are deprecations that need to be fixed. See farmOS coding standards for more information.

If you are using PostgreSQL, Drupal 10 requires PostgreSQL version 12 or greater, with the pg_trgm extension enabled. If you have PostgreSQL 13 or greater, the pg_trgm extension will be enabled automatically during farmOS installation. PostgreSQL 12 users, or users who are updating from farmOS 2.x to 3.x, will need to enable it manually by running the following query after the farmOS database has been created, but before farmOS is installed/updated: CREATE EXTENSION pg_trgm;

The Simple OAuth module has been updated to version 6. This includes a few breaking changes which may affect API integrations. farmOS includes code to handle the transition of its own OAuth clients and scopes, but if you have made any additional clients that used special roles they will also need to be updated. The biggest changes are that the "Implicit" grant type has been removed, and the "Password Credentials" grant type has been moved to an optional "Simple OAuth Password Grant" module, which must be enabled in order to use that grant type. The default farmOS client that is included with farmOS has also been moved to a separate module that is not enabled by default. After the update to farmOS 3.x, all access tokens will be invalidated, but refresh tokens will still work to get a new access token.

farmOS 2.x included code to help migrate data from a farmOS 1.x database. This code has been removed from farmOS 3.x If you are still on farmOS 1.x, you will need to migrate to farmOS 2.x, and then update to farmOS 3.x. For more information, see Migrating from farmOS v1.

Lastly, the following deprecated functions/methods have been removed:

  • farm_log_asset_names_summary()
  • QuickFormInterface::getId()

Changed

Fixed

2.2.2 2023-10-25

Changed

Fixed

2.2.1 2023-10-09

Fixed

2.2.0 2023-10-06

This is the second minor release of the farmOS 2.x branch, following semantic versioning. This means new functionality is added in a backwards compatible manner.

farmOS 2.2.0 adds a CSV import module with importers for all asset, log, and taxonomy term types, as well as a framework for module developers to build their own custom importers for bespoke CSV templates. See https://farmOS.org/development/module/csv for more information.

A new Group membership assignment quick form is provided for easily assigning asset group membership. This works similar to the Movement quick form that was added in v2.1.0.

This release also makes a number of UI/UX improvements, including a new Setup menu item which will serve as a place for common "farm data setup" tasks.

See links below for more details.

Added

Changed

Deprecated

Fixed

2.1.3 2023-09-20

Changed

Fixed

Security

2.1.2 2023-07-18

Changed

Fixed

2.1.1 2023-05-23

Fixed

2.1.0 2023-05-19

This is the first minor release of the farmOS 2.x branch, following semantic versioning. This means new functionality is added in a backwards compatible manner.

farmOS 2.1.0 adds two quick forms that were present in farmOS 1.x. The Birth quick form makes it easy to record animal births, by creating the birth log and children animal assets all in one step. The Movement quick form (formerly the Animal Movement quick form in 1.x) makes it easy to record the movement of assets to a new location, with the option of customizing their geometry at the same time.

In editable maps, it is now possible to paste WKT into the textarea below the map and the map geometry will be automatically updated.

This release also moves the "View", "Edit", and "Revisions" links on assets, logs, plans, and taxonomy terms from primary tabs to secondary tabs, to create a better separation from the other primary tabs.

Added

Changed

Fixed

Security

2.0.4 2023-04-03

Added

Changed

Fixed

2.0.3 2023-03-15

Added

Security

2.0.2 2023-03-10

Added

Fixed

2.0.1 2023-02-08

Added

Changed

Fixed

2.0.0 2023-01-01

This is the first official "stable" release of farmOS v2! Moving forward, releases will follow standard semantic versioning.

Changed

Fixed

2.0.0-rc1 2022-12-15

PHP 8+ is now the recommended minimum version requirement for farmOS. The official farmOS Docker images run PHP 8+ as of this release. PHP 7.4's end-of-life was November 28th, 2022. farmOS still works with PHP 7.4 as of this writing, but support is not officially guaranteed moving forward. If you maintain a farmOS module, please test that it works with PHP 8. If you host farmOS, please upgrade PHP to 8+ as soon as possible.

Added

Changed

Fixed

2.0.0-beta8.1 2022-11-26

Fixed

Changed

2.0.0-beta8 2022-11-25

This release fixes an issue with the input log migration from farmOS v1. If you have migrated input logs from farmOS v1, and they referenced multiple material types, they may have been affected. An update hook is included with this release that will attempt to re-connect to the v1 database used during migration to automatically fix the issue. If the v1 database is no longer available, then you will need to fix these logs manually. For more information, see: https://github.com/farmOS/farmOS/issues/579

If you would like to skip the automatic fix, add the following line to your settings.php (this can be removed after running update.php):

$settings['farm_migrate_skip_input_log_migration_fix'] = TRUE;

Added

Changed

Fixed

2.0.0-beta7 2022-09-29

Added

Changed

Fixed

2.0.0-beta6 2022-07-30

Added

Security

2.0.0-beta5 2022-06-02

Changed

Fixed

Security

2.0.0-beta4 2022-04-13

Added

Changed

Fixed

Security

2.0.0-beta3 2022-03-03

Added

Changed

Fixed

Security

2.0.0-beta2 2022-01-19

Added

Changed

Fixed

Security

2.0.0-beta1 2022-01-01

farmOS 2.x is a complete rewrite of farmOS for Drupal 9. This brings many improvements, modernizations, and new features. The following is a brief summary of notable changes from the 1.x branch of farmOS (aka 7.x-1.x for Drupal 7).

Detailed release notes will be included in this file with each new release moving forward.

Notable changes from farmOS 1.x

  • Data model
    • Documented data model
    • Areas are now types of Assets
    • New Asset types: Land, Structure, Water, Material, Seed
    • Planting Assets are renamed to Plant
    • New Log types: Lab test (merged Soil and Water tests)
    • Inventory tracking for all Asset types
    • Improved Asset location logic, including the ability to designate Assets as "fixed" (with intrinsic geometry) and/or "locations" (allowing other Assets to be moved to them)
    • Improved Group membership logic, including member inheritence of group location
    • Support for Quantity types
    • Revisions for tracking changes to records
    • Improved "Data streams" framework for sensors and other time-series data collection
    • ID tags on all Asset types
    • Flags can be limited by record type
  • User interface/experience (UI/UX)
    • Improved location hierarchy drag-and-drop editor, including ability to edit sub-hierarchies
    • Improved KML/KMZ importer for bulk Land Asset creation
    • Geocoding of GeoJSON and GPX files (in addition to KML/KMZ) on individual Assets and Logs
    • Farm settings UI with simplified module installer
    • Gin admin theme
    • Improved mobile support
  • APIs, libraries, and developer experience (DX)
  • Hosting
    • PostgreSQL database support (alongside MySQL, MariaDB, and SQLite3)
    • Automated migration from 1.x to 2.x
    • Improved performance with lazy-loading code and caching options
    • Improved support for translation/localization (l10n)
  • Security
    • Support from the Drupal Security Team
    • Drupal 9 will be supported (with security updates) until November 2023.
    • Drupal 10 will be released mid-2022. farmOS will be prepared to update as soon as possible. This process will be trivial compared to the upgrade from Drupal 7, which required a complete refactor of the codebase. By comparison, updating from Drupal 9 to 10 will simply involve updating deprecated code.