abra 0.10 app deploy output is less informative #550

Closed
opened 2025-04-24 15:03:57 +00:00 by fauno · 22 comments
Member

previously abra app deploy listed the secrets and configs it was creating or reusing, but now it only shows progress of container deployment. i found the previous output useful to quickly check if the correct version of things was being deployed, specially when doing chaotic stuff.

unsure now if i should get used to it or claim for it to come back :P

coop-cloud/hedgedoc#17 (comment)

previously `abra app deploy` listed the secrets and configs it was creating or reusing, but now it only shows progress of container deployment. i found the previous output useful to quickly check if the correct version of things was being deployed, specially when doing chaotic stuff. unsure now if i should get used to it or claim for it to come back :P https://git.coopcloud.tech/coop-cloud/hedgedoc/pulls/17#issuecomment-24102
Member

There is some discussion already to add this stuff back. What do you think about only showing this information when it changed? See #537 (comment)

There is some discussion already to add this stuff back. What do you think about only showing this information when it changed? See https://git.coopcloud.tech/toolshed/abra/issues/537#issuecomment-23638
Author
Member

showing it when it changes sounds good!

showing it when it changes sounds good!
Owner

Yeh apologies, I'm kinda freestyling the deploy output and it's still not great IMHO.

All those messages from before are now moved to DEBUG logging messages, so can easily be brought back after "initialising deploy" or whatever it says now. The only issue with "when it changed" is that it only shows when it changes on < v0.10.x? E.g. create/update. So, do we mean that we ignore an "update" (you already know it was created?).

Yeh apologies, I'm kinda freestyling the deploy output and it's still not great IMHO. All those messages from before are now moved to `DEBUG` logging messages, so can easily be brought back after "initialising deploy" or whatever it says now. The only issue with "when it changed" is that it only shows when it changes on < `v0.10.x`? E.g. create/update. So, do we mean that we ignore an "update" (you already know it was created?).
decentral1se added this to the Abra v0.11.x project 2025-04-24 19:35:12 +00:00
decentral1se added the
bug
label 2025-04-24 19:35:19 +00:00
Owner

Merging these two in here:

  • secret versions: #526
  • version of services diff (before deploy) #537

Some stuff is for "before deploy" (overview?) and others for "post deploy" (but we have UI for that yet besides logs).

Merging these two in here: * secret versions: https://git.coopcloud.tech/toolshed/abra/issues/526 * version of services diff (before deploy) https://git.coopcloud.tech/toolshed/abra/issues/537 Some stuff is for "before deploy" (overview?) and others for "post deploy" (but we have UI for that yet besides logs).
decentral1se moved this to Backlog in Abra v0.11.x on 2025-05-11 08:24:52 +00:00
Owner

Related: #556

Related: https://git.coopcloud.tech/toolshed/abra/issues/556
3wordchant self-assigned this 2025-06-30 15:00:18 +00:00
Owner

An attempt at UI design

Original:

➜ abra app deploy foo.bar.example.com
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃                NEW DEPLOY OVERVIEW               ┃
┃                                                  ┃
┃ DOMAIN                foo.bar.example.com        ┃
┃ RECIPE                custom-php                 ┃
┃ SERVER                bar.example.com            ┃
┃ CONFIG                compose.yml                ┃
┃                                                  ┃
┃ CURRENT DEPLOYMENT    N/A                        ┃
┃ ENV VERSION           2.0.0+8.4.3-fpm-alpine3.20 ┃
┃ NEW DEPLOYMENT        2.0.0+8.4.3-fpm-alpine3.20 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Secrets

SECRETS    db_password: v1
           db_root_password: v2

Configs

CONFIGS    entrypoint: v1 → v2

(showing incipient upgrade if possible, otherwise from post-deploy log messages)

Images

IMAGES   app: php:7.4-fpm-alpine3.13 → php:8.4.3-fpm-alpine3.20
         db: mariadb:10.6 (unchanged)
         frontend: nginx:1.20-alpine (unchanged)

