farmOS 2.x Releases (and What to Expect)

This thread aims to summarize the farmOS 2.x releases, and what users and developers can expect.

In general, there will not be specific dates/timelines for the official 2.0.0 “stable” release. It will be ready when it is ready. Follow this thread for updates (click the :bell:).

Note that comments are locked in this topic, but feedback is welcome in: farmOS 2.x Alpha Feedback

Why farmOS 2.x?

If this is the first you are hearing of “farmOS 2.x”, you may be wondering what it is and why we’re doing it. farmOS 2.x is a major upgrade to the farmOS codebase, and is an opportunity for us to take a big step forward with all the lessons learned in 1.x.

Farmers and other end users can expect an improved user interface and experience in general. We’ll also have better translation and localization capabilities. Areas will now be unified under assets, technically considered “location assets” from now on. Plus, we’ll be adding inventory management for all assets, a long-awaited feature!

For admins and developers, 2.x will represent a modernization of the code architecture and development process. You can expect improvements to our backend APIs, documentation and overall developer experience (DX) for modules and other integrations. For more details, see the farmOS 2.x Development Roadmap.

Release strategy and expectations

Alpha Releases (2.0.0-alpha#)

Today (April 1, 2021) we have tagged the first “alpha” release of the farmOS 2.x branch 2.0.0-alpha1

This first milestone signifies that all of the critical data architecture is in place, and an automated migration path is available to copy records from a farmOS 1.x database into a farmOS 2.x database. This alpha release also includes a feature-complete REST API for pushing/pulling data via HTTP requests.

This release does not include all of the frontend UI/UX features that are available in farmOS 1.x. Prioritizing and porting those features is our focus now, as we approach the first beta release.

We will continue to tag additional alpha releases (eg: 2.0.0-alpha2, 2.0.0-alpha3, etc) as new features, fixes, and improvements are completed.

Alpha releases are primarily targeted at users and developers who want to begin experimenting with the 2.x data migration, as well as begin building modules and API integrations on top.

Here is a summary of what you can expect during the alpha phase:

Users/admins

  • DO NOT USE WITH REAL DATA!
  • Begin testing the 1.x data migrations to make sure everything comes over from their 1.x instance.
  • Updates will require reinstalling from scratch and re-running the migrations.
  • Provide feedback on data migration.

Developers

  • Test out the new 2.x APIs.
  • Begin developing/porting farmOS modules. See https://www.drupal.org/project/farm/issues/3151247
  • Review module development docs: Getting started - farmOS 2.x Docs
  • Many helper functions are not available yet (eg: for common actions in quick form submit functions etc).
  • Provide feedback on APIs, development environment, documentation, etc.
  • Assist with the UI/UX development, documentation, helper functions, etc.

Beta Releases (2.0.0-beta#)

The “beta” phase of releases will signify that farmOS 2.x is stable enough to start using with real data, although there may still be known bugs and missing features.

Beta releases will be targeted at “early-adopter” users and developers who are ready to make the jump to farmOS 2.x, or who are starting fresh on farmOS without an existing 1.x instance.

Here is a summary of what you can expect during the beta phase:

Users/admins

  • May start using with real data.
  • Automated updates will be available between releases, so you won’t need to reinstall from scratch and re-run migrations.
  • There may still be bugs. Things may still break.
  • Provide feedback on UI/UX features.

Developers

  • Helper functions and internal APIs should be in place for most requirements.
  • Continue porting add-on modules.
  • Provide feedback on developer experience (DX).

Release Candidates (2.0.0-rc#)

We may tag release candidates (eg: 2.0.0-rc1, 2.0.0-rc2, etc) as we get closer to the final 2.0.0 release. These will be considered stable enough for general use, but may still have missing features or known issues that are deemed non-critical.

Stable Release (2.0.0)

The stable 2.0.0 release will be tagged as soon as we feel confident that all the necessary features are in place and there are no blocking issues.

And beyond!

Of course 2.0.0 is just the first step! Moving forward from here we will follow standard semantic versioning practices, with patch releases (eg: 2.0.1, 2.0.2, etc) for minor changes and bug fixes, and minor releases (eg: 2.1.0, 2.2.0, etc) for new features (always backwards compatible).

7 Likes

farmOS 2.0.0-alpha2 was released!

This is the second “alpha” release of the farmOS 2.x development branch. It is still NOT ready for production use. But we’re getting closer… :slight_smile:

Highlights since the 2.0.0-alpha1 release:

  • Location hierarchy page with drag-and-drop editor
  • Maps of assets
  • Map asset popups
  • Map layer color/styles config
  • Views of logs that reference assets/locations
  • View of assets in a location
  • View of assets in a group
  • Views of assets/logs by type include columns/filters for type-specific fields automatically
  • Birth log type + migration
  • Dashboard stacked two-column layout
  • Dashboard “Metrics” block
  • Basic breadcrumbs
  • Started Help module
  • Allow custom CORS for the 2.x API
  • Always create revisions via API
  • Many small UI improvements
6 Likes