mirror of
				https://github.com/TeamNewPipe/NewPipe
				synced 2025-11-04 01:03:00 +00:00 
			
		
		
		
	gradle script to enforce dependencies order
This commit is contained in:
		@@ -160,11 +160,13 @@ tasks.register('formatKtlint', JavaExec) {
 | 
				
			|||||||
    jvmArgs("--add-opens", "java.base/java.lang=ALL-UNNAMED")
 | 
					    jvmArgs("--add-opens", "java.base/java.lang=ALL-UNNAMED")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					apply from: 'check-dependencies.gradle'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
afterEvaluate {
 | 
					afterEvaluate {
 | 
				
			||||||
    if (!System.properties.containsKey('skipFormatKtlint')) {
 | 
					    if (!System.properties.containsKey('skipFormatKtlint')) {
 | 
				
			||||||
        preDebugBuild.dependsOn formatKtlint
 | 
					        preDebugBuild.dependsOn formatKtlint
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    preDebugBuild.dependsOn runCheckstyle, runKtlint
 | 
					    preDebugBuild.dependsOn runCheckstyle, runKtlint, checkDependenciesOrder
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sonar {
 | 
					sonar {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										48
									
								
								app/check-dependencies.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								app/check-dependencies.gradle
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					tasks.register('checkDependenciesOrder') {
 | 
				
			||||||
 | 
					    group = 'verification'
 | 
				
			||||||
 | 
					    description = 'Checks that each section in libs.versions.toml is sorted alphabetically'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def tomlFile = file('../gradle/libs.versions.toml')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    doLast {
 | 
				
			||||||
 | 
					        if (!tomlFile.exists()) {
 | 
				
			||||||
 | 
					            throw new GradleException('TOML file not found')
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        def lines = tomlFile.readLines()
 | 
				
			||||||
 | 
					        def nonSortedBlocks = []
 | 
				
			||||||
 | 
					        def currentBlock = []
 | 
				
			||||||
 | 
					        def prevLine = ''
 | 
				
			||||||
 | 
					        def prevIndex = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        lines.eachWithIndex { line, lineIndex ->
 | 
				
			||||||
 | 
					            if (line.trim() && !line.startsWith('#')) {
 | 
				
			||||||
 | 
					                if (line.startsWith('[')) {
 | 
				
			||||||
 | 
					                    prevLine = ''
 | 
				
			||||||
 | 
					                } else {
 | 
				
			||||||
 | 
					                    def currIndex = lineIndex + 1
 | 
				
			||||||
 | 
					                    if (prevLine > line) {
 | 
				
			||||||
 | 
					                        if (currentBlock && currentBlock[-1] == "${prevIndex}: ${prevLine}") {
 | 
				
			||||||
 | 
					                            currentBlock.add("${currIndex}: ${line}")
 | 
				
			||||||
 | 
					                        } else {
 | 
				
			||||||
 | 
					                            if (!currentBlock.isEmpty()) {
 | 
				
			||||||
 | 
					                                nonSortedBlocks.add(currentBlock)
 | 
				
			||||||
 | 
					                                currentBlock = []
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                            currentBlock.add("${prevIndex}: ${prevLine}")
 | 
				
			||||||
 | 
					                            currentBlock.add("${currIndex}: ${line}")
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    prevLine = line
 | 
				
			||||||
 | 
					                    prevIndex = lineIndex + 1
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!currentBlock.isEmpty()) {
 | 
				
			||||||
 | 
					            nonSortedBlocks.add(currentBlock)
 | 
				
			||||||
 | 
					            throw new GradleException("The following lines were not sorted:\n" +
 | 
				
			||||||
 | 
					                    nonSortedBlocks.collect { it.join("\n") }.join("\n\n"))
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -52,8 +52,8 @@ swiperefreshlayout = "1.1.0"
 | 
				
			|||||||
# name and the commit hash with the commit hash of the (pushed) commit you want to test
 | 
					# name and the commit hash with the commit hash of the (pushed) commit you want to test
 | 
				
			||||||
# This works thanks to JitPack: https://jitpack.io/
 | 
					# This works thanks to JitPack: https://jitpack.io/
 | 
				
			||||||
teamnewpipe-filepicker = "5.0.0"
 | 
					teamnewpipe-filepicker = "5.0.0"
 | 
				
			||||||
teamnewpipe-newpipe-extractor = "d3d5f2b3f03a5f2b479b9f6fdf1c2555cbb9de0e"
 | 
					 | 
				
			||||||
teamnewpipe-nanojson = "1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751"
 | 
					teamnewpipe-nanojson = "1d9e1aea9049fc9f85e68b43ba39fe7be1c1f751"
 | 
				
			||||||
 | 
					teamnewpipe-newpipe-extractor = "d3d5f2b3f03a5f2b479b9f6fdf1c2555cbb9de0e"
 | 
				
			||||||
viewpager2 = "1.1.0-beta02"
 | 
					viewpager2 = "1.1.0-beta02"
 | 
				
			||||||
work = "2.8.1"
 | 
					work = "2.8.1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -86,6 +86,7 @@ androidx-constraintlayout = { group = "androidx.constraintlayout", name = "const
 | 
				
			|||||||
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "core-ktx" }
 | 
					androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "core-ktx" }
 | 
				
			||||||
androidx-documentfile = { group = "androidx.documentfile", name = "documentfile", version.ref = "documentFile" }
 | 
					androidx-documentfile = { group = "androidx.documentfile", name = "documentfile", version.ref = "documentFile" }
 | 
				
			||||||
androidx-fragment-compose = { group = "androidx.fragment", name = "fragment-compose", version.ref = "fragment-compose" }
 | 
					androidx-fragment-compose = { group = "androidx.fragment", name = "fragment-compose", version.ref = "fragment-compose" }
 | 
				
			||||||
 | 
					androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidx-junit" }
 | 
				
			||||||
androidx-lifecycle-livedata = { group = "androidx.lifecycle", name = "lifecycle-livedata-ktx", version.ref = "lifecycle" }
 | 
					androidx-lifecycle-livedata = { group = "androidx.lifecycle", name = "lifecycle-livedata-ktx", version.ref = "lifecycle" }
 | 
				
			||||||
androidx-lifecycle-viewmodel = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "lifecycle" }
 | 
					androidx-lifecycle-viewmodel = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "lifecycle" }
 | 
				
			||||||
androidx-lifecycle-viewmodel-compose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose" }
 | 
					androidx-lifecycle-viewmodel-compose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose" }
 | 
				
			||||||
@@ -93,13 +94,12 @@ androidx-localbroadcastmanager = { group = "androidx.localbroadcastmanager", nam
 | 
				
			|||||||
androidx-material = { group = "com.google.android.material", name = "material", version.ref = "material" }
 | 
					androidx-material = { group = "com.google.android.material", name = "material", version.ref = "material" }
 | 
				
			||||||
androidx-media = { group = "androidx.media", name = "media", version.ref = "media" }
 | 
					androidx-media = { group = "androidx.media", name = "media", version.ref = "media" }
 | 
				
			||||||
androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigationCompose" }
 | 
					androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigationCompose" }
 | 
				
			||||||
androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidx-junit" }
 | 
					 | 
				
			||||||
androidx-paging-compose = { group = "androidx.paging", name = "paging-compose", version.ref = "pagingCompose" }
 | 
					androidx-paging-compose = { group = "androidx.paging", name = "paging-compose", version.ref = "pagingCompose" }
 | 
				
			||||||
androidx-preference = { group = "androidx.preference", name = "preference", version.ref = "preference" }
 | 
					androidx-preference = { group = "androidx.preference", name = "preference", version.ref = "preference" }
 | 
				
			||||||
androidx-recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "recyclerview" }
 | 
					androidx-recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "recyclerview" }
 | 
				
			||||||
 | 
					androidx-room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" }
 | 
				
			||||||
androidx-room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" }
 | 
					androidx-room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" }
 | 
				
			||||||
androidx-room-rxjava3 = { group = "androidx.room", name = "room-rxjava3", version.ref = "room" }
 | 
					androidx-room-rxjava3 = { group = "androidx.room", name = "room-rxjava3", version.ref = "room" }
 | 
				
			||||||
androidx-room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" }
 | 
					 | 
				
			||||||
androidx-room-testing = { group = "androidx.room", name = "room-testing", version.ref = "room" }
 | 
					androidx-room-testing = { group = "androidx.room", name = "room-testing", version.ref = "room" }
 | 
				
			||||||
androidx-runner = { group = "androidx.test", name = "runner", version.ref = "runner" }
 | 
					androidx-runner = { group = "androidx.test", name = "runner", version.ref = "runner" }
 | 
				
			||||||
androidx-swiperefreshlayout = { group = "androidx.swiperefreshlayout", name = "swiperefreshlayout", version.ref = "swiperefreshlayout" }
 | 
					androidx-swiperefreshlayout = { group = "androidx.swiperefreshlayout", name = "swiperefreshlayout", version.ref = "swiperefreshlayout" }
 | 
				
			||||||
@@ -112,9 +112,9 @@ auto-service-kapt = { group = "com.google.auto.service", name = "auto-service",
 | 
				
			|||||||
coil-compose = { group = "io.coil-kt.coil3", name = 'coil-compose', version.ref = "coil" }
 | 
					coil-compose = { group = "io.coil-kt.coil3", name = 'coil-compose', version.ref = "coil" }
 | 
				
			||||||
desugar-jdk-libs-nio = { group = "com.android.tools", name = "desugar_jdk_libs_nio", version.ref = "desugar-jdk-libs-nio" }
 | 
					desugar-jdk-libs-nio = { group = "com.android.tools", name = "desugar_jdk_libs_nio", version.ref = "desugar-jdk-libs-nio" }
 | 
				
			||||||
exoplayer-core = { group = "com.google.android.exoplayer", name = "exoplayer-core", version.ref = "exoplayer" }
 | 
					exoplayer-core = { group = "com.google.android.exoplayer", name = "exoplayer-core", version.ref = "exoplayer" }
 | 
				
			||||||
 | 
					exoplayer-dash = { module = "com.google.android.exoplayer:exoplayer-dash", version.ref = "exoplayer" }
 | 
				
			||||||
exoplayer-database = { group = "com.google.android.exoplayer", name = "exoplayer-database", version.ref = "exoplayer" }
 | 
					exoplayer-database = { group = "com.google.android.exoplayer", name = "exoplayer-database", version.ref = "exoplayer" }
 | 
				
			||||||
exoplayer-datasource = { group = "com.google.android.exoplayer", name = "exoplayer-datasource", version.ref = "exoplayer" }
 | 
					exoplayer-datasource = { group = "com.google.android.exoplayer", name = "exoplayer-datasource", version.ref = "exoplayer" }
 | 
				
			||||||
exoplayer-dash = { module = "com.google.android.exoplayer:exoplayer-dash", version.ref = "exoplayer" }
 | 
					 | 
				
			||||||
exoplayer-hls = { group = "com.google.android.exoplayer", name = "exoplayer-hls", version.ref = "exoplayer" }
 | 
					exoplayer-hls = { group = "com.google.android.exoplayer", name = "exoplayer-hls", version.ref = "exoplayer" }
 | 
				
			||||||
exoplayer-smoothstreaming = { group = "com.google.android.exoplayer", name = "exoplayer-smoothstreaming", version.ref = "exoplayer" }
 | 
					exoplayer-smoothstreaming = { group = "com.google.android.exoplayer", name = "exoplayer-smoothstreaming", version.ref = "exoplayer" }
 | 
				
			||||||
exoplayer-ui = { group = "com.google.android.exoplayer", name = "exoplayer-ui", version.ref = "exoplayer" }
 | 
					exoplayer-ui = { group = "com.google.android.exoplayer", name = "exoplayer-ui", version.ref = "exoplayer" }
 | 
				
			||||||
@@ -140,13 +140,13 @@ mockito-core = { group = "org.mockito", name = "mockito-core", version.ref = "mo
 | 
				
			|||||||
okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" }
 | 
					okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" }
 | 
				
			||||||
prettytime = { group = "org.ocpsoft.prettytime", name = "prettytime", version.ref = "prettytime" }
 | 
					prettytime = { group = "org.ocpsoft.prettytime", name = "prettytime", version.ref = "prettytime" }
 | 
				
			||||||
process-phoenix = { group = "com.jakewharton", name = "process-phoenix", version.ref = "processPhoenix" }
 | 
					process-phoenix = { group = "com.jakewharton", name = "process-phoenix", version.ref = "processPhoenix" }
 | 
				
			||||||
rxjava3-rxandroid = { group = "io.reactivex.rxjava3", name = "rxandroid", version.ref = "rxandroid" }
 | 
					 | 
				
			||||||
rxbinding4-rxbinding = { group = "com.jakewharton.rxbinding4", name = "rxbinding", version.ref = "rxbinding" }
 | 
					rxbinding4-rxbinding = { group = "com.jakewharton.rxbinding4", name = "rxbinding", version.ref = "rxbinding" }
 | 
				
			||||||
 | 
					rxjava3-rxandroid = { group = "io.reactivex.rxjava3", name = "rxandroid", version.ref = "rxandroid" }
 | 
				
			||||||
rxjava3-rxjava = { group = "io.reactivex.rxjava3", name = "rxjava", version.ref = "rxjava" }
 | 
					rxjava3-rxjava = { group = "io.reactivex.rxjava3", name = "rxjava", version.ref = "rxjava" }
 | 
				
			||||||
stetho = { group = "com.facebook.stetho", name = "stetho", version.ref = "stetho" }
 | 
					stetho = { group = "com.facebook.stetho", name = "stetho", version.ref = "stetho" }
 | 
				
			||||||
stetho-okhttp3 = { group = "com.facebook.stetho", name = "stetho-okhttp3", version.ref = "stetho" }
 | 
					stetho-okhttp3 = { group = "com.facebook.stetho", name = "stetho-okhttp3", version.ref = "stetho" }
 | 
				
			||||||
 | 
					teamnewpipe-nanojson = { group = "com.github.TeamNewPipe", name = "nanojson", version.ref = "teamnewpipe-nanojson" }
 | 
				
			||||||
teamnewpipe-newpipe-extractor = { group = "com.github.TeamNewPipe", name = "NewPipeExtractor", version.ref = "teamnewpipe-newpipe-extractor" }
 | 
					teamnewpipe-newpipe-extractor = { group = "com.github.TeamNewPipe", name = "NewPipeExtractor", version.ref = "teamnewpipe-newpipe-extractor" }
 | 
				
			||||||
teamnewpipe-nononsense-filepicker = { group = "com.github.TeamNewPipe", name = "NoNonsense-FilePicker", version.ref = "teamnewpipe-filepicker" }
 | 
					teamnewpipe-nononsense-filepicker = { group = "com.github.TeamNewPipe", name = "NoNonsense-FilePicker", version.ref = "teamnewpipe-filepicker" }
 | 
				
			||||||
teamnewpipe-nanojson = { group = "com.github.TeamNewPipe", name = "nanojson", version.ref = "teamnewpipe-nanojson" }
 | 
					 | 
				
			||||||
tools-checkstyle = { group = "com.puppycrawl.tools", name = "checkstyle", version.ref = "checkstyle" }
 | 
					tools-checkstyle = { group = "com.puppycrawl.tools", name = "checkstyle", version.ref = "checkstyle" }
 | 
				
			||||||
tools-ktlint = { group = "com.pinterest", name = "ktlint", version.ref = "ktlint" }
 | 
					tools-ktlint = { group = "com.pinterest", name = "ktlint", version.ref = "ktlint" }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user