Kotlin / Kotlin/ktfmt

ktfmt migration roadmap

Open
#616 4 comments 59 reactions 0 assignees View on GitHub
Dominant language
Kotlin
Stars
1.3k
Forks
116
Avg merge
4d 10h
Merged PRs (30d)
15

Description

* [ ] **Phase 1: Initial transfer and integration**
* [x] Transfer ktfmt repository to the Kotlin org on GitHub
* [x] Migrate the sources from `com.facebook.*` package to `org.jetbrains.kotlin.*`
* [x] Clean up OS-dependent scripts and tests, replace them with OS-independent analogs
* [x] Set up CI in `Kotlin Tools and Libraries` TeamCity server
* [ ] Set up the publishing process
* [x] Update ktfmt repo documentation/licence/etc.
* [ ] Sync on the status of the [Gradle plugin](https://github.com/cortinico/ktfmt-gradle) and [IntelliJ plugin](https://plugins.jetbrains.com/plugin/14912-ktfmt)

* [ ] **Phase 2: Kotlin repo adoption**
* [ ] Kotlin repo formatting audit
* [ ] sync on the current discrepancies in formatting in Kotlin repo
* [ ] update ktfmt defaults where necessary
* [ ] decide on the future of the `--kotlinlang-style` option
* [ ] analyze the performance/memory impact/developer experience
* [ ] Decide on the ktfmt in Kotlin workflow
* [ ] how is the reformatting performed: IDE (IntelliJ plugin), Gradle, cli
* [ ] when is the reformatting performed: incremental, on save, on commit, on push, on CI
* [ ] Perform one-time reformat of the Kotlin repo
* [ ] decide how to handle branch/PR conflicts
* [ ] Set up CI checks and auto-reformatting
* [ ] Update contribution guidelines
* [ ] Configure ktfmt for the other official Kotlin repos
* [ ] Set up ktfmt vs. Kotlin co-development processes
* [ ] ktfmt vs. Kotlin versioning, decide on alpha/beta/experimental/release status of ktfmt
* [ ] decide how and when new features are added

* [ ] **Phase 3: Long-term community adoption and endorsement**
* [ ] Stabilise the API surface so that external tools can rely on ktfmt
* [ ] Update documentation in https://kotlinlang.org/ to recommend ktfmt
* [ ] provide official IDE/CI setup recommendations
* [ ] provide official Gradle/Maven/other build tools integration
* [ ] Adopt ktfmt as a default formatter in IntelliJ
* [ ] analyze the performance/memory impact
* [ ] define deprecation/migration pipeline
* [ ] sunset ktfmt IntelliJ plugin

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the unchecked items in Phase 1, particularly the publishing process and the status of the Gradle and IntelliJ plugins. No source files, tests, or entry points are named, and the roadmap spans adoption, CI, documentation, and long-term API decisions, so completion criteria must be defined before implementation.

Written by the indexing model from the issue text.

Assessment

Tech stack
kotlin
Domain
developer-experience, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.