On Thursday, May 20, 2021 at 1:39:06 PM UTC-4 [email protected] wrote:
> In my view, Leo *is* a 3rd party python package and should be installable > via pip. It is true that some Linux systems will tinker with the > directories, paths, etc and want you to install certain packages using > their own package manager. But Leo as a project can't cater to all these > possible variations. > > I can see a separate pip package named, say, "leo-server" or some such > that includes the parts that you want to work with that ordinary users > can't. Such a package could I'm sure be created by a script that creates a > temporary directory tree with the extra parts for the packager to package > up. Or maybe the existing setup.py can be enhanced to do that. > The last time I worked on an installer for Leo or any other package, Leo 4.3 was the current release. That installer was for Windows only, and used NSIS to generate the single-file setup executable. NSIS as it stood then was flexible as it saw use in many projects, but its use was somewhat arcane. My work was aimed at supporting per-user installations of CPython as well as shared installations, and installing per-user and system-wide installations of Leo on top of system-wide installations of CPython; my hope was that the two flavors of per-user support would ease the work of side-by-side testing of multiple CPython releases and multiple Leo releases. By the time I had something to share with Edward, he was already burdened by maintenance of the source code of the script that NSIS compiles. It's possible that my work only promised more installer-related work for him, but it's Edward's right to comment on that if he wishes to. If I recall correctly, Leo releases are less frequent than was the case when Leo 4.2, 4.3, and 4.4 were under development. Stabilizing Leo for a release requires work. It is also the case that an installer requires a matching uninstaller. Serious effort is made to minimize the periods during which the most recent commit devel branch on GitHub is unusable; as such, the expectation is that one needs to pull from the devel branch in between releases. Pip is for packages; I question whether Leo with its Qt -based GUI and with its plugins is best considered as a single package. In my days working with Leo with the Tkinter-based GUI and working solely on Windows, all I needed was the the single-file installer for CPython, the single-file NSIS-based installer executable for Leo, and the single-file installer for Mark Hammond's pywin32 tools - I could fit the installers on a rewritable CD, and install them on a new machine in three minutes, and understand the process without documenting it. Making Leo easier to install across deployment targets may increase the volume of requests for help, and my experience providing technical support for software published by my employers is that addressing deployment strategies in the software itself is critical to allowing the support staff to scale. Python is a great language for writing scripts and many sorts of applications, but its deployment story does not deliver the application publisher a one solution-fits-all across Windows, macOS, the various Unix distributions, and the various Linux distributions. The details of the requirements for the different deployment targets vary so greatly that I've just abandoned detailing those known to me here; a serious attempt to catalogue them for the use of Leo's developers needs to be addressed separately. That said, I think all those details need to be laid out for Leo's developers to consider; the rearrangement of Leo's source code for pip is only a start on the changes needed to support deployment, and I am sure that improvement of minimal support for all the targets listed in the preceding paragraph would require changes within Leo itself. -- You received this message because you are subscribed to the Google Groups "leo-editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/leo-editor/bbe24ab1-50fa-4686-af9c-ebb0ace41c47n%40googlegroups.com.
