Sunflower
Frontend
Languages
Policy: One of Specified Versions
Reasoning: Adopting new versions of these technologies may have substantial impact on shared community tooling or hosting providers
Chosen Technologies:
- JavaScript
- TypeScript
Build Tools
Policy: One of Specified versions
Reasoning: Adopting new versions of these technologies may have substantial impact on shared community tooling or hosting providers
Chosen Technologies:
- Node 20
- Yarn 1
First Party Libraries / Frameworks
Policy: One of Specified versions
Reasoning: The FOLIO community has previously adopted the policy that first party technologies must be synchronized across all modules within the system for easier support
Notes: These versions are often only decided upon in the latter states of the flower release process and may be subject to change even after this document is accepted
Chosen Technologies:
- Stripes 10.0.0 or greater
Shared Third Party Libraries / Frameworks
Policy: One of Specified versions
Reasoning: These technologies are fundamental to the operation of FOLIO. Modules supporting incompatible versions would lead to an non-operational system
Chosen Technologies:
- React 18.2
During Build Automated Testing
Policy: Unspecified versions
Reasoning: These technologies are only used for automated testing within the module. It is reasonable for the versions to vary between modules as the choice does not affect other modules or centralised community tooling
Chosen Technologies:
- Jest
- should be 29 or greater
- RTL
- should be 14 greater
Post Build Integration Testing
Policy: TBD
Reasoning: TBD
Chosen Technologies:
- Cypress 12.0*
- * Pending verification
Backend
Languages
Policy: One of Specified Versions
Reasoning: Adopting new versions of these technologies may have substantial impact on shared community tooling or hosting providers
Chosen Technologies:
- Java 21 / JDK 21
- Groovy (version determined by the version of Grails, below)
- OpenAPI (OAS) 3
- Go 1.23
Build Tools
Policy: One of Specified versions
Reasoning: Adopting new versions of these technologies may have substantial impact on shared community tooling or hosting providers
Chosen Technologies:
- Maven 3.8 or later
- Docker
- Gradle
- Make
First Party Libraries / Frameworks
Policy: One of Specified versions
Reasoning: The FOLIO community has previously adopted the policy that first party technologies must be synchronised across all modules within the system for easier support
Notes:
- These versions are often only decided upon in the latter states of the flower release process and may be subject to change even after this document is accepted.
- A first party library/framework needs to support only one of the versions allowed in the "Third Party Libraries / Frameworks" list.
Chosen Technologies:
- folio-spring-base 8.1 or greater
- folio-vertx-lib 3.2 or greater
- raml-module-builder 35
- deprecated. Only existing FOLIO modules may continue to use raml-module-builder
- edge-common 4.5.2 or greater
- edge-common-spring 2.3.2 or greater
- https://github.com/folio-org/folio-s3-client 2.1.1 or greater
Third Party Libraries / Frameworks
Policy: Unspecified versions
Reasoning: These technologies are only used within a module. It is reasonable for the versions to vary between modules as the choice does not affect other modules or centralized community tooling
Notes: A first party library/framework may support only one of these versions.
Chosen Technologies:
- Spring Boot
- 3.4 or later recommended (OSS support until 2025-11)
- Spring Framework
- 6.2 or later recommended (OSS support until 2026-08-31)
- Grails
- Eclipse Vert.x 4
- Lombok
- AWS SDK for Java
- version 2 (version 1 will reach end-of-support on December 31, 2025)
- MinIO Client library 8.5 or higher recommended
- Quarkus 3.18.1
- Quartz
During Build Automated Testing
Policy: Unspecified versions
Reasoning: These technologies are only used for automated testing within the module. It is reasonable for the versions to vary between modules as the choice does not affect other modules or centralized community tooling
Chosen Technologies:
- JUnit
- 5 should be used, 4 (is in maintenance mode) may