Compare commits

...

19 Commits

Author SHA1 Message Date
Michael Stenta 68ae993c41 Add min/max options to integer fields in farm_field.factory #768 2024-01-12 05:51:45 -05:00
Michael Stenta 5f09c940c1 Use paratest to speedup tests in Github actions workflow #762 2024-01-11 13:02:52 -05:00
wotnak 8c1fd8fe11 Install pg_trgm PostgreSQL extension before starting tests to avoid race conditions when trying to automatically install it in concurrently run tests 2024-01-11 13:02:27 -05:00
wotnak 8ce641adc5 Revert "Use phpunit instead of paratest."
This reverts commit 6a9c872e9b.
2024-01-11 13:00:57 -05:00
Michael Stenta df0c25f047 Add step to configurable quick form documentation that describes setting #default_value. 2024-01-10 08:18:02 -05:00
Michael Stenta 1d6804d7b4 Remove accidentally merged placeholder text from docs/hosting/migration.md. 2024-01-10 08:17:25 -05:00
Michael Stenta f9225c05f4 farmOS 3.0.0 2024-01-05 11:45:48 -05:00
Michael Stenta 6d68c387fd Update entity_browser module to ^2.10 and remove patch merged upstream. 2024-01-05 11:40:51 -05:00
Michael Stenta 75f0a2f4b6 Update to Drupal 10.2 #765 2024-01-05 11:40:23 -05:00
Michael Stenta 3c77ef281d Update Drupal core to 10.2.1. 2024-01-05 11:40:02 -05:00
Paul Weidner ed0c286247 Remove time format from description
See https://www.drupal.org/node/3385058

Fix: Call to deprecated method formatExample() of class Drupal\Core\Datetime\Element\Datetime: in drupal:10.2.0 and is removed from drupal:11.0.0. There is no replacement.
2024-01-05 10:23:23 -05:00
Paul Weidner f3422c54e0 Update Drupal core to 10.2.0 2024-01-05 10:23:23 -05:00
Michael Stenta 5617e81a0d Issue #3410701: Deprecate d7_asset plugin 2024-01-04 16:45:35 -05:00
Michael Stenta 215b67b58a Composer documentation fixes #761 2024-01-04 06:07:57 -05:00
Michael Stenta 61845e53cb Composer create-project fails with "Could not find package farmos/project with stability stable." Fixes farmOS/composer-project#10
See https://github.com/farmOS/composer-project/issues/10
2023-12-27 12:35:00 -05:00
Michael Stenta 9f44c64e99 Fix typo in docs/hosting/composer.md. 2023-12-27 12:34:26 -05:00
wotnak a2bd7136cf Configure www service to wait for db service to be healthy instead of only started #758 2023-12-22 06:17:47 -05:00
wotnak 1773a2eae5 Add healthcheck to MariaDB container to ensure it is ready to accept external connections before reporting as ready #758 2023-12-22 06:17:37 -05:00
Paul Weidner 0e211cb33c Increase weight of Asset and Log tasks on canonical user route #757
The current weight of these menu items is 0 and makes it challenging to
place other menu tasks between Edit and Asset. I would like to add a
Notifications task item and keep it closer to the edit task.
2023-12-09 07:08:03 -08:00
14 changed files with 68 additions and 35 deletions

View File

@ -92,10 +92,13 @@ jobs:
include:
- dbms: pgsql
DB_URL: pgsql://farm:farm@db/farm
processes: auto
- dbms: mariadb
DB_URL: mysql://farm:farm@db/farm
processes: auto
- dbms: sqlite
DB_URL: sqlite://localhost/sites/default/files/db.sqlite
processes: 1
steps:
- name: Print test matrix variables
run: echo "matrix.dbms=${{ matrix.dbms }}, matrix.DB_URL=${{ matrix.DB_URL }}"
@ -122,8 +125,12 @@ jobs:
# The www-container-fs-ready file is only created once we expect the containers to be online
# so waiting for that lets us know it is safe to start the tests
run: until [ -f ./www/www-container-fs-ready ]; do sleep 0.1; done
- name: Install pg_trgm PostgreSQL extension
# This avoids race conditions when trying to automatically install it in concurrently run tests.
if: matrix.dbms == 'pgsql'
run: docker compose exec -T db psql -U farm -c 'CREATE EXTENSION IF NOT EXISTS pg_trgm;'
- name: Run PHPUnit tests
run: docker compose exec -u www-data -T www phpunit --verbose /opt/drupal/web/profiles/farm
run: docker compose exec -u www-data -T www paratest -vv --processes=${{ matrix.processes }} /opt/drupal/web/profiles/farm
- name: Test Drush site install with all modules
run: docker compose exec -u www-data -T www drush site-install --db-url=${{ matrix.DB_URL }} farm farm.modules='all'
release:

View File

