38 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
Added
- Announce new releases on farmOS.discourse.group #780
- Add a Product asset type and Product type taxonomy #787
Changed
3.0.1 2024-01-18
Added
Changed
- Allow users with asset view access to see /asset/%id/locations.
Fixed
- Patch drupal/core to fix Issue #3414883: datetime_timestamp widget does not use default field value #771
- Fix duplicated revision tab on entities #773
- Improve access checking on location hierarchy forms.
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
- Correct alter hook to add password grant to static scopes #755
- Use strict identical operator when checking geometry format #756
3.0.0-beta3 2023-11-27
Fixed
3.0.0-beta2 2023-11-03
Fixed
- Fixed 3.0.0-betaX tagged release packaging of tarballs and Docker images.
- Update csv_serialization dependency to ^4.0 #745
- Fix warning message when rendering link to birth log #746
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
- Issue #3382616: Remove v1 migrations from farmOS 3.x
- QuickFormInterface::getId() is replaced by QuickFormInterface::getQuickId()
- Remove deprecated farm_log_asset_names_summary()
- Issue #3394069: Update quantities to use bundle permission granularity
- Issue #3357679: Allow material quantities to reference multiple material types
- Issue #3330490: Update Drupal core to 10.x in farmOS
- Issue #3256745: Move default farm OAuth2 client to a separate module
- Update Simple OAuth module to v6 #743
- Issue #3396419: Make log timestamp required
- Patch JSON:API Schema module for Issue #3397275: Use OptionsProviderInterface::getPossibleOptions() for allowed field values (anyOf / oneOf)
Fixed
2.2.2 2023-10-25
Changed
Fixed
- Fix planting quick form creating empty quantities #737
- Add post update hook to install the new quick_form entity type on existing farmOS installations #738
- Patch State Machine module to fix Issue #3396186: State constraint is not validated on new entities
2.2.1 2023-10-09
Fixed
- Fix asset_lookup and term_lookup exception messages #731
- Prevent saving invalid ID tag types #725
- Quick form actions cause RouteNotFoundException: Route farm.quick.[id] does not exist. #727
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
- farmOS v2 CSV import module #722
- Add a Group membership assignment quick form #723
- farmOS Setup Menu #706
- Issue #3354935: Configurable quick forms
- Add an Account Admin role with permission to administer users and assign managed roles #714
- Add action links to add location assets on locations page #709
Changed
- Dashboard improvements #712
- Condense metrics UI #711
- Condense views table UI #713
- Decrease horizontal and top margins on pages #719
- Misc quick form code and documentation improvements #703
Deprecated
- QuickFormInterface::getId() is replaced by QuickFormInterface::getQuickId()
- Issue #3359452: Deprecate farm_log_asset_names_summary()
- farmOS v1 migrations are deprecated and will be removed in farmOS 3.x
Fixed
- Validate quantity entities created by create_quantity #721
- Update farmOS-map to v2.2.2 #724 to fix Map Search Bar no longer generating results #197
2.1.3 2023-09-20
Changed
Fixed
- Fix composer.json version constraints for migrate_plus and migrate_tools #702
- Fix birth log quick form apostrophe becomes ' #698
- Exclude block.block.gin_content from farm_update #715
- Fix hideable boolean settings form #718
Security
- Update Drupal core to 9.5.11 for SA-CORE-2023-006
2.1.2 2023-07-18
Changed
Fixed
- Leaving empty the Parent field in the Assign Parent For This Asset form leads to unexpected error #683
- Correct namespace for MigrateToolsCommands #700
- Improve asset bundle logic in ID tag widget #699
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
- Refresh map edit layer when WKT is pasted into data input field #670
- Add QuickStringTrait::entityLabelsSummary() method for summarizing entity labels #675
- Add asset inventory views field #679
- Birth quick form (ported from farmOS 1.x) #656
- Movement quick form (ported from farmOS 1.x) #677
Changed
- Update farmOS-map to v2.2.1
- Remove field links from asset entity browser view #673
- Move default entity tabs to secondary tabs #634
Fixed
- Fix bulk move/group action log names when unsetting location/group #669
- Fix farm_log_asset_names_summary() $cutoff parameter #674
Security
- Update Drupal core to 9.5.8 for SA-CORE-2023-005
2.0.4 2023-04-03
Added
- Add "Speed" to the list of quantity measures #658
- Include Fraction bundle fields in default Views #664
- Allow map to be resized vertically #663
- Add integer, decimal, and email field support to field factory service #666
- Add a QuickFormElementsTrait with a buildInlineContainer() method #654
Changed
- Do not add birth log mother to animal assets that already have parents #655
- Simplify all map resize logic to use ResizeObserver #662
- Replace all usages of docker-compose with native docker compose #627
- Allow max_length to be overridden on string fields #666
- Standardize all taxonomy bundle labels to be singular #661
- Update Drupal core to 9.5.7 #667
Fixed
- Fix quick form toolbar menu links #657
- Respect user timezone in midnight default datetime values #665
2.0.3 2023-03-15
Added
Security
- Update Drupal core to 9.5.5 for SA-CORE-2023-002, SA-CORE-2023-003, and SA-CORE-2023-004.
2.0.2 2023-03-10
Added
Fixed
- Convert geometry values to WKT in GeofieldWidget #640
- Fix map ui being unreadable on dark mode #642
- Patch Drupal core to fix Issue #3266341: Views pagers do math on disparate data types, resulting in type errors in PHP 8
- Implement FarmBreadcrumbBuilder::applies() to only affect desired routes
- Attempt to update the map size until it is rendered #576
- Show map popup for the smallest feature at the clicked point #652
2.0.1 2023-02-08
Added
Changed
- Move land and structure type fields higher up for consistency #632
- Change asset action date pickers to use HTML5 calendar widgets #630
- Allow setting time in bulk actions and quick forms via datetime element #635
Fixed
- Add folder creation and clear caches to Configure private filesystem in the Hosting and Environment docs #628
- Issue #3336698: Add "project: farm" to farm.info.yml to fix drupal.org usage statistics
- Fix type error when un-assigning asset from group #631
- Issue #3335267 by m.stenta, farmer-ed, penyaskito: 405 Method Not Allowed when trying to patch entities as a user with non-default language
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
- 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.
Added
Changed
- 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
Fixed
- 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
Fixed
Changed
- 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: 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
- 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
Changed
- 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
Fixed
- 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
Added
- 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
Changed
- 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
Fixed
- 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
Added
- 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
Security
- 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
Changed
- Issue #3275161: Allow IMG tags in default text format
- Update toolbar logo spacing for gin beta #527
- Only show active plans by default #529
Fixed
- Do not check php-geos requirement in the update phase #526
- Patch entity_reference_revisions module to fix upstream issue #3267304.
Security
- 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
Added
- Link from entities to their referenced terms and show entity views on taxonomy terms #458.
- Encourage GEOS PHP extension use #521
Changed
- 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
Fixed
- 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
Security
- 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
Added
- Document farmOS cron set-up: https://farmos.org/hosting/install#cron
- Issue #3253433: Provide a helper function for loading flag options and allowed values
Changed
Fixed
- 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
Security
- Update Drupal core to 9.3.6 for SA-CORE-2022-003 and SA-CORE-2022-004.
2.0.0-beta2 2022-01-19
Added
- 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
Changed
- Do not include archived assets in metrics count.
- Remove "administer farm map" from Manager role permissions.
- Add allow-plugins config #467
Fixed
- 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).
Security
- 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.
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)
- 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.