Skip to content

Commit

Permalink
Merge pull request #1056 from mikepenz/feature/disable_generated
Browse files Browse the repository at this point in the history
Disable generated metaData (generated date) by default
  • Loading branch information
mikepenz authored Jan 21, 2025
2 parents 3f7b00e + 129baa8 commit 2bb82fd
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 18 deletions.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,18 @@ abstract class AboutLibrariesExtension {
*/
var gitHubApiToken: String? = null

/**
* Enable the inclusion of generated MetaData.
* Warning: This includes the generated date, making the build non-reproducible.
*
* ```
* aboutLibraries {
* includeMetaData = true
* }
* ```
*/
var includeMetaData: Boolean = false

/**
* Defines fields which will be excluded during the serialisation of the metadata output file.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,13 @@ import com.mikepenz.aboutlibraries.plugin.mapping.Library
import com.mikepenz.aboutlibraries.plugin.mapping.License
import com.mikepenz.aboutlibraries.plugin.model.writeToDisk
import com.mikepenz.aboutlibraries.plugin.util.forLicense
import org.gradle.api.file.Directory
import org.gradle.api.file.DirectoryProperty
import org.gradle.api.file.RegularFile
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.CacheableTask
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.InputDirectory
import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.OutputFile
import org.gradle.api.tasks.TaskAction
import org.slf4j.LoggerFactory
import java.io.File
import java.util.Locale
import java.util.*

@CacheableTask
abstract class AboutLibrariesTask : BaseAboutLibrariesTask() {
Expand Down Expand Up @@ -104,7 +97,7 @@ abstract class AboutLibrariesTask : BaseAboutLibrariesTask() {

// write to disk
val combinedLibrariesOutputFile = resultDirectory.file(outputFileName).get().asFile
result.writeToDisk(combinedLibrariesOutputFile, excludeFields, extension.prettyPrint)
result.writeToDisk(combinedLibrariesOutputFile, includeMetaData, excludeFields, prettyPrint)
}

companion object {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,7 @@ import org.gradle.api.DefaultTask
import org.gradle.api.artifacts.dsl.DependencyHandler
import org.gradle.api.file.RegularFile
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.InputDirectory
import org.gradle.api.tasks.InputFile
import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.PathSensitive
import org.gradle.api.tasks.PathSensitivity
import org.gradle.api.tasks.*
import org.slf4j.LoggerFactory
import java.io.File
import javax.inject.Inject
Expand Down Expand Up @@ -57,6 +52,9 @@ abstract class BaseAboutLibrariesTask : DefaultTask() {
@Input
val exclusionPatterns = extension.exclusionPatterns

@Input
val includePlatform = extension.includePlatform

@Input
val duplicationMode = extension.duplicationMode

Expand Down Expand Up @@ -88,6 +86,12 @@ abstract class BaseAboutLibrariesTask : DefaultTask() {
@Input
val excludeFields = extension.excludeFields

@Input
val includeMetaData = extension.includeMetaData

@Input
val prettyPrint = extension.prettyPrint

@Suppress("UNCHECKED_CAST")
protected fun readInCollectedDependencies(): CollectedContainer {
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class MetaData(
.format(Calendar.getInstance().toInstant()),
)

fun ResultContainer.writeToDisk(outputFile: File, excludeFields: Array<String>, prettyPrint: Boolean) {
fun ResultContainer.writeToDisk(outputFile: File, includeMetaData: Boolean, excludeFields: Array<String>, prettyPrint: Boolean) {
val allowedExclusionQualifiers = setOf(
ResultContainer::class.simpleName,
Library::class.simpleName,
Expand All @@ -42,7 +42,14 @@ fun ResultContainer.writeToDisk(outputFile: File, excludeFields: Array<String>,
"${Library::class.simpleName}.${Library::artifactFolder.name}"
)
val excludedUnqualifiedFieldNames = mutableSetOf<String>()
excludeFields.forEach { excludedField ->

// by default remove the metadata element
val excludedFields = excludeFields.toMutableSet()
if (!includeMetaData) {
excludedFields.add("ResultContainer.metadata")
}

excludedFields.forEach { excludedField ->
val segments = excludedField.split(".")
if (segments.size == 2 && allowedExclusionQualifiers.contains(segments.first())) {
excludedQualifiedFieldNames.add(excludedField)
Expand Down

0 comments on commit 2bb82fd

Please sign in to comment.