-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement a Last-Known-Good feature #437
Conversation
TODOs
To test:
|
Changes look sound, I have yet to test them though |
I am pondering about this. I would like to get rid of the term "known good" in the user-facing dialogues and options, because users may misunderstand its meaning easily. Do I understand correctly, that the new section in My thoughts are currently revolving around "fall-back list" or so ... still pondering. |
@Olf0 is it intended that the build only provides i486 artifacts, or should I raise a bug? |
Yes, the CI run for each commit to a Pull-Request against the I recently switched from P.S.: This is why I once upon long ago started to work on using GitHub's local cache. This initiative has stalled, partly due to a lack of time and priority, partly because nobody seems to be interested, because "it works", though half of the time of each CI run is spent with downloading Coderus' SFOS-build image from Docker Hub. |
Yes, the list contains only the set of successfully applied patches, and it is only stored if the whole process ends up successfully. Failure to apply one patch does not stop the autoapply process, nor does it send PM into "failure mode". So in case one or more patches fail, the last good set remains at its previous contents, whereas 'applied', the list of successfully activated patches stored in the .conf file, reflects the real world after autoapply finished. See: doPrepareCacheRoot() in |
… misunderstandable in the sense that we as Patchmanager developers know that these Patches are "good" (however that may be interpreted). After a while I thought of "O.K. set of Patches" and after translating this to proper lingo ended up with "saved, fine set of Patches" (IOW, "stored, acceptable list of Patches"). I also considered "working" instead of "fine", but "working set" has its own meaning, specifically in IT. Do you also consider this to be better? Should I try to alter the strings in this PR accordingly, when I find some time for that? |
Ehm, not happy with the variants. Maybe we should just call it a "backup list of patches" or "backup configuration" or so, and in the failure mode offer a "restore from backup"? Users should be familiar with these terms, and they are generic enough to change implementation details later. Another term that came to mind is "failsafe" instead of known-good. |
This is fine: I wanted to do something towards finishing this task, and because I had no good ideas, took two thesauri and played with words. This is the best I could come up with yesterday, and it appeared artificial to me, both the process and the result.
I fully acknowledge all three statements! What about "Backup list of working Patches" and "Restore backup Patch list"? |
I was about to write: But looking at this I now remember, that I intended to contribute with the wording changes to "Backup list of working Patches" and "Restore backup Patch list", plus other terms derived from these two. I will try to find some time for this this or next weekend. |
… to `backupWorkingPatchList` and `restorePatchList` Reference: sailfishos-patches#437 (comment)
Please take a look at my trivial PR #450, first.
Done (and a little more) by my PR nephros#6. It became non-trivial due to the amount of changes, though it only alters documentation and comments (if I have done it correctly). After reviewing that PR, you may consider (no need to hurry at all):
"This PR" is the one right here, i.e., PR #437. |
I feel this feature has not been tested enough to be comfortable packing it into a release just yet. |
…List` (#6) * [org.SfietKonstantin.patchmanager.xml] Rename both new methods … to `backupWorkingPatchList` and `restorePatchList` Reference: sailfishos-patches#437 (comment) * [patchmanagerobject.cpp] First round of name changes * [patchmanagerobject.h] Carry out all name changes * [patchmanager.cpp] Carry out all name changes * [patchmanager.h] Carry out all name changes * [org.SfietKonstantin.patchmanager.xml] Fix accidentally swapped names * [PatchManagerPage.qml] Carry out all name changes * [patchmanager-tool] Carry out all name changes * [main.cpp] Carry out all name changes ¿Is the masking of the **"** with **\** correct in C++? * [PatchManagerPage.qml] Enhance wording of menu entry Better, but still not really good, IMO. Issue is, it must be terse enough to fit in a single line in portrait orientation on a Jolla 1 (i.e., 540 pixels width)! * [index.qdoc] Overhaul Sorry, I became carried away: Originally I only adjusted the original lines 307 & 310, then started fixing a few typos, enhanced a few phrases etc. etc. and ended up in going over the whole file. Open points: - Line 110: "\uicontrol" Is this correct markup? Does the sentence make sense this way? - Line 161: "\badcode" Is this correct markup? - Line 225: "In this state, all enabled services are disabled, and PM must be reactivated via the GUI." "Patches" instead of "services"? - Line 289: "\warning" Not "Warning"? I.e., is it a markup term? * [patchmanagerobject.cpp] Complete name changes Questions: - Was capitalising "\c Patches" in line 372 O.K.? - Is the "\sa" in line 373 correct? * [patchmanagerobject.cpp] Try to rectify comments lines 344 - 387 Please review thoroughly! It became obvious, that some copy&paste flaws existed, but I am not sure, if I rectified them correctly. I simply assumed that the code is correct, but maybe (unlikely) the documentation mismatch was the other way around. * [patchmanagerobject.cpp] Complete name changes & overhaul Notes / questions: - Line 587: "()"? Function name missing? - Line 1103: "on the bus" -> "on D-Bus"? - Line 1198: Ambiguous, especially the second "all". - Line 1705: Not better "/sa" instead of "See also"? - Line 2121: Is that an accidentally deleted comment: Check `git blame` * [patchmanagerobject.cpp] Revert over-eagerly applied capitalisation * [index.qdoc] Two minor rectifications of yesterday's work * [index.qdoc] Fix ambiguosity and missing "that" in line 120 * [index.qdoc] Enhance lines 124 and 135 a little bit * [index.qdoc] More minor fixes * [index.qdoc] Even moere small fixes * [index.qdoc] More nitpicks * [index.qdoc] Rectify broken sentence, detected and forgotten multiple times
O.K., I will do a "safe" release without it, then. But |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Considering the bumpy history of the "strict checking" feature I'd like this to simmer a bit more.
Shouldn't we just admit that we outsource testing and get through with this? I personally am not in the position to test locally (if no arm64 build comes out) very often.
This is a conclusion I arrived at in other projects, too. I just lack the time, so I rather try to improve things than to test thoroughly. If we want to be "extra careful" we can label a release as beta, but deploy it via the usual update channels (otherwise it will not be broadly tested). |
I.e. "yes". @nephros, what is your perspective on this? |
@nephros, in August 2023 we had this conversation in the comments thread of this PR:
I just updated the draft for the Patchmanager 3.2.12 release and there is definitely sufficient material, new features and time passed (16 months) that we should finalise the 3.2.12 release soon, but not Jolla-soon™ 😉:
@b100dian and I preferred the second choice ("thorough testing always happens first when being deployed to users", which is also very Jolla-style, respectively an unspoken mantra in software industry in general), but I do not really mind as log as we agree on a plan how to proceed with this PR with a timeline ending mid-December latest. Side note: @nephros, what about merging the P.S.: I am sure willing to perform the release handling, as soon as we agreed on a plan how to proceed. |
@b100dian, WRT:
But even easier is to simply hit the Please note it was really nerve killing to wait for more than 10 Minutes after adding a new commit to a PR to P.S. / Edit: If creating a P.P.S. / Edit2: See also #472 (comment). |
Let me have a look-over this week. Although I have yet another variant of the documentation tree somewhere which switches from qDoc to Doxygen and tries to add fancy flow graphs via Graphviz. But that is stuff for a later day :D (in part because Graphviz is not yet packaged for Sailfish OS.) |
I guess they won't show up in the docs because qdoc doesn't care about non-public things, but still, now it's in there.
…List` (#6) * [org.SfietKonstantin.patchmanager.xml] Rename both new methods … to `backupWorkingPatchList` and `restorePatchList` Reference: sailfishos-patches#437 (comment) * [patchmanagerobject.cpp] First round of name changes * [patchmanagerobject.h] Carry out all name changes * [patchmanager.cpp] Carry out all name changes * [patchmanager.h] Carry out all name changes * [org.SfietKonstantin.patchmanager.xml] Fix accidentally swapped names * [PatchManagerPage.qml] Carry out all name changes * [patchmanager-tool] Carry out all name changes * [main.cpp] Carry out all name changes ¿Is the masking of the **"** with **\** correct in C++? * [PatchManagerPage.qml] Enhance wording of menu entry Better, but still not really good, IMO. Issue is, it must be terse enough to fit in a single line in portrait orientation on a Jolla 1 (i.e., 540 pixels width)! * [index.qdoc] Overhaul Sorry, I became carried away: Originally I only adjusted the original lines 307 & 310, then started fixing a few typos, enhanced a few phrases etc. etc. and ended up in going over the whole file. Open points: - Line 110: "\uicontrol" Is this correct markup? Does the sentence make sense this way? - Line 161: "\badcode" Is this correct markup? - Line 225: "In this state, all enabled services are disabled, and PM must be reactivated via the GUI." "Patches" instead of "services"? - Line 289: "\warning" Not "Warning"? I.e., is it a markup term? * [patchmanagerobject.cpp] Complete name changes Questions: - Was capitalising "\c Patches" in line 372 O.K.? - Is the "\sa" in line 373 correct? * [patchmanagerobject.cpp] Try to rectify comments lines 344 - 387 Please review thoroughly! It became obvious, that some copy&paste flaws existed, but I am not sure, if I rectified them correctly. I simply assumed that the code is correct, but maybe (unlikely) the documentation mismatch was the other way around. * [patchmanagerobject.cpp] Complete name changes & overhaul Notes / questions: - Line 587: "()"? Function name missing? - Line 1103: "on the bus" -> "on D-Bus"? - Line 1198: Ambiguous, especially the second "all". - Line 1705: Not better "/sa" instead of "See also"? - Line 2121: Is that an accidentally deleted comment: Check `git blame` * [patchmanagerobject.cpp] Revert over-eagerly applied capitalisation * [index.qdoc] Two minor rectifications of yesterday's work * [index.qdoc] Fix ambiguosity and missing "that" in line 120 * [index.qdoc] Enhance lines 124 and 135 a little bit * [index.qdoc] More minor fixes * [index.qdoc] Even moere small fixes * [index.qdoc] More nitpicks * [index.qdoc] Rectify broken sentence, detected and forgotten multiple times
a977144
to
578fd80
Compare
Ok, lets do this ;) Now, about ordering and |
@b100dian, I would appreciate much, if you provide some guidance on #437 (comment) when you have time for that. |
Lets improve usability in case of failure some more: make it easier to recover.
Contributes-To: #277
Currently:
/etc/patchmanager2.conf
adaed74 adds parameters to patchmanager-tool, which is currently broken, so:
Depends-on: #436