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...") |
No edit summary |
||
(46 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== Goals == | |||
* package latest Gradle 2.x | |||
* implement local resolver so that packages can be built with Gradle | |||
** this includes Gradle itself | |||
* package older Gradle from 1.x line, if needed (optionall) | |||
** some projects won't compile with Gradle 2.x or even incompatible version from 1.x line | |||
== TODO == | |||
* packaging | |||
** new packages | |||
*** zinc (incremental Scala compiler) | |||
== Bootstrap plan == | == Bootstrap plan == | ||
Line 5: | Line 19: | ||
People involved: [[User:Mizdebsk|Mikolaj Izdebski]] | People involved: [[User:Mizdebsk|Mikolaj Izdebski]] | ||
Current state: | Current state: done, Gradle is in Fedora 22+ | ||
=== Phase 1 (initial bootstrap) === | === Phase 1 (initial bootstrap) === | ||
Line 25: | Line 39: | ||
** Gradle can be built in isolated environment without Internet access | ** Gradle can be built in isolated environment without Internet access | ||
** new rpm packages can be created which use gradle as build system | ** new rpm packages can be created which use gradle as build system | ||
** results: http://copr.fedoraproject.org/coprs/mizdebsk/gradle/ | |||
=== Phase 3 (dependency refinement) === | === Phase 3 (dependency refinement) === | ||
Line 60: | Line 75: | ||
* upstream patches | * upstream patches | ||
* enable tests (if skipped) | * enable tests (if skipped) | ||
Latest revision as of 09:54, 23 July 2015
Goals
- package latest Gradle 2.x
- implement local resolver so that packages can be built with Gradle
- this includes Gradle itself
- package older Gradle from 1.x line, if needed (optionall)
- some projects won't compile with Gradle 2.x or even incompatible version from 1.x line
TODO
- packaging
- new packages
- zinc (incremental Scala compiler)
- new packages
Bootstrap plan
Plan for bootstrapping Gradle in Fedora.
People involved: Mikolaj Izdebski
Current state: done, Gradle is in Fedora 22+
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
- results: http://copr.fedoraproject.org/coprs/mizdebsk/gradle/
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)