Skip to content

Commit

Permalink
Merge pull request #1 from SpineEventEngine/initial-content
Browse files Browse the repository at this point in the history
Add initial content for the Chords library
  • Loading branch information
dpikhulya authored Aug 28, 2024
2 parents 2514966 + 6f10ed1 commit 9cc9862
Show file tree
Hide file tree
Showing 47 changed files with 6,883 additions and 1 deletion.
61 changes: 61 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto

# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.

# Common formats
*.html text
*.xml text
*.css text
*.scss text
*.js text
*.properties text
*.rtf text
*.yaml text
*.yml text
*.md text

LICENSE text

# SQL scripts
*.sql text

# Java sources
*.java text

# Python sources
*.py text

# Gradle build files
*.gradle text

# Google protocol buffers
*.proto text

# Miscellaneous
*.rb text

# Declare files that will always have CRLF line endings on checkout.
*.bat text eol=crlf

# Declare files that will always have LF line endings on checkout.
*.sh text eol=lf
gradlew text eol=lf
pull text eol=lf

# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
*.gif binary
*.swf binary
*.jar binary
*.desc binary

*.scpt binary
*.scssc binary

# Encrypted files
*.enc binary
*.gpg binary
*.weis binary
22 changes: 22 additions & 0 deletions .github/workflows/build-on-ubuntu.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: CI Build (under Ubuntu)

on:
pull_request:
branches:
- master

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'

- name: Build all libraries
run: ./gradlew clean build --stacktrace
26 changes: 26 additions & 0 deletions .github/workflows/build-on-windows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: CI Build (under Windows)

on:
pull_request:
branches:
- master

permissions:
contents: read

jobs:
build:

runs-on: windows-latest

steps:
- uses: actions/checkout@v4
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'

- name: Build all libraries
shell: cmd
run: gradlew.bat build --stacktrace
89 changes: 89 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
#
# This file is used for two purposes:
# 1. ignoring files in the `config` project.
# 2. ignoring files in the projects that import `config` as a sub-module.
#
# Therefore, instructions below are superset of instructions required for all the projects.

# IntelliJ IDEA modules and interim config files.
*.iml
.idea/*.xml
.idea/.name
.idea/artifacts
.idea/libraries
.idea/modules
.idea/shelf

codegen-plugins/.idea/**

# Do not ignore the following IDEA settings
!.idea/misc.xml
!.idea/codeStyleSettings.xml
!.idea/codeStyles/
!.idea/copyright/

# Gradle interim configs
**/.gradle/**

# Generated source code
**/generated/**

# Gradle build files
**/build/**

# Build files produced by the IDE
**/out/**

# Ignore Gradle GUI config
gradle-app.setting

# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar

# Cache of project
.gradletasknamecache

# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
# gradle/wrapper/gradle-wrapper.properties

# Spine internal directory for storing intermediate artifacts
**/.spine/**

# Spine model compiler auto-generated resources
/tools/gradle-plugins/model-compiler/src/main/resources/spine-protoc.gradle

# Login details to Maven repository.
# Each workstation should have developer's login defined in this file.
credentials.tar
credentials.properties
cloudrepo.properties
deploy_key_rsa
gcs-auth-key.json

# Log files
*.log

# Package Files #
*.war
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

.packages
pubspec.lock

# jenv java version settings
.java-version

# Firebase credetials
/firebase/src/main/resources/firebase_credentials.json

# Ignore Gradle project-specific cache directory
.gradle

# Ignore Gradle build output directory
build
8 changes: 8 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
# Chords
UI components for Compose Multiplatform toolkit
A suite of libraries for UI development with Compose Multiplatform toolkit

This suite contains the following libraries:
- [chords](chords/README.md) — UI components for Compose Multiplatform toolkit.
57 changes: 57 additions & 0 deletions buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/*
* Copyright (c) 2024 TeamDev. All rights reserved.
* TeamDev PROPRIETARY and CONFIDENTIAL.
* Use is subject to license terms.
*/

