From Fedora Project Wiki
(Created page with "== Bootstrap plan == Plan for bootstrapping Gradle in Fedora. People involved: Mikolaj Izdebski Current state: during phase 2 === Phase 1 (initial bootst...") |
mNo edit summary |
||
Line 66: | Line 66: | ||
** Ivy resolvers are not supported in Gradle 2.x | ** Ivy resolvers are not supported in Gradle 2.x | ||
** custom resolvers are internal within Gradle (org.gradle.api.internal) | ** custom resolvers are internal within Gradle (org.gradle.api.internal) | ||
** this used to work for Gradle 1.x: | |||
buildscript { | |||
dependencies { | |||
classpath files('/usr/share/java/xmvn/xmvn-connector-ivy.jar', | |||
'/usr/share/java/xmvn/xmvn-launcher.jar', | |||
'/usr/share/java/xmvn/xmvn-api.jar') | |||
} | |||
} | |||
repositories { | |||
add(new org.fedoraproject.xmvn.connector.ivy.IvyResolver()) | |||
} |
Revision as of 13:07, 13 October 2014
Bootstrap plan
Plan for bootstrapping Gradle in Fedora.
People involved: Mikolaj Izdebski
Current state: during phase 2
Phase 1 (initial bootstrap)
- build rpm package containing upstream binaries
- rebuild Gradle from source
- all dependencies coming from the Internet
- from now on:
- Gradle can be installed from rpm
- results: https://mizdebsk.fedorapeople.org/gradle/stage1/
Phase 2 (local mode)
- implement local mode using XMvn
- package all Gradle build dependencies in wrapper rpm
- binaries taken from the Internet
- XMvn metadata added
- from now on:
- Gradle can be built in isolated environment without Internet access
- new rpm packages can be created which use gradle as build system
Phase 3 (dependency refinement)
- while wrapper rpm is not empty:
- pick one artifact from wrapper rpm
- if it is not yet available in fedora:
- build it from source and package it as rpm
- skip tests if there are too many missing test dependencies
- add any missing build or test dependencies to wrapper rpm
- rebuild Gradle and run tests to make sure everything keeps working
- if there are build or test failures, debug them and create patches
- get rid of wrapper rpm
- from now on:
- Gradle with all dependencies are free from prebuilt binaries
- everything is patched to work with artifact versions available in Fedora
Phase 4 (push to Fedora)
- request FPC bootstrap exception
- for all new packages:
- do review (licensing etc)
- cleanup spec file
- submit for review
- someone else reviews the package
- package is checked into Fedora git and built in Koji
- from now on:
- we have gradle in Fedora
Phase 5 (further improvements)
- implement javapackages macros for Gradle
- prepare packaging documentation
- announce gradle availability
- upstream patches
- enable tests (if skipped)
Blocker problems
- there is no public API for providing custom resolver
- Ivy resolvers are not supported in Gradle 2.x
- custom resolvers are internal within Gradle (org.gradle.api.internal)
- this used to work for Gradle 1.x:
buildscript { dependencies { classpath files('/usr/share/java/xmvn/xmvn-connector-ivy.jar', '/usr/share/java/xmvn/xmvn-launcher.jar', '/usr/share/java/xmvn/xmvn-api.jar') } } repositories { add(new org.fedoraproject.xmvn.connector.ivy.IvyResolver()) }