Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
REVIEW-1268: More publication cleanup - Use instantiator to decorate IvyArtifactSet - Renamed IvyArtifactSet.addArtifact() -> artifact() - Allow 'source' key in map-based artifact notation - Don't bind IvyArtifactNotationParser to Project: use FileResolver

  1. … 7 more files in changeset.
Started rolling improvements to maven publishing over into ivy publishing (REVIEW-1268) - Prevent publishing artifact that is directory - Better error messages for publication validation failures - Many integration test improvements for ivy publication - Test for non-ascii characters in artifact names - Test for org/module/artifact/version/etc values containing whitespace

  1. … 14 more files in changeset.
ArtifactFile only cares about the version string, not the module (REVIEW-1218)

  1. … 7 more files in changeset.
Introduced IvyConfiguration to ivy-publish DSL - Added IvyConfigurationContainer and IvyConfiguration with implementations - IvyArtifacts are now added to a particular IvyConfiguration of an IvyPublication - Removed various IvyPublication.artifact* methods - Specifying a component to publish constructs the "default" and "runtime" configurations - Published artifacts are the union of artifacts from all configurations - Ivy descriptor is generated from declared configurations, rather than assuming a fixed set.

  1. … 17 more files in changeset.
Ensure that IvyArtifact and MavenArtifact do not return null values that cause publishing to fail

  1. … 7 more files in changeset.
Added final artifact customisation methods to IvyPublication - Currently these methods are planned to move to IvyConfiguration - Still need DSL docs etc

  1. … 3 more files in changeset.
Validate existence of artifact files when publishing with ivy-publish

  1. … 3 more files in changeset.
Set IvyArtifact.type == extension for file-based artifacts. - Need to decide if we need to support classifier in published ivy patterns.

  1. … 7 more files in changeset.
Started adding custom artifact support to ivy-publish plugin (based on maven-publish support) - Added IvyArtifact and IvyArtifactSet - Replaced use of PublishArtifact with IvyArtifact - Added IvyPublication.artifact(source) and IvyPublication.artifact(source, config) - Added IvyArtifactNotationParser and various implementations of IvyArtifact for file/archive/publishArtifact

  1. … 29 more files in changeset.
Cleaned up configuration of descriptorFile on IvyPublication - Can no longer specify descriptorFile directly on publication, this is done by setting destination on GenerateIvyDescriptor task - Default destination is configured directly on GenerateIvyDescriptor task - GenerateIvyDescriptor task supplies ivy descriptor to IvyPublication as a PublishArtifact

  1. … 6 more files in changeset.
Codenarc fix

DefaultIvyModuleDescriptor is no longer Buildable - Wire generator task directly into DefaultIvyPublication - All dependencies of PublishToIvyRepository are managed via IvyPublication.getPublishableFiles()

  1. … 7 more files in changeset.
Moved XmlTransformer to a dedicated package.

  1. … 33 more files in changeset.
Replaced IvyModuleDescriptor.file with IvyPublication.descriptorFile

  1. … 6 more files in changeset.
Change the ivy module descriptor task name pattern to “generate«Publication-name»IvyModuleDescriptor”, using "" if the publication name is “ivy”.

  1. … 1 more file in changeset.
Don't have the IvyArtifactRepository create the IvyPublisher, use the DependencyResolver from it instead to create it.

This removes any trace of the new publishing stuff from core/coreImpl and allows some simplification.

We may find over time that this leads to some awkward duplication, but for the time being I'm favouring touching as little as possible in existing code.

  1. … 15 more files in changeset.
Some minor improvements too the thing that creates descriptor generation tasks for ivy publications.

    • -0
    • +95
    ./gradle/api/publish/ivy/tasks/internal/IvyPublicationDynamicDescriptorGenerationTaskCreatorTest.groovy
  1. … 1 more file in changeset.
Hoist the generation of the Ivy module descriptor up to a separate task.

  1. … 28 more files in changeset.
Rename “IvyRepositoryPublish” task to “PublishToIvyRepository”.

    • -0
    • +143
    ./gradle/api/publish/ivy/tasks/PublishToIvyRepositoryTest.groovy
  1. … 4 more files in changeset.
