Gang,

I just pushed a refactor of our build. Mostly detangling the historical
pile of tasks. It's still a bit rough on the edges but should do its
job. Some task names and location have changed. Please see
manual/src/docs/tutorials/howto-build-system.txt

Build project names and published artifact names are now decoupled, we
can type:

  ./gradlew :core:runtime:test

instead of:

  ./gradlew:org.apache.polygene.core:org.apache.polygene.core.runtime:test

and thanks to how Gradle task selection work we also can abbreviate this to:

  ./gradlew :c:r:te

so much less typing.

All global tasks from the root project moved into dedicated sub-projects
like 'distributions' and 'release'.

About distributions, the binary distribution now contains binaries in a
local maven repository, including metadata, it's easier to use. The
dist:zipDepDist task assemble a zip containing a maven repository with
all dependencies needed to work with the SDK, including source & javadoc
when available. No more "go offline helpers". The latter zip is quite
big and is not included in the release.

An intended side-effect of these changes is that the build is now much
faster when building a development version (aka. version '0') by not
doing what's necessary when building a SNAPSHOT or release version.

Oh and the whole build is now safe to run with parallel enabled,
including tests. Either use --parallel or add org.gradle.parallel=true
to gradle.properties. Running the whole test suite from a clean build
now takes less than 5 minutes on my 8 cores laptop, was 10+ before. The
only caveat so far is that to debug from the IDE you have to disable
parallel execution, that's why it's not enabled by default.

That's my small christmas gift to you, I hope it won't get in your way
and give you a better experience. I'll go eat and drink too much with
familly and friends and come back next year with a proposal to unify
serialization and get rid of org.json.

Cheers

/Paul

Reply via email to