plugins {
`kotlin-dsl`

// NOTE: If changing Kotlin version here, make sure to update the same in
// the `kotlinVersion` variable below.
kotlin("jvm") version "1.8.20" apply false
}

repositories {
mavenCentral()
gradlePluginPortal()
}

/**
* A version of the Kotlin language.
*
* NOTE: If updating here, make sure to also update the same in the `plugins`
* section above.
*/
val kotlinVersion = "1.8.20"

/**
* A version of the Spine Gradle plugin.
*
*/
val spineVersion = "1.9.0"

/**
* A version of detekt (static code analysis tool for Kotlin).
*
* See [https://github.com/detekt/detekt](https://github.com/detekt/detekt)
*/
val detektVersion = "1.23.0"

/**
* The version of the Jib Gradle plugin.
*/
val jibVersion = "3.2.1"

/**
* The version of the Kotest library.
*/
val kotestPluginVersion = "0.4.10"

dependencies {
implementation("io.spine.tools:spine-bootstrap:${spineVersion}")
implementation("org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:$kotlinVersion")
implementation("io.gitlab.arturbosch.detekt:detekt-gradle-plugin:$detektVersion")
implementation("gradle.plugin.com.google.cloud.tools:jib-gradle-plugin:${jibVersion}")
implementation("io.kotest:kotest-gradle-plugin:$kotestPluginVersion")
}
20 changes: 20 additions & 0 deletions buildSrc/src/main/kotlin/io/spine/chords/dependency/Kotest.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/*
* Copyright (c) 2024 TeamDev. All rights reserved.
* TeamDev PROPRIETARY and CONFIDENTIAL.
* Use is subject to license terms.
*/

package io.spine.chords.dependency

/**
* Testing framework for Kotlin.
*
* @see <a href="https://kotest.io/">Kotest site</a>
*/
object Kotest {
private const val version = "5.8.0"

object Runner {
const val lib = "io.kotest:kotest-runner-junit5:$version"
}
}
15 changes: 15 additions & 0 deletions buildSrc/src/main/kotlin/io/spine/chords/dependency/Material3.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
/*
* Copyright (c) 2024 TeamDev. All rights reserved.
* TeamDev PROPRIETARY and CONFIDENTIAL.
* Use is subject to license terms.
*/

package io.spine.chords.dependency

// https://github.com/JetBrains/compose-jb
object Material3 {
object Desktop {
private const val version = "1.5.12"
const val lib = "org.jetbrains.compose.material3:material3-desktop:${version}"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/*
* Copyright (c) 2024 TeamDev. All rights reserved.
* TeamDev PROPRIETARY and CONFIDENTIAL.
* Use is subject to license terms.
*/

import io.gitlab.arturbosch.detekt.Detekt

/**
* Sets up Kotlin code analysis with detekt.
* See https://github.com/detekt/detekt
*/

plugins {
id("io.gitlab.arturbosch.detekt")
}

detekt {
buildUponDefaultConfig = true
config.setFrom("${rootDir}/quality/detekt-config.yml")
}

tasks {
withType<Detekt>().configureEach {
reports {
html.required.set(true) // Only HTML report is generated.
xml.required.set(false)
txt.required.set(false)
sarif.required.set(false)
md.required.set(false)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/*
* Copyright (c) 2024 TeamDev. All rights reserved.
* TeamDev PROPRIETARY and CONFIDENTIAL.
* Use is subject to license terms.
*/

import org.gradle.kotlin.dsl.repositories
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

/**
* Configures Kotlin-related plugins and tasks.
*/

plugins {
kotlin("jvm")
id("detekt-code-analysis")
}

repositories {
mavenCentral()
}

tasks.withType<KotlinCompile> {
kotlinOptions {
jvmTarget = "11"
freeCompilerArgs = listOf("-Xcontext-receivers")
}
}

tasks.withType<Test> {
useJUnitPlatform()
}

kotlin {
explicitApi()
}
Loading

0 comments on commit 9cc9862

Please sign in to comment.