Change ivy-publish plugin to not create “main” things, and to use a different task naming strategy.

Changes:

1. The implicit publication is named “ivy” (reversion)

2. No repository is created by default (reversion)

3. Dynamically created tasks are named “publish«PUBLICATION NAME»PublicationTo«REPOSITORY NAME»Repository.

The task name leaves something to be desired.

  1. … 18 more files in changeset.
Add “publish” lifecycle task in “publishing” plugin for concrete publish tasks to hang off.

  1. … 8 more files in changeset.
Cleaned up the new ivypublish sample and test.

Also cleaned up some of the ivy test fixtures.

    • -0
    • +143
    ./gradle/api/publish/ivy/tasks/IvyRepositoryPublishTest.groovy
  1. … 18 more files in changeset.
Rename “IvyPublish#to” -> “IvyPublish#repo”.

  1. … 2 more files in changeset.
Move tests to live in the same package as what they test.

    • -143
    • +0
    ./gradle/api/publish/ivy/IvyPublishTest.groovy
    • -0
    • +143
    ./gradle/api/publish/ivy/tasks/IvyPublishTest.groovy
  1. … 4 more files in changeset.
Revert "Don't use a RepositoryHandler for publishing.repositories, use a named object container of ArtifactRepository."

This reverts commit 2a45f47d88797f4fe68e8953a340898d8a6ef29c (change rejected by review).

  1. … 9 more files in changeset.
Revert "Don't use a RepositoryHandler for publishing.repositories, use a named object container of ArtifactRepository."

This reverts commit 2a45f47d88797f4fe68e8953a340898d8a6ef29c.

Reverted due to failing test.

  1. … 9 more files in changeset.
Don't use a RepositoryHandler for publishing.repositories, use a named object container of ArtifactRepository.

This avoids a bunch of awkwardness that stems from the name of the repository being far more important in publication than consumption. It also avoids propagating the RepositoryHandler API to a new place.

When just the “publishing” plugin is applied, repositories cannot be created. When the “ivy-publish” plugin is applied, the container creates instances of IvyArtifactRepository. This is ok for the initial release because that's the only type that we can deal with. Looking forward, we'll need to expand the domain container stuff to be polymorphic.

  1. … 10 more files in changeset.
Don't use a RepositoryHandler for publishing.repositories, use a named object container of ArtifactRepository.

This avoids a bunch of awkwardness that stems from the name of the repository being far more important in publication than consumption. It also avoids propagating the RepositoryHandler API to a new place.

When just the “publishing” plugin is applied, repositories cannot be created. When the “ivy-publish” plugin is applied, the container creates instances of IvyArtifactRepository. This is ok for the initial release because that's the only type that we can deal with. Looking forward, we'll need to expand the domain container stuff to be polymorphic.

  1. … 9 more files in changeset.
Change the naming strategy for publish tasks to optimise for the common 1 publication 1 repository case.

Previously, the default publish task was named “publishIvyToIvy”, because the default publication was named “ivy” and the default repository was named “ivy”. This is pretty awkward.

The naming strategy has been changed to have the default publish task name be “publishToRepo”.

The pattern for publish tasks is “publish«capitalised publication name»To«capitalised repository name»Repo”, but where the name of a publication or repo is omitted if its name is “main”. This seems to work pretty well. See DefaultIvyPublishTaskNameCreatord for examples of how this plays out.

This relies on the “default” publication and repository being named “main”. This is a simple change for the publication (and makes sense), but gets complicated for the repository because of our whack RepositoryHandler DSL. An upcoming commit will attempt to deal with this.

This change also changes the semantics of the “ivy-publish” plugin. This will now be a framework plugin, where the framework is: “This project has a main publication of type Ivy that is published to a main Ivy repository”. At a later time, we will likely add an “ivy-publish-base” plugin that provides factories for creating IvyPublication objects etc. without being so presumptuous.

  1. … 16 more files in changeset.
Fix up how the Ivy publication expresses its publishable files and dependencies.

  1. … 1 more file in changeset.