in home assistant github, the synology.py points to that package py-synology
so am i correct saying
If the user snjoetw, removes his repository, that homeassistant is unable to install py-synology? or all all those repositories also in homeassistant included?
if the users snjoetw changes something in py-synology , are those changes affected immediately?
so in other words , how does github and end developers work with each other? just interested in this kind of stuff
i also forked some interesting projects on my account (backup), but actually i dont know what it does…
So i have somekind of duplicate repository, so if the original user deletes the project, is it also deleted from my github?
A developer can host the source code for a project on GitHub. If a Home Assistant component or platform requires that external code to work, the developer must push a packaged version of that code to PyPI (Python Package Index) with a version number. The “requirements” line you found tells HA to download that version of the package from PyPI.
If the developer updates the code of that project and HA can take advantage of something in the update, the dev must push a new version of that package to PyPI, and the “requirements” line in the HA component or platform needs to be changed to require the newer version of the package.
ok, and what about forking? is a fork always synched? so if owner updates , it updates also on my github?
if owners deletes, it also deleted from my github ?
But take the Arlo component. That component is not maintained, there is now a custom component for Arlo. Much better, how will this replace te old if the old is not maintained anymore? Will it be a new component “Arlo2”? Or can the new developer overwrite the old??
That’s at the discretion of the HA core team. I think the strong preference is to give the original dev a change to continue maintaining. But in the case that the original dev has truly abandoned the project, the only option is to submit a PR to change the HA component or platform’s requirement and make any changes necessary to the component or platform to get it working with the new library.