noembryo / KoHighlights

KOHighlights is a utility for viewing KOReader's highlights and/or export them to simple text, html, csv or markdown files.
MIT License
128 stars 5 forks source link

Switch to Poetry, Upgrade to PySide6 #30

Closed isosphere closed 6 months ago

isosphere commented 6 months ago

I've migrated the codebase to use poetry for dependency management rather than pip requirements files. In my experience this is much easier for cross-platform development, and makes it easier for new collaborators to participate.

This was done on Windows - this is draft until Linux support is verified working.

Since installing the dependencies is not possible with poetry currently (PySide2 is old), I've also migrated the project to use PySide6. It is possible I have made mistakes in doing this; I'm poking around trying to break it.

Edits and comments welcome.

noembryo commented 6 months ago

Well, thank you for your contribution. Compatibility with PySide6 is a good idea, but I don't think that removing compatibility for everything except Windows x64 is something that will help this project. Right now it supports Windows from XP onwards and Linux from Ubuntu 16 onwards. You may argue that not many people use all these older OSes, but KOHighlights is a niche app anyway, and normal users just use the reader only.

KOHighlights is getting more and more obsolete with every KOReader update, because the really good devs over there are adding almost everything the app can do, inside the reader itself.. 😉 Also, the hustle of installing the dependencies of the project is minimal, since there are libraries that everyone has already installed. More complicated projects might benefit from something like that, but not KOHighlights. The funny thing is that the only library that a user might not already have, is the one that poetry doesn't support (PySide). And lets not forget that we add one more dependency.. 😃

OTOH, the PySide6 compatibility is something that it interests me. I will put it in the todo list..

isosphere commented 6 months ago

Well, thank you for your contribution. Compatibility with PySide6 is a good idea, but I don't think that removing compatibility for everything except Windows x64 is something that will help this project.

This is the opposite of my intention, and why this is still a draft PR; I will be modifying my changes to ensure they work on Linux. In my experience cross-platform deployments are much easier with poetry. PySide does not install with poetry because the version used in this project hasn't been updated in 8 years.

However, I am hearing (reading) that you like things the way they are and prefer to work independently. I will continue my work in my own repo.

As an aside, could you please upload the resources referred to by images.grc? The "stuff" folder has two images in it, but this file refers to dozens and cannot be regenerated without them.

noembryo commented 6 months ago

This is the opposite of my intention, and why this is still a draft PR; I will be modifying my changes to ensure they work on Linux. In my experience cross-platform deployments are much easier with poetry. PySide does not install with poetry because the version used in this project hasn't been updated in 8 years.

Actually it was 5 years ago, but anyway.. Older compatibility is important for me if there is no real benefit by updating. I like to support people with older hardware that use older OSes (if its easy of course).

However, I am hearing (reading) that you like things the way they are and prefer to work independently. I will continue my work in my own repo.

Obviously, I do like the things the way there are, otherwise I would have made them different.. 😉 ..but I'm open to contributions and ideas that help and improve the project.

As an aside, could you please upload the resources referred to by images.grc? The "stuff" folder has two images in it, but this file refers to dozens and cannot be regenerated without them.

Yeah, just uploaded them manually. Since the uploading of the project is automated and these files are not included (since they are not used), I keep on forgetting to sync them..

isosphere commented 6 months ago

Yeah, just uploaded them manually. Since the uploading of the project is automated and these files are not included (since they are not used), I keep on forgetting to sync them..

Thank you! I was able to regenerate the resource file without trouble using them.