From Fedora Project Wiki

< User:Mizdebsk

Revision as of 10:58, 23 October 2014 by Mizdebsk (talk | contribs) (Remove tesla-polyglot from TODO)

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

  • 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
    • update to newer version
    • new packages
      • sonar (code quality framework, RHBZ #848096) (msimacek)
      • zinc (incremental Scala compiler)
  • 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

Plan for bootstrapping Gradle in Fedora.

People involved: Mikolaj Izdebski

Current state: during phase 3

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)

Dependencies

Gradle 2.1 build and test dependencies.

groupId artifactId extension classifier version Fedora package Fedora version
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
org.apache.maven maven-ant-tasks pom 2.1.3
org.apache.maven maven-ant-tasks jar 2.1.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