Re: [gentoo-dev] Should Sphinx really depends on PYTHON_COMPAT/PYTHON_USEDEP for `dev-python/*` ebuilds?

2017-05-12 Thread Dale
Daniel Campbell wrote:
> On 05/11/2017 12:51 AM, Michał Górny wrote:
>> In fact, I'm personally leaning towards not building docs at all
>> in ebuilds. It's practically a wasted effort since most of the time
>> users read docs online anyway.
> I believe that's a little myopic; a user (or even developer) may not
> have Internet access all the time, or may not have it in their primary
> development environment. Having a copy of the docs locally (the entire
> point of USE="doc") is super valuable to have when you're away from the
> network. I'm sure I'm not alone as one of the people who uses the flag
> and appreciates the work that goes into making sure said flag works.
>
> Sure, we could yank out every single USE="doc", but then we lose a nice
> feature of the tree and users are back to either (a) trawling the Web to
> find the project site, then hope they have docs in a separate download,
> or (b) we end up with foo+1 packages, one extra for any package that has
> documentation. Neither are particularly good solutions; Debian has done
> the latter and it results in a huge number of packages for little gain.

As a long term user, I always look at the docs first.  One reason, the
docs should match the version I have installed.  If a package has
changed recently, the online docs become version dependent which makes
it harder to find online.  I've actually ran into that before when I'm
googling trying to get something to work to only find out that the way
things are set up has changed and no longer applies to what I have
installed. 

Having the docs included when available should be required. 

Dale

:-)  :-) 



Re: [gentoo-dev] Should Sphinx really depends on PYTHON_COMPAT/PYTHON_USEDEP for `dev-python/*` ebuilds?

2017-05-12 Thread Daniel Campbell
On 05/11/2017 12:51 AM, Michał Górny wrote:
> In fact, I'm personally leaning towards not building docs at all
> in ebuilds. It's practically a wasted effort since most of the time
> users read docs online anyway.

I believe that's a little myopic; a user (or even developer) may not
have Internet access all the time, or may not have it in their primary
development environment. Having a copy of the docs locally (the entire
point of USE="doc") is super valuable to have when you're away from the
network. I'm sure I'm not alone as one of the people who uses the flag
and appreciates the work that goes into making sure said flag works.

Sure, we could yank out every single USE="doc", but then we lose a nice
feature of the tree and users are back to either (a) trawling the Web to
find the project site, then hope they have docs in a separate download,
or (b) we end up with foo+1 packages, one extra for any package that has
documentation. Neither are particularly good solutions; Debian has done
the latter and it results in a huge number of packages for little gain.
-- 
Daniel Campbell - Gentoo Developer
OpenPGP Key: 0x1EA055D6 @ hkp://keys.gnupg.net
fpr: AE03 9064 AE00 053C 270C  1DE4 6F7A 9091 1EA0 55D6



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] Should Sphinx really depends on PYTHON_COMPAT/PYTHON_USEDEP for `dev-python/*` ebuilds?

2017-05-12 Thread Michał Górny
On czw, 2017-05-11 at 11:47 +0700, Alex Turbov wrote:
> DEPEND=( doc?
> || (
> (
> dev-python/sphinx[python_targets_python2_7]
> # NOTE This packages provide extensions for Sphinx
> dev-python/rst-linker[python_targets_python2_7]
> dev-python/jaraco-packaging[python_targets_python2_7]
> )
> (
> dev-python/sphinx[python_targets_python3_5]
> dev-python/rst-linker[python_targets_python3_5]
> dev-python/jaraco-packaging[python_targets_python3_5]
> )
> (
> dev-python/sphinx[python_targets_python3_6]
> dev-python/rst-linker[python_targets_python3_6]
> dev-python/jaraco-packaging[python_targets_python3_6]
> )
> )
>   )
> 

One more thing I've missed in my initial mail. The other problem with
this solution (alone) is that it doesn't enforce the implementation that
satisfied the dependency.

Let's take a simple example. You've built sphinx for 2.7+3.5 but rst-
linker and jaraco-packaging for 3.5 only. The dependency is satisfied
because the 3.5 branch matches. However, you have no rule to enforce
3.5, so sphinx could be actually called with 2.7 and fail.

