Skip to content

Commit c9f633f

Browse files
committed
Refactor backend project structure to standalone modules, updating Gradle settings and build configurations. Transition from 'kotlin-backend' to 'backend' naming, and implement individual build files for each module. Enhance documentation for frontend modularization and standalone builds.
1 parent 1430ac2 commit c9f633f

539 files changed

Lines changed: 6017 additions & 5992 deletions

File tree

Some content is hidden

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

backend/api/build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ application {
2727

2828
dependencies {
2929
// Project modules
30-
implementation(project(":kotlin-backend:core"))
31-
implementation(project(":kotlin-backend:plugins-api"))
32-
implementation(project(":kotlin-backend:infrastructure"))
30+
implementation(project(":core"))
31+
implementation(project(":plugins-api"))
32+
implementation(project(":infrastructure"))
3333

3434
// Ktor Server
3535
implementation(libs.bundles.ktor.server)

backend/build.gradle.kts

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
/**
2+
* VaultStadio Backend - Root build.
3+
* Detekt, ktlint, and common config for all backend subprojects.
4+
* Uses this project's own config only: config/detekt/detekt.yml and config/detekt/baseline.xml
5+
* (no shared root config).
6+
*/
7+
8+
plugins {
9+
kotlin("jvm") version "2.0.21" apply false
10+
kotlin("plugin.serialization") version "2.0.21" apply false
11+
alias(libs.plugins.detekt)
12+
alias(libs.plugins.ktlint)
13+
}
14+
15+
allprojects {
16+
group = "com.vaultstadio"
17+
version = "1.0.0-SNAPSHOT"
18+
}
19+
20+
detekt {
21+
buildUponDefaultConfig = true
22+
allRules = false
23+
config.setFrom("$rootDir/config/detekt/detekt.yml")
24+
baseline = file("$rootDir/config/detekt/baseline.xml")
25+
parallel = true
26+
autoCorrect = false
27+
ignoreFailures = false
28+
}
29+
30+
subprojects {
31+
apply(plugin = "io.gitlab.arturbosch.detekt")
32+
apply(plugin = "org.jlleitschuh.gradle.ktlint")
33+
34+
configure<org.jlleitschuh.gradle.ktlint.KtlintExtension> {
35+
filter {
36+
exclude { lintError ->
37+
val path = lintError.file.path
38+
path.contains("/build/") ||
39+
path.contains("/generated/")
40+
}
41+
}
42+
}
43+
44+
afterEvaluate {
45+
tasks.findByName("ktlintCheck")?.let { ktlintCheck ->
46+
tasks.findByName("detekt")?.dependsOn(ktlintCheck)
47+
}
48+
}
49+
50+
configure<io.gitlab.arturbosch.detekt.extensions.DetektExtension> {
51+
buildUponDefaultConfig = true
52+
allRules = false
53+
config.setFrom("$rootDir/config/detekt/detekt.yml")
54+
baseline = file("$rootDir/config/detekt/baseline.xml")
55+
parallel = true
56+
autoCorrect = false
57+
ignoreFailures = false
58+
}
59+
60+
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
61+
compilerOptions {
62+
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17)
63+
freeCompilerArgs.add("-Xcontext-receivers")
64+
}
65+
}
66+
67+
tasks.withType<JavaCompile>().configureEach {
68+
sourceCompatibility = "17"
69+
targetCompatibility = "17"
70+
}
71+
}

