# farmOS 2.x Releases (and What to Expect)

**URL:** <https://farmos.discourse.group/t/farmos-2-x-releases-and-what-to-expect/736>\
**Category:** Development\
**Created:** [April 1, 2021, 3:45pm UTC](https://farmos.discourse.group/t/farmos-2-x-releases-and-what-to-expect/736 "2021-04-01T15:45:35Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![mstenta](https://yyz2.discourse-cdn.com/free1/user_avatar/farmos.discourse.group/mstenta/32/4_2.png) [@mstenta](https://farmos.discourse.group/u/mstenta)\
**Post date:** [April 1, 2021, 3:45pm UTC](https://farmos.discourse.group/t/farmos-2-x-releases-and-what-to-expect/736/1 "2021-04-01T15:45:35Z")

</div>

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 🔔).

_Note that comments are locked in this topic, but feedback is welcome in: [farmOS 2.x Alpha Feedback](https://farmos.discourse.group/t/farmos-2-x-alpha-feedback/737)_

### 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](https://www.drupal.org/project/farm/issues/3092830).

## 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`

> **[Release 2.0.0-alpha1 · farmOS/farmOS](https://github.com/farmOS/farmOS/releases/tag/2.0.0-alpha1)**
>
> //github.com/farmOS/farmOS/releases/tag/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](https://www.drupal.org/project/farm/issues/3151247)
- Review module development docs: [Getting started - farmOS 2.x Docs](https://docs.farmos.org/development/module/)
- 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](https://semver.org/) 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).

---

<div class="post-metadata">

**Author:** ![mstenta](https://yyz2.discourse-cdn.com/free1/user_avatar/farmos.discourse.group/mstenta/32/4_2.png) [@mstenta](https://farmos.discourse.group/u/mstenta)\
**Post date:** [April 1, 2021, 3:48pm UTC](https://farmos.discourse.group/t/farmos-2-x-releases-and-what-to-expect/736/2 "2021-04-01T15:48:44Z")

</div>



---

<div class="post-metadata">

**Author:** ![mstenta](https://yyz2.discourse-cdn.com/free1/user_avatar/farmos.discourse.group/mstenta/32/4_2.png) [@mstenta](https://farmos.discourse.group/u/mstenta)\
**Post date:** [April 1, 2021, 3:49pm UTC](https://farmos.discourse.group/t/farmos-2-x-releases-and-what-to-expect/736/3 "2021-04-01T15:49:44Z")

</div>



---

<div class="post-metadata">

**Author:** ![mstenta](https://yyz2.discourse-cdn.com/free1/user_avatar/farmos.discourse.group/mstenta/32/4_2.png) [@mstenta](https://farmos.discourse.group/u/mstenta)\
**Post date:** [June 9, 2021, 6:04pm UTC](https://farmos.discourse.group/t/farmos-2-x-releases-and-what-to-expect/736/4 "2021-06-09T18:04:20Z")

</div>

[farmOS 2.0.0-alpha2](https://github.com/farmOS/farmOS/releases/tag/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… 🙂

Highlights since the [2.0.0-alpha1](https://github.com/farmOS/farmOS/releases/tag/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

---

<div class="post-metadata">

**Author:** ![mstenta](https://yyz2.discourse-cdn.com/free1/user_avatar/farmos.discourse.group/mstenta/32/4_2.png) [@mstenta](https://farmos.discourse.group/u/mstenta)\
**Post date:** [September 22, 2021, 8:52pm UTC](https://farmos.discourse.group/t/farmos-2-x-releases-and-what-to-expect/736/5 "2021-09-22T20:52:29Z")

</div>

[farmOS 2.0.0-alpha3](https://github.com/farmOS/farmOS/releases/tag/2.0.0-alpha3) has been released!

This is the third “alpha” release of the farmOS 2.x development branch. **It is still NOT recommended for production use.** However I am optimistic that this will be the last “alpha” release before we release the first “beta” - which will be an official signal that it’s ready to start using. No promises though - we’ll see! 🙂

On that note, we’ve decided to make a small change to what “alpha” and “beta” will mean, and what you can expect with these releases leading up to the first “stable” release (aka farmOS version `2.0.0`). I will update the forum topic description above to reflect these changes, but to summarize briefly: we want to get “beta” out sooner, even if it means it doesn’t have ALL the UI/UX features that were available in 1.x. Originally “beta” was going to include _everything_ 1.x had, but this just means everyone has to wait longer, even if they don’t need those features. So instead, we plan to release the first beta as soon as we feel confident that the most important pieces are in place and stable. And we will continue to add more UI/UX features in follow-up `2.0.0-betaX` releases leading up to the final `2.0.0` stable release. Continue to follow this forum topic for updates if you’re interested!

Highlights since the [2.0.0-alpha2](https://github.com/farmOS/farmOS/releases/tag/2.0.0-alpha2) release (roughly in order of completion):

- Separate color-coded Land and Structure type map layers
- Allow standard users to view entity type resources via JSON:API
- Upload files via the API
- Allow managed roles access to entity revisions tab
- Seed asset type
- Upgrade to farmOS-map 2.x
- Display community farmOS modules in /farm/settings/modules
- Bulk actions for assets, logs, plans
- KML import/export
- Geocoding of GeoJSON and GPX files
- Render asset, log, and plan pages in stacked two-column layout
- Dropbutton to add logs from asset pages
- Move map layers into sidepanel
- Perform entity validation during migration
- Add Drush commands for simplifying migrations
- Split Sale/Purchase logs out to farmOS Ledger community module
- Improvements to data stream migrations, UI, and API endpoints
- Material asset type
- Material quantity type
- Many small UI improvements
- Many bug fixes

---

<div class="post-metadata">

**Author:** ![mstenta](https://yyz2.discourse-cdn.com/free1/user_avatar/farmos.discourse.group/mstenta/32/4_2.png) [@mstenta](https://farmos.discourse.group/u/mstenta)\
**Post date:** [September 24, 2021, 5:20pm UTC](https://farmos.discourse.group/t/farmos-2-x-releases-and-what-to-expect/736/6 "2021-09-24T17:20:38Z")

</div>

In the interest of supporting users who want to begin using farmOS `2.0.0-alpha3` before a beta is released, I’ll try to use this comment to document any manual updates that might be required between `2.0.0-alpha3` and whatever the next (hopefully beta) release is.

If you wait until the next release (beta or otherwise) to deploy your instance, you won’t need to take these steps.

- Enable new modules via Drush: `drush en farm_owner farm_entity_fields farm_entity_views`:
- Enable `farm_update` module, if you want automatic configuration updates (recommended) - for more info: [Updates - farmOS 2.x Docs](https://docs.farmos.org/development/module/updates/#configuration-updates) (via Drush: `drush en farm_update`)
- If you are managing the root `composer.json` for your deployment, then see details below for changes you need to make.
- Rebuild caches (via Drush: `drush cr`)

**Changes to composer.json**

_This only applies if you are managing your farmOS deployment with Composer and a custom_ `composer.json`. _If you are using a packaged tarball, or a Docker image with only the_ `sites` _directory bind-mounted as a volume, then you do not need to do anything._

We are now using [composer-merge-plugin](https://github.com/wikimedia/composer-merge-plugin#merge-extra) to manage more of the project `composer.json` dependencies and configuration. For more details see: [Use composer-merge-plugin to manage project composer.json dependencies [#3239420] | Drupal.org](https://www.drupal.org/project/farm/issues/3239420)

This commit shows the required changes: [Issue #3239420: Use composer-merge-plugin to manage project composer.… · farmOS/composer-project@42bdd33 · GitHub](https://github.com/farmOS/composer-project/commit/42bdd33876ef2d8da265dc8f0969940417668fdb)

---

<div class="post-metadata">

**Author:** ![mstenta](https://yyz2.discourse-cdn.com/free1/user_avatar/farmos.discourse.group/mstenta/32/4_2.png) [@mstenta](https://farmos.discourse.group/u/mstenta)\
**Post date:** [October 4, 2021, 6:24pm UTC](https://farmos.discourse.group/t/farmos-2-x-releases-and-what-to-expect/736/7 "2021-10-04T18:24:06Z")

</div>

[farmOS 2.0.0-alpha4](https://github.com/farmOS/farmOS/releases/tag/2.0.0-alpha4) has been released!

> I am optimistic that this will be the last “alpha” release before we release the first “beta”

Sorry I lied. I might tag a few more alphas (more frequently) as we approach beta. This just makes it easier to deploy updates while we’re testing things. 🙂

Highlights since [farmOS 2.0.0-alpha3](https://github.com/farmOS/farmOS/releases/tag/2.0.0-alpha3):

- [Issue #3220627: Optionally apply configuration changes automatically](https://www.drupal.org/project/farm/issues/3220627)
- Split some of the code in `farm_entity` module out to sub-modules.
- [Improve asset archive timestamp behavior #446](https://github.com/farmOS/farmOS/pull/446)
- [Improve plan archive timestamp behavior #446](https://github.com/farmOS/farmOS/pull/446)
- [Update to Drupal 9.2 #449](https://github.com/farmOS/farmOS/pull/449)
- [Issue #3239420: Use composer-merge-plugin to manage project composer.json dependencies](https://www.drupal.org/project/farm/issues/3239420)
- [Do not allow ID Tag field to be created through the UI. #451](https://github.com/farmOS/farmOS/issues/451)
- [Issue #3239929 by paul121, m.stenta: Specify access checking in content entity queries](https://www.drupal.org/project/farm/issues/3239929)
- [Issue #3239940: UniqueBirthLogConstraint allows creating two birth logs for the same child](https://www.drupal.org/project/farm/issues/3239940)
- [Issue #3185188 by paul121, m.stenta: Views exposed filters for Entity References](https://www.drupal.org/project/farm/issues/3185188)
- [Issue #3240350: Farm report module](https://www.drupal.org/project/farm/issues/3240350)
- Misc minor bug fixes and documentation fixes/improvements.

---

<div class="post-metadata">

**Author:** ![mstenta](https://yyz2.discourse-cdn.com/free1/user_avatar/farmos.discourse.group/mstenta/32/4_2.png) [@mstenta](https://farmos.discourse.group/u/mstenta)\
**Post date:** [October 27, 2021, 8:58pm UTC](https://farmos.discourse.group/t/farmos-2-x-releases-and-what-to-expect/736/8 "2021-10-27T20:58:35Z")

</div>

[farmOS 2.0.0-alpha5](https://github.com/farmOS/farmOS/releases/tag/2.0.0-alpha5) has been released!

Highlights since [farmOS 2.0.0-alpha4](https://github.com/farmOS/farmOS/releases/tag/2.0.0-alpha4):

- Quick forms framework module (but no quick forms yet)
- [Issue #3243383: Allow flags to be limited to specific entity types and bundles](https://www.drupal.org/project/farm/issues/3243383)
- [Issue #3241652 by paul121: Depend on drupal/subrequests](https://www.drupal.org/project/farm/issues/3241652)
- [Issue #3191246 by paul121, m.stenta, jgaehring: Serve Field Modules to Field Kit](https://www.drupal.org/project/farm/issues/3191246)
- [Issue #3192238 by paul121: 500 error when using VBO to delete an asset referenced by a log](https://www.drupal.org/project/farm/issues/3192238)
- [Issue #3241690 by paul121: User 1 cannot use the refresh\_token grant type](https://www.drupal.org/project/farm/issues/3241690)
- Do not archive areas without an area type during migration.
- [Issue #3242468: Validation error migrating taxonomy terms that are parents of other terms](https://www.drupal.org/project/farm/issues/3242468)
- [Issue #3241078 by paul121: Asset cache is not invalidated after group membership log status changes](https://www.drupal.org/project/farm/issues/3241078)
- [Issue #3240951 by paul121: Asset cache is not invalidated after inventory log status changes](https://www.drupal.org/project/farm/issues/3240951)
- [Issue #3240953 by paul121: Duplicated logs reference the same quantity entity](https://www.drupal.org/project/farm/issues/3240953)
- [Issue #3244414 by paul121: Entity actions error when transitioning to the same state and do not support transitions in other workflows](https://www.drupal.org/project/farm/issues/3244414)
- Patch drupal/gin issue [#3245203: Sticky region has inconsistent z-index.](https://www.drupal.org/project/gin/issues/3245203)
- Patch drupal/jsonapi\_schema to fix [Issue #3246251: Change format “utc-millisec” to “date-time”](https://www.drupal.org/project/jsonapi_schema/issues/3246251)
- Misc bug fixes and documentation fixes/improvements.

---

<div class="post-metadata">

**Author:** ![mstenta](https://yyz2.discourse-cdn.com/free1/user_avatar/farmos.discourse.group/mstenta/32/4_2.png) [@mstenta](https://farmos.discourse.group/u/mstenta)\
**Post date:** [December 21, 2021, 1:50pm UTC](https://farmos.discourse.group/t/farmos-2-x-releases-and-what-to-expect/736/9 "2021-12-21T13:50:47Z")

</div>

[farmOS 2.0.0-alpha6](https://github.com/farmOS/farmOS/releases/tag/2.0.0-alpha6) has been released!

Highlights since [farmOS-2.0.0-alpha5](https://github.com/farmOS/farmOS/releases/tag/2.0.0-alpha5):

- [Update Drupal core to 9.3.0 #459](https://github.com/farmOS/farmOS/pull/459)
- [Pin all packages that are being patched. #463](https://github.com/farmOS/farmOS/pull/463)
- [Add workflow to trigger farmOS.org Netlify builds when docs are updated #456](https://github.com/farmOS/farmOS/pull/456)
- [Issue #3243336 by paul121, m.stenta: Show farmOS contrib module info in farm/settings/modules](https://www.drupal.org/project/farm/issues/3243336)
- [Issue #3246623 by paul121: Filter logs by who they are assigned to](https://www.drupal.org/project/farm/issues/3246623)
- [Issue #3252348: Bundle path arguments do not work in sqlite](https://www.drupal.org/project/farm/issues/3252348)
- [Issue #3253264: Log geometry is not re-copied from locations when a custom geometry is cleared](https://www.drupal.org/project/farm/issues/3253264)
- [Issue #3253116: Copy geometry from locations in asset reference field](https://www.drupal.org/project/farm/issues/3253116)
- [Issue #3243667 by paul121: Perform entity validation in bulk actions](https://www.drupal.org/project/farm/issues/3243667)
- [Issue #3245399 by paul121: Use iframe in asset map popup](https://www.drupal.org/project/farm/issues/3245399)
- [Issue #3252070 by m.stenta: Process location hierarchy changes via PHP instead of API requests](https://www.drupal.org/project/farm/issues/3252070)
- [Issue #3242473: Validation fails when migrating records that reference inactive users](https://www.drupal.org/project/farm/issues/3242473)
- [Issue #3253841 by paul121: Asset parent base field allows circular and duplicate references](https://www.drupal.org/project/farm/issues/3253841)
- [Issue #3215938 by paul121: Data stream email notifications](https://www.drupal.org/project/farm/issues/3215938)
- Rename `farm_client` module to `farm_fieldkit`, and OAuth2 client from `farm_client` to `fieldkit`.
- Misc minor bug fixes and documentation fixes/improvements.

---

<div class="post-metadata">

**Author:** ![mstenta](https://yyz2.discourse-cdn.com/free1/user_avatar/farmos.discourse.group/mstenta/32/4_2.png) [@mstenta](https://farmos.discourse.group/u/mstenta)\
**Post date:** [January 1, 2022, 1:06pm UTC](https://farmos.discourse.group/t/farmos-2-x-releases-and-what-to-expect/736/10 "2022-01-01T13:06:09Z")

</div>

[farmOS 2.0.0-beta1](https://github.com/farmOS/farmOS/releases/tag/2.0.0-beta1) has been released!!! See the official announcement here: [farmOS 2.0.0-beta1 has been released! Happy New Year! 🎉](https://farmos.discourse.group/t/farmos-2-0-0-beta1-has-been-released-happy-new-year/1022)

**Attention** : If you have been following this thread, and are currently running an alpha version of farmOS v2, there is one manual step you will need to take to upgrade to beta1 (along with clearing caches and running database updates). A new `farm_log_asset` module was added to tease apart a minor dependency tree issue, so this needs to be manually enabled via Drush:

`drush en farm_log_asset`

I am going to unpin this 2.x Releases thread and will no longer be updating it moving forward. Keep an eye on the “Hosting” category of this forum for future release announcements, and check the [CHANGELOG.md](https://github.com/farmOS/farmOS/blob/2.x/CHANGELOG.md) to see what’s new.

Happy New Year! 😃 🥳

---

<div class="post-metadata">

**Author:** ![mstenta](https://yyz2.discourse-cdn.com/free1/user_avatar/farmos.discourse.group/mstenta/32/4_2.png) [@mstenta](https://farmos.discourse.group/u/mstenta)\
**Post date:** [May 15, 2022, 2:01pm UTC](https://farmos.discourse.group/t/farmos-2-x-releases-and-what-to-expect/736/11 "2022-05-15T14:01:22Z")

</div>

farmOS v2 has been in beta for almost 6 months! We’ve been steadily adding new features and fixing minor bugs as they are reported. So far it’s been working great! 🎉

Originally, the plan was to wait until _all_ v1 features were ported to v2 before tagging the official `2.0.0` stable release. But as time goes on, and we juggle available budgets/capacity/demand (or lack thereof), we’ve decided that these v1 features do not need to block `2.0.0`. Instead, they can be added in minor releases moving forward, as they are completed.

Therefore, I’ve started winnowing down our [“stable blocker” issues](https://www.drupal.org/project/issues/search/farm?status%5B%5D=Open&issue_tags=stable+blocker) and re-tagging some of them with the [“v1 parity” tag](https://www.drupal.org/project/issues/search/farm?status%5B%5D=Open&issue_tags=v1+parity), so we can still track/filter them. Some of the remaining stable blockers are still up for discussion, and may be bumped. And there are some that I would like to see completed before `2.0.0`.

So stay tuned… the `2.0.0` release may be coming soon! And if you’d like to help get it across the finish line check out the link above to see the stable blockers remaining. All help is welcome (even just thoughts/opinions)!

---

<div class="post-metadata">

**Author:** ![mstenta](https://yyz2.discourse-cdn.com/free1/user_avatar/farmos.discourse.group/mstenta/32/4_2.png) [@mstenta](https://farmos.discourse.group/u/mstenta)\
**Post date:** [May 15, 2022, 2:02pm UTC](https://farmos.discourse.group/t/farmos-2-x-releases-and-what-to-expect/736/12 "2022-05-15T14:02:52Z")

</div>

Worth mentioning: one of the big reasons to get `2.0.0` out is so we can begin to truly start using [semantic versioning](https://semver.org/) moving forward. This will allow for smaller and more frequent releases of farmOS 2.x.