This is a generic problem that was pretty much solved by python-any-r1.
I think we should be able to copy the most important pieces of the API
to python-r1 to achieve something similar, i.e. add python_gen_any_dep
to generate the depstrings and make python_setup aware of
python_check_deps(). Then the above would be written alike:

  DEPEND="doc? ( $(python_gen_any_dep '
  dev-python/sphinx[${PYTHON_USEDEP}]
  dev-python/rst-linker[${PYTHON_USEDEP}]
  dev-python/jaraco-packaging[${PYTHON_USEDEP}]
') )"

  python_check_deps() {
has_version "dev-python/sphinx[${PYTHON_USEDEP}]" &&
has_version "dev-python/rst-linker[${PYTHON_USEDEP}]" &&
has_version "dev-python/jaraco-packaging[${PYTHON_USEDEP}]"
  }

python_setup would verify which implementation has the dependencies
satisfied, and set it for the common code building docs.

However:

1. I think it would work. However, I can't be sure until I implement it,
and even then I might miss something.

2. It's a significant extension to the API, and kinda goes against
the goal of making the eclass simpler. However, it mostly fits what is
in python-any-r1 already, so at least it doesn't introduce a new API.

So I'd like others to chime in and let me know whether they consider
this a worthwhile addition before I start working on it.

-- 
Best regards,
Michał Górny


signature.asc
Description: This is a digitally signed message part


Re: [gentoo-dev] Should Sphinx really depends on PYTHON_COMPAT/PYTHON_USEDEP for `dev-python/*` ebuilds?

2017-05-12 Thread Michał Górny
On pią, 2017-05-12 at 13:20 +0700, Alex Turbov wrote:
> On Thu, May 11, 2017 at 2:51 PM, Michał Górny  wrote:
> 
> > Hi,
> > 
> > Few janitorial notes for a start:
> > 
> > 1. please fix your line wrapping since your messages are wrapped twice
> > now, and it's really hard to read with single words on every second
> > line;
> > 
> 
> sorry, I don't understand what are you talking about... probably some
> problem with your email client (or whatever you use).
> I'm using gmail's web UI and see no double wraps...

Example from your e-mail (I've added empty lines to prevent gmail from
pretending it's fine):

| that my primary (and default) Python version is 3.5 and I have some 2.7

| packages

| (ebuilds) only because they required by something else (really important to

| me).

Plus, please disable HTML mail. It is possible that this will also fix
text mail format.

> > You can't use python_targets directly since it will break when the old
> > implementations are disabled (and also make it PITA for others to add
> > new impls).
> > 
> 
> Ok, what I can use instead?

No solution for the moment. I have some idea though, and I will shortly
reply to your original e-mail on it.

> > Long story short, it's not worth the effort.
> > 
> > Yes, most of the time people specify PYTHON_USEDEP on sphinx needlessly.
> >  There are two other major cases when you need it though:
> > 
> > 1. things like autointerface that interface with packages' code,
> > 
> 
> what are you talking about? (
> https://pypi.python.org/pypi/repoze.sphinx.autointerface/ ??)

Yes, that one. There could possibly be more.

> > 2. and packages calling sphinx via 'python /usr/bin/sphinx ...' (i.e.
> > requiring impl match between python in use and sphinx).
> > 
> 
> do you mean they are doing it from ebuild?

More often from Makefile or setup.py, or any other wrapper that we have
no direct control of.

> > However, tracking the other uses down and figuring them is not worth
> > the effort. In the end, someone will probably add it back thinking
> > someone must've missed it. It's too hard to get it right.
> > 
> 
> I didn't get what are you talking about...

I mean that it's highly probable that some other developer seeing
dependency on dev-python/sphinx without PYTHON_USEDEP will readd it,
thinking that the developer missed it by mistake.

> 
> 
> > Building Sphinx with less implementations than its reverse dependencies
> > is a corner case. It's not really worth spending hours making sure
> > depends are 100% strictly correct. The more important goal is to have
> > things working reliably, and overspecified deps are reliable, i.e.
> > packages won't fail to build because of them.
> > 
> > 
> 
> Ok, seems I've got your point of view, but can't agree w/ it... Well, I
> would fight alone w/ it
> 

Just to be clear, I'm not opposed to accepting fixes if you want to work
on them. I'm just saying you can expect an uphill battle, and not much
of help.

-- 
Best regards,
Michał Górny


signature.asc
Description: This is a digitally signed message part


Re: [gentoo-dev] [RFC] 17.0 profile update

2017-05-12 Thread M. J. Everitt
On 12/05/17 16:54, Kristian Fiskerstrand wrote:
> On 05/12/2017 05:50 PM, Ulrich Mueller wrote:
>>> On Fri, 12 May 2017, Matthias Maier wrote:
>>> I will post an RFC for a profile update (and a news item) for 17.0
>> We used to count from 1999 (namely, 10.0 introducing the counting
>> appeared on our 10th anniversary).
>>
>> So shouldn't the above be 18.0?
> Interesting historical tidbit, but, 13.0 was done in 2013, I believe it
> makes sense to sticking to year and make it 17.0
>
>
A bikeshed about profile naming .. well I never ..



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] [RFC] 17.0 profile update

2017-05-12 Thread Kristian Fiskerstrand
On 05/12/2017 05:50 PM, Ulrich Mueller wrote:
>> On Fri, 12 May 2017, Matthias Maier wrote:
> 
>> I will post an RFC for a profile update (and a news item) for 17.0
> 
> We used to count from 1999 (namely, 10.0 introducing the counting
> appeared on our 10th anniversary).
> 
> So shouldn't the above be 18.0?

Interesting historical tidbit, but, 13.0 was done in 2013, I believe it
makes sense to sticking to year and make it 17.0


-- 
Kristian Fiskerstrand
OpenPGP keyblock reachable at hkp://pool.sks-keyservers.net
fpr:94CB AFDD 3034 5109 5618 35AA 0B7F 8B60 E3ED FAE3



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] [RFC] 17.0 profile update