backend/config/detekt/baseline.xml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?xml version="1.0" ?>
2+
<SmellBaseline>
3+
<ManuallySuppressedIssues></ManuallySuppressedIssues>
4+
<CurrentIssues>
5+
<ID>BracesOnWhenStatements:VideoMetadataPlugin.kt$VideoMetadataPlugin$when</ID>
6+
<ID>ClassOrdering:VideoMetadataPlugin.kt$VideoMetadataPlugin$override fun getConfigurationSchema()</ID>
7+
<ID>ConstructorParameterNaming:VideoMetadataPlugin.kt$FFprobeChapter$val end_time: String? = null</ID>
8+
<ID>ConstructorParameterNaming:VideoMetadataPlugin.kt$FFprobeChapter$val start_time: String? = null</ID>
9+
<ID>ConstructorParameterNaming:VideoMetadataPlugin.kt$FFprobeFormat$val bit_rate: String? = null</ID>
10+
<ID>ConstructorParameterNaming:VideoMetadataPlugin.kt$FFprobeFormat$val format_long_name: String? = null</ID>
11+
<ID>ConstructorParameterNaming:VideoMetadataPlugin.kt$FFprobeFormat$val format_name: String? = null</ID>
12+
<ID>ConstructorParameterNaming:VideoMetadataPlugin.kt$FFprobeFormatTags$val creation_time: String? = null</ID>
13+
<ID>ConstructorParameterNaming:VideoMetadataPlugin.kt$FFprobeStream$val bit_rate: String? = null</ID>
14+
<ID>ConstructorParameterNaming:VideoMetadataPlugin.kt$FFprobeStream$val channel_layout: String? = null</ID>
15+
<ID>ConstructorParameterNaming:VideoMetadataPlugin.kt$FFprobeStream$val codec_long_name: String? = null</ID>
16+
<ID>ConstructorParameterNaming:VideoMetadataPlugin.kt$FFprobeStream$val codec_name: String? = null</ID>
17+
<ID>ConstructorParameterNaming:VideoMetadataPlugin.kt$FFprobeStream$val codec_type: String? = null</ID>
18+
<ID>ConstructorParameterNaming:VideoMetadataPlugin.kt$FFprobeStream$val color_space: String? = null</ID>
19+
<ID>ConstructorParameterNaming:VideoMetadataPlugin.kt$FFprobeStream$val color_transfer: String? = null</ID>
20+
<ID>ConstructorParameterNaming:VideoMetadataPlugin.kt$FFprobeStream$val display_aspect_ratio: String? = null</ID>
21+
<ID>ConstructorParameterNaming:VideoMetadataPlugin.kt$FFprobeStream$val pix_fmt: String? = null</ID>
22+
<ID>ConstructorParameterNaming:VideoMetadataPlugin.kt$FFprobeStream$val r_frame_rate: String? = null</ID>
23+
<ID>ConstructorParameterNaming:VideoMetadataPlugin.kt$FFprobeStream$val sample_rate: String? = null</ID>
24+
<ID>CyclomaticComplexMethod:VideoMetadataPlugin.kt$VideoMetadataPlugin$private fun extractVideoStreamInfo( stream: FFprobeStream, itemId: String, list: MutableList&lt;StorageItemMetadata&gt;, now: kotlinx.datetime.Instant )</ID>
25+
<ID>CyclomaticComplexMethod:VideoMetadataPlugin.kt$VideoMetadataPlugin$private suspend fun extractAndSaveMetadata(item: StorageItem, file: File)</ID>
26+
<ID>ImplicitDefaultLocale:VideoMetadataPlugin.kt$VideoMetadataPlugin$String.format("%.2f", fps)</ID>
27+
<ID>ImplicitDefaultLocale:VideoMetadataPlugin.kt$VideoMetadataPlugin$String.format("%d:%02d", minutes, secs)</ID>
28+
<ID>ImplicitDefaultLocale:VideoMetadataPlugin.kt$VideoMetadataPlugin$String.format("%d:%02d:%02d", hours, minutes, secs)</ID>
29+
<ID>LongMethod:VideoMetadataPlugin.kt$VideoMetadataPlugin$private suspend fun extractAndSaveMetadata(item: StorageItem, file: File)</ID>
30+
<ID>MaxLineLength:VideoMetadataPlugin.kt$VideoMetadataPlugin$val tempFile = File.createTempFile("vaultstadio_video_", ".$extension", pluginContext.tempDirectory.toFile())</ID>
31+
<ID>SwallowedException:VideoMetadataPlugin.kt$VideoMetadataPlugin$e: Exception</ID>
32+
<ID>TooGenericExceptionCaught:VideoMetadataPlugin.kt$VideoMetadataPlugin$e: Exception</ID>
33+
<ID>TrailingWhitespace:VideoMetadataPlugin.kt$com.vaultstadio.plugins.video.VideoMetadataPlugin.kt</ID>
34+
</CurrentIssues>
35+
</SmellBaseline>

0 commit comments

Comments
 (0)