To do:
Android:
General
- KFiles.findSourceFiles should cache its results
- createCompilerAction should calculate source files once and for all, including contributors and interceptors
- Need a -resolve with no dependency which gives the tree for the whole project
- If jitpack specified with http and not https, 301 is not handled correctly
- Apt should run from serviceloader
- Console mode with watch service, so recompilation can occur as soon as a source file is modified
- ProjectGenerator: support migration from pom.xml (starting with dependencies)
- Specify where to upload snapshots
- repos() must appear before plugins(): fix that
- Generate .idea and other IDEA files
- Fetch .pom with DynamicGraph
- Centralize all the executors
- Archetypes (e.g. "--initWith kobalt-plug-in")
- Compile TestNG (last piece missing: OSGi headers)
- Support additional .kt files in ~/.kobalt/src
- --init: import dependencies from build.gradle
- --init: also extract kobalt.bat (or generate it along with kobaltw)
- Encapsulate ProcessBuilder code
Done:
-
Dex dependencies into kobaltBuild/intermediates/pre-dexed and preserve those across builds
-
Compile with javax.tool
-
Android: multiple -source/-target flags
-
Dokka: allow multiple format outputs e.g
outputFormat("html", "javadoc")
-
Finish abstracting everything in
JvmCompilerPlugin
-
Dependent projects: kobalt should automatically add the dependency on the jar file
-
Make what version preBuildScript.jar was compiled with and wipe on new version
-
Get rid of the $JAVA_HOME requirement
-
getDependencies() should return the transitive dependencies
-
Storage API: Plugins.storage("myplugin").get/set()
-
Add the % download display in the Kotlin wrapper
-
archetypes, e.g. --initWith kotlin
-
Project ordering: kotlinProject(wrapper) {}
-
Make files appear in download list automatically on bintray (undocumented API)
-
Link kobalt to JCenter
-
uploadMaven
- Create sources.jar
- Create javadoc.jar
-
--update
-
Support .pom pointing to other deps (and no jars)
-
provided scope
-
--dryRun
-
--init: import dependencies from pom.xml
-
--checkVersions: displays which plugins have a newer version than the one specified in the build
-
Make it possible to target jar for individual projects: ./kobaltw kobalt:uploadJcenter
-
--buildFile doesn't use the local .kobalt directory
-
Better plugin() parsing
-
kobalt-wrapper.jar contains too much stuff, should be just com.beust.kobalt.wrapper.* + kotlin runtime or maybe just a straight Java class with minimal dependencies for fast start up
-
Add repos from the build file
-
Support tasks added in the build file
-
Replace "removePrefixes" with an overloaded include(prefix, file)
-
--init: Don't overwrite existing file
-
Handle snapshots/metadata: https://repository.jboss.org/nexus/content/repositories/root_repository//commons-lang/commons-lang/2.7-SNAPSHOT/commons-lang-2.7-SNAPSHOT.jar
-
JUnit
-
Compiler nowarn section
-
Parse plugins and repos in build files
-
Stop always recompiling preBuildScript.jar
-
Upload non maven files
-
Jar packaging: include the jar in the jar (not supported by JarFile)
-
Encapsulate BuildFile for better log messages
-
The test runner only selects classes with a parameterless constructor, which works for JUnit but not for TestNG
-
Add a "Auto complete Build.kt" menu in the plug-in
-
"All artifacts successfully uploaded" is shown before the upload is actually done
-
use groupId/artifactId factories
-
Support version ranges
-
Upload in a thread pool
-
logs for users should not show any timestamp, class file or thread id, this should only be in --dev mode
-
Bug: --tasks displays multiple tasks when there are multiple projects
-
Bug: ./kobaltw --dryRun kobalt:uploadJcenter runs "kobalt-wrapper:clean" twice
-
Create a wiki page for plugins
-
Make kobaltw executable in the zip file
-
--resolve
-
Move the calculated applicationId back into the merged AndroidManifest.xml
-
Dex from android builder
-
Keep exploded aars between runs
-
aars keep being refetched
-
See if there is an android manifest file in builder
-
Auto add variant