Hello,

On Mon 30 Jul 2018 at 11:37AM +0200, Johannes Schauer wrote:

> my problem with adding the --no-source-only-changes option is, that sbuild
> already today has a ton of command line options. I even know of blog posts 
> that
> specifically lament the hell of options that they are confronted with when 
> they
> open the sbuild man page.
>
> This is why, when introducing a command line option, then it should be one 
> that
> is really necessary or otherwise it will further clutter the available space.
>
> My fear is, that after introducing --no-source-only-changes, then somebody 
> will
> find another option that needs to be introduced for an sbuild wrapper to work.

I saw one of those blog posts too, and I have a few responses.

Firstly, --source-only-changes already exists, and
--no-source-only-changes is just the inverse, so it does not really add
any more material that a user must understand.

Secondly, please do not assume that everyone reacts the same way to the
sbuild manpage :)  When I type `man sbuild`, I am happy to see so many
options, because it means that sbuild is powerful and highly
configurable, and I can probably make it do what I need.

Thirdly, there are better way of controlling the presentation of
documentation: for example, you can separate reference and tutorial
documentation.  We had a similar problem with dgit(1) and
git-debrebase(1) that you are having with sbuild(1).  Our solution was
to add dgit-maint-*(7) manpages that help a new user get started.  Once
you are comfortable with the tools, you can look at dgit(1) and
git-debrebase(1).  Maybe you need sbuild-tutorial(7)?

> Do we know that there is really no other option that dgit needs?

It's highly unlikely, because we use sbuild in quite a straightforward
way: feed it a .dsc, and take from it a binary-only .changes and its
binaries.

> Another thought: Currently nothing prevents the user from typing:
>
> % dgit sbuild --source-only-changes
>
> So maybe there is a better way to do things?

Ian and I talked about this and we decided that if the user passes this
option, they get to keep the pieces.  As I said, we don't want to be a
full wrapper for sbuild.  The only other thing to pass is #904862.

> As you argued, it might be important that sbuild reads the user's
> ~/.sbuildrc, so how about the following solution:
>
> Let dgit run sbuild in a temporary directory, and then whatever files
> sbuild creates will not conflict with the files dgit creates. Dgit
> could then just retrieve the files it needs from the temporary
> directory and then delete the directory. This also makes sure that
> there are no further clashes in terms of files sbuild creates. For
> example: there is an open bug against sbuild that asks whether it
> would be possible for the user to specify a custom pattern of how
> sbuild names the .changes file. Now suppose the user ends up using the
> pattern that dgit chose.

Hmm.  This is an interesting suggestion.

I should explain exactly what can go wrong if the user *does* pass
--source-only-changes: if sbuild overwrites the _source.changes, the -v
option passed to dgit will not take effect.  We haven't tested
extensively, but we think that that's it.

Given that what can go wrong is not all that serious, the solution you
propose seems like overkill when compared to adding the inverse of
--source-only-changes to sbuild.

-- 
Sean Whitton

Attachment: signature.asc
Description: PGP signature

Reply via email to