But: for long image tags like php:7.4-fpm-alpine3.13 this could make the display Very Wide. Should we break it onto separate lines for upgrades, rather? Or is it rare enough that this is an OK default?

_An attempt at UI design_ Original: ``` ➜ abra app deploy foo.bar.example.com ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ NEW DEPLOY OVERVIEW ┃ ┃ ┃ ┃ DOMAIN foo.bar.example.com ┃ ┃ RECIPE custom-php ┃ ┃ SERVER bar.example.com ┃ ┃ CONFIG compose.yml ┃ ┃ ┃ ┃ CURRENT DEPLOYMENT N/A ┃ ┃ ENV VERSION 2.0.0+8.4.3-fpm-alpine3.20 ┃ ┃ NEW DEPLOYMENT 2.0.0+8.4.3-fpm-alpine3.20 ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ``` ## Secrets ``` SECRETS db_password: v1 db_root_password: v2 ``` ## Configs ``` CONFIGS entrypoint: v1 → v2 ``` (showing incipient upgrade if possible, otherwise from post-deploy log messages) ## Images ``` IMAGES app: php:7.4-fpm-alpine3.13 → php:8.4.3-fpm-alpine3.20 db: mariadb:10.6 (unchanged) frontend: nginx:1.20-alpine (unchanged) ``` But: for long image tags like `php:7.4-fpm-alpine3.13` this could make the display Very Wide. Should we break it onto separate lines for upgrades, rather? Or is it rare enough that this is an OK default?
Author
Member

i like how it shows what's changing!

for logs, i always go to tap since it shows ok / not ok and it's easy to read. maybe something like that, with custom prefixes? what abra version had the INFO/WARN/etc prefixes? i'm not sure i've seen them lately, but i've only been deploying upgrades

i like how it shows what's changing! for logs, i always go to [tap](https://testanything.org/) since it shows ok / not ok and it's easy to read. maybe something like that, with custom prefixes? what abra version had the INFO/WARN/etc prefixes? i'm not sure i've seen them lately, but i've only been deploying upgrades
Owner

what abra version had the INFO/WARN/etc prefixes? i'm not sure i've seen them lately, but i've only been deploying upgrades

I think current main abra (still?) has those prefixes for abra's own logs:

DEBU <cli/run.go:65> abra version dev, commit a32e30374f402fc00714784b5ee02f845ff27411
...
FATA <recipe/git.go:43> unable to fetch tags in /home/user/.abra/recipes/custom-html: ssh: handshake failed: ssh: disconnect, reason 2: too many authentication failures

