-
Notifications
You must be signed in to change notification settings - Fork 17
Add "View background tasks" to Help menu; descriptive quit dialog buttons #771
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
8765571
b41d188
f82bd2e
fec7080
3fad03a
bec412c
0a1359b
17d04e5
18e5f46
617ad67
1f4c623
80e66fd
69daa71
02e5e02
3de7bc9
0e6ae6e
6bdb5e7
813d76e
9d6d381
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -28,9 +28,9 @@ dependencies { | |
| implementation("org.gradlex:java-module-testing:1.8.1") | ||
| implementation("org.gradlex:jvm-dependency-conflict-resolution:2.5") | ||
| implementation("org.gradle.toolchains:foojay-resolver:1.0.0") | ||
| implementation("org.itsallcode:openfasttrace-gradle:3.2.0") | ||
| implementation("org.itsallcode.openfasttrace:openfasttrace-api:4.9.0") | ||
| implementation("org.itsallcode.openfasttrace:openfasttrace-core:4.9.0") | ||
| implementation("org.itsallcode.openfasttrace:openfasttrace-exporter-specobject:4.9.0") | ||
| implementation("org.itsallcode.openfasttrace:openfasttrace:4.9.0") | ||
| implementation("org.itsallcode:openfasttrace-gradle:3.4.0") | ||
| implementation("org.itsallcode.openfasttrace:openfasttrace-api:4.10.0") | ||
| implementation("org.itsallcode.openfasttrace:openfasttrace-core:4.10.0") | ||
| implementation("org.itsallcode.openfasttrace:openfasttrace-exporter-specobject:4.10.0") | ||
|
Comment on lines
+31
to
+34
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 2. Build versions remain decentralized build-logic/build.gradle.kts hard-codes five upgraded OpenFastTrace versions instead of declaring them in versions/build.gradle.kts. A later dependency update must discover and synchronize version metadata outside the approved catalog for the plugin and its runtime components. Agent Prompt
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🤖 Generated with Claude Code Not done: build-logic versions arrived with the merged |
||
| implementation("org.itsallcode.openfasttrace:openfasttrace:4.10.0") | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,107 +1,3 @@ | ||
| import java.io.File | ||
| import java.util.Locale | ||
|
|
||
| import org.gradle.api.Project | ||
| import org.gradle.api.plugins.ExtensionAware | ||
| import org.gradle.kotlin.dsl.getByType | ||
| import org.gradle.kotlin.dsl.register | ||
| import org.itsallcode.openfasttrace.api.core.ItemStatus | ||
| import org.itsallcode.openfasttrace.gradle.config.TagPathConfiguration | ||
| import org.itsallcode.openfasttrace.gradle.config.TracingConfig | ||
| import org.itsallcode.openfasttrace.gradle.task.CollectTask | ||
| import org.itsallcode.openfasttrace.gradle.task.TraceTask | ||
| import org.itsallcode.openfasttrace.gradle.task.config.SerializableTagPathConfig | ||
|
|
||
| val taskGroupName = "trace" | ||
| val requirementConfigName = "oftRequirementConfig" | ||
|
|
||
| allprojects { | ||
| val tracingConfig = extensions.create("requirementTracing", TracingConfig::class.java, project) | ||
| (tracingConfig as ExtensionAware).extensions.create("tags", TagPathConfiguration::class.java, project) | ||
| } | ||
|
|
||
| gradle.projectsEvaluated { | ||
| val collectTask = tasks.register<CollectTask>("collectRequirements") { | ||
| group = taskGroupName | ||
| description = "Collect requirements and generate specobject file" | ||
| inputDirectories.set(getAllInputDirectories(rootProject.allprojects)) | ||
| outputFile.set(rootProject.layout.buildDirectory.file("reports/requirements.xml")) | ||
| pathConfig.set(getPathConfig(rootProject.allprojects)) | ||
| } | ||
|
|
||
| tasks.register<TraceTask>("traceRequirements") { | ||
| group = taskGroupName | ||
| description = "Trace requirements and generate tracing report" | ||
| dependsOn(collectTask) | ||
|
|
||
| val tracingConfig = rootProject.getTracingConfig() | ||
| failBuild.set(tracingConfig.failBuild) | ||
| requirementsFile.set(collectTask.flatMap { task -> task.outputFile }) | ||
|
|
||
| if (tracingConfig.reportFile.isPresent) { | ||
| outputFile.set(tracingConfig.reportFile) | ||
| } else { | ||
| val extension = if (tracingConfig.reportFormat.get() == "html") "html" else "txt" | ||
| outputFile.set(rootProject.layout.buildDirectory.file("reports/tracing.$extension")) | ||
| } | ||
|
|
||
| reportVerbosity.set(tracingConfig.reportVerbosity) | ||
| reportFormat.set(tracingConfig.reportFormat) | ||
| importedRequirements.set(getImportedRequirements(rootProject.allprojects)) | ||
| filteredArtifactTypes.set(tracingConfig.filteredArtifactTypes) | ||
| filteredTags.set(tracingConfig.filteredTags) | ||
| filterAcceptsItemsWithoutTag.set(tracingConfig.filterAcceptsItemsWithoutTag) | ||
| filterWantedStatuses.set(getWantedStatuses(tracingConfig)) | ||
| detailsSectionDisplay.set(tracingConfig.detailsSectionDisplay) | ||
| } | ||
| } | ||
|
|
||
| fun Project.getTracingConfig(): TracingConfig = extensions.getByType() | ||
|
|
||
| fun getAllInputDirectories(allProjects: Set<Project>): Set<File> = allProjects | ||
| .flatMap { project -> project.getTracingConfig().inputDirectories.files } | ||
| .toSet() | ||
|
|
||
| fun getImportedRequirements(allProjects: Set<Project>): Set<File> = allProjects | ||
| .flatMap(::getImportedRequirements) | ||
| .toSet() | ||
|
|
||
| fun getImportedRequirements(project: Project): Set<File> { | ||
| val importedRequirements = project.getTracingConfig().importedRequirements.orNull.orEmpty() | ||
| if (importedRequirements.isEmpty()) { | ||
| return emptySet() | ||
| } | ||
|
|
||
| val configuration = project.configurations.findByName(requirementConfigName) | ||
| ?: project.configurations.create(requirementConfigName) | ||
|
|
||
| importedRequirements.forEach { dependency -> | ||
| project.dependencies.add(requirementConfigName, dependency) | ||
| } | ||
|
|
||
| return configuration.files | ||
| } | ||
|
|
||
| fun getPathConfig(allProjects: Set<Project>): List<SerializableTagPathConfig> = allProjects | ||
| .mapNotNull(::getTagPathConfig) | ||
|
|
||
| fun getTagPathConfig(project: Project): SerializableTagPathConfig? { | ||
| val tagPathConfig = project.getTracingConfig().tagPathConfig | ||
| if (tagPathConfig.pathConfig.isEmpty()) { | ||
| return null | ||
| } | ||
| return SerializableTagPathConfig(tagPathConfig) | ||
| } | ||
|
|
||
| fun getWantedStatuses(tracingConfig: TracingConfig): Set<ItemStatus> = | ||
| tracingConfig.filterWantedStatuses.getOrElse(emptySet()).map(::convertStatus).toSet() | ||
|
|
||
| fun convertStatus(value: String): ItemStatus = try { | ||
| ItemStatus.valueOf(value.uppercase(Locale.ROOT)) | ||
| } catch (exception: IllegalArgumentException) { | ||
| val validStatuses = ItemStatus.values().joinToString(", ") { status -> status.name } | ||
| throw IllegalArgumentException( | ||
| "Invalid status '$value'. Valid statuses are: $validStatuses", | ||
| exception, | ||
| ) | ||
| plugins { | ||
| id("org.itsallcode.openfasttrace") | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1. Task changes cannot be reviewed alone
📘 Rule violation⚙ MaintainabilityAgent Prompt
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation toolsThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤖 Generated with Claude Code
Not done: all flagged files come from the merged
origin/main, not this PR.