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.
2.0.0 2023-01-01
This is the first official "stable" release of farmOS v2! Moving forward, releases will follow standard semantic versioning.
- Prevent circular asset location #568
- Prevent circular group membership #562
- Issue #3328419: Uninstalling farm_ui_views module breaks site
- Remove line breaks and whitespace from log CSV quantity cells #622
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.
- Remove default_measure configuration from quantity type definitions #612
- Shorten name of tests and delivery workflow #617
- Only show the first quantity in log Views #619
- Issue #3310286: Add $timestamp parameter to service methods
- Correct hook_farm_update_exclude_config API docs #608
- Correct CSS classname for priority flag #609
- Fix user admin permissions form alter for managed roles #610
- Fix migration of lab field to taxonomy terms #611
- Fix TypeError when adding email delivery #616
- Fix enable/disable buttons on data stream notifications page #613
2.0.0-beta8.1 2022-11-26
- Issue #3308740: Update Drush to ^11
- Update Migrate Plus and Migrate Tools to ^6.
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: farmOS#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;
- Add action to bulk categorize logs #590
- Add action for bulk assigning asset parent #588
- Show "Add log" action links on /asset/[id]/logs/[type] #596
- Add "Date received" and "Date processed" fields to lab test logs
- Add a test quantity type with test method taxonomy #604
- Add tissue lab test type #605
- Update farmOS-map to v2.1.0
- Issue #3311264: Coordinate upgrade of Consumers module to get client_id base field
- Issue #3282186: Update simple_oauth to ^5.2.2
- Make translatable strings consistent between fields and actions #594
- Issue #3316925: Mark certain classes as @internal to indicate non-public APIs
- Render link to taxonomy terms in farm entity views #595
- Issue #3203129: Use GitHub Actions to build Docker Hub images
- Announce new releases on Mastodon/Twitter via farmOS-microblog #599
- Improve dependency relationships of asset/log/quantity modules #601
- Convert lab field to term reference on lab test logs #603
- Adapt csv export logic to support a type filter allowing single or multiple values. #584
- Click sort columns expand filters fieldset #586
- Issue #3189918: Broken relationship schema link in farmOS 2.x JSON:API
- Issue #3322227: Document schema title wrong for multiple resource types
- Change default client secret to be NULL to avoid issue #3322325 #597
- Fix input log quantity material migration #598
- Patch simple_oauth to fix Issue #3322325: Cannot authorize clients with empty string set as secret
2.0.0-beta7 2022-09-29
- Add button/menu item for data stream notifications collection page #555
- Issue #3306227: Dispatch events for asset presave, insert, update, delete
- Issue #3306344: Allow views exposed filters to be collapsed
- Issue #3309234: Add PHPStan to test and delivery workflow
- Issue #3309198: Allow users to override Gin theme settings
- Add owner field to assets #537
- Add log asset filter to all displays of farm_quantity view #569
- Improve API docs #557
- Issue #3305724 by pcambra, m.stenta: Allow map type and behaviors to be configurable in map blocks
- Update Drupal core to 9.4.x
- Update AssetLocationInterface::getAssetsByLocation to return asset objects keyed by ID #565
- Simplify location query processing of asset ids #564
- Update farmOS-map to v2.0.7 to improve edit control icons
- Fix for Autocomplete dropdown not showing in Chrome on Android #552
- Uncaught (in promise) TypeError: instance.editAttached is undefined #550
- Map form element #required is not enforced #560
- Incorrect translation placeholders for asset names #540
- Update farmOS-map to v2.0.5 to fix Uncaught (in promise) TypeError: o.getChangeEventType is not a function #551
- Fix [warning] Invalid argument supplied for foreach() EntityViewsDataTaxonomyFilterTrait.php:26 #575
- Set reduce_duplicates: true in Views exposed filters for multivalue fields #571
- Update core map behaviors to properly depend on core/drupalSettings #578
- Issue #3243922 by paul121, Symbioquine, m.stenta: farmOS-map chunks fail to load when map is rendered via AJAX
2.0.0-beta6 2022-07-30
- Issue #3290929: Provide a farmOS map form element
- Issue #3290993: Add "Move asset" button next to the current location field
- Generate unique form IDs for quick forms #547
- Update Drupal core to 9.3.16 for SA-CORE-2022-011.
- Update Drupal core to 9.3.19 for SA-CORE-2022-012, SA-CORE-2022-013, SA-CORE-2022-014, and SA-CORE-2022-015.
2.0.0-beta5 2022-06-02
- Issue #3275161: Allow IMG tags in default text format
- Update toolbar logo spacing for gin beta #527
- Only show active plans by default #529
- Do not check php-geos requirement in the update phase #526
- Patch entity_reference_revisions module to fix upstream issue #3267304.
- Update Drupal core to 9.3.12 for SA-CORE-2022-008 and SA-CORE-2022-009.
- Update Drupal core to 9.3.14 for SA-CORE-2022-010.
2.0.0-beta4 2022-04-13
- Link from entities to their referenced terms and show entity views on taxonomy terms #458.
- Encourage GEOS PHP extension use #521
- Update farmOS-map to v2.0.4.
- Issue #3270561: Upgrade to gin beta
- Separate Docker image build from testing jobs in run-test.yml workflow #522
- Merge test and release workflows into a unified delivery workflow #523
- Improve fields documentation #505
- Only require a name to build map popups #515
- Issue #3269543 by paul121: Automatically remove prepopulated entities from quick forms
- Do not add views handlers for unsupported field types #512
- Allow importing KML with empty geometries #510
- Update Drupal core to 9.3.8 for SA-CORE-2022-005.
- Update Drupal core to 9.3.9 for SA-CORE-2022-006.
2.0.0-beta3 2022-03-03
- Document farmOS cron set-up: https://farmos.org/hosting/install#cron
- Issue #3253433: Provide a helper function for loading flag options and allowed values
- Issue #3260645: CSV Export in Quantities not functioning
- Issue #3262752: Record type menu items lose translations
- Fix access check for "Developer information" on sensors and data streams.
- Maps broken with Uncaught SyntaxError: Unexpected token '?' #501
- Asset autocomplete breaks when asset has parentheses at the end #502
- Issue #3265207: API keys directory failure prevents farm client creation
- Issue #3264564: No space rendered in field suffix
- Error: Call to a member function get() on null in ContentEntityGeometryNormalizer.php on line 64 #493
- Update Drupal core to 9.3.6 for SA-CORE-2022-003 and SA-CORE-2022-004.
2.0.0-beta2 2022-01-19
- Add a Planting quick form module.
- Create a dedicated section in farmOS modules form for "Quick form modules".
- Provide a
quantity_measure_options()
helper function. - Localization module (
farm_l10n
) for enabling translations. - "Other" Structure type
- Open the Gin toolbar by default #470
- Enforce that the changelog is updated with every pull request #469
- Do not include archived assets in metrics count.
- Remove "administer farm map" from Manager role permissions.
- Add allow-plugins config #467
- Issue #3224663: Type-specific CSV exports do not respect exposed filters
- Improvements to sensor and data stream developer info #491
- Data is not deleted when a data stream entity is deleted #488
- Data does not immediately appear when posting to data streams #484
- Route "entity.data_stream.collection" does not exist. #486
- Fix Quick Form help text so that it works with new multi-route approach.
- Remove entity ID from entity autocomplete form elements.
- Data stream and notification permissions are not granted to managed roles. #479
- Sort locations by name, using natural sort algorithm.
- Quantity module breaks config_translation #480
- Log categories are not migrated to v2 #481
- Make local action buttons translatable.
- Fix permission for map settings form (/farm/settings/map).
- Patch
jsonapi_schema
module to fix Issue #3256795: Float fields have a null schema - Allow all three database tests to run even when one fails (workaround for Issue #3241653).
- Run SQLite3 tests in sequence instead of in parallel (another workaround for Issue #3241653).
- Update Drupal core to 9.3.3 for SA-CORE-2022-001
- Update Simple OAuth module to 5.0.6 for SA-CONTRIB-2022-002
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.
- 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)
- Documented API changes
- Modernized RESTful API built on JSON:API
- JSON Schema for all API resources
- 2.x API support in farmOS.js and farmOS.py libraries
- Updated farmOS-map library based on OpenLayers
- Improved APIs for module builders
- Object-oriented architecture based on Symfony
- Dependency management via Composer
- Automated testing via PHPUnit and GitHub Actions
- Coding standards enforcement via CodeSniffer
- Feature branch previews via Tugboat
- 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.