Hey all,
Please ignore the previous mail and read this one. I accidentally sent it without formatting the markdown.
This
I’ve written up a final proposal for the Installation plan. This should explain the terminologies used to give a general overview of the Installation plan and the changes to expect with the new installation process instead of going deep into the implementation details
These two projects aim to cover the details of the implementation and mostly concern @Anish Umale, @Ghislaine Guerin, @Rajat Vijay and @Brent Moran
Laying the groundwork for improving our installation process - This project contains codebase and infrastructure-related changes. It will lay the groundwork necessary for updating the documentation which will be worked on after the upcoming cycle
Implementation details related to the documentation - This is still a work in progress and is in a draft state. It will be worked on after the upcoming cycle.
I’d appreciate feedback on it.
Thanks
Follow up on the previous email
I moved most of the installation plan-related things from Installation Improvement Project 0.1.4 into the Installation Plan.
Reading through the Installation Plan should be enough to give an overview of the installation plan. It does not contain information on the work to be done in this cycle and is just used as a reference for the actual Installation Improvement Project 0.1.4 which mostly concerns, @Ghislaine Guerin, @Rajat Vijay, @Sean Colsen @Brent Moran as it has implementation details of the work we will be doing in this cycle to achieve the plan.
Please reply if there are concerns by Monday (2023-08-21)
Thanks @Sean Colsen and @Dominykas Mostauskis
What’s our support and priority for installing without virtualization, containerization or debian packages? I would consider these installation methods to be nice to haves, but if I’ve a problem I want to be able to fall back to a good old command line step-by-step process. If I can’t do that, that might be very frustrating, because then I have to debug the virtualization, containerization, or debian package solution just to get the thing working.
Status:
Reasons:
Part of the current installation problem has to do with us assuming the user might want something instead of going for a minimal setup and asking for feedback from the user which ended up in a lot of wasted resources. Just adding the steps involved wouldn’t be a good UX. We would also need to explain why and when to do something which takes a lot of effort, especially for something granular like building from source. Also with lots of changes to the Installation process, the current “Build from scratch” guide is quite outdated and we again need to rethink how to explain certain things. So it is not a good use of our time now.
I saw that downgrading our Python version requirement is part of the project. Why?
We need it for supporting various versions of Debian Distro as we will be using the system Python when installing using Debian packages
Is it difficult or undesirable to ship our own Python version? Is setting up own python environment not standard practice anyway?
Massive pain for someone not used to installing Python. Half the installation problem is with installing and setting up Python. Look at this hackernews comment
I hope we don’t force upon ourselves a lower version without a very good reason.
We will be supporting only the actively maintained versions
we came to the agreement (it seems) that user UX could be improved if we optionally allow them to provision Mathesar with our internal schemata and a user that only has write access to those schemata (and whatever else the user decides to let us edit), thus making Mathesar safer
It would be even easier to add these changes after we implement the installation plan. I will comment on the email thread about it.
Regarding Python version, which version would you like to support?
We will be supporting Python versions from 3.7 onwards
I see the current Debian stable uses 3.11
We cannot just consider the current stable. We also need to account for LTS releases and the current LTS, Buster uses Python 3.7.
You tersely responded to my concern about DX being degraded by downgrading the Python version by saying that it should be enough to use whatever a maintained Debian release supports, correct me if I misunderstood. I strongly disagree. A newer Python feature being available has saved me time numerous times.
We had a similar discussion and concluded to not update to the latest Python as we still need to support users using the old version of Python. At that point, we weren’t sure of supporting a lower version of Python but with our Debian releases dependent on the system Python, we have to extend our support to Python 3.7 too.
We can re-open that discussion to talk about this and if needed we can stop supporting lower Python versions. In case we decided to drop support for lower versions the users using old versions of Debian can install Mathesar as a Python module using pip
(nstalling as Python module from PyPI) instead of using the Debian package and running it using a newer version of the Python interpreter, so I don't think it affects the installation plan.
I think it’s smarter to invest into making our distributions portable rather than our code.
We could use some scripts to make our code compatible with the old version (which is out of the scope of this project) or package a Python interpreter along with the code which is not an easy thing to do because
The HN thread you linked to links to Nuitka, which could build us a system-python-independent binary, right
Maybe you are referring to the first comment. The parent comment is pointing out the fact that installing Python is not trivial. Any way the intent was to convey that we cannot always expect a majority of our users to install a specific version of Python in addition to the default system Python.
This update mostly concerns @Kriti Godey since she had some feedback on the project.
I made the following changes to the project
Let me know if your concerns are addressed