hhannine / superpaper

A cross-platform multi monitor wallpaper manager.
MIT License
1.12k stars 46 forks source link

Add requirements.txt plus general questions #3

Closed Mateusz-Grzelinski closed 4 years ago

Mateusz-Grzelinski commented 5 years ago

Hi, I am loosesly interested in this project, and before I start writing code I have several questions: 1) What is your policy for contributions? 2) What is your roadmap/milestones? 3) You seem to not follow python conventions for naming and formatting, is there a reason? 4) What is the best way of contacting and discussing things with you?

And finally please add requirements.txt to repo root. It should look like this (based on your readme):

wxPython==4.0.5
screeninfo==0.3.1
Pillow==6.0.0
system-hotkey==1.0.3
hhannine commented 5 years ago
  1. Haven't really thought about it. I'd like to discuss your plans before making any decisions on accepting contributions. Though I'm interested to hear your thoughts.

  2. The project has reached the feature set that I myself desired so it is somewhat unclear what to do next. Though one big shortcoming, even if not a huge issue in practice, is the fact that the PPI and bezel corrections can't work with arbitrary display arrangements, and I haven't really figured out how that could be fixed. Maybe one shorter term goal would be to figure out if the linux package can be made smaller since the PyInstaller build is huge at 100Mb. And maybe the project needs to be broken into modules at some point.

  3. This is my first large project in Python, in which I have no training so I've been oblivious to conventions and good practices.. I've tried picking up some conventions in the process. Another milestone would be to make it more convention and style compliant.

  4. I suppose email is alright for a start if there is something that is ill suited to be discussed here.

Would you elaborate on the need for requirements.txt? I'm a complete newbie with Github.

Edit: One more long term milestone would be to improve the user experience more. The current GUI somewhat feels like a minimum viable product.

Mateusz-Grzelinski commented 5 years ago

requirements.txt is a standard way in python for listing our dependencies. It is supported by IDEs and in command line pip install -r requirements.txt. Usually it is redirected output of pip freeze, but I went for minimal required dependecies. As far as I know it is also ok. There are lots of resources on internet, you can google that.

  1. I would really love to see some good UI. But no details so far, lets fix code style first.
  2. About style. wx module is python bindings for cpp lib, so naming conventions are non pythonic. How about this: By the end of this week I will refactor code into several files, fix naming. I will make pull request and we can discuss it further. I will not change logic.
  3. I think you don't show publically your email address. You can make your email public or I will use issues and pull requests. If you want to see how pull requests work on github I can make pull request with requirements.txt file

Some general thoughts:

On my background: I am IT student, I have about 2 year experience in python, c, cpp

hhannine commented 5 years ago

Can one have platform specific requirements? It looks like to me for deployment we probably want a requirements.txt that lists the dependencies for the system_hotkey module for example? (instead of a requirements-minimal.txt?) And these differ for Linux and Windows.

I'll send you an email about the rest.

Mateusz-Grzelinski commented 5 years ago

Yes it is possible to have several different requrements files. Ex. one for runtime dependencies, other one with developments requirement, one for linux, one for windows. This is simple, but manual way. The downside is there are a lot of files to maintain. This is one of problems of using requirements file: it does not provides us with standard solution to this problem.

Thats why project called pipenv was created. Maybe this can solve this problem. Though I don't have much experience in making python deployments.

Mateusz-Grzelinski commented 5 years ago

After quick reading there is an option for plantform specyfic deps. It is called sys_platform https://pipenv-es.readthedocs.io/es/stable/advanced.html

hhannine commented 4 years ago

Requirements files added with 88ec19c0.