revanced-manager icon indicating copy to clipboard operation
revanced-manager copied to clipboard

feat: Add an option to view patches changelog

Open ILoveOpenSourceApplications opened this issue 2 months ago • 4 comments

Feature description

There's currently no way for an user to know what changed between each patches version without a changelog in the manager.

Motivation

It was present in flutter manager and should be ported over to compose as well.

Acknowledgements

  • [x] I have checked all open and closed feature requests and this is not a duplicate.
  • [x] I have chosen an appropriate title.
  • [x] The feature request is only related to ReVanced Manager.

Even if this is implemented, it would only show the latest changelog

Imagine this:

v12.0.1

fix: small bug

v12.0.0

12000 lines of huge major important changes

ReVanced Manager would only be able to show v12.0.1, due to the ReVanced API not providing any options for previous changelogs @oSumAtrIX Is it about time we revisit this issue?

Ushie avatar Oct 08 '25 07:10 Ushie

It is not possible to display changelogs over multiple versions properly. API is technically just a "static" transformer. The backend is abstracted in a way where each release has a description (note how description != changelog). This is intentionally designed to generalize usage. GitHub and changelogs are one abstract use case, but all you need is technically the release details, like the file and description and implement the backend interface for it.

To realize changelogs over multiple releases, api wouild have to implement "additional" abstract logic which breaks generalization, since now we force the concept changelogs over descriptions as well as the non 1:1 logic between backend and api of reading and parsing multiple releases at once.

This is an architectural issue. Backends don't provide a "changelog" endpoint, nor is it general enough for a backend. A changelog endpoint would require scraping the backend of some sort if the backend does not support changelogs which is the case for most common backends, github, gitlab, file systems etc, they dont have this kind of logic. (which means dynamic API queries and lots of caching and combinations of ranges and whatnot)

Yes, it is possible to implement, but no, its not good. Closing until good suggestions are given to work in this situation

oSumAtrIX avatar Oct 08 '25 09:10 oSumAtrIX

One dirty solution would be to ask the backend for an optional changelog so it can be mirrored. E.g.

/patches/changelog

No syntax specification, or ranges, just one big changelog file, up to the backend to design. Apps like manager can parse as markdown by default, or do their processing on their own behalf (like truncating, ranges etc)

oSumAtrIX avatar Oct 08 '25 09:10 oSumAtrIX

@Ushie I think this is an okay solution, please move this to the respective api issues

oSumAtrIX avatar Oct 08 '25 09:10 oSumAtrIX