[Mailman-Developers] Re: Development setup confusion

2021-02-25 Thread Abhilash Raj


On Sat, Feb 20, 2021, at 5:33 PM, Mark Sapiro wrote:
> On 2/20/21 3:07 PM, Marius Ghita wrote:
> > I think a setup step might be missing from the developer's docs
> > https://docs.mailman3.org/en/latest/devsetup.html
> > 
> > If I go through the venv setup and when I call mailman info, the following
> > error shows up (missing dependency).
> > 
> > ...
> >   File "/home/_/Workspace/personal/mailman/src/mailman/__init__.py", line
> > 38, in 
> > from mailman.core.i18n import initialize
> >   File "/home/_/Workspace/personal/mailman/src/mailman/core/i18n.py", line
> > 22, in 
> > from flufl.i18n import PackageStrategy, registry
> > ModuleNotFoundError: No module named 'flufl.i18n'
> 
> 
> This is a packaging issue. The short answer is if in your venv you run
> 
> pip uninstall flufl.bounce flufl.lock flufl.i18n
> pip install flufl.bounce flufl.lock flufl.i18n
> 
> to remove and reinstall the flufl modules, it will then work.

The larger issue is that Barry added support for PEP 420 implicit namespace[1]
which is only supported by pip (setuptools) and not distutils as per [2]. So, 
`setup.py develop` isn’t able to install them properly. Which is why you have
to uninstall and install them using `pip` after `python setup.py develop`.

[1]: 
https://packaging.python.org/guides/packaging-namespace-packages/#native-namespace-packages
[2]: 
https://packaging.python.org/guides/packaging-namespace-packages/#creating-a-namespace-package

The solution is to replace all the places we have `python setup.py develop`
to `pip install -e .` which results in an editable install and uses setuptools.

I have done that in several places, but please point out anywhere you see
`python setup.py develop` and we can replace it with `pip install -e .` .

> 
> The longer answer is if you look in your venv's site-packages directory
> before you remove the flufl modules, you will see
> 
> flufl.bounce-3.0.2-py3.9.egg/
> flufl.i18n-3.1.5-py3.9.egg/
> flufl.lock-5.0.5-py3.9.egg/
> 
> and in easy-install.pth entries
> 
> ./flufl.lock-5.0.5-py3.9.egg
> ./flufl.i18n-3.1.5-py3.9.egg/
> ./flufl.bounce-3.0.2-py3.9.egg/
> 
> and after, in site-packages
> 
> flufl/
> flufl.bounce-3.0.2.dist-info/
> flufl.bounce-3.0.2-py3.9-nspkg.pth
> flufl.i18n-3.1.5.dist-info/
> flufl.i18n-3.1.5-py3.9-nspkg.pth
> flufl.lock-5.0.5.dist-info/
> flufl.lock-5.0.5-py3.9-nspkg.pth
> 
> and in site-packages/flufl
> 
> bounce/
> i18n/
> lock/
> 
> This later configuration works fo importing any of flufl.bounce,
> flufl.i18n and flufl.lock, but the former winds up looking in
> flufl.bounce-3.0.2-py3.9.egg/ for everything and only finds flufl.bounce
> and not the others.
> 
> -- 
> Mark Sapiro The highway is for gamblers,
> San Francisco Bay Area, Californiabetter use your sense - B. Dylan
> ___
> Mailman-Developers mailing list -- mailman-developers@python.org
> To unsubscribe send an email to mailman-developers-le...@python.org
> https://mail.python.org/mailman3/lists/mailman-developers.python.org/
> Mailman FAQ: https://wiki.list.org/x/AgA3
> 
> Security Policy: https://wiki.list.org/x/QIA9
>

-- 
  thanks,
  Abhilash Raj (maxking)
___
Mailman-Developers mailing list -- mailman-developers@python.org
To unsubscribe send an email to mailman-developers-le...@python.org
https://mail.python.org/mailman3/lists/mailman-developers.python.org/
Mailman FAQ: https://wiki.list.org/x/AgA3

Security Policy: https://wiki.list.org/x/QIA9


[Mailman-Developers] Re: Development setup confusion

