What I'm trying to do is figure out a legit way of updating or downdating my program from my GitHub repository.

I'm rather lost as the the approach on this and don't know what to consider.

I want to notify a user if a new major update is available, and then allow them to cancel the update if they so please.
And of course allow them to downdate if they don't like something in the update and cancel that if they change their mind.

This includes downgrading and upgrading to particular versions from my repo.

How could I, or what's the best way to pull this off??

This looks like any typical package management system, like rpm (red-hat family), dpkg (debian family), apk (android), and so on... of course, I don't think Windows has anything equivalent to this... but again, that's what Windows users are used to, as sub-par system.

There are several tools out there that can help you generate packages (of various flavors) from your git repository, and maintain the packages up-to-date with it.

eh... so what, use a zip on my repo and check and compare revisions??

I'm working with loader.py from my program to check my GH repo for any updates...

yea... I'm really confused... heh