Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 1 addition & 9 deletions .github/renovate.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
},
{
"matchPackagePatterns": [
"^org\\.codehaus\\.groovy"
"^org\\.apache\\.groovy"
],
"groupName": "groovy monorepo"
},
Expand All @@ -31,14 +31,6 @@
],
"groupName": "apache-tomcat monorepo"
},
{
"matchPackageNames": [
"org.grails:grails-testing-support",
"org.grails:grails-web-testing-support",
"org.grails:grails-gorm-testing-support"
],
"groupName": "grails-testing-support monorepo"
},
{
"matchPackagePatterns": [
"^org\\.apache\\.maven\\.resolver"
Expand Down
16 changes: 9 additions & 7 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
with:
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
develocity-access-key: ${{ secrets.GRAILS_DEVELOCITY_ACCESS_KEY }}
- name: "🔨 Build project"
id: build
run: ./gradlew build assemble groovydoc -PskipFunctionalTests --continue
Expand All @@ -74,7 +74,7 @@ jobs:
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
with:
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
develocity-access-key: ${{ secrets.GRAILS_DEVELOCITY_ACCESS_KEY }}
- name: "🔨 Functional Tests"
run: ./gradlew build -PonlyFunctionalTests
publish:
Expand All @@ -94,12 +94,14 @@ jobs:
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
with:
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
- name: "📤 Publish Snapshot Artifacts to Artifactory (repo.grails.org/libs-snapshot-local)"
develocity-access-key: ${{ secrets.GRAILS_DEVELOCITY_ACCESS_KEY }}
- name: "📤 Publish Snapshot Artifacts"
id: publish
env:
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
GRADLE_PUBLISH_RELEASE: 'false'
MAVEN_PUBLISH_URL: 'https://repository.apache.org/content/repositories/snapshots'
MAVEN_PUBLISH_USERNAME: ${{ secrets.NEXUS_PUBLISH_USERNAME }}
MAVEN_PUBLISH_PASSWORD: ${{ secrets.NEXUS_PUBLISH_PASSWORD }}
run: >
./gradlew
-Dorg.gradle.internal.publish.checksums.insecure=true
Expand All @@ -121,7 +123,7 @@ jobs:
- name: "📡 Invoke the grails-doc release workflow"
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GH_TOKEN }}
github-token: ${{ secrets.GRAILS_GH_TOKEN }}
script: |
try {
const result = await github.rest.actions.createWorkflowDispatch({
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/groovy-joint-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jobs:
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
with:
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
develocity-access-key: ${{ secrets.GRAILS_DEVELOCITY_ACCESS_KEY }}
- name: "📝 Store Groovy version to use when building Grails"
id: groovy-version
run: |
Expand All @@ -67,7 +67,7 @@ jobs:
id: develocity-conf-2
run: |
echo "VALUE<<EOF" >> $GITHUB_OUTPUT
echo "def isAuthenticated = System.getenv('DEVELOCITY_ACCESS_KEY') != null" >> $GITHUB_OUTPUT
echo "def isAuthenticated = System.getenv('GRAILS_DEVELOCITY_ACCESS_KEY ') != null" >> $GITHUB_OUTPUT
echo "develocity {" >> $GITHUB_OUTPUT
echo " server = 'https://ge.grails.org'" >> $GITHUB_OUTPUT
echo " buildScan {" >> $GITHUB_OUTPUT
Expand Down Expand Up @@ -116,7 +116,7 @@ jobs:
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
with:
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
develocity-access-key: ${{ secrets.GRAILS_DEVELOCITY_ACCESS_KEY }}
- name: "🗄️ Restore local Maven repository from cache"
uses: actions/cache@v4
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pre-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,7 @@ jobs:
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
with:
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
develocity-access-key: ${{ secrets.GRAILS_DEVELOCITY_ACCESS_KEY }}
- name: "⚙ Set version to ${{ github.event.inputs.targetVersion }}"
run: |
sed -i "s/^projectVersion.*$/projectVersion\=${{ github.event.inputs.targetVersion }}/" gradle.properties
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -430,7 +430,7 @@ jobs:
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
with:
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
develocity-access-key: ${{ secrets.GRAILS_DEVELOCITY_ACCESS_KEY }}
- name: "📝 Store the target branch"
id: extract_branch
run: |
Expand Down Expand Up @@ -500,7 +500,7 @@ jobs:
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
with:
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
develocity-access-key: ${{ secrets.GRAILS_DEVELOCITY_ACCESS_KEY }}
- name: "🚪 Nexus Staging Close And Release"
env:
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/retry-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
with:
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
develocity-access-key: ${{ secrets.GRAILS_DEVELOCITY_ACCESS_KEY }}
- name: "📝 Store the target branch"
id: extract_branch
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sdkman.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
- name: "🐘 Setup Gradle"
uses: gradle/actions/setup-gradle@v4
with:
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
develocity-access-key: ${{ secrets.GRAILS_DEVELOCITY_ACCESS_KEY }}
- name: "🏆 Grails SDK Minor Release"
env:
GVM_SDKVENDOR_KEY: ${{ secrets.GVM_SDKVENDOR_KEY }}
Expand Down
27 changes: 17 additions & 10 deletions RENAME.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,24 @@ As part of the move to the Apache Software Foundation, the grails artifacts must
The Grails developers have decided on several rules regarding packaging. These rules are enumerated here:

1. For Grails applications, the group used should always be `org.apache.grails`.
2. Any group that is further nested is an implementation detail of Grails. While users can choose to override them, they are typically not meant to be included in a Grails app directly.
3. Testing artifacts for Grails applications / plugins, will have the prefix `grails-testing-support-` to remind developers these artifacts should not typically be included in the `implementation` scope of their application.
2. Any group that is further nested is an implementation detail of Grails. While users can choose to override them, they
are typically not meant to be included in a Grails app directly.
3. Testing artifacts for Grails applications / plugins, will have the prefix `grails-testing-support-` to remind
developers these artifacts should not typically be included in the `implementation` scope of their application.
4. Gradle plugins will be consolidated under a single [repository](https://github.com/apache/grails-gradle-plugin).
5. As part of the gradle plugin consolidation, we adopt consistent names and remove `views-` from the views gradle plugins. Instead they will match the existing gradle plugin naming pattern - i.e. `grails-gsp`, `grails-markup`, etc.
5. There will be one artifact published that can be included in either a `buildSrc/build.gradle` or a `buildScript` to import all Grails gradle plugins. That plugin will be `org.apache.grails:grails-gradle-plugins`.
5. As part of the gradle plugin consolidation, we adopt consistent names and remove `views-` from the views gradle
plugins. Instead they will match the existing gradle plugin naming pattern - i.e. `grails-gsp`, `grails-markup`, etc.
5. There will be one artifact published that can be included in either a `buildSrc/build.gradle` or a `buildScript` to
import all Grails gradle plugins. That plugin will be `org.apache.grails:grails-gradle-plugins`.
6. Grails artifacts should be prefixed with `grails-` with the exception of profiles.
7. Profiles will not use a `grails-` prefix because they are not distributed with an application.
8. Because there are many modern JSON implementations, and Grails may choose to implement them in the future, we will refer to our existing `.gson` implementation as `gson` instead of `json`.
8. Because there are many modern JSON implementations, and Grails may choose to implement them in the future, we will
refer to our existing `.gson` implementation as `gson` instead of `json`.
9. We have appended `-cli` where a CLI is being provided.
10. Several artifacts have been renamed for clarity. In general we use the suffix `-core` to signify a base project and drop the suffix on the package that the end user will use.
11. Package names, artifact ids, and group ids will use the plural form. Implementing classes will use the singular form.
10. Several artifacts have been renamed for clarity. In general we use the suffix `-core` to signify a base project and
drop the suffix on the package that the end user will use.
11. Package names, artifact ids, and group ids will use the plural form. Implementing classes will use the singular
form.
* For example: `org.apache.grails.events:grails-events` with the `EventBusPlugin`

## Reference Table
Expand Down Expand Up @@ -72,7 +79,7 @@ Below is a reference of all migrated artifacts - both their old and new name.
| org.grails | grails-dependencies | org.apache.grails | grails-dependencies | | | grails-core |
| org.grails | grails-docs | org.apache.grails | grails-docs-core | | | grails-core |
| org.grails | grails-plugin-domain-class | org.apache.grails | grails-domain-class | | | grails-core |
| org.grails | grails-encoder | org.apache.grails.views | grails-encoder | | | grails-core |
| org.grails | grails-encoder | org.apache.grails.web | grails-encoder | | | grails-core |
| org.grails.plugins | events | org.apache.grails | grails-events | | | grails-core |
| org.grails | grails-events | org.apache.grails.events | grails-events-core | | | grails-core |
| org.grails | grails-events-compat | org.apache.grails.events | grails-events-compat | | | grails-core |
Expand Down Expand Up @@ -119,8 +126,8 @@ Below is a reference of all migrated artifacts - both their old and new name.
| org.grails.plugins | views-json | org.apache.grails.views | grails-views-gson | | | grails-views |
| org.grails | views-json-testing-support | org.apache.grails | grails-testing-support-views-gson | | | grails-views |
| org.grails | views-markup | org.apache.grails | grails-views-markup | | | grails-views |
| org.grails | grails-web | org.apache.grails.web | grails-web | | | grails-core |
| org.grails | grails-web-boot | org.apache.grails.web | grails-web-boot | | | grails-core |
| org.grails | grails-web | org.apache.grails.web | grails-web-core | | | grails-core |
| org.grails | grails-web-boot | org.apache.grails | grails-web-boot | | | grails-core |
| org.grails | grails-web-common | org.apache.grails.web | grails-web-common | | | grails-core |
| org.grails | grails-web-databinding | org.apache.grails.web | grails-web-databinding | | | grails-core |
| org.grails | grails-web-gsp | org.apache.grails.views | grails-web-gsp | | | grails-views |
Expand Down
10 changes: 5 additions & 5 deletions gradle/assemble-root-config.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ tasks.register('collectCliDependencies') {
doLast {
def projectNames = subprojects*.name
def seen = []
project(':grails-shell').configurations.runtimeClasspath.with {
project(':grails-shell-cli').configurations.runtimeClasspath.with {
for (artifact in resolvedConfiguration.resolvedArtifacts) {
if (artifact in seen) continue
seen << artifact
Expand Down Expand Up @@ -39,8 +39,8 @@ tasks.register('grailsCreateStartScripts', GrailsCreateStartScripts) {
applicationName = 'grails'
defaultJvmOpts = ['-XX:+TieredCompilation', '-XX:TieredStopAtLevel=1', '-XX:CICompilerCount=3']
outputDir = rootProject.layout.projectDirectory.dir('bin').asFile
classpath = rootProject.childProjects['grails-shell'].configurations.runtimeClasspath
projectArtifacts = rootProject.childProjects['grails-shell'].tasks.named('jar').get().outputs.files.collect { "dist/${it.name}" } as List<String>
classpath = rootProject.childProjects['grails-shell-cli'].configurations.runtimeClasspath
projectArtifacts = rootProject.childProjects['grails-shell-cli'].tasks.named('jar').get().outputs.files.collect { "dist/${it.name}" } as List<String>
doLast {
ant.replace(file: rootProject.layout.projectDirectory.file('bin/grails').asFile, token: 'media/gradle.icns', value: 'media/icons/grails.icns')
ant.chmod(file: rootProject.layout.projectDirectory.file('bin/grails').asFile, perm: 'ugo+rx')
Expand All @@ -54,7 +54,7 @@ class GrailsCreateStartScripts extends CreateStartScripts {

@TaskAction
void generate() {
Project grailsShellProject = project.rootProject.childProjects['grails-shell']
Project grailsShellProject = project.rootProject.childProjects['grails-shell-cli']
def unixStartScriptGenerator = new UnixStartScriptGenerator()
unixStartScriptGenerator.template = grailsShellProject.resources.text.fromFile('src/main/resources/unixStartScript.txt')
def generator = new StartScriptGenerator(unixStartScriptGenerator, new WindowsStartScriptGenerator())
Expand All @@ -66,7 +66,7 @@ class GrailsCreateStartScripts extends CreateStartScripts {
generator.classpath = projectArtifacts + getClasspath().resolvedConfiguration.resolvedArtifacts.collect { artifact ->
def dependency = artifact.moduleVersion.id
String installedFile = "lib/$dependency.group/$dependency.name/jars/$artifact.file.name"
if (dependency.group == 'org.grails' && !project.file(installedFile).exists()) {
if (dependency.group == 'org.apache.grails' && !project.file(installedFile).exists()) {
installedFile = "dist/$artifact.file.name"
}
installedFile
Expand Down
10 changes: 0 additions & 10 deletions gradle/publish-config.gradle
Original file line number Diff line number Diff line change
@@ -1,15 +1,5 @@
import org.grails.gradle.plugin.publishing.GrailsPublishExtension

if (project.hasProperty('mavenSnapshotPublishUrl')) {
ext.set('mavenPublishUrl', property('mavenSnapshotPublishUrl'))
logger.lifecycle(
'Configuring {}:{} snapshot publish repo: {}',
group,
findProperty('pomArtifactId') ?: name,
mavenPublishUrl
)
}

extensions.configure(GrailsPublishExtension) {
// Explicit `it` is required here
it.artifactId = findProperty('pomArtifactId') ?: project.name
Expand Down
38 changes: 19 additions & 19 deletions gradle/publish-root-config.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,18 @@ def publishedProjects = [
'grails-async-rxjava3',
//'grails-bom', // Grails BOM has its own publishing
'grails-bootstrap',
'grails-codecs-core',
'grails-codecs',
'grails-console',
'grails-controllers',
'grails-converters',
'grails-core',
'grails-databinding-core',
'grails-databinding',
'grails-datasource',
'grails-dependencies',
'grails-docs',
'grails-docs-core',
'grails-domain-class',
'grails-encoder',
'grails-events-compat',
'grails-events-core',
Expand All @@ -28,27 +34,21 @@ def publishedProjects = [
'grails-events-rxjava2',
'grails-events-rxjava3',
'grails-events-spring',
'grails-events-transform',
'grails-events-transforms',
'grails-gradle-model',
'grails-i18n',
'grails-interceptors',
'grails-logging',
'grails-plugin-codecs',
'grails-plugin-controllers',
'grails-plugin-converters',
'grails-plugin-databinding',
'grails-plugin-datasource',
'grails-plugin-domain-class',
'grails-plugin-interceptors',
'grails-plugin-i18n',
'grails-plugin-mimetypes',
'grails-plugin-rest',
'grails-plugin-services',
'grails-plugin-url-mappings',
'grails-plugin-validation',
'grails-shell',
'grails-mimetypes',
'grails-rest-transforms',
'grails-services',
'grails-shell-cli',
'grails-spring',
'grails-test',
'grails-testing-support',
'grails-web',
'grails-test-core',
'grails-testing-support-core',
'grails-url-mappings',
'grails-validation',
'grails-web-core',
'grails-web-boot',
'grails-web-common',
'grails-web-databinding',
Expand Down
6 changes: 1 addition & 5 deletions grails-async/core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,7 @@ plugins {
}

version = projectVersion
group = 'org.grails'

ext {
pomArtifactId = 'grails-async'
}
group = 'org.apache.grails.async'

dependencies {
implementation platform(project(':grails-bom'))
Expand Down
2 changes: 1 addition & 1 deletion grails-async/gpars/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ plugins {
}

version = projectVersion
group = 'org.grails'
group = 'org.apache.grails.async'

dependencies {
implementation platform(project(':grails-bom'))
Expand Down
Loading
Loading