On 16/07/2011, at 12:36 PM, Adam Murdoch <[email protected]> wrote:
> > On 15/07/2011, at 5:00 PM, [email protected] wrote: > >> Branch: refs/heads/master >> Home: https://github.com/gradle/gradle >> >> Commit: 81e1378cc184abe8553a99f5ffd58ba1128ecf9b >> >> https://github.com/gradle/gradle/commit/81e1378cc184abe8553a99f5ffd58ba1128ecf9b >> Author: Luke Daley <[email protected]> >> Date: 2011-07-15 (Fri, 15 Jul 2011) >> >> Changed paths: >> M subprojects/docs/src/docs/userguide/signingPlugin.xml >> >> Log Message: >> ----------- >> Fixed example of using the Java 6 console for prompting for signing >> credentials. > > I don't think we should be encouraging people to use the console. It just > doesn't work in enough places: CI builds (as you pointed out), or the daemon, > or from the IDE, or when using java 5, or piping through another command, or > when we go parallel/distributed, or .... > > The current plan for credentials management is something like this: > 1. Introduce the concept of credentials to the model, as maybe an explicit > type, or annotations on a property, or both. > 2. Introduce the concept of a credentials provider, which is responsible for > filling out the credentials details. > 3. Add a basic implementation which might do something like this: check for > specific project properties, and use them if provided. Otherwise, if a > console is available, use it to prompt the user. Otherwise, fail. > 4. Allow additional credentials provider implementations to be added, and > maybe package up a few as plugins (a provider which uses ~/.ssh would be > nice. As would an LDAP provider. Or a native keychain provider). > 5. Expose the credentials prompting through the tooling API. > 6. Generalise this to some kind of 'build configuration' capability through > the tooling API, that allows clients to query and mutate build configuration. > Where 'build configuration' means the pieces of information that the build > user can either tweak, or must provide in order to use the build. I obviously agree that it has problems, but until we can provide users with a good solution I think we should provide this code example for users to use if they wish to.
