Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2018-02-12 Thread Panu Matilainen
Closed #373. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/issues/373#event-1469261044___ Rpm-maint mailing list

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2018-01-04 Thread ニール・ゴンパ
And until I changed it for openSUSE, it was never had the egg either. And that's being introduced in openSUSE with v4.14. So, new name only. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2018-01-04 Thread Panu Matilainen
No existing RHEL version uses setup.py to build rpm's python bindings, that's only done in Fedora. So no rpm .egg in RHEL. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2018-01-03 Thread Adam Williamson
@pmatilai we were already done with the noise before more people started chipping in =) I was rather assuming that *RHEL* has also been shipping the `.egg` files, meaning that the `rpm-python` name will be baked into RHEL 7 and thus around at least somewhere for God knows how long, unless we

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2018-01-03 Thread ニール・ゴンパ
> Me, I'd rather fix the name in Fedora 26 too and move on. I'm okay with this, but I think it's fine to just Let The Past Die(TM) and with RPM 4.14 onward, we'll have the right name. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2018-01-03 Thread Igor Gnatenko
I think everyone should really switch to `rpm` from `rpm-python` (or even to not rely on it because rpm is not published on PyPI). My 5czk. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2018-01-03 Thread Panu Matilainen
Here's my 5c from the POV that I'm the one who came up with the original -python suffix: Adding the separate setup.py had to do with the idea/intention of splitting the python bindings into a separate repo/tarball, in which case the tarball probably would've been called rpm-python. That of

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-23 Thread Adam Williamson
"rather than blaming rpm developers for Newer! Better! Bestest! Python (and depsolvers) changes." Python didn't *change* anything here. rpm did: the name in the `setup.py` you ship. That's it. That's the extent of the change that caused the problem. I'm still baffled as to why it seems so hard

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Jeff Johnson
Correction: PEP 345 appears to have a Provides-Dist: tag to handle virtual packages bundled together. Using existing functionality wisely (assuming implemented) would seem to be the best way forward. Providing two egg-info files to handle the change seems rather hacks. -- You are receiving

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Jeff Johnson
@AdamWill I fail to see how 2 names is better than one, particularly since there seems to be no already implemented mechanism within egg-info to deal with multiple names (and the claim afaict is that the functionality is deemed unnecessary). -- You are receiving this because you are

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Jeff Johnson
Truly rpm-python should be split off to its own project in the eco system, published to pypi, and whatever else is desired, rather than blaming rpm developers for Newer! Better! Bestest! Python (and depsolvers) changes. That was the original plan back in 2006 or so, just no round 'tuits. RPM

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Adam Williamson
I'm sort of reaching the point where I'm thinking it's just not worth trying to explain it any more, especially since apparently trying to bring an RPM analogy into the discussion has only made things *more* confusing, not less. But no, there's no "duelling" going on. I only referred to RPM

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Jeff Johnson
@AdamWill so there is the problem of what I would call dueling package managers, and it's unclear (particularly because of ever changing incompatibilities in python) what solution(s) should be pursued by rpm. By all means, use pypi (or apt or ...) if that is what one wishes. Blaming rpm for

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread ニール・ゴンパ
@n3npq There's nothing wrong from the RPM point of view. The problem is from the python installed package index for tools like `pip` to process. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Jeff Johnson
FWIW, rpm permits virtual package names, where a Provides: is treated identically to a package NEVR. This was deliberately (and incompletely) ripped out of Obsoletes: in Fedora -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Adam Williamson
@Conan-Kudo "Actually, what they did was just not specify it at all in setuptools." - sure, that's what I meant by "just given up when 'rpm' didn't work". I was positing that some obsessive nerds like myself would figure out what the name actually was and use that, while some people would just

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Adam Williamson
@n3npq "After reading #273, it isn't clear why a egg-info mechanism tied to pypi" egg-info isn't "tied to" pypi, just like RPM isn't "tied to" dnf or zypper or yum or Fedora's repositories or SUSE's repositories or Red Hat's repositories. egg is a "built distribution" format, just like .rpm is

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread ニール・ゴンパ
> But as you say, that never previously did work, so anyone who's previously > tried and not just given up when 'rpm' didn't work must surely have landed on > 'rpm-python', like I did. Actually, what they did was just not specify it at all in setuptools. As I said before, a lot of

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Adam Williamson
@Conan-Kudo Oh, I'm sure *everyone* who tries to express a dependency like this tries the name 'rpm' first. I certainly did. :P But as you say, that never previously did work, so anyone who's previously tried and not just given up when 'rpm' didn't work must surely have landed on 'rpm-python',

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread ニール・ゴンパ
@AdamWill The issue that I've been seeing is that people have been putting `rpm` as the setuptools `install_requires`, which obviously never worked before. In addition, many Linux distributions (RPM-based and not) didn't install the Python bindings via `setup.py` and didn't provide the metadata

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Jeff Johnson
If the name isn't used (what I called "informative"), then there should be no difference in loading behavior (unless there is some silly (imho) check on metadata consistency, in which case 2 egg-info files is the only way to deal with what has already been released). The actual failure mode

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Adam Williamson
I'm definitely only talking about Python concepts here. C concepts don't play into all this *at all* since we're only talking about Python ecosystem stuff. "If setup tools is constructing module paths from egg-info Name: directives (which is rather deficient)" No, it's not doing that. There is

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Jeff Johnson
The key issue here is "What is the failure mode?". If setup tools is constructing module paths from egg-info Name: directives (which is rather deficient) then there is no solution available (AFAICT) except to feed a Name: directive in some alternative egg-info file. If Name: is purely

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Adam Williamson
BTW, there's a rather [cryptic bit](https://setuptools.readthedocs.io/en/latest/setuptools.html#metadata) of the setuptools docs that sort of suggests you might be able to use a `provides` kwarg to `setup()`, so we could try something like: setup(name='@PACKAGE_NAME@',

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Adam Williamson
OK, let's both calm down a bit. I was just annoyed at running into this entirely unnecessary problem while i was in a hurry last night. I agree that in practical terms it's not a major disaster that's likely to affect lots of people catastrophically. It's still *wrong*, though. Let's take a

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Jeff Johnson
@AdamWill: If python setup tools and egg-info is actually using Name: strings rather than verifying the a rurally dependency semantic (which is a directory from which a module can be loaded), I'd professional suggest that python eggs are (in the case of C "libraries" as you have chosen to call

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Adam Williamson
Please stop focusing on my specific use case here. The point is, you're providing a library, and its metadata for Python distribution purposes is significant, and it's a really bad idea to just change its name in that metadata purely for purposes of 'neatness' or predictability when you've

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Jeff Johnson
@AdamWill: if most of what you (or others) need from rpm-python is NEVRA parsing, then just write your own (IMHO). It's nearly impossible to supply a "standard" and pleasing API in either library or binding API's, and the parsing is Very Not Hard (comparison is of course trickier, but likely

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Adam Williamson
No. You're wrong. Really, you're wrong. It's very simple to demonstrate. These are the steps. git clone https://pagure.io/fedora-qa/relvalconsumer.git cd relvalconsumer git checkout 1.1.0 sudo python setup.py install Try that with an older `python2-rpm` installed, and it will

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Adam Williamson
See edit. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/rpm-software-management/rpm/issues/373#issuecomment-353669089___ Rpm-maint mailing list

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread ニール・ゴンパ
> I know of several codebases in this nexus, actually, because there are a few > things people commonly want to do that there is no good Python library to use > for. The infamous example is parsing NEVRAs; there was a function for doing > this in hawkey, but then someone decided to kill hawkey.

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Adam Williamson
"Since we don't publish to PyPI for very obvious reasons, any reliance on setuptools information was always hokey." The document I linked above *specifically states that it is reasonable to express dependencies on things that aren't in pypi*. In a section titled...[Dependencies that aren't in

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread ニール・ゴンパ
@AdamWill In almost every distribution (excluding Fedora) that was using Python bindings, they were _not_ using the setuptools build. In fact, to date, I have not encountered any significant applications that declared `rpm` or `rpm-python` as a dependency in setuptools because most

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Adam Williamson
Here's a commit that had to write a whole extra function in its `setup.py` to get around this: https://github.com/rebase-helper/rebase-helper/commit/2f1401c0adfc139aa3ecc12cdc21086d2fe69ac9 which is not an approach I can easily take, because I want to share the same requirements between

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Adam Williamson
BTW, I'm around on Freenode and RH internal IRC (adamw on both) for anyone who wants to talk about this in real time. Also tagging @Conan-Kudo and @ffesti as the committers. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Adam Williamson
No. No, not that either. The *code* works fine, if it actually gets run, because the name of the module itself (`rpm`) has not changed. This is about bits of Python-ecosystem infrastructure that allow for the expression and checking of dependencies. Specifically, in my case, `setuptools` and

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Jeff Johnson
So the problem is the name of a directory on some Python loader search path? Sounds like a symlink would fix the renaming ... -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-22 Thread Adam Williamson
This isn't about package dependencies. It's about Python ecosystem dependencies. These particular dependencies are read by setuptools/distutils, and by tox. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub:

Re: [Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-21 Thread Jeff Johnson
There's several ways to solve a renaming: pick you poison wrto your packaging policy. Add a Provides: for the F26 name to the F27 package (or vide versa). You can also add a file dependency, or add a Newer! Better! Besetest! name to both packages/modules. -- You are receiving this because

[Rpm-maint] [rpm-software-management/rpm] Python module's name changed unnecessarily, making it impossible to express dependencies on it (#373)

2017-12-21 Thread Adam Williamson
https://github.com/rpm-software-management/rpm/commit/2797d00ecd224a59a8ca967f40240e827ff31c69 was an awful change. Please revert it. It doesn't matter that you've never published to pypi; so long as you install an egg-info file people will rely on its contents. I was expressing a dependency