For Docker logs (to display after "INFO initialising deployment", I'm not aware of the Docker daemon giving us log-level info; if there is a way of getting it then 💯 it would be great to add those same prefix badges.


Anyway, two ❤️ on the proposed UI I will aim to implement it this week.

> what abra version had the INFO/WARN/etc prefixes? i'm not sure i've seen them lately, but i've only been deploying upgrades I think current `main` abra (still?) has those prefixes for abra's own logs: ``` DEBU <cli/run.go:65> abra version dev, commit a32e30374f402fc00714784b5ee02f845ff27411 ... FATA <recipe/git.go:43> unable to fetch tags in /home/user/.abra/recipes/custom-html: ssh: handshake failed: ssh: disconnect, reason 2: too many authentication failures ``` For Docker logs (to display after "INFO initialising deployment", I'm not aware of the Docker daemon giving us log-level info; if there is a way of getting it then 💯 it would be great to add those same prefix badges. --- Anyway, two ❤️ on [the proposed UI](https://git.coopcloud.tech/toolshed/abra/issues/550#issuecomment-25535) I will aim to implement it this week.
Owner

For Docker logs (to display after "INFO initialising deployment", I'm not aware of the Docker daemon giving us log-level info; if there is a way of getting it then 💯 it would be great to add those same prefix badges.

@3wordchant check out pkg/ui/deploy.go for the gory details! we're receiving all messages from the runtime and decoding and choosing / throwing away some to show on the abra side. i've tried to make more sense of that but it's pretty chaotic... throw in a debug statement somewhere and you'll get a taste for it! Loving the UI developments here 🙏

> For Docker logs (to display after "INFO initialising deployment", I'm not aware of the Docker daemon giving us log-level info; if there is a way of getting it then 💯 it would be great to add those same prefix badges. @3wordchant check out `pkg/ui/deploy.go` for the gory details! we're receiving all messages from the runtime and decoding and choosing / throwing away some to show on the `abra` side. i've tried to make more sense of that but it's pretty chaotic... throw in a debug statement somewhere and you'll get a taste for it! Loving the UI developments here 🙏
decentral1se moved this to In Progress in Abra v0.11.x on 2025-08-12 05:22:16 +00:00
Owner

But: for long image tags like php:7.4-fpm-alpine3.13 this could make the display Very Wide.

Could drop the image and just show the new tag to save some chars, e.g.

IMAGES app: php:7.4-fpm-alpine3.13 → 8.4.3-fpm-alpine3.20

Learning from #611, it seems like you'll need to do hook into when the code path is doing the checking out of specific versions and collect all the compose configs and build up your bookkeeping until the deploy overview.

Do really like the proposed changes here, I think it'll make for a great improvement.

> But: for long image tags like php:7.4-fpm-alpine3.13 this could make the display Very Wide. Could drop the image and just show the new tag to save some chars, e.g. > IMAGES app: php:7.4-fpm-alpine3.13 → 8.4.3-fpm-alpine3.20 Learning from https://git.coopcloud.tech/toolshed/abra/pulls/611, it seems like you'll need to do hook into when the code path is doing the checking out of specific versions and collect all the compose configs and build up your bookkeeping until the deploy overview. Do really like the proposed changes here, I think it'll make for a great improvement.
Owner

Progress so far:

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃                           CHAOS DEPLOY OVERVIEW                          ┃
┃                                                                          ┃
┃ DOMAIN                cloud.example.com                                  ┃
┃ RECIPE                nextcloud                                          ┃
┃ SERVER                vps.example.com                                    ┃
┃                       compose.yml                                        ┃
┃                       compose.mariadb.yml                                ┃
┃ CONFIG                compose.imaginary-preview.yml                      ┃
┃                                                                          ┃
┃ CURRENT DEPLOYMENT    d1cf4649+U                                         ┃
┃ ENV VERSION           d1cf4649                                           ┃
┃ NEW DEPLOYMENT        d1cf4649+U                                         ┃
┃                                                                          ┃
┃                       app: nextcloud:31.0.6-fpm                          ┃
┃                       cache: redis:8.0.2-alpine                          ┃
┃                       cron: nextcloud:31.0.6-fpm                         ┃
┃                       db: mariadb:11.4                                   ┃
┃                       imaginary: nextcloud/aio-imaginary:20250822_112758 ┃
┃ IMAGES                web: nginx:1.29.0                                  ┃
┃                                                                          ┃
┃                       admin_password: v1                                 ┃
┃                       db_password: v1                                    ┃
┃ SECRETS               db_root_password: v1                               ┃
┃                                                                          ┃
┃                       crontab: v1 (unchanged)                            ┃
┃                       my_cnf: v6 → v7                                    ┃
┃                       nginx: v8 (unchanged)                              ┃
┃                       fpm_tune: v5 (unchanged)                           ┃
┃ CONFIGS               entrypoint: v3 (unchanged)                         ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
Progress so far: ``` ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ CHAOS DEPLOY OVERVIEW ┃ ┃ ┃ ┃ DOMAIN cloud.example.com ┃ ┃ RECIPE nextcloud ┃ ┃ SERVER vps.example.com ┃ ┃ compose.yml ┃ ┃ compose.mariadb.yml ┃ ┃ CONFIG compose.imaginary-preview.yml ┃ ┃ ┃ ┃ CURRENT DEPLOYMENT d1cf4649+U ┃ ┃ ENV VERSION d1cf4649 ┃ ┃ NEW DEPLOYMENT d1cf4649+U ┃ ┃ ┃ ┃ app: nextcloud:31.0.6-fpm ┃ ┃ cache: redis:8.0.2-alpine ┃ ┃ cron: nextcloud:31.0.6-fpm ┃ ┃ db: mariadb:11.4 ┃ ┃ imaginary: nextcloud/aio-imaginary:20250822_112758 ┃ ┃ IMAGES web: nginx:1.29.0 ┃ ┃ ┃ ┃ admin_password: v1 ┃ ┃ db_password: v1 ┃ ┃ SECRETS db_root_password: v1 ┃ ┃ ┃ ┃ crontab: v1 (unchanged) ┃ ┃ my_cnf: v6 → v7 ┃ ┃ nginx: v8 (unchanged) ┃ ┃ fpm_tune: v5 (unchanged) ┃ ┃ CONFIGS entrypoint: v3 (unchanged) ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ```
Owner

The main remaining thing is to show proposed image changes.

I am running into some weird inconsistencies between config names, e.g. Nextcloud has a config called nginx_conf but the actual Docker secret name is ${STACK_NAME}_nginx_${NGINX_CONF_VERSION} (i.e. see missing _conf).

I guess this points to needing to do more intelligent parsing of compose files to match the remote config names 🤔

https://git.coopcloud.tech/coop-cloud/nextcloud/src/branch/main/compose.yml#L155-L158

The main remaining thing is to show proposed image changes. I am running into some weird inconsistencies between config names, e.g. Nextcloud has a config called `nginx_conf` but the actual Docker secret name is `${STACK_NAME}_nginx_${NGINX_CONF_VERSION}` (i.e. see missing `_conf`). I guess this points to needing to do more intelligent parsing of compose files to match the remote config names 🤔 https://git.coopcloud.tech/coop-cloud/nextcloud/src/branch/main/compose.yml#L155-L158
Owner

Latest:

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃                               CHAOS DEPLOY OVERVIEW                               ┃
┃                                                                                   ┃
┃ DOMAIN                cloud.example.com                                           ┃
┃ RECIPE                nextcloud                                                   ┃
┃ SERVER                vps.example.com                                             ┃
┃                       compose.yml                                                 ┃
┃                       compose.mariadb.yml                                         ┃
┃                       compose.imaginary-preview.yml                               ┃
┃ CONFIG                compose.fulltextsearch.yml                                  ┃
┃                                                                                   ┃
┃ CURRENT DEPLOYMENT    d1cf4649+U                                                  ┃
┃ ENV VERSION           d1cf4649                                                    ┃
┃ NEW DEPLOYMENT        00fe0166+U                                                  ┃
┃                                                                                   ┃
┃                       mariadb: 11.4 (unchanged)                                   ┃
┃                       docker.elastic.co/elasticsearch/elasticsearch: 8.17.2 (new) ┃
┃                       nextcloud/aio-imaginary: 20250822_112758 (unchanged)        ┃
┃                       nginx: 1.29.0 → 1.29.1                                      ┃
┃                       nextcloud: 31.0.6-fpm → 31.0.7-fpm                          ┃
┃ IMAGES                redis: 8.0.2-alpine → 8.0.3-alpine                          ┃
┃                                                                                   ┃
┃                       admin_password: v1                                          ┃
┃                       db_password: v1                                             ┃
┃                       db_root_password: v1                                        ┃
┃ SECRETS               elasticsearch_password: v1                                  ┃
┃                                                                                   ┃
┃                       crontab: v1 (unchanged)                                     ┃
┃                       nginx: v8 → v9                                              ┃
┃                       my_cnf: v6 (unchanged)                                      ┃
┃                       fpm_tune: v5 (unchanged)                                    ┃
┃ CONFIGS               entrypoint: v3 (unchanged)                                  ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Looking OK y'all? @decentral1se @fauno @p4u1

I'll write some tests and do some code cleanup meanwhile.

Latest: ``` ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ CHAOS DEPLOY OVERVIEW ┃ ┃ ┃ ┃ DOMAIN cloud.example.com ┃ ┃ RECIPE nextcloud ┃ ┃ SERVER vps.example.com ┃ ┃ compose.yml ┃ ┃ compose.mariadb.yml ┃ ┃ compose.imaginary-preview.yml ┃ ┃ CONFIG compose.fulltextsearch.yml ┃ ┃ ┃ ┃ CURRENT DEPLOYMENT d1cf4649+U ┃ ┃ ENV VERSION d1cf4649 ┃ ┃ NEW DEPLOYMENT 00fe0166+U ┃ ┃ ┃ ┃ mariadb: 11.4 (unchanged) ┃ ┃ docker.elastic.co/elasticsearch/elasticsearch: 8.17.2 (new) ┃ ┃ nextcloud/aio-imaginary: 20250822_112758 (unchanged) ┃ ┃ nginx: 1.29.0 → 1.29.1 ┃ ┃ nextcloud: 31.0.6-fpm → 31.0.7-fpm ┃ ┃ IMAGES redis: 8.0.2-alpine → 8.0.3-alpine ┃ ┃ ┃ ┃ admin_password: v1 ┃ ┃ db_password: v1 ┃ ┃ db_root_password: v1 ┃ ┃ SECRETS elasticsearch_password: v1 ┃ ┃ ┃ ┃ crontab: v1 (unchanged) ┃ ┃ nginx: v8 → v9 ┃ ┃ my_cnf: v6 (unchanged) ┃ ┃ fpm_tune: v5 (unchanged) ┃ ┃ CONFIGS entrypoint: v3 (unchanged) ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ``` Looking OK y'all? @decentral1se @fauno @p4u1 I'll write some tests and do some code cleanup meanwhile.
Owner

I guess this points to needing to do more intelligent parsing of compose files to match the remote config names 🤔

Also I have come to think this is just a recipe packaging mistake which we don't need to support.

If the Docker config is called nginx_conf then both the long name (foo_example_com_nginx_conf_v1) and the version variable (${NGINX_CONF_VERSION}) should match.

Adding parsing of the un-interpolated configs.*.name to get at the variable name directly seems too wacky.

> I guess this points to needing to do more intelligent parsing of compose files to match the remote config names 🤔 Also I have come to think this is just a recipe packaging mistake which we don't need to support. If the Docker config is called `nginx_conf` then both the long name (`foo_example_com_nginx_conf_v1`) and the version variable (`${NGINX_CONF_VERSION}`) should match. Adding parsing of the un-interpolated `configs.*.name` to get at the variable name directly seems too wacky.
Owner

Hell yes, that overview is looking incredible! Great work 👏 Totally convinced by the need for now #639 🙃 I guess this is the information we were holding in our heads all along when running deployment operations and now we don't have to! It's a very informative overview now.

Hell yes, that overview is looking incredible! Great work 👏 Totally convinced by the need for now https://git.coopcloud.tech/toolshed/abra/issues/639 🙃 I guess this is the information we were holding in our heads all along when running deployment operations and now we don't have to! It's a very informative overview now.
Author
Member

looks great! but inevitable feedback (!)

  • could you make cells be vertically aligned to top? when the second column is multiline, it makes you think the content belongs to the previous row

    image.png
  • empty line between rows is more readable to me!

  • are you taking into account the current tty's columns? i'm worried tables too wide will break and people won't know it's because their tty's are too narrow.

  • somewhere we discussed the difference between domain and url, maybe add the url separately? so it's also clickable on terminal's that support autolinking.

looks great! but inevitable feedback (!) * could you make cells be vertically aligned to top? when the second column is multiline, it makes you think the content belongs to the previous row <img width="354" alt="image.png" src="attachments/b2653821-9b66-435d-850c-07c2583047cd"> * empty line between rows is more readable to me! * are you taking into account the current tty's columns? i'm worried tables too wide will break and people won't know it's because their tty's are too narrow. * somewhere we discussed the difference between domain and url, maybe add the url separately? so it's also clickable on terminal's that support autolinking.
Member

I really like the new ui!! One thing though is that it is quite verbose. I would love an option where it only shows what changes and omits anything that's unchanged. Maybe we could even make that the default. The verbose option could be shown with --debug or something

I really like the new ui!! One thing though is that it is quite verbose. I would love an option where it only shows what changes and omits anything that's unchanged. Maybe we could even make that the default. The verbose option could be shown with --debug or something
Owner

Thanks for the feedback!

One thing though is that it is quite verbose.

Yeh maybe --debug or a new flag (--full/-F idk 🤷) for everything and otherwise, only showing what was changed? I'd be curious if the "only changed" output also makes sense. I agree it is quite verbose. If we also show the logs from the deployment, it's gonna be a lot of text.

could you make cells be vertically aligned to top?

#639

are you taking into account the current tty's columns?

I believe it is flexible according to the width / resize. @3wordchant can you confirm? (I can help with this if not.)

Thanks for the feedback! > One thing though is that it is quite verbose. Yeh maybe `--debug` or a new flag (`--full/-F` idk 🤷) for everything and otherwise, only showing what was changed? I'd be curious if the "only changed" output also makes sense. I agree it is quite verbose. If we also show the logs from the deployment, it's gonna be a lot of text. > could you make cells be vertically aligned to top? https://git.coopcloud.tech/toolshed/abra/issues/639 > are you taking into account the current tty's columns? I believe it is flexible according to the width / resize. @3wordchant can you confirm? (I can help with this if not.)
Owner

Thanks for all the feedback folks! 🙏

I believe it is flexible according to the width / resize. @3wordchant can you confirm? (I can help with this if not.)

It seems to fall apart 😬

image.png

The string causing the most problems in my earlier example is docker.elastic.co/elasticsearch/elasticsearch: 8.17.2 (new), maybe stripping the registry is the move?

Yeh maybe --debug or a new flag (--full/-F idk 🤷)

I would suggest --show-unchanged/-U; -F seems confusing similar to --force/-f to me, and --debug is going to be a LOT of output.

somewhere we discussed the difference between domain and url, maybe add the url separately? so it's also clickable on terminal's that support autolinking.

#643 - imo it's possible this might need some separate discussion.

Thanks for all the feedback folks! 🙏 > I believe it is flexible according to the width / resize. @3wordchant can you confirm? (I can help with this if not.) It seems to fall apart 😬 ![image.png](/attachments/347a88df-c649-453e-b565-a3ce65d1c2b5) The string causing the most problems in my earlier example is `docker.elastic.co/elasticsearch/elasticsearch: 8.17.2 (new)`, maybe stripping the registry is the move? > Yeh maybe `--debug` or a new flag (`--full/-F` idk 🤷) I would suggest `--show-unchanged`/`-U`; `-F` seems confusing similar to `--force`/`-f` to me, and `--debug` is going to be a LOT of output. > somewhere we discussed the difference between domain and url, maybe add the url separately? so it's also clickable on terminal's that support autolinking. #643 - imo it's possible this might need some separate discussion.
Owner

It seems to fall apart 😬

Ah right yeh. OK, so we output this table and then we prompt for input. The code isn't responding to resizes of the window at that stage and can't handle it. I don't think there is much we can do about that tbh. What we can control is that the output of the (re)deploy overview fits the original terminal size? I am sorry to report that it doesn't look like we're doing that in DeployOverview 🙈.... we do handle it elsewhere:

width, _, err := term.GetSize(0)
if err != nil {
return err
}

Maybe fixing this can be for another PR?

I would suggest --show-unchanged/-U; -F seems confusing similar to --force/-f to me, and --debug is going to be a LOT of output.

I think the suggestion from @p4u1 was to make the default "only changed" (less verbose) and "--$flag" do "show everything" (more verbose)? I am not sure where I stand on it cus I'd need to play with it but fine to go with whatever you both find is workable! Also just getting it out and seeing what people think about it is also good!

> It seems to fall apart 😬 Ah right yeh. OK, so we output this table and then we prompt for input. The code isn't responding to resizes of the window at that stage and can't handle it. I don't think there is much we can do about that tbh. What we can control is that the output of the (re)deploy overview fits the original terminal size? I am sorry to report that it doesn't look like we're doing that in `DeployOverview` 🙈.... we do handle it elsewhere: https://git.coopcloud.tech/toolshed/abra/src/commit/4e205cf13e3878ef4c4194f71ec08f329a9d8c6c/pkg/formatter/formatter.go#L87-L90 Maybe fixing this can be for another PR? > I would suggest --show-unchanged/-U; -F seems confusing similar to --force/-f to me, and --debug is going to be a LOT of output. I think the suggestion from @p4u1 was to make the default "only changed" (less verbose) and "--$flag" do "show everything" (more verbose)? I am not sure where I stand on it cus I'd need to play with it but fine to go with whatever you both find is workable! Also just getting it out and seeing what people think about it is also good!
Owner

I don't think there is much we can do about that tbh

Sorry for more noise - there is a way around it: we would instead of using body.WriteString() in CreateOverview, initiate a full tea.NewProgram(...) in DeployOverview (like we do in WaitOnServices) for showing both the overview and showing the prompt. That would mean we'd be in full control of the output and could respond to tea.WindowSizeMsg (like in pkg/ui/deploy.go). Yes, this would be best in another ticket 😅 Sorry for the ones with small terminals!

> I don't think there is much we can do about that tbh Sorry for more noise - there is a way around it: we would instead of using `body.WriteString()` in `CreateOverview`, initiate a full `tea.NewProgram(...)` in `DeployOverview` (like we do in `WaitOnServices`) for showing both the overview **and** showing the prompt. That would mean we'd be in full control of the output and could respond to `tea.WindowSizeMsg` (like in `pkg/ui/deploy.go`). Yes, this would be best in another ticket 😅 Sorry for the ones with small terminals!
Owner

I think the suggestion from @p4u1 was to make the default "only changed" (less verbose) and "--$flag" do "show everything" (more verbose)? I am not sure where I stand on it cus I'd need to play with it but fine to go with whatever you both find is workable! Also just getting it out and seeing what people think about it is also good!

Agreed.

So proposal is:

  • abra app deploy foo.bar.com → only shows changed images & configs
  • abra app deploy foo.bar.com --show-unchanged / abra app deploy foo.bar.com -U → shows all images and configs
> I think the suggestion from @p4u1 was to make the default "only changed" (less verbose) and "--$flag" do "show everything" (more verbose)? I am not sure where I stand on it cus I'd need to play with it but fine to go with whatever you both find is workable! Also just getting it out and seeing what people think about it is also good! Agreed. So proposal is: * `abra app deploy foo.bar.com` → only shows changed images & configs * `abra app deploy foo.bar.com --show-unchanged` / `abra app deploy foo.bar.com -U` → shows all images and configs
decentral1se moved this to Done in Abra v0.11.x on 2025-09-09 19:06:22 +00:00
Sign in to join this conversation.
4 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: toolshed/abra#550
No description provided.