Re: Re: Moving off of git-dpm (Re: git-dpm breakage src:faker)

2017-02-07 Thread Ghislain Vaillant
I know the discussion is leaning towards replacing usage of git-dpm
with gbp-pq. I have nothing against it but, since we are talking about
solutions for a git-centric workflow, has anyone considered the dgit-
maint-merge workflow [1]?

It is very well documented and would simplify team-packaging policies a
good deal. Assuming dgit-maint-merge were widely adopted, packaging
policies would only need to cover team-specific details, such as
infrastructure or communication channels for sponsorship, and then
reference the dgit-maint-merge manpages for the packaging workflow.

[1] https://www.mankier.com/7/dgit-maint-merge

Best regards,
Ghis



Re: Best way to package a python module which is "private" with exposed calling script

2017-02-07 Thread Thomas Nyberg

Hi Simon,

Thank you very much for the response!

I've been looking at the offlineimap package on my system (jessie), but 
in my case `/usr/bin/offlineimap` is _not_ a symlink. Also the python 
code is not installed to `/usr/share/offlineimap` and instead to 
`/usr/share/pyshared/offlineimap/` and so if I start a normal 
interpreter `import offlineimap` does work (which I'd rather it not). Am 
I completely missing something here or did you possibly mean another 
example package?


Cheers,
Thomas

P.S. I forgot to subscribe to the list before sending the last email and 
had to hack in the `In-reply-to` value this time. For any readers, in 
case I got this wrong this is the post I'm replying to:


https://lists.debian.org/debian-python/2017/02/msg00018.html



Re: Re: Moving off of git-dpm (Re: git-dpm breakage src:faker)

2017-02-07 Thread Simon McVittie
On Tue, 07 Feb 2017 at 10:47:00 +, Ghislain Vaillant wrote:
> I know the discussion is leaning towards replacing usage of git-dpm
> with gbp-pq. I have nothing against it but, since we are talking about
> solutions for a git-centric workflow, has anyone considered the dgit-
> maint-merge workflow?

The dgit-maint-merge man page starts with some axioms:

   The workflow makes the following opinionated assumptions:

   ·   Git histories should be the non-linear histories produced by
   git-merge(1), preserving all information about divergent
   development that was later brought together.

I don't think that is actually a useful model of distro development.
I'm sure the rest of dgit-maint-merge(7) is a perfectly reasonable
workflow when you start from its assumptions, but I think they're
the wrong assumptions.

I think the downstream maintainer job in vendors like Debian (and Red
Hat, etc.) is essentially a rebasing patch series, whether we represent
it like that in git or not:

* we track an upstream version, which we treat as somehow canonical[1]

* we track what the downstream does as divergence from that upstream
  version, and only secondarily as a product in its own right (this is
  a core assumption in the design of all the non-native dpkg-source
  formats, and also SRPMs, so this is clearly something that has been
  considered important to downstreams)

* when we import a new upstream version, we adjust our divergence to
  apply on top of that new version

* some of the divergence is vendor-specific and we will never upstream it
  (for example adjusting paths/defaults to meet Debian Policy)

* some of the divergence is intended to go upstream, although our
  upstreams don't always apply in-principle-upstreamable changes
  as fast as we'd like them to; when it does get applied, it is often
  applied to their current development branch (like a git-cherry-pick)
  rather than being merged, and even if we send Github pull requests
  or similar, the upstream will want them to be based on some upstream
  branch and not on Debian's

* in Debian's case, even if they want to apply all the patches we propose
  to their upstream source, our upstreams will never want to `git merge`
  the contents of our VCS, because they usually don't want to merge
  debian/ (and in fact we actively recommend that they don't)

That's why, although I find dgit an interesting idea, I think
dgit-maint-merge(7) is a trap. If I use dgit at all, it'll be
dgit-maint-gbp(7) or similar.

[Conflict-of-interest disclaimer: I am a happy user of gbp-pq for every
patched package I maintain, except for tap.py and pkg-gnome svn. I would
love to see gbp-pq adopted by DPMT so I can use it for tap.py, and
when pkg-gnome finally moves from svn to git, given the overlap among
active maintainers between pkg-{systemd,utopia,gnome}, I suspect they
are going to use gbp-pq like pkg-systemd and pkg-utopia do.
I also seriously considered maintaining tap.py outside DPMT as a way
to avoid git-dpm.]

Regards,
S

[1] but in most cases not Canonical :-)



Re: Moving off of git-dpm (Re: git-dpm breakage src:faker)

2017-02-07 Thread Barry Warsaw
On Feb 07, 2017, at 10:47 AM, Ghislain Vaillant wrote:

>I know the discussion is leaning towards replacing usage of git-dpm
>with gbp-pq. I have nothing against it but, since we are talking about
>solutions for a git-centric workflow, has anyone considered the dgit-
>maint-merge workflow [1]?

As I understand it, there are a few design choices that make dgit less
desirable for this team.

The first is that dgit uses single-debian-patch rather than a series of
patches as with quilt.  The individual patches can be viewed in git but that
implies more work for interacting with upstreams and requires the use of the
git repo to examine the individual patches, making it harder for
non-developers or others outside of Debian to see what we've done to their
packages.

The second is that dgit prefers to use the upstream git repo but our work is
heavily orig-tar based since our main input is PyPI and there orig-tars (or
zips) are the predominant distribution format.  This may not be a showstopper
since dgit does say it will work with tarball workflows, but I don't know how
natural that is.

Cheers,
-Barry



Re: Best way to package a python module which is "private" with exposed calling script

2017-02-07 Thread Andrey Rahmatullin
On Tue, Feb 07, 2017 at 08:50:02AM -0500, Thomas Nyberg wrote:
> I've been looking at the offlineimap package on my system (jessie), but in
> my case `/usr/bin/offlineimap` is _not_ a symlink. Also the python code is
> not installed to `/usr/share/offlineimap` and instead to
> `/usr/share/pyshared/offlineimap/` and so if I start a normal interpreter
> `import offlineimap` does work (which I'd rather it not). Am I completely
> missing something here or did you possibly mean another example package?
You should look at the sid package version, it's different there.

-- 
WBR, wRAR


signature.asc
Description: PGP signature


Re: Best way to package a python module which is "private" with exposed calling script

2017-02-07 Thread Thomas Nyberg

On 02/07/2017 08:54 AM, Andrey Rahmatullin wrote:

On Tue, Feb 07, 2017 at 08:50:02AM -0500, Thomas Nyberg wrote:
You should look at the sid package version, it's different there.



Thanks a lot! (Should have been an obvious first step...)

And thanks a lot everyone else!

Also I figure I might as well mention on this list that I went through 
and put together a bare-bones example for myself. There are always minor 
finicky things with this (at least for me) so I figure I might as well 
link it in this thread for any future internet travelers. Might save 
them a little hassle...


https://github.com/ApproximateIdentity/debian-private-package



Re: Re: Moving off of git-dpm (Re: git-dpm breakage src:faker)

2017-02-07 Thread Dmitry Shachnev
On Tue, Feb 07, 2017 at 10:47:00AM +, Ghislain Vaillant wrote:
> I know the discussion is leaning towards replacing usage of git-dpm
> with gbp-pq. I have nothing against it but, since we are talking about
> solutions for a git-centric workflow, has anyone considered the dgit-
> maint-merge workflow [1]?
>
> [1] https://www.mankier.com/7/dgit-maint-merge

Quoting from that manpage:

| Debian modifications to the upstream source are squashed into a single diff,
| rather than a series of quilt patches.

No, please let’s not use this. (I am with ScottK here.)

The gbp-pq approach looks fine to me.

--
Dmitry Shachnev


signature.asc
Description: PGP signature