2021-02-20 Thread Mark Sapiro
On 2/20/21 3:07 PM, Marius Ghita wrote:
> I think a setup step might be missing from the developer's docs
> https://docs.mailman3.org/en/latest/devsetup.html
> 
> If I go through the venv setup and when I call mailman info, the following
> error shows up (missing dependency).
> 
> ...
>   File "/home/_/Workspace/personal/mailman/src/mailman/__init__.py", line
> 38, in 
> from mailman.core.i18n import initialize
>   File "/home/_/Workspace/personal/mailman/src/mailman/core/i18n.py", line
> 22, in 
> from flufl.i18n import PackageStrategy, registry
> ModuleNotFoundError: No module named 'flufl.i18n'


This is a packaging issue. The short answer is if in your venv you run

pip uninstall flufl.bounce flufl.lock flufl.i18n
pip install flufl.bounce flufl.lock flufl.i18n

to remove and reinstall the flufl modules, it will then work.

The longer answer is if you look in your venv's site-packages directory
before you remove the flufl modules, you will see

flufl.bounce-3.0.2-py3.9.egg/
flufl.i18n-3.1.5-py3.9.egg/
flufl.lock-5.0.5-py3.9.egg/

and in easy-install.pth entries

./flufl.lock-5.0.5-py3.9.egg
./flufl.i18n-3.1.5-py3.9.egg/
./flufl.bounce-3.0.2-py3.9.egg/

and after, in site-packages

flufl/
flufl.bounce-3.0.2.dist-info/
flufl.bounce-3.0.2-py3.9-nspkg.pth
flufl.i18n-3.1.5.dist-info/
flufl.i18n-3.1.5-py3.9-nspkg.pth
flufl.lock-5.0.5.dist-info/
flufl.lock-5.0.5-py3.9-nspkg.pth

and in site-packages/flufl

bounce/
i18n/
lock/

This later configuration works fo importing any of flufl.bounce,
flufl.i18n and flufl.lock, but the former winds up looking in
flufl.bounce-3.0.2-py3.9.egg/ for everything and only finds flufl.bounce
and not the others.

-- 
Mark Sapiro The highway is for gamblers,
San Francisco Bay Area, Californiabetter use your sense - B. Dylan
___
Mailman-Developers mailing list -- mailman-developers@python.org
To unsubscribe send an email to mailman-developers-le...@python.org
https://mail.python.org/mailman3/lists/mailman-developers.python.org/
Mailman FAQ: https://wiki.list.org/x/AgA3

Security Policy: https://wiki.list.org/x/QIA9


[Mailman-Developers] Re: Development setup confusion

2021-02-20 Thread Marius Ghita
Do note that these two commands, from the Vagrantfile, work if you run them
in the venv only (not sure why)

pip3 install --upgrade pip
pip3 install -U setuptools

Just noticed now because I've nuked my local folder and tried with a clean
git clone again

On Sun, Feb 21, 2021 at 1:52 AM Marius Ghita 
wrote:

>
>
> On Sun, Feb 21, 2021 at 1:28 AM Mark Sapiro  wrote:
>
>> On 2/20/21 3:07 PM, Marius Ghita wrote:
>> > I think a setup step might be missing from the developer's docs
>> > https://docs.mailman3.org/en/latest/devsetup.html
>> >
>> > If I go through the venv setup and when I call mailman info, the
>> following
>> > error shows up (missing dependency).
>> >
>> > ...
>> >   File "/home/_/Workspace/personal/mailman/src/mailman/__init__.py",
>> line
>> > 38, in 
>> > from mailman.core.i18n import initialize
>> >   File "/home/_/Workspace/personal/mailman/src/mailman/core/i18n.py",
>> line
>> > 22, in 
>> > from flufl.i18n import PackageStrategy, registry
>> > ModuleNotFoundError: No module named 'flufl.i18n'
>>
>>
>> How did you install Mailman core in your venv? Mailman core's setup
>> includes flufl.i18n>=2.0 in it's requirements.
>>
>>
> I have a folder ~/Workspace/personal where I ran:
>
> $ python3 -m venv venv3
> $ source ./venv3/bin/activate
> $ cd mailman
> $ python setup.py develop
>
>
> For a second there I considered that the issue might have been that the
> dependency expects and older Python version. I have 3.9 on my desktop, so I
> spun up a Vagrant box which has python3.6 with the same issue.
>
> Vagrantfile to reproduce the issue
> https://gist.github.com/mhitza/4dbec7d0efc6a94e658b5dd085e411ef
>
>
___
Mailman-Developers mailing list -- mailman-developers@python.org
To unsubscribe send an email to mailman-developers-le...@python.org
https://mail.python.org/mailman3/lists/mailman-developers.python.org/
Mailman FAQ: https://wiki.list.org/x/AgA3

