Discuss: Release Leo only via GitHub?

101 views
Skip to first unread message

Edward K. Ream

unread,
Jan 20, 2024, 2:14:18 PM1/20/24
to leo-editor

I am at the end of my patience with PyPI:


- The process is error-prone, as we have just seen.

- PyPI is thwarting the upgrade of leo-6.7.7.tar.gz.

  I don't know why. The error message seems wrong.

- Even with help, 2-factor authentication is too complicated.

- PyPI is designed for packages, not apps.


Instead, I propose the following:


- Release all new versions of Leo using GitHub releases.

- Release new versions at least once a year and more often as needed to support LeoJS or LeoInteg.


Your thoughts?


Edward

Thomas Passin

unread,
Jan 20, 2024, 4:23:53 PM1/20/24
to leo-editor
I think that would be all right, although sometimes I have trouble finding the release files when I want to get an app from GitHub.  My main concern would be how to make it painless for a new user to get the dependencies installed.

Edward K. Ream

unread,
Jan 20, 2024, 5:14:11 PM1/20/24
to leo-e...@googlegroups.com
On Sat, Jan 20, 2024 at 3:23 PM Thomas Passin <tbp1...@gmail.com> wrote:
I think that would be all right, although sometimes I have trouble finding the release files when I want to get an app from GitHub.  My main concern would be how to make it painless for a new user to get the dependencies installed.

There is an easy answer. See #3767: (requirements.txt).

Leo already has a requirements.txt file, but it delegates everything to setup.py.

The remaining question is whether Leo needs setup.py at all.

Edward

Thomas Passin

unread,
Jan 20, 2024, 6:07:35 PM1/20/24
to leo-editor
Yes, running pip on requiremenst.txt is the standard way.  I also know that currently requirements.txt does not contain the actual dependencies (which can be changed, of course). I was just thinking about whether a new user would have a problem with using pip this way, having already manually downloaded and unpacked the Leo distro.

Edward K. Ream

unread,
Jan 20, 2024, 8:44:08 PM1/20/24
to leo-e...@googlegroups.com
On Sat, Jan 20, 2024 at 5:07 PM Thomas Passin <tbp1...@gmail.com> wrote:
Yes, running pip on requiremenst.txt is the standard way.  I also know that currently requirements.txt does not contain the actual dependencies (which can be changed, of course). I was just thinking about whether a new user would have a problem with using pip this way, having already manually downloaded and unpacked the Leo distro.

The readme/installing file should clearly explain how to install the dependencies.

Edward

Mike Hodson

unread,
Feb 10, 2024, 6:21:47 PM2/10/24
to leo-e...@googlegroups.com
Today after seeing the message regarding a new user being confused as to how to install, I decided I would chime in on this topic.
I'm very much in favor of "ease of use" for the user, perhaps not so much for the coder (who already has far more technical knowledge than most users, as is needed to actually write the program)

On Sat, Jan 20, 2024 at 12:14 PM Edward K. Ream <edre...@gmail.com> wrote:

I am at the end of my patience with PyPI:


- The process is error-prone, as we have just seen.

Are the errors based upon unreal expectations? Do you expect to be able to replace the same version of a file with materially new code? This would break things if it happened to everything on PyPI. Material changes in code should not be the same version number. Linux distros that patch code from release versions for their specific distribution always add on a different version number, because their version is materially different. 
'Sure its based on v 1.2.3, but we've now made it 1.2.3.ubuntu5' or somesuch.
 

- PyPI is thwarting the upgrade of leo-6.7.7.tar.gz.


I don't think "Thwarting" is the right term for preventing unforeseen errors when someone expects 1 version of a package and gets materially different code than was just released, with the same version. 
Is the version numbering system too set-in-stone to contemplate 1.2.3.4 style of major.minor.feature.bugfix versioning? 
I think 6.7.7.1 is quite a useful version for "hey i removed a folder, heres the updated code". 
It has no feature/functional difference. But definitely fixes a bug.

The way you describe your problems with PyPI makes it seem you are dead-set on re-releasing a broken version as the same number, as opposed to simply incrementing the bugfix version number.  
 

  I don't know why. The error message seems wrong.

I've tried searching for this in mail history, forgive me if I haven't found something already posted, but what was this error?
 

- Even with help, 2-factor authentication is too complicated.

What about PyPI 2FA is complex? Moreso than Github at least?
 

- PyPI is designed for packages, not apps.

What is an "App", but a package, with dependencies?

I wager "ls" is an app. sure "coreutils" is a package, but you could package "ls" by itself if you really wanted to, by rejiggering the configuration for coreutils to only produce 'ls' .. An arbitrary example of course.

Where do you draw the line?
 

Instead, I propose the following:


- Release all new versions of Leo using GitHub releases.

- Release new versions at least once a year and more often as needed to support LeoJS or LeoInteg.  

Your thoughts?

Github releases are great, but I firmly believe there needs to be some overlap to what is known as common practice (PyPI)  
If the latest PyPI release actually installed the Leo, but then at the same time Leo also included automatic GIT updating from GitHub, that would work. 

However, I still think keeping it in PyPI as an alternative to github is ideal. 

Mike
 

Edward K. Ream

unread,
Feb 11, 2024, 5:51:09 AM2/11/24
to leo-e...@googlegroups.com
On Sat, Feb 10, 2024 at 5:21 PM Mike Hodson <mys...@gmail.com> wrote:
Today after seeing the message regarding a new user being confused as to how to install, I decided I would chime in on this topic.

Many thanks for your remarks, Mike. I'm convinced.

I have deleted the problematic 6.7.7.1 release. Future versions of Leo will appear on PyPi.

This plan should have no effect on those who install Leo using GitHub. Once an improved requirements.txt exists, pip install -r requirements.txt will install Leo's dependencies.

Edward

Félix

unread,
Feb 14, 2024, 8:54:13 PM2/14/24
to leo-editor
I hope it would still be possible for people to get the latest leo release via pip install leo ...

... because Leo is such a great program to organize stuff, ideas, make plans...  compose texts/poems, I wish that (if possible) Leo was easy to install for non-programmers or newbies, or young lads who are totally unfamiliar with git/github. 

Félix

Edward K. Ream

unread,
Feb 14, 2024, 8:58:53 PM2/14/24
to leo-e...@googlegroups.com

On Wed, Feb 14, 2024 at 7:54 PM Félix <felix...@gmail.com> wrote:
I hope it would still be possible for people to get the latest leo release via pip install leo ...

Yes, `pip install leo` will work for 6.7.8 and all future releases.

Edward
Reply all
Reply to author
Forward
0 new messages