ratt-ru / tigger

Local Sky Model (LSM) manager and FITS image viewer
8 stars 9 forks source link

Prepare release 160 fixed #114

Closed razman786 closed 3 years ago

razman786 commented 3 years ago

Fixes GitHub Actions for testing Tigger builds for Ubuntu:

ratt-priv-ci commented 3 years ago

Can one of the admins verify this patch?

razman786 commented 3 years ago

@Athanaseus - I've also added you to the forked repo in case that makes it easier to update things.

Athanaseus commented 3 years ago

By the way, admin needs to add a PYPI_API_TOKEN to automate pypi publication when a tag is made.

Athanaseus commented 3 years ago

Ah wait the pypi release might not be feasible due to sudo dpkg -i ubuntu_20_04_deb_pkg/python3-pyqt5.qwt_2.00.00-1build1_amd64.deb dependancy. @razman786 once we make a release (160) tag I wanted to make a debian package for tigger, but I think we have to add the 'python3-pyqt5*deb' to KERN too so that they are also in the list of dependencies?

The user just add KERN and do sudo apt install tigger.

edit: KERN-7 = https://launchpad.net/~kernsuite/+archive/ubuntu/kern-7

razman786 commented 3 years ago

@Athanaseus - I have some thoughts on the Pypi issue. I'm just need to research an idea.

Yes, the custom PyQt-Qwt deb packages will need to be included in Kern until they are available from upstream.

Athanaseus commented 3 years ago

That sounds good. In the mean time I can push the 20_04 ubuntu deb files to KERN-7 since it is based on ubuntu_20. If you already have the debian folder you can point it to me. Otherwise, I can wait until everything is finalised?

razman786 commented 3 years ago

@Athanaseus - when you refer to 'debian folder' I assume you mean the debian folder needed to build the package from scratch?

Athanaseus commented 3 years ago

yes, that's correct. All KERN packages have their debian folders on git (https://github.com/kernsuite-debian).

razman786 commented 3 years ago

Give me a bit and I'll get the one I used to build it. Which is the best way to send it to you?

Athanaseus commented 3 years ago

No problem, if it's not too big you can share it via mail or just put it on g-drive.

razman786 commented 3 years ago

No problem, will get you the files, however, looking here https://github.com/kernsuite-debian it seems you need the entire directory structure. The package is built against a modified fork of PyQt-Qwt that had various fixes. I think it would be easiest for me to make a branch in my PyQt-Qwt fork with everything setup so that you can take a snapshot of it. Let me know what you think?

Athanaseus commented 3 years ago

yes, that will work out best.

razman786 commented 3 years ago

@Athanaseus - In terms of Pypi, my thoughts so far:

I feel there needs to be some discussions (and most likely investigations) to workout what would be best.

razman786 commented 3 years ago

@Athanaseus - I've put the build repo for the package in this branch https://github.com/razman786/PyQt-Qwt/tree/ubuntu_2004_deb_build. Tested with dpkg-buildpackage -b -uc -us and it is working as expected.

Athanaseus commented 3 years ago

Path of least resistance - Package tigger as Pypi and have a check to make sure the dependencies (i.e. PyQt-Qwt packages are installed). If they are not then provide the user with some help, for example, a one line wget install for the Debian package(s) that are missing, or point them to the relevant place to install what they need to get tigger running... It's a bit messy but it does seem to be the path of least resistance.

This is what I had in mind. As it's outlined in the README that python3-pyqt5.qtsvg, python3-pyqt5.qtopengl, libqwt-qt5-6, also python3-pyqt5.qwt_2 (which will be available in KERN) are system requirements, the user will have to install them anyways. Or in the case of working on a server, the system admin will ensure that these dependencies are installed for tigger to run. This will also make it easier to make an installation within a python virtualenv provided the system requirements are met.

And in the case of the debian package, all these system requirements will be in the list of dependencies which will be automatically installed when the KERN version of trigger package is installed.

I feel there needs to be some discussions (and most likely investigations) to workout what would be best.

Maybe @bennahugo can also provide some input here.

razman786 commented 3 years ago

