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 · 13 comments
Open

Ongoing: upgrade & integration support #185

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

Comments

@balupton
Copy link
Member

balupton commented Oct 25, 2023

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.

Subscribe to this issue if you are a Dorothy user.

@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

@balupton
Copy link
Member Author

balupton commented Aug 7, 2024

The merging of #229 will happen within the next 12-24 hours (6 months of work, 5000 changed lines). Please test it (the dev-defaults branch) on a test machine if you are able.

Video from a few months ago (somewhat outdated) for the new choose command:

CleanShot.2024-06-12.at.19.51.49.mp4

@balupton balupton pinned this issue Aug 8, 2024
@balupton
Copy link
Member Author

balupton commented Aug 8, 2024

My next Dorothy work are the tasks inside this milestone:
https://github.com/bevry/dorothy/milestone/3

Of which the priorities will be:

  1. Suggestion: simplify setup-dns #221
  2. Improvement: smooth installation on non-root systems #233
  3. Suggestion: dorothy-new command #195

Then I will focus on some digital errands, like tax, packs, and servers to get my monthly revenue up.

Then will return to Dorothy in December to pump out dozens of short little introductory videos.

@balupton
Copy link
Member Author

balupton commented Sep 17, 2024

#250 is now merged, it is a large change, 4000 changed lines, only two items that require dev changes:

  • please change __print_line ... to __print_lines ... as in the future __print_line may not support arguments
  • removed deprecated non __ prefixed aliases, e.g. require_globstar is now only __require_globstar

refer to the PR for the full list

@balupton
Copy link
Member Author

balupton commented Oct 28, 2024

#254 is now merged, it is a huge change, 251 changed files, +6,329 additions, −3,379 removals. It closes:

Things to be aware of when upgrading:

  • __print_line ignores arguments, replace with __print_lines ... if you used arguments
  • tty.bash and is-tty is deprecated along with many other commands, if you used these, things will still work with fallbacks however you will get warnings with what to do, and you should upgrade when you can
  • there is a new docpad-warnings system that is mostly used for deprecations right now
  • If you are having trouble running dorothy update, you may just need to pull the changes manually. There was an issue with git-helper that is fixed in the PR, and the fallback for failed git-helper updates was removed; however, your local dorothy still includes the fallback, so everything should go smoothly.

As always, refer to the PR for the full list of updates.

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