# Release Procedures

**URL:** <https://farmos.discourse.group/t/release-procedures/1070>\
**Category:** Development\
**Created:** [January 19, 2022, 6:56pm UTC](https://farmos.discourse.group/t/release-procedures/1070 "2022-01-19T18:56:17Z")\
**Posts on this page:** 5\
**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:** [January 19, 2022, 6:56pm UTC](https://farmos.discourse.group/t/release-procedures/1070/1 "2022-01-19T18:56:17Z")

</div>

This documents the standard procedure for packaging a new release of farmOS 2.x+. It is used as a checklist by the [maintainers](https://farmos.org/community/maintainers) to ensure that all the necessary steps are taken.

(A similar document was maintained for farmOS 1.x here: [Release procedure - farmOS.org](https://v1.farmos.org/development/release/))

- Pre-read this release procedure and confirm all the steps still make sense
- Confirm:
  - Drupal core and pinned modules are up-to-date
  - 4.x branch build is successful
  - If today is a Drupal core or contrib [security release window](https://www.drupal.org/about/core/policies/core-release-cycles/schedule), wait until tomorrow.

- Release:
  - Create “farmOS [version]” commit (eg: [farmOS 3.1.0 · farmOS/farmOS@96bf17b · GitHub](https://github.com/farmOS/farmOS/commit/96bf17bc69177ea59e13961e1d7e8664f9d99a11))
    - Update CHANGELOG.md with new version and release date

  - Tag new version
  - Push 4.x and tag to origins
  - Wait for GitHub Actions to create release
  - Create release node in [drupal.org](http://drupal.org) (eg: [https://www.drupal.org/project/farm/releases/3.1.0](https://www.drupal.org/project/farm/releases/3.1.0))
    - Copy text from github release
    - Link to GitHub release for tarball

- Announce:
  - All releases:
    - Chat (automated via [irc.farmos.org](http://irc.farmos.org))
    - Forum (automated via GitHub Actions)
    - [Mastodon](https://fosstodon.org/@farmOS) (automated via [farmOS-microblog](https://github.com/farmOS/farmOS-microblog))

  - Major and minor releases:
    - Blog (eg: [farmOS 3.1.0 | farmOS](https://farmos.org/blog/2024/farmOS-3.1.0/))
    - Newsletter (copied from blog, eg: [farmOS 3.1.0 has been released! 🌱🎉 • Buttondown](https://buttondown.email/farmOS/archive/farmos-310-has-been-released/))
    - OpenCollective (eg: [farmOS 3.1.0 has been released! 🎉 - Open Collective](https://opencollective.com/farmos/updates/farmos-3-1-0-has-been-released))

---

<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 7, 2022, 6:28pm UTC](https://farmos.discourse.group/t/release-procedures/1070/2 "2022-04-07T18:28:24Z")

</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 7, 2022, 6:32pm UTC](https://farmos.discourse.group/t/release-procedures/1070/3 "2022-04-07T18:32:21Z")

</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 7, 2022, 6:45pm UTC](https://farmos.discourse.group/t/release-procedures/1070/4 "2022-04-07T18:45:30Z")

</div>

Similarly, here is the standard procedure for releases of [farmOS-map](https://github.com/farmOS/farmOS-map):

- Confirm all dependencies are up-to-date (i.e. `npm audit fix` and create a commit with changes)
- Create a “Release v[version]” commit (eg: [Release v2.0.3 · farmOS/farmOS-map@6d25f8f · GitHub](https://github.com/farmOS/farmOS-map/commit/6d25f8f9f862dccb376e78e93df8efa7591df61b))
  - Update `CHANGELOG.md` with new version and release date
  - Update `version` in `package.json` (line 3) and `package-lock.json` (lines 3 and 9)

- Tag new version (e.g. `git tag v9000.0.1`)
- Push `main` and tag to origin (e.g. `git push --atomic origin HEAD:main v9000.0.1`)
- Update the `farmOS-map` library version in farmOS (line 10 and 13 of `composer.libraries.json`: [farmOS/composer.libraries.json at 5c764c5b50f4d9404e7b20012d29a1f188506994 · farmOS/farmOS · GitHub](https://github.com/farmOS/farmOS/blob/5c764c5b50f4d9404e7b20012d29a1f188506994/composer.libraries.json))

---

<div class="post-metadata">

**Author:** ![Symbioquine](https://yyz2.discourse-cdn.com/free1/user_avatar/farmos.discourse.group/symbioquine/32/284_2.png) [@Symbioquine](https://farmos.discourse.group/u/Symbioquine)\
**Post date:** [March 25, 2026, 1:05pm UTC](https://farmos.discourse.group/t/release-procedures/1070/5 "2026-03-25T13:05:08Z")

</div>


