On 21/06/2012, at 1:06 AM, Adam Murdoch wrote:
>
> On 20/06/2012, at 6:57 AM, Luke Daley wrote:
>
>>
>> On 19/06/2012, at 2:41 PM, Daz DeBoer wrote:
>>
>>> G'day
>>>
>>> I've just added a deprecation warning when there is an attempt to publish
>>> an artifact that doesn't exist. Previously, we were silently ignoring these
>>> missing artifacts, which was pretty poor behaviour.
>>>
>>> Unfortunately, the Signing Plugin currently depends on this behaviour for
>>> {required = false}, which means the signing plugin emits the deprecation
>>> warning when signing is optional and signatures are not generated. More at
>>> http://forums.gradle.org/gradle/topics/signing_plugin_add_to_configuration_even_if_its_not_being_run.
>>> This is also causing problems with the Artifactory Plugin, which doesn't
>>> handle the missing artifacts.
>>>
>>> As Luke mentioned, one option would be to add something to the model here:
>>> the concept of an _optional_ artifact in a configuration, which may or may
>>> not be present based on other factors.
>>> Alternatively, we'd need to find a way to ensure that these artifacts are
>>> not in the configuration when publishing, if they are not actually
>>> generated. I haven't looked deeply into the plugin to see how this would
>>> work.
>>>
>>> From here we could:
>>> 1) Fix the signing plugin now, as part of the unrelated story that
>>> triggered the adding of the deprecation warning.
>>> 2) Add a new story to fix the signing plugin, and ensure that it's done
>>> before 1.1, so we don't release software that emits deprecation warnings in
>>> normal usage
>>> 3) Roll-back the deprecation warning and add a new story to fix the Signing
>>> Plugin and put the deprecation warning back in
>>>
>>> I'm tempted to go for 3), since the deprecation warning is trivial to
>>> add/remove, but the fix is not.
>>
>>
>> Given that we don't have a solid plan (than I know of)
>
> The plan is the same as last time we discussed it:
> 1. Model publications as things, independent of destination.
> 2. Model signature generation as a transformation of a thing.
> 3. Model conditional configuration using build types.
> 4. Add a plugin that wires the above together in an opinionated way (e.g. all
> publications of type x must be signed).
>
> We really only need 3) to solve the use case, though.
What's the final result here? How are we proceeding?
--
Luke Daley
Principal Engineer, Gradleware
http://gradleware.com