|
2 | 2 |
|
3 | 3 | ## testing |
4 | 4 |
|
5 | | -- [ ] #BUG: Token need to be optional (container error, it might be related to dbus issue which container based not use secretservice dbus?) |
6 | | - - [x] when there is correctly setup gnome-keyring, it works. |
7 | | - |
8 | | - ``` |
9 | | - 2025-10-31 12:04:00 - my_unicorn.backup - WARNING - warning:306 - Invalid version format detected, using lexicographic sorting |
10 | | - 2025-10-31 12:04:00 - my_unicorn.auth - ERROR - error:321 - Failed to retrieve GitHub token from keyring: Environment variable DBUS_SESSION_BUS_ADDRESS is unset |
11 | | - ``` |
12 | | -
|
13 | | - ```bash |
14 | | - # try to test it in container, and I confirm it is dbus issue |
15 | | - github_pat_aXCvasdfbcasdfXZCXVA^Cdg1231asdfascvasd123 # example github pat, not real |
16 | | - [devuser@arch-dev my-unicorn]$ my-unicorn auth --save-token |
17 | | - Enter your GitHub token (input hidden): |
18 | | - Confirm your GitHub token: |
19 | | - 15:37:15 - my_unicorn.auth - ERROR - Failed to save GitHub token to keyring: Environment variable DBUS_SESSION_BUS_ADDRESS is unset |
20 | | - 15:37:15 - my_unicorn.cli.runner - ERROR - Unexpected error: Environment variable DBUS_SESSION_BUS_ADDRESS is unset |
21 | | - ❌ Unexpected error: Environment variable DBUS_SESSION_BUS_ADDRESS is unset |
22 | | - ``` |
23 | | -
|
24 | | -- [ ] Copy the source code on start arch or shell arch? Start readonly current repo? |
| 5 | +- [ ] clean unused code |
| 6 | + - [x] locale, batch_mode on configs |
| 7 | + - [ ] network retry etc. |
| 8 | + this one is hard to implement, so I am thinking to remove it for now. |
25 | 9 | - [ ] #TEST: version command logic is deprecated, so testing to use **version** library |
26 | 10 | - [ ] #BUG: Rotation error on logs... |
27 | | - - Currently, implemented to custom rotation logic more simple and efficient |
| 11 | + - Currently, implemented to custom rotation logic more simple and efficient |
28 | 12 | and also increased 1MB log to 10MB to increase the log size. Manual and pytest |
29 | 13 | succesfully passed. |
30 | 14 | - [ ] appimage build take times |
31 | | - - [x] install/update show installation error reasons(show appimage build takes times) |
32 | | - - [ ] take care the edge cases, maybe app not have appimage at all? |
| 15 | + - [x] install/update show installation error reasons(show appimage build takes times) |
| 16 | + - [ ] take care the edge cases, maybe app not have appimage at all? |
33 | 17 | - [ ] Remove overengineering |
34 | | - - [ ] dataclasses |
35 | | - - [ ] strategy |
| 18 | + - [ ] dataclasses |
| 19 | + - [ ] strategy |
36 | 20 | " If you only have a couple of algorithms and they rarely change, there’s no real reason to overcomplicate the program with new classes and interfaces |
37 | 21 | that come along with the pattern." by <https://refactoring.guru/design-patterns/strategy> |
38 | | - - [x] template |
| 22 | + - [x] template |
39 | 23 | "Template methods tend to be harder to maintain the more steps they have. |
40 | 24 | You might violate the Liskov Substitution Principle by suppressing a default step implementation via a subclass. |
41 | 25 | " by <https://refactoring.guru/design-patterns/template-method> |
42 | 26 |
|
43 | 27 | ## in-progress |
44 | 28 |
|
45 | | -- [ ] test.bash -> update test not available because we remove before catalog install or url install |
46 | | - so we need a better logic to handle this case |
| 29 | +- [ ] better app.json config like owner, repo must be inside github dict |
47 | 30 | - [ ] TEST: Never use the real user config logs, app location on pytest unittests which current is use them! |
48 | 31 | it would be better to make the pytest logs like my-unicorn_pytest.log |
49 | 32 |
|
50 | | -- [ ] BUG: two time installed print on new version |
51 | | -
|
52 | | - ```bash |
53 | | - ✅ All 2 specified app(s) are already installed: |
54 | | - • qownnotes |
55 | | - • legcord |
56 | | - ✅ All 2 specified app(s) are already installed: |
57 | | - • qownnotes |
58 | | - • legcord |
59 | | - ``` |
60 | | -
|
61 | 33 | - [ ] add INFO level logs for verification instead of DEBUG |
62 | 34 | - [ ] #BUG: Cycle detected in import chain for cache.py |
63 | 35 | - [ ] API rate limiting |
64 | 36 | - [ ] refactor |
65 | | - <https://refactoring.guru/refactoring/smells> |
66 | | - - [x] general |
67 | | - - [x] logger |
68 | | - - [x] scripts |
69 | | - - [ ] config |
70 | | - - [ ] handle FIXME, TODO for duplicate functions |
71 | | - - [x] service.progress already active |
72 | | - - [x] services |
73 | | - - [x] utils.py seperated folders |
74 | | - - [ ] strategies |
75 | | - - [x] reading code from top to bottom |
76 | | - - [x] functions instead of comments |
77 | | - - [ ] contexts |
78 | | - - [ ] remove license, contribution from readme.md because there is already markdown files for them |
| 37 | + <https://refactoring.guru/refactoring/smells> |
| 38 | + - [x] general |
| 39 | + - [x] logger |
| 40 | + - [x] scripts |
| 41 | + - [ ] config |
| 42 | + - [ ] handle FIXME, TODO for duplicate functions |
| 43 | + - [x] service.progress already active |
| 44 | + - [x] services |
| 45 | + - [x] utils.py seperated folders |
| 46 | + - [ ] strategies |
| 47 | + - [x] reading code from top to bottom |
| 48 | + - [x] functions instead of comments |
| 49 | + - [ ] contexts |
| 50 | + - [ ] remove license, contribution from readme.md because there is already markdown files for them |
79 | 51 |
|
80 | 52 | ## todo |
81 | 53 |
|
|
103 | 75 | - [ ] might be better to use loguru |
104 | 76 | - [ ] mv neovim to usr bin to use appimage neovim |
105 | 77 | mv /tmp/nvim.appimage /usr/local/bin/nvim |
106 | | -- [ ] make sure tha decrease files on template and move them to one file to read more easy and make it function base utilities for it |
107 | 78 | - [ ] make sure skip not skip verification if there is verification option |
108 | | - - tested obsidian and it seems work but we need to make sure about it. |
| 79 | + - [x] freetube test verify digest even it is skip: true on the catalog, |
| 80 | + and I still keep it skip purposely |
| 81 | + - [x] obsidian test |
109 | 82 | - [ ] upgrade need auto easy update and notify like appimages |
110 | 83 | - [ ] config structure refactor |
111 | 84 | - [ ] log rotation fix |
112 | 85 | - [ ] things tested and need updates |
113 | | - - [ ] general test |
114 | | - - [ ] fish terminal, kitty terminal not good with rich library but alacrity good(artifacts on bars) |
115 | | - - [x] auth log info, validation |
116 | | - - [ ] add my unicorn export path to fish shells |
117 | | - - [ ] kde wallet support via dbus-python, test in the shared folder 3. kdewallet isn't show any token saved which seems like we don't support ito. written script to keyring-my-unicorn folder, check that out. |
| 86 | + - [ ] general test |
| 87 | + - [ ] fish terminal, kitty terminal not good with rich library but alacrity good(artifacts on bars) |
| 88 | + - [x] auth log info, validation |
| 89 | + - [ ] add my unicorn export path to fish shells |
| 90 | + - [ ] kde wallet support via dbus-python, test in the shared folder 3. kdewallet isn't show any token saved which seems like we don't support ito. written script to keyring-my-unicorn folder, check that out. |
118 | 91 | dbus-python used on kdewallet saves, so we can add that to auth later as a support. |
119 | 92 | - [ ] #BUG: digest not became true on catalog installs if its use checksum_file with digest verify both |
120 | 93 | - [ ] add verification passed or not to verification section on app-specific config |
|
126 | 99 |
|
127 | 100 | ## backlog |
128 | 101 |
|
| 102 | +- [ ] #BUG: Token need to be optional (container error, it might be related to dbus issue which container based not use secretservice dbus?) |
| 103 | + - [x] when there is correctly setup gnome-keyring, it works. |
| 104 | + |
| 105 | + ``` |
| 106 | + 2025-10-31 12:04:00 - my_unicorn.backup - WARNING - warning:306 - Invalid version format detected, using lexicographic sorting |
| 107 | + 2025-10-31 12:04:00 - my_unicorn.auth - ERROR - error:321 - Failed to retrieve GitHub token from keyring: Environment variable DBUS_SESSION_BUS_ADDRESS is unset |
| 108 | + ``` |
| 109 | + |
| 110 | + ```bash |
| 111 | + # try to test it in container, and I confirm it is dbus issue |
| 112 | + github_pat_aXCvasdfbcasdfXZCXVA^Cdg1231asdfascvasd123 # example github pat, not real |
| 113 | + [devuser@arch-dev my-unicorn]$ my-unicorn auth --save-token |
| 114 | + Enter your GitHub token (input hidden): |
| 115 | + Confirm your GitHub token: |
| 116 | + 15:37:15 - my_unicorn.auth - ERROR - Failed to save GitHub token to keyring: Environment variable DBUS_SESSION_BUS_ADDRESS is unset |
| 117 | + 15:37:15 - my_unicorn.cli.runner - ERROR - Unexpected error: Environment variable DBUS_SESSION_BUS_ADDRESS is unset |
| 118 | + ❌ Unexpected error: Environment variable DBUS_SESSION_BUS_ADDRESS is unset |
| 119 | + ``` |
| 120 | + |
129 | 121 | - [ ] good cli design princibles |
130 | 122 | <https://clig.dev/> |
131 | 123 | <https://www.amazon.com/UNIX-Programming-Addison-Wesley-Professional-Computng/dp/0131429019> |
132 | 124 |
|
133 | 125 | My advice as a user of CLI: |
134 | | - - no emojis please, ever |
| 126 | + - no emojis please, ever |
135 | 127 | Many people are more visually oriented, and are greatly aided by images and color. |
136 | 128 | A standard `NO_EMOJIS` environment variable could perhaps be used to help both camps, just like `NO_COLOR` is available today. |
137 | | - - if you want to make it look nice, use ANSI escape codes for color rather than emojis. |
| 129 | + - if you want to make it look nice, use ANSI escape codes for color rather than emojis. |
138 | 130 | even then, don't use color alone to convey meaning because it will most likely get destroyed by whatever you're piping it to. |
139 | | - - No, please don't use escape codes in your output. Use the library that is designed for this purpose: terminfo. |
140 | | - - please take the time to write detailed man pages, not just a "--help" screen |
141 | | - - implement "did you mean?" for typos (git style) and potentially dangerous commands |
142 | | - - separate the interface into a tree of subcommands (Go/Docker/AWS style) rather than a flat assortment of flags |
143 | | - - if you are displaying tabular data, present an ncurses interface |
144 | | - - (extremely important) shell completion for bash and zsh |
| 131 | + - No, please don't use escape codes in your output. Use the library that is designed for this purpose: terminfo. |
| 132 | + - please take the time to write detailed man pages, not just a "--help" screen |
| 133 | + - implement "did you mean?" for typos (git style) and potentially dangerous commands |
| 134 | + - separate the interface into a tree of subcommands (Go/Docker/AWS style) rather than a flat assortment of flags |
| 135 | + - if you are displaying tabular data, present an ncurses interface |
| 136 | + - (extremely important) shell completion for bash and zsh |
145 | 137 |
|
146 | 138 | - [ ] typer, click libraries |
147 | 139 |
|
| 140 | +## done |
| 141 | + |
| 142 | +- [x] Start source code readonly on container |
| 143 | +- [x] test.bash -> update test not available because we remove before catalog install or url install |
| 144 | + so we need a better logic to handle this case |
| 145 | +- [x] BUG: two time installed print on new version |
| 146 | + |
| 147 | + ```bash |
| 148 | + ✅ All 2 specified app(s) are already installed: |
| 149 | + • qownnotes |
| 150 | + • legcord |
| 151 | + ✅ All 2 specified app(s) are already installed: |
| 152 | + • qownnotes |
| 153 | + • legcord |
| 154 | + ``` |
| 155 | + |
148 | 156 | ## Future Enhancements (Good-to-have) |
149 | 157 |
|
150 | 158 | ### Asset detection, filtering, and prioritization |
|
0 commit comments