Skip to content

Commit 79ceeeb

Browse files
authored
Merge pull request #15274 from apache/authorship-changes
Moving to a shared author/developer list
2 parents 712a1c0 + d184690 commit 79ceeeb

File tree

58 files changed

+1315
-273
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+1315
-273
lines changed

.github/workflows/release.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,7 @@ jobs:
285285
grails
286286
-x 'grails/.git/*'
287287
-x 'grails/.github/*'
288+
-x 'grails/.mailmap'
288289
- name: "🔐 Set up GPG" # use env var to not expose the key
289290
env:
290291
GPG_KEY: ${{ secrets.GRAILS_GPG_KEY }}

.mailmap

Lines changed: 933 additions & 0 deletions
Large diffs are not rendered by default.

build-logic/plugins/src/main/groovy/org/apache/grails/buildsrc/PublishPlugin.groovy

Lines changed: 151 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import org.gradle.api.Task
2929
import org.gradle.api.file.CopySpec
3030
import org.gradle.api.publish.PublishingExtension
3131
import org.gradle.api.publish.maven.MavenArtifact
32+
import org.gradle.api.publish.maven.MavenPomDeveloper
3233
import org.gradle.api.publish.maven.MavenPublication
3334
import org.gradle.api.publish.maven.tasks.AbstractPublishToMaven
3435
import org.gradle.api.tasks.TaskProvider
@@ -172,7 +173,6 @@ class PublishPlugin implements Plugin<Project> {
172173

173174
private static void configureGrailsPublish(Project project) {
174175
project.extensions.configure(GrailsPublishExtension) {
175-
// Explicit `it` is required here
176176
it.artifactId.set(project.provider { lookupProperty(project, 'pomArtifactId', project.name) })
177177
it.githubSlug.set(project.provider { lookupProperty(project, 'githubSlug', 'apache/grails-core')})
178178
it.license.name = 'Apache-2.0'
@@ -182,7 +182,7 @@ class PublishPlugin implements Plugin<Project> {
182182
it.name.set('Apache Software Foundation')
183183
it.url.set('https://apache.org/')
184184
}
185-
it.developers.set(project.provider { lookupProperty(project, 'pomDevelopers', determineDevelopers(project))})
185+
it.developers.set(createDeveloperList(project))
186186
it.pomCustomization.set(project.provider { lookupProperty(project, 'pomCustomization') as Closure })
187187
it.publishTestSources.set(project.provider { lookupProperty(project, 'pomPublishTestSources', false)})
188188
it.testRepositoryPath.set(project.provider { shouldSkipJavaComponent(project) ? null : findRootGrailsCoreDir(project).dir('build/local-maven')})
@@ -191,6 +191,155 @@ class PublishPlugin implements Plugin<Project> {
191191
}
192192
}
193193

194+
private static List<MavenPomDeveloper> createDeveloperList(Project project) {
195+
// Note: id is typically the github user id if the user has a github account
196+
// Note: these lists are sorted alphabetically by section
197+
[
198+
// Founders
199+
founder('devijvers', 'Steven Devijver', project),
200+
founder('dierk', 'Dierk König', project),
201+
founder('glaforge', 'Guillaume LaForge', project),
202+
founder('graemerocher', 'Graeme Rocher', project),
203+
// Developers
204+
// - `active` contributors (should have an ASF account)
205+
// - supports the current framework
206+
developer('bkoehm','Brian Koehmstedt', project),
207+
developer('borinquenkid','Walter B Duque de Estrada', project),
208+
developer('codeconsole', 'Scott Murphy Heiberg', project),
209+
developer('davydotcom','David Estes', project),
210+
developer('jamesfredley', 'James Fredley', project),
211+
developer('jdaugherty', 'James Daugherty', project),
212+
developer('jpammer', 'Jonas Pammer', project),
213+
developer('lhotari', 'Lari Hotari', project),
214+
developer('matrei', 'Mattias Reichel', project),
215+
developer('paulk','Paul King', project),
216+
developer('sbglasius', 'Søren Berg Glasius', project),
217+
developer('sdelamo', 'Sergio del Amo', project),
218+
developer('tbrasmussen', 'Thomas Rasmussen', project),
219+
// Past Developers
220+
// - non-active, no contributions across mailing lists, commits, or grails processes in the last 12 months
221+
// - contributors in the pom previously
222+
// - significant contributors (i.e. they were involved in Grails Development or a member of a company that was)
223+
emeritus('ColinHarrington','Colin Harrington', project),
224+
emeritus('JasonTypesCodes', 'Jason Schindler', project),
225+
emeritus('ZacharyKlein','Zachary Klein', project),
226+
emeritus('aitortxu','Aitor Alzola', project),
227+
emeritus('alexanderzeillinger','Alexander Zeillinger', project),
228+
emeritus('alkemist', 'Luke Daley', project),
229+
emeritus('alvarosanchez','Álvaro Sánchez-Mariscal', project),
230+
emeritus('anshbansal','Aseem Bansal', project),
231+
emeritus('basecamp', 'Joshua Burnett', project),
232+
emeritus('bluesliverx','Brian Saville', project),
233+
emeritus('bobbywarner', 'Bobby Warner', project),
234+
emeritus('burtbeckwith', 'Burt Beckwith', project),
235+
emeritus('davidkron', 'David Kron', project),
236+
emeritus('delight', 'Konstantinos Kostarellis', project),
237+
emeritus('erawat','Erawat Chamanont', project),
238+
emeritus('erichelgeson','Eric Helgeson', project),
239+
emeritus('fordguo','Ford Guo', project),
240+
emeritus('houbie','Ivo Houbrechts', project),
241+
emeritus('jameskleeh', 'James Kleeh', project),
242+
emeritus('jbrisbin','Jon Brisbin', project),
243+
emeritus('jeffscottbrown', 'Jeff Brown', project),
244+
emeritus('jrudolph','Jason Rudolph', project),
245+
emeritus('k4zuki', 'Kazuki Yamamoto', project),
246+
emeritus('leebutts','Lee Butts', project),
247+
emeritus('longwa','Aaron Long', project),
248+
emeritus('ilopmar', 'Iván López', project),
249+
emeritus('marceloverdijk','Marcel Overdijk', project),
250+
emeritus('marcpalmer', 'Marc Palmer', project),
251+
emeritus('mpccolorado','Martín Caballero', project),
252+
emeritus('nebolsin','Sergey Nebolsin', project),
253+
emeritus('niravassar','Nirav Assar', project),
254+
emeritus('nobeans','Yasuharu Nakano', project),
255+
emeritus('[email protected]', 'Paras Lakhani', project),
256+
emeritus('pledbrook', 'Peter Ledbrook', project),
257+
emeritus('puneetbehl', 'Puneet Behl', project),
258+
emeritus('rlovtangen','Ronny Løvtangen', project),
259+
emeritus('robertoschwald', 'Robert Oschwald', project),
260+
emeritus('robfletcher', 'Rob Fletcher', project),
261+
emeritus('rstepanenko','Roman Stepanenko', project),
262+
emeritus('rvanderwerf','Ryan Vanderwerf', project),
263+
emeritus('sarmbruster', 'Stefan Armbruster', project),
264+
emeritus('smaldini','Stephane Maldini', project),
265+
emeritus('tkvw','Dennie de Lange', project),
266+
emeritus('tomwidmer','Tom Widmer', project),
267+
emeritus('yamkazu','Kazuki Yamamoto', project),
268+
emeritus('zanthrash','Zan Thrash', project),
269+
emeritus('ziegfried', 'Siegfried Puchbauer', project),
270+
// Contributors
271+
// - not full time supporting the project and historically were not considered on the Grails Team or an associated project
272+
// - if any of these members continue to contribute they will become future developers
273+
contributor('B5A7', 'Brad', project),
274+
contributor('JudeRV', '[email protected]', project),
275+
contributor('acanby', 'Andrew Canby', project),
276+
contributor('aeisenberg', 'Andrew Eisenberg', project),
277+
contributor('and-dmitry', 'Dmitry Andreychuk', project),
278+
contributor('andersaaberg', 'Anders Aaberg', project),
279+
contributor('aulea', 'Alar Aule', project),
280+
contributor('beckje01', 'Jeff Beck', project),
281+
contributor('benrhine', 'Ben Rhine', project),
282+
contributor('bodiam', 'Erik Pragt', project),
283+
contributor('ctoestreich', 'Christian Oestreich', project),
284+
contributor('danveloper', 'Dan Woods', project),
285+
contributor('ddelponte', 'Dean Del Ponte', project),
286+
contributor('denisfalqueto', 'Denis Falqueto', project),
287+
contributor('dmurat', 'Damir Murat', project),
288+
contributor('doelleri', 'Donald Oellerich', project),
289+
contributor('domurtag', 'Dónal Murtagh', project),
290+
contributor('dpcasady', 'Danny Casady', project),
291+
contributor('dtanner', 'Dan Tanner', project),
292+
contributor('gsartori','Gianluca Sartori', project),
293+
contributor('hansd', 'Hans Dockter', project),
294+
contributor('hauner', 'Martin Hauner', project),
295+
contributor('jamesdh', 'James Hardwick', project),
296+
contributor('jccorp', 'Javier Camacho', project),
297+
contributor('joemccall86', 'Joe McCall', project),
298+
contributor('jprinet', 'Jérôme Prinet', project),
299+
contributor('jwagenleitner', 'John Wagenleitner', project),
300+
contributor('lucastex', 'Lucas Frare Teixeira', project),
301+
contributor('mburak', 'Matias Burak', project),
302+
contributor('micfra', 'Michael Frankfurter', project),
303+
contributor('mikea', 'Mike Aizatsky', project),
304+
contributor('mjcmatrix', 'Matt Carter', project),
305+
contributor('olliefreeman', 'Ollie Freeman', project),
306+
contributor('rainboyan', 'Michael Yan', project),
307+
contributor('snimavat', 'Sudhir Nimavat', project),
308+
contributor('sukrit007', 'Sukrit Khera', project),
309+
contributor('tcrossland', 'Tom Crossland', project),
310+
contributor('tednaleid', 'Ted Naleid', project),
311+
contributor('tomaslin', 'Tomás Lin', project),
312+
contributor('uurien', 'Ugaitz Urien', project),
313+
contributor('vinod2800', 'Vinodkumar Nemagouda', project),
314+
contributor('wololock', 'Szymon Stepniak', project),
315+
contributor('zyro23', 'Zyro', project),
316+
]
317+
}
318+
319+
private static MavenPomDeveloper founder(String id, String name, Project project) {
320+
createPomEntry('Founder', id, name, project)
321+
}
322+
323+
private static MavenPomDeveloper developer(String id, String name, Project project) {
324+
createPomEntry('Developer', id, name, project)
325+
}
326+
327+
private static MavenPomDeveloper emeritus(String id, String name, Project project) {
328+
createPomEntry('Developer Emeritus', id, name, project)
329+
}
330+
331+
private static MavenPomDeveloper contributor(String id, String name, Project project) {
332+
createPomEntry('Contributor', id, name, project)
333+
}
334+
335+
private static MavenPomDeveloper createPomEntry(String role, String id, String name, Project project) {
336+
project.objects.newInstance(MavenPomDeveloper).tap {
337+
it.roles.add(role)
338+
it.id.set(id)
339+
it.name.set(name)
340+
}
341+
}
342+
194343
private static void ensureJarContainsASFFiles(Project project) {
195344
project.afterEvaluate {
196345
if (shouldSkipJavaComponent(project)) {

build-logic/settings.gradle

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,42 @@
1717
* under the License.
1818
*/
1919

20+
pluginManagement {
21+
repositories {
22+
// because our publish plugin uses other plugins, those dependencies have to be resolvable
23+
// mavenLocal()
24+
mavenCentral()
25+
gradlePluginPortal()
26+
maven {
27+
url = 'https://repository.apache.org/content/groups/snapshots'
28+
content {
29+
includeVersionByRegex('org[.]apache[.]grails[.]gradle.*', '.*', '.*-SNAPSHOT')
30+
}
31+
mavenContent {
32+
snapshotsOnly()
33+
}
34+
}
35+
maven {
36+
url = 'https://central.sonatype.com/repository/maven-snapshots'
37+
content {
38+
includeVersionByRegex('cloud[.]wondrify.*', '.*', '.*-SNAPSHOT')
39+
}
40+
mavenContent {
41+
snapshotsOnly()
42+
}
43+
}
44+
maven {
45+
url = 'https://repository.apache.org/content/groups/staging'
46+
content {
47+
includeModuleByRegex('org[.]apache[.]grails[.]gradle', 'grails-publish')
48+
}
49+
mavenContent {
50+
releasesOnly()
51+
}
52+
}
53+
}
54+
}
55+
2056
plugins {
2157
id 'com.gradle.develocity' version '4.1.1'
2258
id 'com.gradle.common-custom-user-data-gradle-plugin' version '2.3'

buildSrc/build.gradle

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -24,37 +24,6 @@ plugins {
2424

2525
compileJava.options.release = javaVersion.toString().toInteger()
2626

27-
repositories {
28-
// mavenLocal()
29-
maven {
30-
url = 'https://repository.apache.org/content/groups/snapshots'
31-
content {
32-
includeVersionByRegex('org[.]apache[.](grails|groovy).*', '.*', '.*SNAPSHOT')
33-
}
34-
}
35-
maven { url = 'https://repo.grails.org/grails/restricted' }
36-
maven {
37-
url = 'https://central.sonatype.com/repository/maven-snapshots'
38-
content {
39-
includeVersionByRegex('cloud[.]wondrify.*', '.*', '.*-SNAPSHOT')
40-
}
41-
mavenContent {
42-
snapshotsOnly()
43-
}
44-
}
45-
mavenCentral()
46-
gradlePluginPortal()
47-
maven {
48-
url = 'https://repository.apache.org/content/groups/staging'
49-
content {
50-
includeModuleByRegex('org[.]apache[.]grails[.]gradle', 'grails-publish')
51-
}
52-
mavenContent {
53-
releasesOnly()
54-
}
55-
}
56-
}
57-
5827
dependencies {
5928
implementation platform("org.apache.grails:grails-gradle-bom:$projectVersion")
6029
implementation 'org.apache.grails.gradle:grails-publish'

buildSrc/settings.gradle

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,77 @@ pluginManagement {
2020
includeBuild('../build-logic') {
2121
name = 'build-logic-root'
2222
}
23+
repositories {
24+
// because our publish plugin uses other plugins, those dependencies have to be resolvable
25+
// mavenLocal()
26+
mavenCentral()
27+
gradlePluginPortal()
28+
maven {
29+
url = 'https://repository.apache.org/content/groups/snapshots'
30+
content {
31+
includeVersionByRegex('org[.]apache[.]grails[.]gradle.*', '.*', '.*-SNAPSHOT')
32+
}
33+
mavenContent {
34+
snapshotsOnly()
35+
}
36+
}
37+
maven {
38+
url = 'https://central.sonatype.com/repository/maven-snapshots'
39+
content {
40+
includeVersionByRegex('cloud[.]wondrify.*', '.*', '.*-SNAPSHOT')
41+
}
42+
mavenContent {
43+
snapshotsOnly()
44+
}
45+
}
46+
maven {
47+
url = 'https://repository.apache.org/content/groups/staging'
48+
content {
49+
includeModuleByRegex('org[.]apache[.]grails[.]gradle', 'grails-publish')
50+
}
51+
mavenContent {
52+
releasesOnly()
53+
}
54+
}
55+
}
2356
}
2457

2558
includeBuild('../build-logic') {
2659
name = 'build-logic-root'
2760
}
61+
62+
dependencyResolutionManagement {
63+
repositories {
64+
// mavenLocal()
65+
maven {
66+
url = 'https://repository.apache.org/content/groups/snapshots'
67+
content {
68+
includeVersionByRegex('org[.]apache[.](grails|groovy).*', '.*', '.*SNAPSHOT')
69+
}
70+
mavenContent {
71+
snapshotsOnly()
72+
}
73+
}
74+
maven { url = 'https://repo.grails.org/grails/restricted' }
75+
maven {
76+
url = 'https://central.sonatype.com/repository/maven-snapshots'
77+
content {
78+
includeVersionByRegex('cloud[.]wondrify.*', '.*', '.*-SNAPSHOT')
79+
}
80+
mavenContent {
81+
snapshotsOnly()
82+
}
83+
}
84+
mavenCentral()
85+
gradlePluginPortal()
86+
maven {
87+
url = 'https://repository.apache.org/content/groups/staging'
88+
content {
89+
includeModuleByRegex('org[.]apache[.]grails[.]gradle', 'grails-publish')
90+
}
91+
mavenContent {
92+
releasesOnly()
93+
}
94+
}
95+
}
96+
}

dependencies.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ ext {
3030
'commons-text.version' : '1.13.1',
3131
'directory-watcher.version' : '0.19.1',
3232
'gradle-spock.version' : '2.3-groovy-3.0',
33-
'grails-publish-plugin.version' : '0.0.3',
33+
'grails-publish-plugin.version' : '0.0.4-SNAPSHOT',
3434
'jansi.version' : '1.18',
3535
'javaparser-core.version' : '3.27.0',
3636
'jline.version' : '2.14.6',

gradle/rat-root-config.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ apply plugin: 'org.nosphere.apache.rat'
2020
tasks.named('rat') {
2121
def allExcludes = [
2222
'.asf.yaml', // ASF metadata for github integration excluded from src zip
23+
'.mailmap', // authorship mapping for git history, will not be included in src zip
2324
'CODE_OF_CONDUCT.md',
2425
'BUILD_DATE', // build artifact for storing the build date / verifying
2526
'CHECKSUMS', // build artifact for storing checksums for easy verification

grails-cache/build.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ group = 'org.apache.grails'
3232
ext {
3333
pomTitle = 'Grails Cache Plugin'
3434
pomDescription = 'Provides AST transformations for caching method calls'
35-
pomDevelopers = [jeffbrown: 'Jeff Scott Brown', 'puneetbehl': 'Puneet Behl']
3635
}
3736

3837
dependencies {

grails-data-hibernate5/boot-plugin/build.gradle

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,6 @@ ext {
3333
gormApiDocs = true
3434
pomTitle = 'Grails GORM'
3535
pomDescription = 'GORM - Grails Data Access Framework'
36-
pomDevelopers = [
37-
'graemerocher': 'Graeme Rocher',
38-
'jeffscottbrown': 'Jeff Brown',
39-
'burtbeckwith': 'Burt Beckwith',
40-
'puneetbehl': 'Puneet Behl',
41-
]
4236
}
4337

4438
dependencies {

0 commit comments

Comments
 (0)