dr-leo / PyHyphen

Other
10 stars 5 forks source link

chore: upgrade python requirements #13

Closed regisb closed 3 years ago

regisb commented 3 years ago

Also, add a make target to make it easy to upgrade all requirements at once.

dr-leo commented 3 years ago

I like good build support. But make is not my cup of tea. So pls explain what this PR enables. - Digging deeper: I understand you've added MakeFile. Moreover, some auto-generated files have been added/changed. Do we really need these in the repo? Isn't MakeFile enough?

regisb commented 3 years ago

Hey @dr-leo!

The Makefile was already present, I added it a while ago. What I added in this PR is a "upgrade-requirements" target to this Makefile. The role of this target is to update the requirements/.txt files. These txt files are not used by the pyhyphen end users. Instead, the `requirements/.infiles describe minimally constrained requirements that are then loaded by [setup.py](https://github.com/dr-leo/PyHyphen/blob/03b3817ab258c9f5ac30408ae161051e8a4fab32/setup.py#L14). The "requirements/*.txt" files are created to ensure that all pyhyphen developers have identical development environments. Developers should install requirements by runningpip install -r requirements/dev.txt. In CI, docs should be generated in a environment where we runpip install -r requirements/doc.txt`.

Does that make sense?

For more information, check for instance: https://packaging.python.org/discussions/install-requires-vs-requirements/

dr-leo commented 3 years ago

Thanks for this clarification. I will merge this PR, or you can do it. I understand this does not require a new release. On a separate note, I was wondering if the release of python 3.10 requires a new release. I also wonder what to do with the other two open PR‘s opened by bots. Finally, I wonder if set up tools is finally able to compile a C extension without setup.py.

Am 31.10.2021 um 15:53 schrieb Régis Behmo @.***>:

 Hey @dr-leo!

The Makefile was already present, I added it a while ago. What I added in this PR is a "upgrade-requirements" target to this Makefile. The role of this target is to update the requirements/.txt files. These txt files are not used by the pyhyphen end users. Instead, the requirements/*.in files describe minimally constrained requirements that are then loaded by setup.py. The "requirements/.txt" files are created to ensure that all pyhyphen developers have identical development environments. Developers should install requirements by running pip install -r requirements/dev.txt. In CI, docs should be generated in a environment where we run pip install -r requirements/doc.txt.

Does that make sense?

For more information, check for instance: https://packaging.python.org/discussions/install-requires-vs-requirements/

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

regisb commented 3 years ago

On a separate note, I was wondering if the release of python 3.10 requires a new release

Yes, we should release a new minor version.

I also wonder what to do with the other two open PR‘s opened by bots.

They were closed automatically after this PR was merged. Actually, the notifications I received from these bots is what triggered me to upgrade the dependencies.

Finally, I wonder if set up tools is finally able to compile a C extension without setup.py.

I have no idea...

dr-leo commented 3 years ago

And set up tools: I have checked the release history. Unfortunately, the set up script is still required. What would be the purpose of the new minor release you are proposing? I have no problem with doing this release. But from what I understand there is no change whatsoever. Maybe in the read me to reference documentation or something?

Am 01.11.2021 um 08:14 schrieb Régis Behmo @.***>:

 On a separate note, I was wondering if the release of python 3.10 requires a new release

Yes, we should release a new minor version.

I also wonder what to do with the other two open PR‘s opened by bots.

They were closed automatically after this PR was merged. Actually, the notifications I received from these bots is what triggered me to upgrade the dependencies.

Finally, I wonder if set up tools is finally able to compile a C extension without setup.py.

I have no idea...

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub, or unsubscribe.

regisb commented 2 years ago

What would be the purpose of the new minor release you are proposing?

The point of creating a new minor release would simply be that users of Python 3.10 can install pyhyphen from pip.

dr-leo commented 2 years ago

Thanks. I've releas3ed v4.0.2 regardless. Kindly doublecheck if it is fit for purpose.

On 29/11/2021, Régis Behmo @.***> wrote:

What would be the purpose of the new minor release you are proposing?

The point of creating a new minor release would simply be that users of Python 3.10 can install pyhyphen from pip.

-- You are receiving this because you modified the open/close state. Reply to this email directly or view it on GitHub: https://github.com/dr-leo/PyHyphen/pull/13#issuecomment-981408303

regisb commented 2 years ago

I managed to install pyhyphen==4.0.2 with Python 3.10.0 :+1:

$ pyenv install 3.10.0
Downloading Python-3.10.0.tar.xz...
-> https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tar.xz
Installing Python-3.10.0...
patching file aclocal.m4
patching file configure
Hunk #5 succeeded at 10537 (offset -15 lines).
Installed Python-3.10.0 to /home/regis/.pyenv/versions/3.10.0
$ ~/.pyenv/versions/3.10.0/bin/python -m venv venv3.10
$ source venv3.10/bin/activate
$ pip install pyhyphen
Collecting pyhyphen
  Downloading PyHyphen-4.0.2.tar.gz (39 kB)
Collecting wheel>=0.36.0
  Using cached wheel-0.37.0-py2.py3-none-any.whl (35 kB)
Requirement already satisfied: setuptools>=52.0 in ./venv3.10/lib/python3.10/site-packages (from pyhyphen) (57.4.0)
Collecting appdirs>=1.4.0
  Using cached appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Collecting requests>=2.25
  Using cached requests-2.26.0-py2.py3-none-any.whl (62 kB)
Collecting charset-normalizer~=2.0.0
  Downloading charset_normalizer-2.0.8-py3-none-any.whl (39 kB)
Collecting urllib3<1.27,>=1.21.1
  Using cached urllib3-1.26.7-py2.py3-none-any.whl (138 kB)
Collecting certifi>=2017.4.17
  Using cached certifi-2021.10.8-py2.py3-none-any.whl (149 kB)
Collecting idna<4,>=2.5
  Using cached idna-3.3-py3-none-any.whl (61 kB)
Using legacy 'setup.py install' for pyhyphen, since package 'wheel' is not installed.
Installing collected packages: urllib3, idna, charset-normalizer, certifi, wheel, requests, appdirs, pyhyphen
    Running setup.py install for pyhyphen ... done
Successfully installed appdirs-1.4.4 certifi-2021.10.8 charset-normalizer-2.0.8 idna-3.3 pyhyphen-4.0.2 requests-2.26.0 urllib3-1.26.7 wheel-0.37.0
WARNING: You are using pip version 21.2.3; however, version 21.3.1 is available.
You should consider upgrading via the '/home/regis/tmp/venv3.10/bin/python -m pip install --upgrade pip' command.
(venv3.10) $ python
Python 3.10.0 (default, Nov 30 2021, 11:23:31) [GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from hyphen import Hyphenator
>>> h = Hyphenator('de_DE')
>>> s = 'Politikverdrossenheit'
>>> h.pairs(s)
[['Po', 'litikverdrossenheit'], ['Poli', 'tikverdrossenheit'], ['Politik', 'verdrossenheit'], ['Politikver', 'drossenheit'], ['Politikverdros', 'senheit'], ['Politikverdrossen', 'heit']]

Success!