v0.5.10 - 2026-07-05
- 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.confhigher priority than the environment variablesVISUALandEDITORfor 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
VISUALorEDITORenvironment variables and--editorargument. (#69)
v0.5.7 - 2026-02-11
- Allow specifying editor using
VISUALorEDITORenvironment 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.confto 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 byrun0editwhen selecting which editor to use. (#52)
v0.5.5 - 2025-10-28
- Add
--backgroundoption to set or disable the background color. This behaves the same as the--backgroundoption ofrun0, and is implemented by passing through the option to the inner call torun0. (#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.confexists but is unreadable due to a permission error, exit with an error informing the user of the issue. Previously this was silently ignored andrun0editwould just use a fallback editor, which was confusing behavior. (#17) - fix:
casefold()instead oflower()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
/rootor/homeon 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./vimand then a second file; it's likely intended to berun0edit --editor /usr/bin/vim /path/to/fileor justrun0edit /path/to/file.) (#6)
v0.5.0 - 2025-06-16
Rewrote script in Python. (#1)
- Added an
--editoroption 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-promptoption 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 tosudoedit).
- 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 therun0invocation rather than embedding the entire inner script contents in an argument torun0. As an extra check, the SHA-256 hash of this file is compared against the expected value. - Only use
/etc/run0edit/editor.confas a configuration file, as the secondary configuration path at/usr/etc/run0edit/editor.confwas 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
--helptext. - Stricter seccomp filters for the inner script.
- 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
.rpmand.debpackages.
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
--helpand--versionarguments with-hand-vshort 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
PATHto 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
--helpcommand.
v0.1.0 - 2025-02-21
- Initial release.