From Fedora Project Wiki
No edit summary
 
(34 intermediate revisions by 2 users not shown)
Line 9: Line 9:
== TODO ==
== TODO ==


* report usage of non-free JSON library (org.json:json)
** "The Software shall be used for Good, not Evil."
** android-json-org-java can be used as free replacement
* packaging
* packaging
** update to newer version
** new packages
*** groovy
*** zinc (incremental Scala compiler)
*** spock-core
*** native-platform
* patching Gradle
** port to apache-sshd 0.11.0 (uses 0.10.0, minor patch)
** port to jetty 9 (uses 6)
** port to aether-ant-tasks from maven-ant-tasks


== Bootstrap plan ==
== Bootstrap plan ==
Line 28: Line 19:
People involved: [[User:Mizdebsk|Mikolaj Izdebski]]
People involved: [[User:Mizdebsk|Mikolaj Izdebski]]


Current state: during phase 3
Current state: done, Gradle is in Fedora 22+


=== Phase 1 (initial bootstrap) ===
=== Phase 1 (initial bootstrap) ===
Line 84: Line 75:
* upstream patches
* upstream patches
* enable tests (if skipped)
* enable tests (if skipped)
== Dependencies ==
Gradle 2.1 build and test dependencies.
{| class="wikitable sortable"
|+
! groupId !! artifactId !! extension !! classifier !! version !! Fedora package !! Fedora version
|-
| biz.aQute.bnd
| bndlib
| pom
|
| 2.1.0
|
|
|-
| biz.aQute.bnd
| bndlib
| jar
|
| 2.1.0
|
|
|-
| biz.aQute.bnd
| parent
| pom
|
| 2.1.0
|
|
|-
| cglib
| cglib-nodep
| pom
|
| 2.2
|
|
|-
| cglib
| cglib-nodep
| jar
|
| 2.2
|
|
|-
| com.typesafe.sbt
| compiler-interface
| pom
|
| 0.13.0
|
|
|-
| com.typesafe.sbt
| compiler-interface
| jar
| sources
| 0.13.0
|
|
|-
| com.typesafe.sbt
| incremental-compiler
| jar
|
| 0.13.0
|
|
|-
| com.typesafe.sbt
| incremental-compiler
| pom
|
| 0.13.0
|
|
|-
| com.typesafe.sbt
| sbt-interface
| jar
|
| 0.13.0
|
|
|-
| com.typesafe.sbt
| sbt-interface
| pom
|
| 0.13.0
|
|
|-
| com.typesafe.zinc
| zinc
| pom
|
| 0.3.0
|
|
|-
| com.typesafe.zinc
| zinc
| jar
|
| 0.3.0
|
|
|-
| docbook
| docbook-xsl
| zip
|
| 1.75.2
|
|
|-
| docbook
| docbook-xsl
| pom
|
| 1.75.2
|
|
|-
| jquery
| jquery.min
| js
|
| 1.11.0
|
|
|-
| junit
| junit
| pom
|
| 4.11
|
|
|-
| junit
| junit
| pom
|
| 4.12-beta-1
|
|
|-
| junit
| junit
| pom
|
| 4.12-beta-2
|
|
|-
| net.rubygrapefruit
| native-platform
| pom
|
| 0.10
|
|
|-
| net.rubygrapefruit
| native-platform
| jar
|
| 0.10
|
|
|-
| net.rubygrapefruit
| native-platform-freebsd-amd64
| pom
|
| 0.10
|
|
|-
| net.rubygrapefruit
| native-platform-freebsd-amd64
| jar
|
| 0.10
|
|
|-
| net.rubygrapefruit
| native-platform-freebsd-i386
| pom
|
| 0.10
|
|
|-
| net.rubygrapefruit
| native-platform-freebsd-i386
| jar
|
| 0.10
|
|
|-
| net.rubygrapefruit
| native-platform-linux-amd64
| pom
|
| 0.10
|
|
|-
| net.rubygrapefruit
| native-platform-linux-amd64
| jar
|
| 0.10
|
|
|-
| net.rubygrapefruit
| native-platform-linux-i386
| pom
|
| 0.10
|
|
|-
| net.rubygrapefruit
| native-platform-linux-i386
| jar
|
| 0.10
|
|
|-
| net.rubygrapefruit
| native-platform-osx-amd64
| pom
|
| 0.10
|
|
|-
| net.rubygrapefruit
| native-platform-osx-amd64
| jar
|
| 0.10
|
|
|-
| net.rubygrapefruit
| native-platform-osx-i386
| jar
|
| 0.10
|
|
|-
| net.rubygrapefruit
| native-platform-osx-i386
| pom
|
| 0.10
|
|
|-
| net.rubygrapefruit
| native-platform-windows-amd64
| jar
|
| 0.10
|
|
|-
| net.rubygrapefruit
| native-platform-windows-amd64
| pom
|
| 0.10
|
|
|-
| net.rubygrapefruit
| native-platform-windows-i386
| pom
|
| 0.10
|
|
|-
| net.rubygrapefruit
| native-platform-windows-i386
| jar
|
| 0.10
|
|
|-
| org.apache.maven
| maven-ant-tasks
| pom
|
| 2.1.3
|
|
|-
| org.apache.maven
| maven-ant-tasks
| jar
|
| 2.1.3
|
|
|-
| org.bouncycastle
| bcpg-jdk15
| jar
|
| 1.46
|
|
|-
| org.bouncycastle
| bcpg-jdk15
| pom
|
| 1.46
|
|
|-
| org.bouncycastle
| bcprov-jdk15
| jar
|
| 1.46
|
|
|-
| org.bouncycastle
| bcprov-jdk15
| pom
|
| 1.46
|
|
|-
| org.codehaus.groovy
| groovy
| pom
|
| 2.3.7
|
|
|-
| org.codehaus.groovy
| groovy
| pom
|
| 2.4.0-beta-1
|
|
|-
| org.codehaus.groovy
| groovy
| pom
|
| 2.4.0-beta-2
|
|
|-
| org.codehaus.groovy
| groovy
| pom
|
| 2.4.0-beta-3
|
|
|-
| org.codehaus.sonar-plugins
| parent
| pom
|
| 13
|
|
|-
| org.codehaus.sonar-plugins
| sonar-runner
| jar
|
| 2.0
|
|
|-
| org.codehaus.sonar-plugins
| sonar-runner
| pom
|
| 2.0
|
|
|-
| org.codehaus.sonar
| sonar
| pom
|
| 2.9
|
|
|-
| org.codehaus.sonar
| sonar-batch
| pom
|
| 2.9
|
|
|-
| org.codehaus.sonar
| sonar-batch
| jar
|
| 2.9
|
|
|-
| org.codehaus.sonar
| sonar-batch-bootstrapper
| pom
|
| 2.9
|
|
|-
| org.codehaus.sonar
| sonar-batch-bootstrapper
| jar
|
| 2.9
|
|
|-
| org.codehaus.sonar
| sonar-plugin-api
| jar
|
| 2.9
|
|
|-
| org.codehaus.sonar
| sonar-plugin-api
| pom
|
| 2.9
|
|
|-
| org.mortbay.jetty
| jetty
| pom
|
| 6.1.25
|
|
|-
| org.mortbay.jetty
| jetty
| jar
|
| 6.1.25
|
|
|-
| org.mortbay.jetty
| jetty-annotations
| jar
|
| 6.1.25
|
|
|-
| org.mortbay.jetty
| jetty-annotations
| pom
|
| 6.1.25
|
|
|-
| org.mortbay.jetty
| jetty-naming
| jar
|
| 6.1.25
|
|
|-
| org.mortbay.jetty
| jetty-naming
| pom
|
| 6.1.25
|
|
|-
| org.mortbay.jetty
| jetty-parent
| pom
|
| 10
|
|
|-
| org.mortbay.jetty
| jetty-parent
| pom
|
| 7
|
|
|-
| org.mortbay.jetty
| jetty-plus
| jar
|
| 6.1.25
|
|
|-
| org.mortbay.jetty
| jetty-plus
| pom
|
| 6.1.25
|
|
|-
| org.mortbay.jetty
| jetty-util
| jar
|
| 6.1.25
|
|
|-
| org.mortbay.jetty
| jetty-util
| pom
|
| 6.1.25
|
|
|-
| org.mortbay.jetty
| jsp-2.1
| jar
|
| 6.1.14
|
|
|-
| org.mortbay.jetty
| jsp-2.1
| pom
|
| 6.1.14
|
|
|-
| org.mortbay.jetty
| jsp-api-2.1
| jar
|
| 6.1.14
|
|
|-
| org.mortbay.jetty
| jsp-api-2.1
| pom
|
| 6.1.14
|
|
|-
| org.mortbay.jetty
| project
| pom
|
| 6.1.14
|
|
|-
| org.mortbay.jetty
| project
| pom
|
| 6.1.25
|
|
|-
| org.scala-lang.modules
| scala-xml_2.11
| pom
|
| 1.0.2
|
|
|-
| org.scala-lang
| scala-library
| pom
|
| 2.11.3
|
|
|-
| org.scalatest
| scalatest_2.11
| pom
|
| 2.2.2
|
|
|-
| org.scalatest
| scalatest_2.11
| pom
|
| 2.2.3-SNAP1
|
|
|-
| org.scalatest
| scalatest_2.11
| pom
|
| 2.2.3-SNAP2
|
|
|-
| org.scalatest
| scalatest_2.11
| pom
|
| 3.0.0-SNAP1
|
|
|-
| org.sonatype.pmaven
| pmaven-common
| pom
|
| 0.8-20100325
|
|
|-
| org.sonatype.pmaven
| pmaven-common
| jar
|
| 0.8-20100325
|
|
|-
| org.sonatype.pmaven
| pmaven-groovy
| jar
|
| 0.8-20100325
|
|
|-
| org.sonatype.pmaven
| pmaven-groovy
| pom
|
| 0.8-20100325
|
|
|-
| xhtmlrenderer
| xhtmlrenderer
| jar
|
| R8rc1
|
|
|-
| xhtmlrenderer
| xhtmlrenderer
| pom
|
| R8rc1
|
|
|-
| xslthl
| xslthl
| jar
|
| 2.0.1
|
|
|-
| xslthl
| xslthl
| pom
|
| 2.0.1
|
|
|-}

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)

Bootstrap plan

Plan for bootstrapping Gradle in Fedora.

People involved: Mikolaj Izdebski

Current state: done, Gradle is in Fedora 22+

Phase 1 (initial bootstrap)

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:

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)