Dfu

Latest version: v0.0.5

Safety actively analyzes 623626 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

0.0.5

This changes the user interaction of dfu diff and install/uninstall.
Instead of this being a stateful command, (running --continue multiple times),
the command is changed to use subshells

* Changed dfu install to dfu apply
* Changed dfu uninstall to dfu apply --reverse


What's Changed
* Create the gitignore template directory if necessary by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/74
* Apply the patches in the reverse direction when uninstalling by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/75
* Implement dfu ls-files by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/76
* Filter dfu ls-files to only show files, and not directories by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/77
* Refactor files_modified to return per-mountpoint information by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/78
* Improve ls-files performance by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/79
* Remove the placeholder step by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/80
* Auto commit the diff steps by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/81
* Single shot diff by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/82
* Improve the performance of git ls-files for empty roots by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/83
* Change install/uninstall to be one-shot apply command by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/84
* v0.0.5 by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/85


**Full Changelog**: https://github.com/intentionally-left-nil/dfu/compare/v0.0.4...v0.0.5

0.0.4

This is a big release as well!

* It's a breaking change from v0.0.3 as the dfu_config.json format has changed
* Created a plugin architecture so that external packages can participate in the DFU process
* Created an immutable state to pair with this architecture
* Support merge conflicts when installing
* Moved the working-in-progress code out of the dfu folder, and into temporary folders
* Implemented dfu shell to quickly get to the sub-folders created
* Implemented dfu shell snapshot to chroot into a snapshot

What's Changed
* Change from pre/post snapshot to just a list of snapshots by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/47
* Create --from and --to options to pass into dfu diff by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/48
* Change the strategy to a branch named snapshot_X by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/49
* Normalize the snapshot indices to be between 0 and len-1 by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/50
* Create a store to hold onto app state by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/51
* Plugin scaffolding by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/52
* Convert the pacman code to a plugin by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/53
* Replace dataclass_wizard with msgspec by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/55
* Make the state fully immutable by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/54
* Refactor to use the diff from the store by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/56
* Implement an auto-write plugin by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/57
* Bug: Parsing an untyped MappingProxyType hook fails by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/58
* Support creating multiple patch files by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/59
* Add install command to install the necessary packages by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/60
* Implement begin/continue/abort installation by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/61
* Dfu diff bug fixes by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/62
* Implement dfu chroot by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/63
* Add the dry run step to installing by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/64
* Copy over the dry run files to finish installation by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/65
* Only copy the owner/group by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/66
* Implement uninstall by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/67
* Refactor Install/Uninstall to use a shared playground by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/68
* Change dfu diff to use the playground by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/69
* Create dfu shell command by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/70
* Update pacman to skip removing dependencies that are already installed by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/71
* Implement a 3-way merge when there are conflicts by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/72
* v0.0.4 by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/73


**Full Changelog**: https://github.com/intentionally-left-nil/dfu/compare/v0.0.3...v0.0.4

0.0.3

Starting to look a little less minimal now :)

First, the CLI now detects the DFU package config based on the current working directory (or its parents) similar to git.
Then, the `dfu diff` command now produces a `changes.patch` file describing which files were changed by the snapshots.

This is produced in several stages. You start with `dfu diff`, and then `dfu diff --continue` as you complete the prompt instructions.

There's other goodies in here, such as:
* the global config isn't needed and can be autopopulated
* Permissions are in a much better place. Instead of things being owned by root when they're not supposed to and vice-versa, `dfu` now runs as a non-root user always, and then calls sudo as necessary to adjust the permissions

What's Changed
* Implement dfu dist to generate a PKGBUILD file by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/18
* Dont run as root by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/19
* Search through all the paths listed in XDG_CONFIG_DIRS by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/20
* Fix merge logic to propagate the non-null base config by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/21
* Use user_data_path instead of user_config_path for package data by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/22
* Create the config.toml by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/23
* fix exit code for get_all_subvolumes by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/24
* Fix create config bugs by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/25
* Create config directories as necessary by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/26
* permissions issues: Don't resolve the folder before creating it, and … by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/27
* Ensure that the config files are created with 644 permissions by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/28
* Run proot with sudo, because the snapshots aren't accessible to non-root by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/29
* Initialize git when creating a new project by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/30
* git doesn't like symlinks for gitignore. Use a copy instead by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/31
* Try calling get_configs without sudo by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/32
* Create placeholder files when performing a diff by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/33
* Remove package_dir from the config, in favor of searching parent directories by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/34
* Add a default gitignore template by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/35
* Speedup placeholder generation by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/36
* Create a .dfu-diff file to store the diff progress by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/37
* Create a base branch with the previous state when producing a diff by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/38
* Create the target branch by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/39
* After creating the target branch, switch back to the default branch by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/40
* Update the base and target branch once successful by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/41
* Generate the patch file by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/42
* Add diff instructions by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/43
* Add unidiff as a dependency by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/45
* Update the PKGBUILD to include the new files by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/44


**Full Changelog**: https://github.com/intentionally-left-nil/dfu/compare/v0.0.2...v0.0.3

0.0.2

This is the first MVP release, with a focus on minimum :)

This release has a minimal `dfu` cli with the following commands:

`dfu new`: Creates a new `dfu_config.json` for the changes you're about to make. (analogous to npm init)
`dfu begin`: Creates an initial btrfs snapshot. Call this before you start to make your changes
`dfu end`: Creates the post-snapshot to stop tracking changes
`dfu diff`: Uses the before & after snapshots to figure out what pacman programs have been added or removed. This information is saved in the dfu_config.json

What's Changed
* Create a package_config entry by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/4
* Improve coverage devops by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/5
* Add initial snapper support by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/6
* only run display-coverage on pull_requests by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/7
* Add a CLI entrypoint by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/8
* Simplify the version_number code by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/9
* Multiple snapshots by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/10
* Add helper to query pacman for installed packages by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/11
* Create CLI commands to start and stop creating snapshots by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/12
* Diff installed packages by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/13
* Remove numeric prefix from configs by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/14
* Don't allow package names with ~, slashes, dots, etc by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/15
* Switch to proot to mount the snapshots by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/16
* v0.0.2 by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/17


**Full Changelog**: https://github.com/intentionally-left-nil/dfu/compare/v0.0.1...v0.0.2

0.0.1

Testing release workflow
Not much code yet :) just making sure that the build process is setup

What's Changed
* Create config by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/1
* Add publish workflow by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/2
* Fix publish workflow by intentionally-left-nil in https://github.com/intentionally-left-nil/dfu/pull/3

**Full Changelog**: https://github.com/intentionally-left-nil/dfu/commits/v0.0.1

Links

Releases

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.