Skip to content
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

Ongoing: upgrade & integration support #185

Open
balupton opened this issue Oct 25, 2023 · 8 comments
Open

Ongoing: upgrade & integration support #185

balupton opened this issue Oct 25, 2023 · 8 comments
Labels
ongoing Ongoing efforts of incremental improvements

Comments

@balupton
Copy link
Member

This topic will be used to ping dorothy users when there may be breaking changes that affect them when upgrading, or new features that are nifty.

@balupton balupton added the ongoing Ongoing efforts of incremental improvements label Oct 25, 2023
@balupton
Copy link
Member Author

balupton commented Oct 25, 2023

@jondpenton @molleweide echo-quiet has been renamed to is-quiet-enabled and echo-color has been renamed to is-color-enabled: c539412

@jondpenton looking at your modifications:

  • Your modifications relating to skipping prompts for defaults, is one I'm happy to figure out how to incorporate into core. To get it into core, there is probably two steps (1) having configuration options to specify defaults for all prompts, and (2) having shorter or no timeout for when defaults are provided: Improvement: ask/choose: if a default was provided, show a countdown timer, enabling shorter timeouts #77

  • setup-util-zsh no longer deals with oh-my-zsh, I'd suggest making a new setup-util-ohmyzsh if you want.

  • setup-util-nu has had several updates, so your --extra modification should be reapplied. If this were to be integrated into core, it would be either via a setup-util-nu --extra flag (however that wouldn't affect initial automated installs of nu, only manual invocations), or having setup-util-nu read the setup.bash configuration file and look for a SETUP_UTIL_NU_EXTRA var.

  • what were the issues you were having with is-wsl? I'm keen to fix all bugs.

  • also happy to have you listed in the readme showcase section if you want: https://github.com/bevry/dorothy#showcase

Other notable changes in recent weeks:

  • support for --default=<value> in choose-option, along with additional shell support

  • docs/ folder is now up to date with modern conventions

  • plenty of bugfixes for login shells, including nushell

  • sponsors will now be output on new terminal instances

  • there is now a discord server: https://discord.gg/nQuXddV7VP

If you have time, I could do with feedback on this proposal: #173

Feel free to ping me back here for any additional support or discussions around integration with dorothy.

@balupton balupton changed the title Ongoing: upgrade support Ongoing: upgrade & integration support Oct 25, 2023
@jondpenton
Copy link

jondpenton commented Oct 25, 2023

@balupton

Having the prompts in setup-system install feels right to me, but not really for setup-system update. I prefer to have a single update command that runs through updating everything. I think a good compromise would be to support specifying prompt responses/defaults in one of the configuration files that setup-system update pulls from.

  • what were the issues you were having with is-wsl? I'm keen to fix all bugs.

I had to override is-wsl in a number of commands because it was downloading a .exe of the util, even though I was on a Linux distro in WSL.

Sure! I hope to eventually move all of my Nushell configurations/commands over. I think it'd be great to have an example repo like mine for someone coming from Nushell.

@balupton
Copy link
Member Author

@jondpenton

Having the prompts in setup-system install feels right to me, but not really for setup-system update. I prefer to have a single update command that runs through updating everything. I think a good compromise would be to support specifying prompt responses/defaults in one of the configuration files that setup-system update pulls from.

Good feedback, completely agree. Created an issue: #186

I had to override is-wsl in a number of commands because it was downloading a .exe of the util, even though I was on a Linux distro in WSL.

Interesting, I had figured WSL would prefer .exe's but I guess not. I'll boot up my Windows machine and see what the go is.

Sure! I hope to eventually move all of my Nushell configurations/commands over. I think it'd be great to have an example repo like mine for someone coming from Nushell.

Done!

@balupton
Copy link
Member Author

balupton commented Oct 27, 2023

@jondpenton

I had to override is-wsl in a number of commands because it was downloading a .exe of the util, even though I was on a Linux distro in WSL.

I just pushed up d56c6e3 which prefers the linux binaries over the windows binaries. I've tested this on Windows 10 WSL2 Ubuntu and it worked fine. Let me know if you have issues.

@balupton
Copy link
Member Author

Just pushed up e3e9ef4 to master which properly supports winget on wsl, and correctly sets up the wsl path, allowing you to call .exes from windows.

@balupton
Copy link
Member Author

balupton commented Nov 10, 2023

A breaking change for scripts just landed that affects scripts that are loading or saving configuration:
de23d08

config.bash is removed, it would source config.sh and define the following:

# old code
source "$DOROTHY/sources/config.bash"
local HOMEBREW_FORMULAS=()
load_dorothy_config 'setup.bash'
mapfile -t HOMEBREW_FORMULAS < <(prepare_packages 'HOMEBREW_FORMULAS' -- "${HOMEBREW_FORMULAS[@]}")
update_dorothy_user_config 'setup.bash' -- --field='HOMEBREW_ENCODING_INSTALL' --value="$HOMEBREW_ENCODING_INSTALL"

config.sh still exists to provide load_dorothy_config, however the prepare_packages and update_dorothy_user_config from config.bash are now replaced by the new dorothy-config command:

# new code
source "$DOROTHY/sources/config.sh"
local HOMEBREW_FORMULAS=()
load_dorothy_config 'setup.bash'
mapfile -t HOMEBREW_FORMULAS < <(dorothy-config --packages-var='HOMEBREW_FORMULAS' -- "${HOMEBREW_FORMULAS[@]}")
dorothy-config 'setup.bash' -- --field='HOMEBREW_ENCODING_INSTALL' --value="$HOMEBREW_ENCODING_INSTALL"

@balupton
Copy link
Member Author

balupton commented Jan 23, 2024

There is a significant update coming today, which gets all commands/* using modern conventions but may have some easy to resolve breaking changes, which apply only if you have been forking dorothy commands or writing your own commands.

If you have problems and are a Dorothy user with a public dotfiles repo, I'll clone out your configurations and do any necessary upgrades as a PR. If you have a private user configuration repo, you can become a GitHub Sponsor and add me as an outside collaborator and I'll do any necessary upgrades.

@balupton
Copy link
Member Author

balupton commented Jan 24, 2024

The big update is now merged, please read the changelog and see if anything applies to you:
3ace11f

The biggest breaking change:

# from
echo-escape-regex
# to
echo-escape-regexp

The biggest non-breaking changes:

# from
option_NAME="$(get-flag-value NAME --missing="$option_NAME" -- "$item" | echo-affirmative --stdin)"
# to
option_NAME="$(get-flag-value --affirmative --fallback="$option_NAME" -- "$item")"

# from
is-needle --quiet "$@" && ! is-needle --upgrade "$@" && ! is-needle --uninstall "$@" && command-exists CLI
# to
setup-util "$@" --check --cli=CLI

# from
DOWNLOAD_UNZIP_FILTER
# to
DOWNLOAD_ARCHIVE_GLOB

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ongoing Ongoing efforts of incremental improvements
Development

No branches or pull requests

2 participants