@ -7,6 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
### Added
- [Add min/max options to integer fields in farm_field.factory #768](https://github.com/farmOS/farmOS/pull/768)
## [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
- [Increase weight of Asset and Log tasks on canonical user route #757](https://github.com/farmOS/farmOS/pull/757)
- [Update Drupal core to 10.2](https://github.com/farmOS/farmOS/pull/765)
### Deprecated
- [Issue #3410701: Deprecate d7_asset plugin](https://www.drupal.org/project/farm/issues/3410701)
### Fixed
- [Correct alter hook to add password grant to static scopes #755](https://github.com/farmOS/farmOS/pull/755)
@ -647,7 +666,8 @@ moving forward.
Drupal 7, which required a complete refactor of the codebase. By comparison,
updating from Drupal 9 to 10 will simply involve updating deprecated code.
[Unreleased]: https://github.com/farmOS/farmOS/compare/3.0.0-beta3...HEAD
[Unreleased]: https://github.com/farmOS/farmOS/compare/3.0.0...HEAD
[3.0.0]: https://github.com/farmOS/farmOS/releases/tag/3.0.0
[3.0.0-beta3]: https://github.com/farmOS/farmOS/releases/tag/3.0.0-beta3
[3.0.0-beta2]: https://github.com/farmOS/farmOS/releases/tag/3.0.0-beta2
[3.0.0-beta1]: https://github.com/farmOS/farmOS/releases/tag/3.0.0-beta1

View File

@ -18,13 +18,13 @@
"require": {
"cweagans/composer-patches": "^1.6",
"drupal/admin_toolbar": "^3.3",
"drupal/core": "10.1.6",
"drupal/core": "10.2.1",
"drupal/config_update": "^2.0@alpha",
"drupal/consumers": "^1.15",
"drupal/csv_serialization": "^4.0",
"drupal/date_popup": "^1.3",
"drupal/entity": "1.4",
"drupal/entity_browser": "2.9",
"drupal/entity_browser": "^2.10",
"drupal/entity_reference_integrity": "^1.1",
"drupal/entity_reference_revisions": "1.10",
"drupal/entity_reference_validators": "^1.0@beta",
@ -48,7 +48,7 @@
"drupal/subrequests": "^3.0.6",
"drupal/token": "^1.11",
"drupal/views_geojson": "^1.2",
"drush/drush": "^11.3",
"drush/drush": "^12.4.3",
"ext-simplexml": "*",
"itamair/geophp": "1.3"
},
@ -59,17 +59,13 @@
"patches": {
"drupal/core": {
"Issue #2429699: Add Views EntityReference filter to be available for all entity reference fields.": "https://www.drupal.org/files/issues/2021-12-02/2429699-453-9.3.x.patch",
"Issue #2339235: Remove taxonomy hard dependency on node module": "https://www.drupal.org/files/issues/2023-10-05/2339235-10.1.x-80.patch",
"Issue #2339235: Remove taxonomy hard dependency on node module": "https://www.drupal.org/files/issues/2024-01-03/2339235-10.2.x-82.patch",
"Issue #1874838: Allow exposed blocks to use 'Link display' settings": "https://www.drupal.org/files/issues/2021-11-11/1874838-26.patch",
"Issue #2909128: Autocomplete not working on Chrome Android": "https://www.drupal.org/files/issues/2023-07-11/2909128-92.patch",
"Issue #3349973: Automatically install pg_trgm extension on PostgreSQL 13+": "https://www.drupal.org/files/issues/2023-05-08/3349973-26.patch"
"Issue #2909128: Autocomplete not working on Chrome Android": "https://www.drupal.org/files/issues/2023-07-11/2909128-92.patch"
},
"drupal/entity": {
"Issue #3206703: Provide reverse relationships for bundle plugin entity_reference fields.": "https://www.drupal.org/files/issues/2022-05-11/3206703-10.patch"
},
"drupal/entity_browser": {
"Issue #3350169: Fix PHP 8.2 deprecation issue with WidgetSelectorBase-class": "https://www.drupal.org/files/issues/2023-06-15/3350169-8_0.patch"
},
"drupal/entity_reference_revisions": {
"Issue #3267304: Infer target_revision_id to be Latest Revision when Only a target_id is Provided": "https://www.drupal.org/files/issues/2022-05-13/3267304-9.patch"
},

View File

@ -1,12 +1,13 @@
{
"require": {
"cweagans/composer-patches": "^1.7",
"drupal/core-composer-scaffold": "10.1.6"
"drupal/core-composer-scaffold": "10.2.1"
},
"require-dev": {
"behat/mink": "^1.10",
"behat/mink-browserkit-driver": "^2.1",
"behat/mink-selenium2-driver": "^1.6",
"brianium/paratest": "^6",
"drupal/coder": "^8.3",
"mglaman/phpstan-drupal": "^1.1",
"mikey179/vfsstream": "^1.6",

View File

@ -12,7 +12,15 @@ services:
MYSQL_DATABASE: farm
MYSQL_USER: farm
MYSQL_PASSWORD: farm
healthcheck:
test: [ "CMD", "healthcheck.sh", "--connect", "--innodb_initialized" ]
start_period: 1m
start_interval: 10s
interval: 1m
timeout: 5s
retries: 3
www:
depends_on:
- db
db:
condition: service_healthy

View File

@ -244,9 +244,11 @@ To make an existing quick form configurable:
assigns configuration to `$this->configuration`.
6. Add a `config/schema/[mymodule].schema.yml` file that describes the
[configuration schema/metatdata](https://www.drupal.org/docs/drupal-apis/configuration-api/configuration-schemametadata).
7. Add `'#default_value' => $this->configuration['...']` lines to the form
elements that are configurable in the `buildForm()` method.
The following is the same "Harvest" example as above, with the new interface
and methods, followed by the schema file that describes the settings.
The following is the same "Harvest" example as above, with the changes described
above, followed by the schema file that describes the settings.
```php
<?php

View File

@ -142,6 +142,8 @@ Both methods expect an array of field definition options. These include:
- `integer` - Integer number. Additional options:
- `size` (optional) - The integer database column size (`tiny`,
`small`, `medium`, `normal`, or `big`). Defaults to `normal`.
- `min` (optional) - The minimum value.
- `max` (optional) - The maximum value.
- `list_string` - Select list with allowed values. Additional options:
- `allowed_values` - An associative array of allowed values.
- `allowed_values_function` - The name of a function that returns an

View File

@ -70,7 +70,7 @@ next section.
To start your own project based on the farmOS project template, open a new
directory and run the following command:
composer create-project farmos/project
composer create-project farmos/project:3.x-dev
This will create a `composer.json` file in your directory, copied directly from
the [farmOS project template](https://packagist.org/packages/farmos/project).
@ -81,7 +81,7 @@ code repository with [Git](https://git-scm.com/):
```shell
git init
git add composer.json
git commit -m 'Intitial commit of my farmOS project.'
git commit -m 'Initial commit of my farmOS project.'
```
It is helpful to understand that your project is *not* farmOS, but rather

View File

@ -10,8 +10,6 @@ farmOS 2.x includes a **farmOS Migrate** module that leverage's Drupal core's
migrations for each asset type, log type, etc. These migrations are defined in
YML configuration files included with the farmOS Migrate module.
... migrate to 2.x then upgrade to 3.x
## Important considerations
* Do not migrate into a farmOS 2.x instance that already has records. This is

View File

@ -12,6 +12,11 @@ use Drupal\migrate_drupal\Plugin\migrate\source\d7\FieldableEntity;
* id = "d7_asset",
* source_module = "farm_asset"
* )
*
* @deprecated in farm:3.0.0 and is removed from farm:4.0.0. Support for farmOS
* v1 migrations was dropped in farmOS 3.x.
* @see https://www.drupal.org/project/farm/issues/3410701
* @see https://www.drupal.org/project/farm/issues/3382616
*/
class Asset extends FieldableEntity {

View File

@ -781,6 +781,14 @@ class FarmFieldFactory implements FarmFieldFactoryInterface {
$field->setSetting('size', $options['size']);
}
// Set the min/max constraints, if specified.
if (isset($options['min'])) {
$field->setSetting('min', $options['min']);
}
if (isset($options['max'])) {
$field->setSetting('max', $options['max']);
}
// Build form and view display settings.
$field->setDisplayOptions('form', [
'type' => 'number',

View File

@ -3,10 +3,7 @@
namespace Drupal\farm_field\Plugin\Field\FieldWidget;
use Drupal\Core\Datetime\DrupalDateTime;
use Drupal\Core\Datetime\Element\Datetime;
use Drupal\Core\Datetime\Entity\DateFormat;
use Drupal\Core\Datetime\Plugin\Field\FieldWidget\TimestampDatetimeWidget;
use Drupal\Core\Field\FieldItemListInterface;
use Drupal\Core\Form\FormStateInterface;
/**
@ -26,17 +23,6 @@ use Drupal\Core\Form\FormStateInterface;
*/
class TimestampDatetimeOptionalWidget extends TimestampDatetimeWidget {
/**
* {@inheritdoc}
*/
public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
$element = parent::formElement($items, $delta, $element, $form, $form_state);
$date_format = DateFormat::load('html_date')->getPattern();
$time_format = DateFormat::load('html_time')->getPattern();
$element['value']['#description'] = $this->t('Format: %format.', ['%format' => Datetime::formatExample($date_format . ' ' . $time_format)]);
return $element;
}
/**
* {@inheritdoc}
*/

View File

@ -1786,7 +1786,7 @@ display:
type: tab
title: Assets
description: ''
weight: 0
weight: 40
expanded: false
menu_name: account
parent: ''

View File

@ -2790,7 +2790,7 @@ display:
type: tab
title: Logs
description: ''
weight: 0
weight: 50
expanded: false
menu_name: main
parent: ''