Security Policy: https://wiki.list.org/x/QIA9


[Mailman-Developers] Re: Development setup confusion

2021-02-20 Thread Marius Ghita
On Sun, Feb 21, 2021 at 1:28 AM Mark Sapiro  wrote:

> On 2/20/21 3:07 PM, Marius Ghita wrote:
> > I think a setup step might be missing from the developer's docs
> > https://docs.mailman3.org/en/latest/devsetup.html
> >
> > If I go through the venv setup and when I call mailman info, the
> following
> > error shows up (missing dependency).
> >
> > ...
> >   File "/home/_/Workspace/personal/mailman/src/mailman/__init__.py", line
> > 38, in 
> > from mailman.core.i18n import initialize
> >   File "/home/_/Workspace/personal/mailman/src/mailman/core/i18n.py",
> line
> > 22, in 
> > from flufl.i18n import PackageStrategy, registry
> > ModuleNotFoundError: No module named 'flufl.i18n'
>
>
> How did you install Mailman core in your venv? Mailman core's setup
> includes flufl.i18n>=2.0 in it's requirements.
>
>
I have a folder ~/Workspace/personal where I ran:

$ python3 -m venv venv3
$ source ./venv3/bin/activate
$ cd mailman
$ python setup.py develop


For a second there I considered that the issue might have been that the
dependency expects and older Python version. I have 3.9 on my desktop, so I
spun up a Vagrant box which has python3.6 with the same issue.

Vagrantfile to reproduce the issue
https://gist.github.com/mhitza/4dbec7d0efc6a94e658b5dd085e411ef
___
Mailman-Developers mailing list -- mailman-developers@python.org
To unsubscribe send an email to mailman-developers-le...@python.org
https://mail.python.org/mailman3/lists/mailman-developers.python.org/
Mailman FAQ: https://wiki.list.org/x/AgA3

Security Policy: https://wiki.list.org/x/QIA9


[Mailman-Developers] Re: Development setup confusion

2021-02-20 Thread Mark Sapiro
On 2/20/21 3:07 PM, Marius Ghita wrote:
> I think a setup step might be missing from the developer's docs
> https://docs.mailman3.org/en/latest/devsetup.html
> 
> If I go through the venv setup and when I call mailman info, the following
> error shows up (missing dependency).
> 
> ...
>   File "/home/_/Workspace/personal/mailman/src/mailman/__init__.py", line
> 38, in 
> from mailman.core.i18n import initialize
>   File "/home/_/Workspace/personal/mailman/src/mailman/core/i18n.py", line
> 22, in 
> from flufl.i18n import PackageStrategy, registry
> ModuleNotFoundError: No module named 'flufl.i18n'


How did you install Mailman core in your venv? Mailman core's setup
includes flufl.i18n>=2.0 in it's requirements.


> However, when I run just run tox, the .tox/qa/bin/mailman info command
> works without any issues.


Because .tox/qa is it's own venv that included all the dependencies


-- 
Mark Sapiro The highway is for gamblers,
San Francisco Bay Area, Californiabetter use your sense - B. Dylan
___
Mailman-Developers mailing list -- mailman-developers@python.org
To unsubscribe send an email to mailman-developers-le...@python.org
https://mail.python.org/mailman3/lists/mailman-developers.python.org/
Mailman FAQ: https://wiki.list.org/x/AgA3

Security Policy: https://wiki.list.org/x/QIA9