Skip to content

Latest commit

 

History

History
222 lines (170 loc) · 9.1 KB

File metadata and controls

222 lines (170 loc) · 9.1 KB

Changelog

v0.5.10 - 2026-07-05

User-facing changes

  • Add man page. (#96)
  • Ignore comment lines and empty lines in /etc/run0edit/editor.conf. (#93)

Build/CI changes

  • Switch to using Meson build system. (#94)
  • Simplify integration test setup by running the tests directly on the Ubuntu runner rather than starting up a new VM. (#87)
  • Update runners to Ubuntu 26.04. (#86)

v0.5.9 - 2026-05-06

  • Make the configuration file at /etc/run0edit/editor.conf higher priority than the environment variables VISUAL and EDITOR for editor selection. (#82)

v0.5.8 - 2026-03-12

  • Make temporary file have same base filename as original file. (#68)
  • Allow non-absolute editor specifications in VISUAL or EDITOR environment variables and --editor argument. (#69)

v0.5.7 - 2026-02-11

  • Allow specifying editor using VISUAL or EDITOR environment variables. (#64)
  • Make repository compliant with REUSE Specification, Version 3.3. (#62)
  • Use BLAKE2 hash instead of SHA-256 for inner script checksum. (#54)

v0.5.6 - 2025-12-22

  • Add /etc/run0edit/editor.conf to RPM spec as a config file. This ensures the config file will be created with the expected permissions if not already present. The file will be empty by default, which is ignored by run0edit when selecting which editor to use. (#52)

v0.5.5 - 2025-10-28

  • Add --background option to set or disable the background color. This behaves the same as the --background option of run0, and is implemented by passing through the option to the inner call to run0. (#38)

v0.5.4 - 2025-10-15

  • Drop support for Python 3.9, which is end-of-life and no longer receiving security updates. If you are using Python 3.9, you should update to a newer Python version as soon as possible. (#28)
  • Make error messages more informative in a couple cases. (#26, #33)
  • Various minor CI improvements. (#24, #27, #30, #32)

v0.5.3 - 2025-08-18

  • If /etc/run0edit/editor.conf exists but is unreadable due to a permission error, exit with an error informing the user of the issue. Previously this was silently ignored and run0edit would just use a fallback editor, which was confusing behavior. (#17)
  • fix: casefold() instead of lower() for case-insensitive equality. (#14)
  • build: use remote source in RPM spec. This simplifies Copr builds since they can use the spec file directly instead of an SRPM. (#13)

v0.5.2 - 2025-06-21

  • Fixed sandbox bug that was preventing creating new files directly in /root or /home on systems where those directories are not symlinks. (#11)
  • Fixed issue with SELinux denying certain custom editors set via --editor. (#9)
  • Added integration tests. (#8)

v0.5.1 - 2025-06-17

  • Warn about likely incorrect usage when the user passes multiple positional arguments with the first looking like a command. (For example, if a user runs run0edit vim /path/to/file, they are likely not intending to edit a file at ./vim and then a second file; it's likely intended to be run0edit --editor /usr/bin/vim /path/to/file or just run0edit /path/to/file.) (#6)

v0.5.0 - 2025-06-16

Rewrote script in Python. (#1)

Added

  • Added an --editor option to allow the user to choose a different text editor. This must be an absolute path to an executable file, and the filename will be passed as the first argument to it.
  • Added a --no-prompt option to skip the prompt asking the user to confirm whether they want to remove the immutable attribute from a file to edit it.
  • Allow the user to pass multiple file paths to run0edit, which will be edited one after the other (like if you pass multiple paths to sudoedit).

Changed

  • Fail before asking for a password if it can be determined that the parent directory of the file path definitely does not exist or is not valid.
  • Switched to using a separate file for the inner script, which will now be installed at /usr/libexec/run0edit/run0edit_inner.py. This path will be passed to the run0 invocation rather than embedding the entire inner script contents in an argument to run0. As an extra check, the SHA-256 hash of this file is compared against the expected value.
  • Only use /etc/run0edit/editor.conf as a configuration file, as the secondary configuration path at /usr/etc/run0edit/editor.conf was pretty much redundant.
  • Fail with an error message if the config file is nonempty and contains an invalid path. Previously this was silently ignored, defaulting to a fallback editor.
  • Minor changes to the wording of error messages and the --help text.
  • Stricter seccomp filters for the inner script.

Testing and CI

  • Added unit tests with 100% test coverage.
  • Added GitHub workflows that automatically run Ruff (including Flake8, Pylint, McCabe complexity checker, and Bandit lints) for all Python versions 3.9 through 3.13, mypy, the unit tests, and a unit test coverage check on every pushed commit.

v0.4.4 - 2025-05-22

  • Fixed bug in immutable flag parsing.
  • Added RPM spec.
  • Added CI workflow to build .rpm and .deb packages.

v0.4.3 - 2025-05-17

  • Refactored to reduce code duplication and make control flow clearer.
  • Separated out the main script and outer script to separate files, with a Python build script to reassemble them for installation.
  • Improved message text.

v0.4.1 - 2025-05-15

  • Support immutable flag on directory as well.

v0.4.0 - 2025-05-14

  • Added support for editing files with the immutable flag set by temporarily removing the flag and reapplying it afterward.
  • Parse arguments according to shell utility conventions, including --help and --version arguments with -h and -v short forms.

v0.3.3 - 2025-03-17

  • Refactored inner script for clarity.
  • Improved sandboxing logic.
  • Bail out early if target file is read-only.
  • Style fixes to pass ShellCheck linter.

v0.3.1 - 2025-03-16

  • Fixed handling of files in locations not readable by the user.
  • Reset PATH to default value for security.
  • Improved error messages and handling of editor selection.

v0.2.0 - 2025-03-13

  • Switched to config files instead of environment variable for text editor selection.
  • Added systemd sandboxing to inner privileged script.

v0.1.1 - 2025-03-10

  • Improved error messages, added --help command.

v0.1.0 - 2025-02-21

  • Initial release.