Skip to content

Releases: futurekismo-oss/tapes-v2

Release v0.1.4-beta

Choose a tag to compare

@github-actions github-actions released this 01 Nov 18:54

What's Changed

  • fix: eject panic (#4) and lifecycle hook bugs by @amitxd75 in #5

New Contributors

Full Changelog: v0.1.3-beta...v0.1.4-beta

  • General bug fixes
  • Tapes now has shell completion, just follow the instructions in the installation part of the readme
  • An handy dandy script for version bumping, useful for our developers
  • Logging to a file ( ~/.local/share/tapes/tapes.log ), this should make debugging issues easier as user can know just provide the log file, unfortunately i have not yet implemented periodic cleanup for this file, something for the future
  • On the talk of logging, amitxd75 has ripped out env_logger for a minimal custom made logger, this change has fastened build times as env_logger was a bloated dependency, builds on my celeron n4020 halved
    • Dev: 1m 10s -> 40s
    • Release: 2m 40s -> 1m 17s

Release v0.1.3-beta

Choose a tag to compare

@github-actions github-actions released this 31 Oct 13:06

Full Changelog: v0.1.2-beta...v0.1.3-beta

Some bug fixes

Eject can delete data. After swapping back, eject runs remove_dir_all on the staging tree. That tree is only symlinks if nothing new happened. But anything created at the top level of ~/.config while a tape is live is a real file in the staging tree: a new app’s config dir, or a top-level file an app rewrites by atomic rename (like mimeapps.list). Eject deletes those permanently.

Switching skips the outgoing tape’s eject hooks. Insert calls the swap-back helper directly, and only the eject command runs hooks. For shells that is the worst gap, because stopping the old shell is exactly what an eject hook does.

Symlink failures are swallowed. symlink_targets logs the error and continues, so the swap proceeds and that app’s config silently disappears from the live ~/.config until eject. It should abort before the swap.

Hooks run through $SHELL -c, synchronously. If your login shell is fish (the default in Caelestia’s setup), hooks written in sh syntax can break. A hook that starts a long-running shell blocks tapes until it exits. The README’s own eject example has qs -c caelestia, which as far as I know runs in the foreground unless daemonized.

The ignore list is four names (tape.toml, .git, README.md, .github). A tape repo with LICENSE, .gitignore or .editorconfig at the top level gets those symlinked into ~/.config.

Dry-run doesn’t match the docs. It returns before building anything, but INTERNALS.md says it builds the staging tree and prints the plan.

All these bugs have been fixed, thankfully reported by erotic-erox

release 0.1.3-beta also introduces install hooks

[tape]
name="caelestia"
desc = "A fluid morphing shell"
...
[hooks.install] # run during tapes-v2 install /path_or_repo/caelestia
value = [
  "git clone https://github.com/caelestia-dots/shell.git ${XDG_CONFIG_HOME:-$HOME/.config}/quickshell/caelestia",
  "cd ${XDG_CONFIG_HOME:-$HOME/.config}/quickshell/caelestia",
  "cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/",
  "cmake --build build",
  "sudo cmake --install build"
]

these hooks are run during installation and should be used by public repos to run install scripts or whatnot, or maybe users who wanna dont wanna redo the manual installation of a tape

Full Changelog: v0.1.2-beta...v0.1.3-beta

Release v0.1.2-beta

Choose a tag to compare

@github-actions github-actions released this 30 Oct 16:37

Full Changelog: v0.1.1-beta...v0.1.2-beta

  • introduces a --dir argument for the install command, this allows you to install any directory or sub directory of a public repo and tapes will find that dir in the repo and make a tape out of it, this removes the need for repos to conform to a strict top-level .config folders.
  • a useless resolve tilde util helper has been removed, this command existed to handle the conversion of paths like "~/config" to "/home/user/config" and was made with my inadequate knowledge of tilde resolving at the time, i have now been informed that shells (bash, zsh, ...) do this automatically and there is no need for tapes to do this in its own code. this note is for contributors, for real users this change has no effect

Release v0.1.1-beta

Choose a tag to compare

@github-actions github-actions released this 30 Oct 10:41

Release v0.1.0-beta

Choose a tag to compare

@github-actions github-actions released this 29 Oct 20:06

What's Changed

New Contributors

Full Changelog: https://github.com/futurekismo-oss/tapes-v2/commits/v0.1.0-beta