This is an automated email from the ASF dual-hosted git repository.
paulk pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/groovy-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 1f624cf Grails proposal (for discussion)
1f624cf is described below
commit 1f624cfb2803da6189379f728e78df6176bcfef9
Author: Paul King <[email protected]>
AuthorDate: Tue Jan 14 00:04:10 2025 +1000
Grails proposal (for discussion)
---
site/src/site/wiki/grails-proposal.adoc | 209 ++++++++++++++++++++++++++++++++
1 file changed, 209 insertions(+)
diff --git a/site/src/site/wiki/grails-proposal.adoc
b/site/src/site/wiki/grails-proposal.adoc
new file mode 100644
index 0000000..516b2bc
--- /dev/null
+++ b/site/src/site/wiki/grails-proposal.adoc
@@ -0,0 +1,209 @@
+= Grails Project Proposal
+
+== Abstract
+
+Grails is a powerful Groovy-based full-stack web application framework for the
JVM built on top of Spring Boot.
+
+== Proposal
+
+Grails is a full-stack web application framework for the JVM. It is intended
to be a high-productivity framework by following the "convention over
configuration" paradigm, providing a stand-alone development environment and
hiding much of the configuration detail from the developer. Grails has long
been developed under an Apache License v2.0 under an open governance community
management process.
+
+So far Grails has been a project mostly sponsored by a single company. It has
become clear that the single vendor backed model previously used by Grails
isn’t the best strategy to take it forward. We propose to bring the Grails
community under the umbrella of the Apache Software Foundation with an initial
goal that Grails core and its critical plugins are brought into the ASF (see
more details in the “Initial Goals” section). We propose that the Groovy
project act as the sponsoring organ [...]
+
+== Background
+
+Grails is a mature open source project. Work began in July 2005, with the 0.1
release on March 29, 2006, and the 1.0 release announced on February 18, 2008.
The latest release was 6.2.0 which was released April 6, 2024. After 19 years
of development, Grails has grown into a powerful web application framework
which leverages many of the latest technologies for building web applications
on the JVM.
+
+Numerous vendors have consulting businesses based on building web applications
using Grails. Other organizations use Grails for their internal web application
development. While the Grails community is large, the project itself is also
large. The existing model of expecting a single vendor to do the bulk of its
maintenance is no longer viable. Moving to the ASF provides a vendor neutral
home where all community members can feel safe contributing to Grails.
+
+== Rationale
+
+Many modern web frameworks in the Java space are more complicated than needed
and don’t embrace the Don’t Repeat Yourself (DRY) principles.
+Dynamic frameworks like Rails and Django helped pave the way to a more modern
way of thinking about web applications. Grails builds on these concepts and
dramatically reduces the complexity of building web applications on the Java
platform. What makes it different, however, is that it does so by building on
already established Java technologies.
+
+== Initial Goals
+
+The initial goals of the Grails transition to the ASF are:
+
+* To establish a new home for an already fully functioning project in a
setting which is welcoming for multiple vendors and individuals alike.
+* While many Grails contributors have a long-time open source history and
experience, not all are familiar with ASF governance practices. So, another
goal will be to mentor and educate those involved if/as needed.
+* As Grails has evolved, it has been split into small manageable pieces. This
has made it easy to release parts individually but has made it harder to move
the entire ecosystem across large changes (e.g. there have sometimes been
circular dependencies). Also, because of Grails’ longevity, there is a rich
ecosystem of plugins, but numerous plugins are out of date. So, a goal of this
transition will be to bring across a fresh version of all of the critical
Grails plugins. This has been dub [...]
+* Since Spring Boot is now released every 6 months with only 12 months of OSS
support per release, a Grails release will need to be released within 6 months
of each Boot release to maintain Spring OSS support. Given the need for more
frequent Grails releases due to Spring Boot, we will make an effort to reduce
complexity and technical debt such that Grails releases take less effort with
each release.
+
+== Current Status
+
+Currently, Grails provides a fully functional implementation licensed under
ALv2. The project home is at https://grails.org/ and the majority of
development is coordinated under various repos on GitHub at
https://github.com/grails/. The project sports a very mature documentation and
ecosystem of projects leveraging it.
+
+== Meritocracy
+
+Grails, up to now, has been run by a few core project members with a lot of
contributions coming from a wide community of participants in the project.
+We want to expand our diverse developer and user community and run the Grails
project in the Apache way clearly signaling not only the licensing, but also
the governance choice.
+
+Users and new contributors will be treated with respect and welcomed; they
will earn merit in the project by providing quality patches and support that
move the project forward.
+Those with a proven support and quality patch track record will be encouraged
to become committers.
+
+== Community
+
+There are just a few core team members with over a hundred contributors to the
project. If Grails is accepted into the ASF, transitioning the community to
embrace the Apache Way of governance would be a primary initial goal. We would
solicit major existing contributors to become committers on the project from
the get go.
+
+== Core Developers
+Core developers include folks who are extremely skilled in working in the
openly governed communities on code bases licensed under the ALv2. The core
developers are NOT currently affiliated with the ASF, although quite a few
contributors are.
+
+== Alignment
+
+Grails is highly aligned with the Groovy project with many of the DSLs used
within Grails being drivers for the requirements of DSL support within Groovy.
+The Groovy subproject Geb is often used for testing with Grails and Grails
provides
+special Geb support. Grails also makes use of about a dozen ASF artifacts from
other ASF projects (commons, logging, etc.)
+
+== Known Risks
+
+As noted above, development has been sponsored mostly by a single company and
coordinated mostly by the core team so far.
+For Grails to fully transition to an "Apache Way" governance model it needs to
start embracing the meritocracy-centric way of growing the community of
contributors while balancing it with the needs for extreme stability and
coherency of the core implementation.
+
+== Orphaned products
+
+The community proposing Grails for incubation is an active open source
community. The primary vendor until now has been Object Computing (and for
about a year, a related spin-off Unity Foundation). Currently Object Computing
has paused significant new investment in the Grails project, but the size and
diversity of the community should guarantee against the project being orphaned.
+
+== Inexperience with Open Source
+
+The majority of the proposers have day jobs that have them working near
full-time on open source projects. Grails to date has always been developed as
an open source project.
+
+== Homogeneous Developers
+
+Now that Object Computing is pausing significant new investment, the initial
group of committers is expected to be heterogeneous when it comes to corporate
affiliations. The Grails community is also extremely diverse in terms of
geography and backgrounds of developers.
+
+== Reliance on Salaried Developers
+
+Most of the contributors are paid to work in the Java ecosystem. While we
might wander from our current employers, we probably won’t go far from the Java
family tree.
+
+== Relationships with Other Apache Products
+
+Grails relies fundamentally on Apache Groovy. It also depends on a number of
other ASF projects including commons, ant, tomcat, and maven. Various Grails
plugins (many are optional) also have ASF projects as dependencies.
+
+== An Excessive Fascination with the Apache Brand
+
+While we think that the Apache ‘branding’ will add strength to our project’s
desire for ‘neutrality’, we have no plans for making excessive use of the
Apache brand.
+
+== Documentation
+
+See https://docs.grails.org/6.2.0/guide/single.html for the current state of
the Grails documentation.
+A mature project website is also available at https://grails.org/.
+
+== Initial Source
+
+Initial source is available on GitHub under the ALv2
+
+[cols="5,5"]
+|===
+| https://github.com/grails/grails-core | The Grails Web Application Framework
+| https://github.com/grails/grails-gradle-plugin | Gradle build plugin used by
many projects and end Grails applications
+| https://github.com/grails/grails-static-website | Static version of the
grails.org website
+| https://github.com/grails/grails-doc | Documentation Project For The Grails
Web Application Framework
+| https://github.com/grails/grails-forge | This is Grails project creator.
Grails projects may be created using the browser interface, Command Line, or
via CURL.
+| https://github.com/grails/grails-forge-ui | React.js app for start.grails.org
+| https://github.com/grails/scaffolding | Scaffolding plugin for Grails®
framework
+| https://github.com/gpc/fields | the fields plugin used by scaffolding and
also independently. A core plugin for grails web projects
+| https://github.com/grails/grails-angularjs-scaffolding | A plugin for
generating client side assets based on domain
+| https://github.com/grails/grails-gsp | GSP (Grails Server Pages) - A
server-side view rendering technology based on Groovy
+| https://github.com/grails/grails-views | Additional View Technologies for
Grails
+| https://github.com/grails/grails-boot | Grails integrations with Spring Boot
+| https://github.com/grails/grails-async | Repository for Grails async plugins
+| https://github.com/grails/grails-data-mapping | GORM - Groovy Object Mapping
+| https://github.com/grails/gorm-hibernate5 | GORM for Hibernate 5
+| https://github.com/grails/gorm-hibernate6 | GORM for Hibernate 6
+| https://github.com/grails/gorm-mongodb | GORM for MongoDB
+| https://github.com/grails/gorm-neo4j | GORM for Neo4j
+| https://github.com/grails/gorm-graphql | An automatic GraphQL schema
generator for GORM
+| https://github.com/grails/grails-database-migration | Grails® framework
Database Migration Plugin
+| https://github.com/grails/gorm-docs | Documentation for GORM
+| https://github.com/grails/grails-rxgorm-docs | Documentation for RxGORM
https://gorm.grails.org/latest/rx/manual/index.html
+| https://github.com/grails/grails-spring-security-core | Grails Spring
Security Core Plugin
+| https://github.com/grails/grails-spring-security-rest | Grails plugin to
implement token-based, RESTful authentication using Spring Security
+| https://github.com/grails/grails-spring-security-ui | The Spring Security UI
plugin provides CRUD screens and other user management workflows.
+| https://github.com/grails/grails-spring-security-oauth2 | Spring security
Oauth Grails 3 plugin
+| https://github.com/grails/grails-spring-security-acl
+| https://github.com/grails/grails-spring-security-cas
+| https://github.com/grails-plugins/grails-spring-security-ldap
+| https://github.com/grails/grails-testing-support | Trait-based testing
library for Grails framework
+| https://github.com/grails/geb | Geb Functional Testing for Grails® framework
+| https://github.com/grails/grails-functional-tests | Functional Test
Application for Grails 3
+| https://github.com/grails/grails-plugin-converters | Legacy converters plugin
+| https://github.com/grails/grails-plugins-metadata | grails-plugins.json used
by https://grails.org/plugins.html
+| https://github.com/grails/grails-redis | Redis plugin for Grails
+| https://github.com/grails/grails-cache | Grails Cache Plugin
+| https://github.com/grails/elasticsearch-grails-plugin | The Elasticsearch
Grails plugin
+| https://github.com/grails/grails-quartz | This project provides integration
of the Quartz scheduling framework into the Grails Framework
+| https://github.com/grails/github-actions | custom github actions for
workflows
+| https://github.com/grails/github-pages-deploy-action | GitHub action for
building a project and deploying it to GitHub pages.
+| https://github.com/grails/grails-wrapper | Grails Wrapper
+| https://github.com/grails/grails-profiles
+| https://github.com/grails-profiles/base
+| https://github.com/grails-profiles/web
+| https://github.com/grails-profiles/profile
+| https://github.com/grails-profiles/plugin
+| https://github.com/grails-profiles/web-plugin
+| https://github.com/grails-profiles/rest-api
+| https://github.com/grails-profiles/rest-api-plugin
+| https://github.com/grails-profiles/vue
+| https://github.com/grails-profiles/react
+| https://github.com/grails-profiles/angular
+| https://github.com/grails-profiles-tests/web
+| https://github.com/grails-profiles-tests/plugin
+| https://github.com/grails-profiles-tests/web-plugin
+| https://github.com/grails-profiles-tests/rest-api
+| https://github.com/grails-profiles-tests/rest-api-plugin
+| https://github.com/grails-profiles-tests/vue
+| https://github.com/grails-profiles-tests/react
+| https://github.com/grails-profiles-tests/angular
+|===
+
+== Required Resources
+
+=== Mailing lists
+
+----
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
+----
+
+=== Git Repository
+
+See Initial Source Above
+
+=== Issue Tracking
+
+GitHub Issues
+
+=== Other Resources
+
+Means of setting up regular builds for Grails on builds.apache.org
+
+== Initial Committers
+
+* Søren Berg Glasius (ASF: sbglasius)
+* James Fredley ([email protected])
+* Mattias Reichel (GitHub: matrei)
+* Sergio del Amo Caballero (ASF: sdelamo)
+* James Daugherty ([email protected])
+* Scott Murphy (GitHub: codeconsole)
+* David Estes ([email protected])
+* Brian Koehmstedt ([email protected])
+* Graeme Rocher (ASF: grocher)
+* Puneet Behl ([email protected])
+* Paul King (ASF: paulk)
+
+== Champion
+
+Paul King
+
+== Nominated Mentors
+
+Paul King
+Søren Berg Glasius
+
+== Sponsoring Entity
+
+We would like to propose the Groovy project to sponsor the incubation of
Grails.