Skip to content

Commit b51509b

Browse files
authored
Merge 9aecae9 into 604f1f4
2 parents 604f1f4 + 9aecae9 commit b51509b

File tree

45 files changed

+181
-575
lines changed

Some content is hidden

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

45 files changed

+181
-575
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: 'Generate Javadocs'
2+
on:
3+
release:
4+
types: [released]
5+
6+
jobs:
7+
build-and-deploy-javadocs:
8+
name: Build and deploy Javadocs
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Checkout 🛎️
12+
uses: actions/checkout@v4
13+
with:
14+
submodules: 'recursive'
15+
16+
- name: set up JDK 17
17+
uses: actions/setup-java@v4
18+
with:
19+
distribution: 'temurin'
20+
java-version: '17'
21+
22+
- name: Setup Gradle
23+
uses: gradle/actions/setup-gradle@8379f6a1328ee0e06e2bb424dadb7b159856a326
24+
25+
- name: Generate Aggregate Javadocs
26+
run: |
27+
./gradlew aggregateJavadocs
28+
- name: Deploy
29+
uses: JamesIves/github-pages-deploy-action@6c2d9db40f9296374acc17b90404b6e8864128c8 # pin@4.7.3
30+
with:
31+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
32+
BRANCH: gh-pages
33+
FOLDER: build/docs/javadoc
34+
CLEAN: true

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@ distributions/
2020
sentry-spring-boot-starter-jakarta/src/main/resources/META-INF/spring.factories
2121
sentry-samples/sentry-samples-spring-boot-jakarta/spy.log
2222
spy.log
23-
buildSrc/.kotlin/
23+
.kotlin

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Changelog
22

3+
## Unreleased
4+
5+
### Fixes
6+
- Republish Javadoc [#4457](https://github.com/getsentry/sentry-java/pull/4457)
7+
38
## 8.13.2
49

510
### Fixes

Makefile

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
.PHONY: all clean compile dryRelease update stop checkFormat format api assembleBenchmarkTestRelease assembleUiTestRelease assembleUiTestCriticalRelease createCoverageReports runUiTestCritical check preMerge publish
1+
.PHONY: all clean compile javadocs dryRelease update stop checkFormat format api assembleBenchmarkTestRelease assembleUiTestRelease assembleUiTestCriticalRelease createCoverageReports runUiTestCritical check preMerge publish
22

3-
all: stop clean compile createCoverageReports
3+
all: stop clean javadocs compile createCoverageReports
44
assembleBenchmarks: assembleBenchmarkTestRelease
55
assembleUiTests: assembleUiTestRelease
66
preMerge: check createCoverageReports
@@ -15,9 +15,12 @@ clean:
1515
compile:
1616
./gradlew build
1717

18+
javadocs:
19+
./gradlew aggregateJavadocs
20+
1821
# do a dry release (like a local deploy)
1922
dryRelease:
20-
./gradlew distZip --no-build-cache --no-configuration-cache
23+
./gradlew aggregateJavadocs distZip --no-build-cache --no-configuration-cache
2124

2225
# check for dependencies update
2326
update:

build-logic/build.gradle.kts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
plugins {
2+
`kotlin-dsl`
3+
}
4+
5+
repositories {
6+
gradlePluginPortal()
7+
}

build-logic/settings.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
rootProject.name = "build-logic"
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package io.sentry.gradle
2+
3+
import org.gradle.api.DefaultTask
4+
import org.gradle.api.file.DirectoryProperty
5+
import org.gradle.api.file.FileCollection
6+
import org.gradle.api.file.FileSystemOperations
7+
import org.gradle.api.provider.Property
8+
import org.gradle.api.tasks.InputFiles
9+
import org.gradle.api.tasks.Internal
10+
import org.gradle.api.tasks.OutputDirectory
11+
import org.gradle.api.tasks.TaskAction
12+
import javax.inject.Inject
13+
14+
abstract class AggregateJavadoc @Inject constructor(
15+
@get:Internal val fs: FileSystemOperations
16+
) : DefaultTask() {
17+
@get:InputFiles
18+
abstract val javadocFiles: Property<FileCollection>
19+
20+
@get:OutputDirectory
21+
abstract val outputDir: DirectoryProperty
22+
23+
@TaskAction
24+
fun aggregate() {
25+
javadocFiles.get().forEach { file ->
26+
fs.copy {
27+
// Get the third to last part (project name) to use as the directory name for the output
28+
val parts = file.path.split('/')
29+
val projectName = parts[parts.size - 4]
30+
from(file)
31+
// Use the project name as the output directory name so that each javadoc goes into its own directory
32+
into(outputDir.get().file(projectName))
33+
}
34+
}
35+
}
36+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import io.sentry.gradle.AggregateJavadoc
2+
import org.gradle.api.attributes.Category
3+
import org.gradle.api.attributes.LibraryElements
4+
import org.gradle.kotlin.dsl.creating
5+
import org.gradle.kotlin.dsl.getValue
6+
import org.gradle.kotlin.dsl.named
7+
8+
val javadocConsumer by configurations.creating {
9+
isCanBeConsumed = false
10+
isCanBeResolved = true
11+
attributes {
12+
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.DOCUMENTATION))
13+
attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, objects.named("javadoc"))
14+
}
15+
}
16+
17+
subprojects {
18+
javadocConsumer.dependencies.add(dependencies.create(this))
19+
}
20+
21+
val javadocCollection = javadocConsumer.incoming.artifactView { lenient(true) }.files
22+
23+
tasks.register("aggregateJavadoc", AggregateJavadoc::class) {
24+
group = "documentation"
25+
description = "Aggregates Javadocs from all subprojects into a single directory."
26+
javadocFiles.set(javadocCollection)
27+
outputDir.set(layout.buildDirectory.dir("docs/javadoc"))
28+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
val javadocConfig: Configuration by configurations.creating {
2+
isCanBeResolved = false
3+
isCanBeConsumed = true
4+
5+
attributes {
6+
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.DOCUMENTATION))
7+
attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, objects.named("javadoc"))
8+
}
9+
}
10+
11+
tasks.withType<Javadoc>().configureEach {
12+
setDestinationDir(project.layout.buildDirectory.file("docs/javadoc").get().asFile)
13+
title = "${project.name} $version API"
14+
val opts = options as StandardJavadocDocletOptions
15+
opts.quiet()
16+
opts.encoding = "UTF-8"
17+
opts.memberLevel = JavadocMemberLevel.PROTECTED
18+
opts.links = listOf(
19+
"https://docs.oracle.com/javase/8/docs/api/",
20+
"https://docs.spring.io/spring-framework/docs/current/javadoc-api/",
21+
"https://docs.spring.io/spring-boot/docs/current/api/"
22+
)
23+
}
24+
25+
artifacts {
26+
add(javadocConfig.name, tasks.named("javadoc"))
27+
}

build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ plugins {
2727
alias(libs.plugins.errorprone) apply false
2828
alias(libs.plugins.gradle.versions) apply false
2929
alias(libs.plugins.spring.dependency.management) apply false
30+
id("sentry.javadoc.aggregate")
3031
}
3132

3233
buildscript {
@@ -237,7 +238,7 @@ spotless {
237238
kotlin {
238239
target("**/*.kt")
239240
ktlint()
240-
targetExclude("**/sentry-native/**")
241+
targetExclude("**/sentry-native/**", "**/build/**")
241242
}
242243
kotlinGradle {
243244
target("**/*.kts")

0 commit comments

Comments
 (0)