@Athanaseus - Personally, I think such an approach in the first instance is a good idea. My thoughts on implementing the path of least resistance:

  1. Tigger needs a check upon start-up to make sure that all the dependencies are available.
  2. If the dependencies are not available to Tigger then a message should be given to the user (GUI and/or via command line) that, has a) the Kern option given, and b) the install script option given and c) should provide a link to the README for further information, in case they are not using Ubuntu.
  3. The reason I would give the user an option of using Kern or the install script is that it would be less intrusive to their system setup especially if they have other packages already installed that Kern is also providing.

Path of least resistance - Package tigger as Pypi and have a check to make sure the dependencies (i.e. PyQt-Qwt packages are installed). If they are not then provide the user with some help, for example, a one line wget install for the Debian package(s) that are missing, or point them to the relevant place to install what they need to get tigger running... It's a bit messy but it does seem to be the path of least resistance.

This is what I had in mind. As it's outlined in the README that python3-pyqt5.qtsvg, python3-pyqt5.qtopengl, libqwt-qt5-6, also python3-pyqt5.qwt_2 (which will be available in KERN) are system requirements, the user will have to install them anyways. Or in the case of working on a server, the system admin will ensure that these dependencies are installed for tigger to run. This will also make it easier to make an installation within a python virtualenv provided the system requirements are met.

And in the case of the debian package, all these system requirements will be in the list of dependencies which will be automatically installed when the KERN version of trigger package is installed.

I feel there needs to be some discussions (and most likely investigations) to workout what would be best.

Maybe @bennahugo can also provide some input here.

Athanaseus commented 3 years ago

@Athanaseus - Personally, I think such an approach in the first instance is a good idea. My thoughts on implementing the path of least resistance:

Hi @razman786 are you implementing this approach or should I start working on it?

razman786 commented 3 years ago

@Athanaseus - ah I misunderstood and thought you were implementing this. I don't mind to implement this, or you can if you wish, let me know what suits best?

bennahugo commented 3 years ago

ok to test

bennahugo commented 3 years ago

Sorry I missed the comment here at the time

I think everything works as it stands - at least it was when we made the merges into master - I very carefully tested everything in combination with @razman786. So I'm in favor of keeping things as simple as possible. I've tested Raz's install scripts locally. The required dependencies are already in the repo - Raz really put a lot of effort into these so we can just upload them to the PPA. I don't see these as intrusive - they can be installed and uninstalled in the same way any other downloadable deb can be managed.

If you look at my Dockerfile you'd see I already base of kern:7 and just call raz's install script which installs the debian dependencies either from the main ubuntu stream or the relevant built packages.

bennahugo commented 3 years ago

I think I didn't make a release at the time - but we should really just release as it stands - users can download from pypi and install the debian packages that are missing if they go that route (and we can make sure they are installed on the servers) - I don't think this is too much to ask for. The previous Tigger releases all required the user to install the qt4 equivalents of what we have now.

Athanaseus commented 3 years ago

@Athanaseus - ah I misunderstood and thought you were implementing this. I don't mind to implement this, or you can if you wish, let me know what suits best?

OK, then please go ahead and implement that. I will then upload the python3-pyqt5.qwt to KERN-7 and do the testing afterwards.

bennahugo commented 3 years ago

ok I'm waiting for the build to go through - it is enqueued

razman786 commented 3 years ago

@Athanaseus - PR https://github.com/ska-sa/tigger/pull/115 implements a basic dependency checker and provides a simple output message for the user.

Athanaseus commented 3 years ago

Thanks @razman786, tested and approved.

razman786 commented 3 years ago

@Athanaseus - I've updated the dependency checker in PR https://github.com/ska-sa/tigger/pull/116 to show individual missing dependencies and provides a GUI to the user if possible.

gijzelaerr commented 3 years ago

Before doing the release we should move the deb packages out of the repo. They can live anywhere, but inside the tarball is the least optimal location.

If we can't find a good location for them I propose we move them to another git repo:

https://github.com/ska-sa/tigger-bin https://github.com/ska-sa/tigger/pull/117

razman786 commented 3 years ago

A few items:

bennahugo commented 3 years ago

I don't have merge powers here unfortunately. I can only review. Tests were already started on the other PRs. I suggest a git LFS for this purpose.

On Wed, 28 Jul 2021, 01:44 Raz, @.***> wrote:

A few items:

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ska-sa/tigger/pull/114#issuecomment-887905142, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB4RE6RINRRLZSFL3P5K4QLTZ5AG5ANCNFSM46BWZLRQ .