Forge Versions Guide
Guidance on the Forge release cycle and the differences between Forge LTS and Forge New
Introduction
LTS versions of a software library are the "Long-Term Support" versions. These releases are designated for stability and support over an extended period. LTS versions are supported with updates, bug fixes, and security patches for a longer duration.
Alongside the LTS version, software libraries often offer a version that includes new features and changes, including breaking changes. This version prioritizes giving users the newest components and features.
Forge maintains two library versions: Forge LTS and Forge New.
We launched Forge LTS to support developers by providing a stable library version that will not introduce breaking changes. Breaking changes can require significant effort and time to adapt to. Forge LTS aims to minimize the impact of breaking changes, by continuing to provide new non-breaking features and bugfixes for at least a year.
Key Takeaways
- Forge offers two library versions: Forge LTS for stability and no breaking changes, and Forge New for updated features and changes that could break existing applications.
- Components may differ visually and functionally between Forge LTS and Forge New versions.
- Forge manages LTS and New versions through separate Figma libraries, software libraries, and guides.
- Product teams choose the appropriate Forge version for their team.
- Teams should consider planned future changes, long-term developer support, and the need for novel features when deciding between Forge LTS and Forge New.
The Basics
What is the difference between Forge LTS and Forge New?
Forge LTS is designed to provide support for specific major versions over an extended period, focusing on bug fixes, security updates, and maintenance rather than introducing breaking changes. The value of Forge LTS is that it does not require developers to react to new, major breaking changes, which can be time-consuming to address during an upgrade.
Forge New is the library version designed to receive new features and changes, even if they are breaking changes. This version prioritizes providing users with the newest components and features.
How could a component differ between Forge LTS and Forge New?
If Forge adds new breaking features to the 'Modal' component, these changes will only be included in the Forge New library. For example, a breaking change could be a modification to the layout of the component or the removal of a React prop from the component. These breaking changes would not be applied to the Forge LTS library.
As a result, the 'Modal' component in the Forge LTS library may differ in appearance or functionality from the ‘Modal’ component in the Forge New library.
How does Forge manage LTS and New versions?
Forge maintains Forge LTS and Forge New through distinct versions of their Figma libraries, software libraries, and the Forge guide.
In code, the Forge LTS version is whatever major version of Forge is documented at lts-guide.forge.athena.io. The Forge New major version is documented at guide.forge.athena.io. For example, major version 12 may be the active Forge LTS version, but version 13 may be the active Forge New version.
In Figma, designers can choose to use either the Forge LTS Figma library or the Forge New Figma library. These libraries and all components in them will be clearly named to highlight their differences.
The above image demonstrates the visual changes and naming conventions that will differentiate Forge New from Forge LTS in Figma.
To successfully navigate Forge versions, designers should have a discussion with all members of their scrum team to determine if your team will be using Forge New or Forge LTS going forward.
- If you will be using Forge LTS going forward:
- Add the Forge LTS Figma library to your Figma Library favorites and remove the Forge New Figma library from your Figma library favorites.
- How to enable and disable Figma Libraries
- If you will be using Forge New going forward:
- No changes needed to your current Forge Figma set up.
In the Forge guide, users can view information aligned with either Forge New or Forge LTS by clicking on the version switcher button in the top right navigation bar.
Which version of Forge should my team use?
Each product team will individually decide which version of Forge (LTS or New) they will use. All team members will align their work with the chosen Forge version to ensure synchronization between Forge design assets and development libraries.
Teams with stable products may opt for Forge LTS to minimize maintenance efforts. Teams building new products and requiring the newest features may choose Forge New, understanding that it may require more active maintenance due to breaking changes.
Webpages gain additional benefits when multiple applications are on the same page at the same time, using the same major version of Forge, and opting into module federation. These apps will all use the same version of Forge in production and will automatically receive Forge bugfixes without redeploying. Additionally, by opting into module federation and keeping up to date with LTS, we can minimize the number of times Forge is loaded in production, thus improving performance for our end users. Using Forge LTS offers the best chance of continuing to receive these benefits.
When deciding which Forge version to adopt a team may consider the following aspects of their application:
- How much might the product change in the foreseeable future?
- Teams creating applications with many upcoming changes may opt to use Forge New for the newest features.
- Expected level of long-term developer support
- Teams with stable applications and limited developer support may prefer to adopt Forge LTS to avoid breaking changes and limit maintenance needed when upgrading Forge versions.
- Expected need for novel features
- Teams that will want to use the newest features and components in their application should opt to use Forge New. New features with major breaking changes will not be available in Forge LTS.