-
-
Notifications
You must be signed in to change notification settings - Fork 93
Patches on other channels #255
Comments
Ok. So after further testing, it seems that patches do indeed get produced for other channels, however the documentation says otherwise. From docs/commands.md
from docs/usage-cli-advanced.md
And possibly more places.This issue could be a good one for new contributors, since we only need the documentation updated, to reflect the behavior in the code (which is, that patches gets produced on all release channels, instead of just the "stable"). |
fix #255 clarifying that ppatches will be created on every channel
It would also be very helpful if the documentation contained a separate section on release channels, with a bit more background on the use of release channels in general, and examples describing basic usage. |
@NicklasTegner It turns out this is not just a documentation issue: Although patches are indeed created for pre-release channels (alpha, beta), they are never actually applied by the client. This can be seen in client.updates.LibUpdate._download(), which only calls Here's the relevant part: def _download(self):
if self.name is not None:
...
patch_success = False
if self.channel == "stable":
patch_success = self._patch_update()
...
if patch_success: # pragma: no cover
...
else:
...
update_success = self._full_update()
...
... So I guess this issue should be re-opened. Maybe it is as simple as removing the |
Some additional observations:
This is illustrated, for example, by the Also see core.package_handler.patch.Patch._check_make_patch(). Maybe this is all intentional, but I think it is quite confusing. To me it would make more sense to use consistent filenames for the full package archives and the patches (e.g. only a different extension), and separate the patches by platform (and possibly channel), just like it is done for full packages. Any thoughts? |
@dennisvang in response to your 2 latest comments. |
@NicklasTegner I think there's also a bit of confusion on my part, because it is not quite clear to me what is the intention of the "release channels" in pyupdater. The Perhaps @JMSwag could elaborate? Here's how I see it:
Here's an example of what I have in mind when I talk about a "linear" release path, per platform:
Now, suppose our client is at If the client checks the "stable" channel for updates, it will find If the client checks the "beta" channel for updates, it will try to find the latest version, which can be either "beta" or "stable", whichever is higher. In this case, the latest version is "stable" If the client checks the "alpha" channel, it will find If the client is currently at e.g. @JMSwag Does this make sense? Is this how it is supposed to work? |
@dennisvang that sounds to me, like how it's supposed to work |
@dennisvang @NicklasTegner Agreed. The suggested approach is how it should be. |
@JMSwag @NicklasTegner Allright, thanks for the quick feedback. :) I think the current implementation already works mostly along these lines, but it is not quite there yet, for example: If you don't mind, I can start working on this right away. |
Please, by all means ❤️ |
Great. I think I'll start by creating some tests based on my example above. |
Hi.
Something that has been bugging me, and I can't seem to find an answer for is, why do we only have the possibility to create patches on the "stable" channel.
Why are patches not available for the beta and alpha channels?
The text was updated successfully, but these errors were encountered: