Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 0 additions & 35 deletions .circleci/config.yml

This file was deleted.

13 changes: 6 additions & 7 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,12 @@ A clear and concise description of what you expected to happen.
If applicable, add screenshots to help explain your problem.

**Environment (please complete the following information):**
- Device: [e.g. Pixel XL]
- OS: [e.g. Android 10]
- Library version [e.g. 1.0.1]
- Used Android SDK library versions [androidx.appcompat:appcompat:1.2.0-alpha03...]
- Used gradle and wrapper version
- Used tooling / Android Studio version
- Other potentially conflicting libraries
- Library version: [e.g. 1.0.1]
- Kotlin version: [e.g. 2.4.0]
- Compose Multiplatform version: [e.g. 1.11.1]
- Platform(s) affected: [Android API level / iOS version / Desktop JVM]
- Device/simulator: [e.g. Pixel 8, iPhone 16 Simulator, macOS desktop]
- Reproduction steps/snippet: [minimal code snippet or sample project reproducing the issue]

**Additional context**
Add any other context about the problem here.
5 changes: 4 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,7 @@ updates:
schedule:
interval: daily
open-pull-requests-limit: 10
target-branch: develop
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: weekly
47 changes: 47 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Build & Test

on:
push:
branches: [ master, main ]
pull_request:
branches: [ master, main ]

concurrency:
group: build-${{ github.ref }}
cancel-in-progress: true

jobs:
build-android:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: '21'
- uses: gradle/actions/setup-gradle@v6
- name: Build library
run: ./gradlew :colorpicker:assemble
- name: Run tests
run: ./gradlew :colorpicker:allTests
- name: Build sample APK
run: ./gradlew :sample:androidApp:assembleDebug
- name: Upload sample APK
uses: actions/upload-artifact@v7
with:
name: sample-apk
path: sample/androidApp/build/outputs/apk/debug/*.apk

build-ios:
runs-on: macos-15
steps:
- uses: actions/checkout@v7
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: '21'
- uses: gradle/actions/setup-gradle@v6
- name: Build iOS framework
run: ./gradlew :colorpicker:linkDebugFrameworkIosSimulatorArm64
- name: Run iOS simulator tests
run: ./gradlew :colorpicker:iosSimulatorArm64Test
24 changes: 24 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Publish

on:
push:
tags: [ 'v*' ]

jobs:
publish:
runs-on: macos-15
steps:
- uses: actions/checkout@v7
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: '21'
- uses: gradle/actions/setup-gradle@v6
- name: Publish to Maven Central
run: ./gradlew :colorpicker:publishAllPublicationsToSonatypeRepository
env:
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
*.iml
.gradle
/local.properties
local.properties
.idea
.DS_Store
/build
build/
/captures
.externalNativeBuild
.cxx
.claude/
.kotlin/
32 changes: 24 additions & 8 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,32 @@ In order to create a new feature request or bug report just file an issue. To fi

## Contributing

We're maintaining two permanent protected branches: **master** and **develop**.
**master** is the single permanent branch:

- **master** is used for the current release and can't be changed (except non-library files) without a new release.
- **develop** is used to prepare a new release.
- Create feature branches off **master**.
- Send pull requests targeting **master** (fork the repository if you don't have write access).
- CI (`build.yml`) must pass before a pull request can be merged.

If you would like to contribute code you can do so through GitHub by forking the repository and sending a pull request targeting the develop branch.
Versioning is similar to Semantic Versioning.

- The branching model is similar to git-flow.
- Versioning is similar to Semantic Versioning.

Our code style is defined via a hosted Intelliji xml config.
Our code style is defined via the [`.editorconfig`](.editorconfig) file at the repository root; most IDEs (including IntelliJ IDEA and Android Studio) pick it up automatically.

When submitting code, please make every effort to follow existing conventions and code style in order to keep the code as readable as possible.

## Testing

Tests in `commonTest` are the primary suite. They run as JVM tests and as Android host (unit) tests, so no device, emulator, or simulator is required to validate most changes.

## Building

CI installs Zulu 21 to bootstrap Gradle; the daemon itself auto-provisions JetBrains Runtime 21 per `gradle/gradle-daemon-jvm.properties` (criteria: JETBRAINS 21). To change it run:

```shell
./gradlew updateDaemonJvm --toolchain-version=N --toolchain-vendor=VENDOR
```

Note that `gradle/gradle-daemon-jvm.properties` is generated by the `updateDaemonJvm` task — do not edit it by hand.

## Release process

Releases are tag-driven: maintainers tag a release (`v*`) and publish artifacts to Maven Central. The publishing pipeline is being reworked; details will be documented here once finalized.
Loading
Loading