We are on the cusp of a new world: Drupal 8
With it will come many good things. But it will take time, and we need to wait for a lot of the dependency modules to be ported before we can really start thinking about FarmOS on D8.
This meta issue will be used to discuss and document the plans for Drupal 8, as well as link to relevant D8-porting issue for other projects.
Contrib Modules
Colorbox - STABLE RELEASE
Diff - #2267033: [meta] Port to Drupal 8 - RELEASE CANDIDATE
Entity Reference View Widget - #2626834: [entityreference_view_widget] Entity Reference View Widget (DEPRECATED in favor of: Entity Browser)
EXIF Orientation - #2864247: Drupal 8 port - STABLE RELEASE
Features - STABLE RELEASE
Feeds - #1960800: [meta] Feeds 8.x roadmap - ALPHA RELEASE (also investigate core Migrate API as alternative)
Feeds Tamper - #2493059: Plan to port to D8? - BETA RELEASE (only necessary if we use Feeds)
Field Collection - #1443960: Field Collection for Drupal 8 DEPRECATED in favor of Paragraphs (we should remove this dependency during the upgrade process, see: #2991374: Phase out Field Collections)
Field Group - #2578743: [field_group] Field Group - RELEASE CANDIDATE
Fraction - DONE
Geocoder - #2146393: Drupal 8 Upgrade - STABLE RELEASE
Geofield - #1957760: Geofield D8 port - STABLE RELEASE
Libraries - #1779714: Port to Drupal 8 - ALPHA RELEASE (maybe no longer needed by farmOS dependencies)
Log - #2361713: [meta] Port Log to Drupal 8
Pathauto - #2168193: Pathauto for Drupal 8 - STABLE RELEASE
Token - #1962358: Token Drupal 8 port - STABLE RELEASE
Views Data Export - #2421061: Porting module to Drupal 8 - BETA RELEASE (also potential alternative: CSV Serialization)
Views GeoJSON - #2527636: Port to Drupal 8 - DEV VERSION AVAILABLE
Views Tree - #2575521: Drupal 8 port of Views Tree - ALPHA RELEASE
Deprecated (no longer needed in Drupal 8)
Ctools - IN D8 CORE (check to see if anything else we're doing needs it)
Date - IN D8 CORE (confirm that Views integration and Select widget are in core as well)
Entity - IN D8 CORE
Entity Reference - IN D8 CORE
GeoPHP - #2362577: Drupal 8 status? - INCLUDED VIA COMPOSER
Job Scheduler - #2615256: Drupal 8 port - NOT REQUIRED BY FEEDS 8.x-3.x
jQuery Update - UNNECESSARY (confirm that the jQuery included in D8 core is all we need)
Module Filter - IN D8 CORE
Multiupload Filefield Widget - IN D8 CORE
Multiupload Imagefield Widget - IN D8 CORE
Navbar - IN D8 CORE
Openlayers - #2361715: Port to Drupal 9/10/11 - DEPRECATED in favor of farmOS-map
Openlayers Geolocate Button - #2575517: Drupal 8 Port - DEPRECATED in favor of farmOS-map
Pathauto Entity - #2496701: Drupal 8 - INCLUDED IN PATHAUTO
Registry Autoload - IN D8 CORE
RESTful Web Services - IN D8 CORE (confirm that this works the same)
RESTful Web Services Field Collection - Move off of field collections in farmOS 8.x-2.x
RESTful web services support for files and images - IN D8 CORE (confirm that this works the same)
Service Container - IN D8 CORE
Strongarm - UNNECESSARY (CMI!)
Views - IN D8 CORE
Views Bulk Operations - IN D8 CORE? (need to confirm all necessary features are present. here is the VBO module's D8 initiative: #1823572: Port Views Bulk Operations to Drupal 8)
Themes
Bootstrap - STABLE RELEASE
Comments
Comment #1
m.stentaField Collection can be removed if we go through with this: #2361831: Remove dependency on Field Collection
Update: For now I decided to keep Field Collection.
Comment #2
m.stentaLess critical to the FarmOS project in general, but very important to me with Farmier... Aegir does not yet support installing/managing Drupal 8 sites. Related issue: #1194602: [meta] Support the hosting of Drupal 8 sites
Comment #3
m.stentaAdded: Libraries, GeoPHP, Proj4JS
Comment #4
m.stentaRemove modules that are no longer dependencies: Proj4JS, Commerce, Commerce Pickup, Text List Formatter
Comment #5
m.stentaMade an exhaustive list of all the contrib modules, farm modules, and themes used by farmOS. I will add more information to each...
Comment #6
m.stentaAdded info and links to each project outlining its D8 status.
Comment #7
m.stentaI created an initial commit on a new 8.x-2.x branch. It is basically just a clean slate for us to build upon. No contrib or farm modules/themes are included yet.
http://cgit.drupalcode.org/farm/commit/?id=fdacd8e
Comment #8
m.stentaAdded EXIF Orientation module (#2575639: Use the EXIF Orientation module to automatically rotate images.).
Comment #9
m.stentaComment #10
m.stentaComment #11
m.stentaRole Export has been removed from farmOS.
Comment #12
m.stentaComment #13
m.stentaComment #14
cosmicdreams CreditAttribution: cosmicdreams as a volunteer commentedSeparated the modules that are deprecated thanks to the functionality provided by Drupal 8 core from the list of contributed modules that we need to wait for.
It would also be good to discuss why we need each of the contributed modules. For example: do we need Logintobaggan for a specific reason? Or just to have more control over the login page?
Also, given the Entity API's breath and depth in Drupal 8, I don't expect that a separate module for it will be required. Pathauto will likely consume it's functionality just by properly integrating with Drupal 8.
Comment #15
m.stenta@cosmicdreams: thanks for the reorganization! Makes good sense, and it's easier to plan.
Re: Logintoboggan and other modules - yea we can definitely consider dropping some of the lesser dependencies. Logintoboggan is a good candidate. The primary uses for it are: a) ability to log in via email address, b) display login form on "Access Denied" pages. Neither of which are strictly necessary for farmOS, so I could be convinced to drop them. Maybe there are new ways of achieving the same things in D8 too...
Other contrib modules that could potentially be axed are:
Backup & Migrate - Definitely nice to have, but it's not the only way to backup, so maybe we should leave that decision to the end-users.
Colorbox - This is how we're handling the display of images in farmOS, so we would need a replacement.
Devel - Not enabled by default, only included for convenience.
Diff - Same as devel, not strictly necessary, but makes development and working with Features easier. But maybe we won't use Features in D8 anyway because everything can be done in YAML files.
Filefield Paths - Nice for file organization, but maybe the same can be done with core Field properties. Need to explore in more detail.
Panels - The only thing we're using Panels for right now is the Farm Dashboard (in the farm_admin) module. We certainly don't need to use Panels for that, and it could be converted to a simple theme function or something instead.
I think you're right: we should document what ALL the dependencies are used for. Ideally this would be in some form of documentation, not just the issue queues... although we could start here.
Comment #16
m.stentaContinuing the last comment, here's an outline of each dependency's usage in farmOS: (not including the ones I just mentioned - these ones are more critical in my opinion)
Comment #17
m.stentaJust noticed that Pathauto Entity was in the Deprecated group, which is a mistake. Moved it up to the Contrib Modules group.
Pathauto Entity gives us the ability to auto-generate paths on non-standard entity types, like Farm Assets.
Comment #18
m.stentaAdded a link to https://www.drupal.org/project/entity_browser as a possible replacement for Entity Reference View Widget.
Comment #19
m.stentaI'm going to remove the Panels/Page Manager dependency in Farm Admin to ease the D8 upgrade process. See #2651442: Remove dependency on Panels
I'm also going to remove Backup & Migrate and Devel from the distribution. Folks can add these manually if they need them. See #2651444: Remove Backup & Migrate and Devel
Comment #20
m.stentaDone: #2651444: Remove Backup & Migrate and Devel
Comment #21
m.stentaI am also going to propose removing Views Data Export: #2651452: Remove dependency on Views Data Export
It is only used in the Farm Soil Test module currently. Ultimately we want to be able to export all kinds of entities, so I propose we temporarily remove it from Farm Soil Test, get onto Drupal 8, and then reassess our options.
Comment #22
m.stentaDone: #2651452: Remove dependency on Views Data Export
Comment #23
m.stentaI'm going to remove Filefield Paths: #2655588: Remove dependency on filefield_paths
Comment #24
cosmicdreams CreditAttribution: cosmicdreams as a volunteer commentedI applaud the reduction. Fewer modules means the support work will be less.
Comment #25
m.stentaThis is done: #2655588: Remove dependency on filefield_paths
Filefield Paths will be automatically uninstalled in the next release, and removed entirely in the following.
Comment #26
m.stentaThis is also done now: #2651442: Remove dependency on Panels
Comment #27
m.stentaI also removed LoginToboggan. It doesn't make sense for farmOS to include that by default. It can be installed in sites/all/modules if anyone wants it.
Comment #28
m.stentaI added the Markdown module to farmOS. See #2643882: Add Markdown support
There is already a release of Markdown for Drupal 8.
Comment #29
Wim LeersThe switch to Markdown is interesting, because Drupal 8 ships with a deeply integrated CKEditor by default. Out of curiosity: why choose Markdown instead? Especially considering the target audience.
Comment #30
m.stenta@Wim: Thanks for the input!
So, we're not really "switching" to markdown - just adding it as an option to the "Farm Format" text format. Currently farmOS doesn't use any WYSIWYG, because the only longtext fields it uses are for simple notes and descriptions, and thusfar those didn't need the full capabilities of a WYSIWYG. Markdown gives us some simple flexibility (ie: easy bulleted lists), with minimal effort.
I added Markdown because:
When we do move to D8, I'm excited to leverage the built-in CKeditor! So as soon as we get all the farmOS module ported, we can decide if that would be helpful. :-)
Comment #31
Wim LeersCool, thanks for the perspective :)
Just one note: you can use Markdown and CKEditor side-by-side. If by that you mean use them for different data/fields. Given a certain formatted/rich text field, you can not just switch to and from Markdown. They'd be two different text formats.
Comment #32
m.stenta@Wim: Ah ok - I assumed they could be used in the same Text Format - but I've never tried it. I will have to familiarize myself with the way D8 + CKeditor is working. Thanks for the heads up!
Comment #33
Wim LeersUsing CKEditor implies using a text format that has few filters. E.g. you don't want automatic paragraph creation like
filtered_html
in D7 does when using CKEditor, because CKEditor already creates paragraphs.On the other hand, when using Markdown, you also don't want automatic paragraph creation, because Markdown already provides that for you.
Finally, how could CKEditor render Markdown input? And if it could, would it then have to generate Markdown instead of HTML?
Those problems are just the tip of the iceberg when it comes to mixing Markdown + CKEditor, or even Markdown + "traditional Drupal text formats".
Comment #34
m.stentaAh yea that all makes sense. Hmm - always more complicated than you think. :-)
Well, I don't see Markdown as a requirement by any means - so if it is going to introduce complexities for future CKeditor integration then it's not worth it. And as you said: it probably wouldn't be used by most of the farmOS target audience. If anyone really wants it, they can always create a separate Text Formatter for it, and make that the default on their site.
Thanks for the points Wim - I think I'll revert the Markdown addition - keep things simple now as we prepare to upgrade to D8.
Comment #35
m.stenta#2658234: Remove Markdown support
Comment #36
m.stentaComment #37
Wim LeersHaving Markdown is fine, but it will indeed complicate things. So, if you want to KISS… then this seems like the better approach :)
Comment #38
howards CreditAttribution: howards commentedA note to ease the issues of creating so many features, Drupal 8 has a built-in ECK using the
field_ui
along with the Drupal Console functions. It allows quick creation of entities and bundles; perhaps something like a farm entity might work well for future functionality. I have been testing some stuff using the CMI and it seems to work well, but there are some issues with settings.php in how it manages the$config_directories[]
configuration. I don't yet know how it will work with distributions. As far as I know, the configuration management initiative kind of uses a generated code during install to determine what configurations are for the same site versus a different site.Just a heads-up and potentially a quicker path to a D8 release along with
migrate
functions to move data from D7. As well, some things to consider when it comes to the D8 CMI.Comment #39
m.stentaTaxonomy still depends on Node, so we might not be able to disable Node entirely in 8.x. :-(
However, there is an effort underway for 8.2.x: #2339235: Remove taxonomy hard dependency on node module
Comment #40
m.stentaConvert to new Drush Make YAML format: http://www.drush.org/en/master/make/
Comment #41
m.stentaInitial commits of the 8.x-2.x branch are up on Github and drupal.org. Starting very simple and building up a piece at a time...
I also started a new set of documentation to go along with the 8.x-2.x branch development, included in the repository in the "docs" directory. It is written in Markdown, and automatically converted to HTML with Mkdocs (http://mkdocs.org), hosted on Github pages: http://8x-2x.farmos.org - I intend to make this the canonical documentation once 8.x-2.x is stable and becomes the recommended branch.
More thoughts to come soon...
Comment #42
m.stentaI am planning on merging most of the separate farm_* modules into the main farmOS repository (see #2784927: Should farmOS repositories be merged?).
I created a separate issue for each of the modules, and added links to the issue description above. We can use those issues to dissect each module and figure out what needs to be done in 8.x-2.x. It will also be an opportunity to rethink/reorganize some things.
Comment #43
m.stentaI decided to revert #2651452: Remove dependency on Views Data Export so that we could do #2663998: Data export in the 7.x-1.x branch. It's a very commonly requested feature.
Comment #44
m.stentaAdded Views Data Export back to the list of modules in this issue's description. When the time comes, we should explore what alternatives exist in D8. Perhaps https://www.drupal.org/project/csv_serialization
Comment #45
m.stentaSome notes...
There is some discussion around deprecating Field Collection in Drupal 8 in favor of Paragraphs: #2784931: Proposal: Deprecate Field Collections for Drupal 8, focus on Entity Reference Revisions & Paragraphs
I will have to review that in more detail to see if Paragraphs can be used to accomplish what we are using Field Collection for currently (and/or if changing the way we are structuring things might make sense).
On a related note, look into Entity Reference Revisions instead of normal Entity Reference fields? https://www.drupal.org/project/entity_reference_revisions
Comment #46
m.stentaRe: field_collection vs paragraphs... we may actually be better off just writing our own field types for the few things we need compound fields for. Paragraphs seems too focused on content editing, broadly speaking. We are really just using field_collection to create reusable compound fields.
Currently we are using field_collection for the following things:
* Quantity - reusable compound field that is added to most log types, which contains a "value" field (fraction) and a "units" field (taxonomy reference).
* Animal tag - compound field used on Animal assets with a tag id (textfield), type (select list), and location (textfield). Users can add multiple animal tags, which is why this is a field_collection and not simply individual fields on the animal record.
I am also considering adding a new field_collection for movements (so that they can be used on all log types). This would have a "from" field (taxonomy reference), a "to" field (taxonomy reference), and a "geometry" field (geofield). This compound field would be reused on most log types.
Since the use-cases for those are so specific, and we don't need the ability to add/modify the sub-fields via UI, maybe it makes more sense to just create some custom field types in code, rather than packaging them as config from field_collection/paragraphs.
Hmm, although... here's the tricky part... how do I create a new field type that inherits from BOTH taxonomy reference fields AND geofield fields? Is something like that even possible?
Comment #47
m.stentaI am looking into adding multiupload widgets for file and image fields in farmOS 7.x-1.x: #2879556: Multiupload file and image fields
I will add these two modules to this issue description, although their functionality is included in Drupal 8 core, so upgrading won't be an issue.
Comment #48
m.stentaPer #2879934: Improve editing UI/UX with Field Groups I am adding the Field Group module to farmOS. Updating this issue accordingly... notably Field Group is in its 6th release candidate for Drupal 8, so we should be covered.
Comment #49
m.stentaThe Feeds and Job Scheduler modules have been added to farmOS 7.x-1.x for #2892181: CSV importers for assets and logs. Updating the dependencies on this issue accordingly...
The Feeds module is currently in development for Drupal 8 (see #1960800: [meta] Feeds 8.x roadmap). It may be worth looking into using Drupal core's Migrate API instead. This will require more investigation...
Comment #50
m.stentaAlso Feeds Tamper (see previous comment).
Comment #51
m.stentaWe added the restws_file module to farmOS (see #2992637: Add support for file uploads via REST API).
From what I understand, this functionality is already covered in Drupal 8 core, so I don't think it will affect our upgrade plans at all. Although the API details may change a bit (but that was probably anyways).
Comment #52
m.stentaI've removed Libraries CDN. See https://www.drupal.org/project/farm/issues/3009628#comment-12837494
Comment #53
m.stentaRemoved role_delegation: #3033701: Do not grant "administer users" permission
Comment #54
m.stentaSee this relevant issue regarding Drupal-specific namespaces inside farmOS: #2991398: Remove Drupal namespacing from REST API
And this comment in particular:
Comment #55
m.stentaI created a new contrib module and added it to farmOS: https://www.drupal.org/project/restws_field_collection
This will not be needed in farmOS 8.x-2.x as long as we move away from using Field Collections and instead just create some custom compound field types.
Comment #56
dmezquiaHi, could you give me a current status of development in Drupal 8 how it goes?
I need to develop a custom system but with the FarmOS D8 version, what do you recommend about it? @m.stenta
Comment #57
m.stenta@diosbelmezquia - the Drupal 8 version of farmOS has only barely gotten started. All active development is still happening the 7.x branch. I am eager to begin the Drupal 8 upgrade, but there is no timeframe for it yet. So if you are interested in using farmOS, the 7.x branch is the only option.
Comment #58
m.stentaUpdate: I am in the process of replacing the Drupal OpenLayers code in farmOS with the new farmOS-map JavaScript library. See #3083352: Migrate to farmOS-map library
This will allow us to remove the following dependencies from farmOS:
Modules:
Libraries:
When #3083352: Migrate to farmOS-map library is complete, I will update this issue's description accordingly.
This will be a huge step forward towards the farmOS 2.x branch, as the Drupal OpenLayers module's lack of an 8.x version is one of our biggest blockers.
Comment #59
m.stentaConsider splitting the
farm_mapknitter
module out to a separate contrib module in the 8.x branches. It doesn't need to be included in farmOS core.Comment #60
m.stentaWe can also remove
openlayers_geolocate_button
when #3083352: Migrate to farmOS-map library is merged.Comment #61
m.stentaUpdated status of dependencies in issue description.
The upstream dependency landscape of farmOS is looking really good for 2.x!
Comment #62
m.stentaOops forgot to update Bootstrap theme. Stable release available for that too!
Comment #63
m.stentaI opened a fresh new issue to use as the canonical roadmap for the overall farmOS 2.x initiative: #3092830: [META] farmOS 2.x Roadmap
Please subscribe to that issue if you are interested in updates.
I am renaming this issue to indicate that it was focused on mapping out dependencies - and I am closing it.
I also closed all the child issues I had created for individual modules, because they were no longer comprehensive, and it will make more sense to create new child issues based on functionality rather than module.
All further updates will be made in the new roadmap issue, as well as new child issues of that.
Onward!!! :-D
Comment #65
m.stenta