2017-05-12 Thread Ulrich Mueller
> On Fri, 12 May 2017, Matthias Maier wrote:

> I will post an RFC for a profile update (and a news item) for 17.0

We used to count from 1999 (namely, 10.0 introducing the counting
appeared on our 10th anniversary).

So shouldn't the above be 18.0?

Ulrich


pgpaE0ZYH2Lu2.pgp
Description: PGP signature


Re: [gentoo-dev] Should Sphinx really depends on PYTHON_COMPAT/PYTHON_USEDEP for `dev-python/*` ebuilds?

2017-05-12 Thread Alex Turbov
On Thu, May 11, 2017 at 2:51 PM, Michał Górny  wrote:

> Hi,
>
> Few janitorial notes for a start:
>
> 1. please fix your line wrapping since your messages are wrapped twice
> now, and it's really hard to read with single words on every second
> line;
>

sorry, I don't understand what are you talking about... probably some
problem with your email client (or whatever you use).
I'm using gmail's web UI and see no double wraps...


>
> 2. hardcore Python topics belong on gentoo-python@ but I guess we'll
> continue here,
>

I don't see this ML here: https://gentoo.org/get-involved/mailing-lists/ so
I decided to use `gentoo-dev`


>
> 3. please keep your messages brief. The first three paragraphs tell
> a thing that could be told in one sentence.
>

I've got no idea what message format is "usual" in this ML... from my
experience talking to various "tech support" and bug trackers ppl usually
asking a lot of stupid questions if I wrote just "one sentence"...


>
> You can't use python_targets directly since it will break when the old
> implementations are disabled (and also make it PITA for others to add
> new impls).
>

Ok, what I can use instead?


>
>
> Long story short, it's not worth the effort.
>
> Yes, most of the time people specify PYTHON_USEDEP on sphinx needlessly.
>  There are two other major cases when you need it though:
>
> 1. things like autointerface that interface with packages' code,
>

what are you talking about? (
https://pypi.python.org/pypi/repoze.sphinx.autointerface/ ??)


>
> 2. and packages calling sphinx via 'python /usr/bin/sphinx ...' (i.e.
> requiring impl match between python in use and sphinx).
>

do you mean they are doing it from ebuild?


>
> In fact, I'm personally leaning towards not building docs at all
> in ebuilds. It's practically a wasted effort since most of the time
> users read docs online anyway.
>

unfortunately I'm travelling a lot and really often in places where
Internet connection is far from good. it is why I like to have offline docs
for some packages. moreover I really hate when some docs are not really
offline and want to load google fonts or JS :(


>
> However, tracking the other uses down and figuring them is not worth
> the effort. In the end, someone will probably add it back thinking
> someone must've missed it. It's too hard to get it right.
>

I didn't get what are you talking about...


> Building Sphinx with less implementations than its reverse dependencies
> is a corner case. It's not really worth spending hours making sure
> depends are 100% strictly correct. The more important goal is to have
> things working reliably, and overspecified deps are reliable, i.e.
> packages won't fail to build because of them.
>
>
Ok, seems I've got your point of view, but can't agree w/ it... Well, I
would fight alone w/ it


> --
> Best regards,
> Michał Górny
>