Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e13a9d2c8e | |||
| d916c93cf9 | |||
| 46d9be415c | |||
| b93a06d237 |
@@ -126,13 +126,17 @@ The procedure to issue a release is as follows:
|
||||
claude --permission-mode default '/draft-release v0.7.0'
|
||||
```
|
||||
This command will verify that artifacts are ready, create the draft release, and upload all artifacts.
|
||||
* Review the draft release on GitHub, then publish.
|
||||
* Review the draft release on GitHub, then publish,
|
||||
with the box checked to create a GitHub "Discussion" for the release.
|
||||
* Immediately after hitting publish.
|
||||
* Update the release on GitHub to link to the discussion.
|
||||
* Update `docs/changelog.rst` to link to the GitHub release.
|
||||
* Update `docs/_templates/versions.html` to link to the GitHub release.
|
||||
* Announce release in the zrepl Matrix channel & other socials as applicable.
|
||||
Link to the GitHub release as the entrypoint.
|
||||
* After a couple of days
|
||||
* Add the .rpm and .deb files to the official zrepl repos.
|
||||
* Code for management of these repos: https://github.com/zrepl/package-repo-ops (private repo at this time)
|
||||
* Update docs version list:
|
||||
* Update `docs/_templates/versions.html` with the new release.
|
||||
* Verify the link to `zrepl-noarch.tar` in the GitHub release works.
|
||||
* Merge to `master` (docs auto-publish).
|
||||
|
||||
#### Patch releases, Go toolchain updates, APT/RPM Package rebuilds
|
||||
|
||||
|
||||
Vendored
+1
@@ -7,6 +7,7 @@
|
||||
<div class="rst-other-versions">
|
||||
<dl>
|
||||
<dt>Releases</dt>
|
||||
<dd><a href="https://github.com/zrepl/zrepl/releases/tag/v0.7.0">v0.7.0</a></dd>
|
||||
<dd><a href="https://github.com/zrepl/zrepl/releases/tag/v0.6.1">v0.6.1</a></dd>
|
||||
<dd><a href="https://github.com/zrepl/zrepl/releases/tag/v0.5.0">v0.5.0</a></dd>
|
||||
<dd><a href="https://github.com/zrepl/zrepl/releases/tag/v0.4.0">v0.4.0</a></dd>
|
||||
|
||||
@@ -16,6 +16,8 @@ Changelog
|
||||
0.7.0
|
||||
-----
|
||||
|
||||
`GitHub Release <https://github.com/zrepl/zrepl/releases/tag/v0.7.0>`_
|
||||
|
||||
* |feature| Config file inclusion using ``include`` directive.
|
||||
This allows distributing zrepl job definitions across multiple YAML files in a ``conf.d`` style directory.
|
||||
(:commit:`4d6583e`, thanks, `@ZeyadTamimi <https://github.com/zeyadtamimi>`_).
|
||||
|
||||
@@ -3,56 +3,10 @@
|
||||
User Privileges
|
||||
---------------
|
||||
|
||||
zrepl can run as an unprivileged user with `ZFS delegation <https://www.freebsd.org/doc/handbook/zfs-zfs-allow.html>`_.
|
||||
**Help us document working setups on this page** by opening a PR!
|
||||
It is possible to run zrepl as an unprivileged user in combination with
|
||||
`ZFS delegation <https://www.freebsd.org/doc/handbook/zfs-zfs-allow.html>`_.
|
||||
Also, there is the possibility to run it in a jail on FreeBSD by delegating a dataset to the jail.
|
||||
|
||||
.. NOTE::
|
||||
.. TIP::
|
||||
|
||||
Keep in mind that ``zfs send``/``recv`` was never designed with
|
||||
untrusted input in mind. An attacker controlling the send-recv stream could probably crash the
|
||||
receive-side kernel, exploit bugs to get code execution, or induce stateful damage to the receive-side pool.
|
||||
|
||||
|
||||
Known Working Setups
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 15 40 20
|
||||
|
||||
* - OS
|
||||
- Use Case
|
||||
- Last Tested Version
|
||||
* - Linux
|
||||
- sink job (receiving)
|
||||
- v0.7.0
|
||||
|
||||
.. _installation-user-privileges-my-example-setup:
|
||||
|
||||
My Example Setup
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
I'm on Linux (Ubuntu ...) and run ``zrepl daemon`` as an unprivileged user, using a custom systemd unit file.
|
||||
|
||||
:: code-block:: bash
|
||||
...
|
||||
[Service]
|
||||
User=zrepl
|
||||
Group=zrepl
|
||||
...
|
||||
|
||||
I set up the ZFS persmissions as follows:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# receiving side root filesystem
|
||||
zfs allow -u zrepl bookmark,create,destroy,hold,mount,mountpoint,receive,refreservation,userprop backuppool/zrepl
|
||||
# sending side
|
||||
zfs allow -u zrepl bookmark,destroy,hold,send,userprop prodpool
|
||||
|
||||
**Notes:**
|
||||
|
||||
* ``snapshot`` is NOT needed for receiving (only for pruning operations)
|
||||
* ``refreservation`` avoids non-sparse volume issues on receiving side
|
||||
* Add ``snapshot`` if your jobs perform sender or receiver-side pruning
|
||||
* Encryption and other features may require additional permissions
|
||||
Note: check out the :ref:`installation-freebsd-jail-with-iocage` for FreeBSD jail setup instructions.
|
||||
|
||||
@@ -35,6 +35,11 @@ We would like to thank the following people and organizations for supporting zre
|
||||
..
|
||||
The list below is (roughly) sorted by date of latest contribution, newest first.
|
||||
|
||||
..
|
||||
↓ post v0.7.0
|
||||
|
||||
* |supporter-std| `drbawb <https://git.sr.ht/~hime>`_
|
||||
|
||||
..
|
||||
↓ claude --permission-mode default /update-supporters v0.6.1..v0.7.0
|
||||
|
||||
|
||||
Generated
+3
-3
@@ -152,7 +152,7 @@ wheels = [
|
||||
|
||||
[[package]]
|
||||
name = "requests"
|
||||
version = "2.32.5"
|
||||
version = "2.33.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "certifi" },
|
||||
@@ -160,9 +160,9 @@ dependencies = [
|
||||
{ name = "idna" },
|
||||
{ name = "urllib3" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/34/64/8860370b167a9721e8956ae116825caff829224fbca0ca6e7bf8ddef8430/requests-2.33.0.tar.gz", hash = "sha256:c7ebc5e8b0f21837386ad0e1c8fe8b829fa5f544d8df3b2253bff14ef29d7652", size = 134232, upload-time = "2026-03-25T15:10:41.586Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" },
|
||||
{ url = "https://files.pythonhosted.org/packages/56/5d/c814546c2333ceea4ba42262d8c4d55763003e767fa169adc693bd524478/requests-2.33.0-py3-none-any.whl", hash = "sha256:3324635456fa185245e24865e810cecec7b4caf933d7eb133dcde67d48cee69b", size = 65017, upload-time = "2026-03-25T15:10:40.382Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
@@ -69,7 +69,7 @@ cp -a internal/config/samples %{buildroot}%{_datadir}/
|
||||
%{_bindir}/zrepl
|
||||
%config %{_unitdir}/zrepl.service
|
||||
%dir %{_sysconfdir}/zrepl
|
||||
%config %{_sysconfdir}/zrepl/zrepl.yml
|
||||
%config(noreplace) %{_sysconfdir}/zrepl/zrepl.yml
|
||||
%{_datadir}/zsh/site-functions/_zrepl
|
||||
%{_datadir}/bash-completion/completions/zrepl
|
||||
%{_datadir}/doc/zrepl
|
||||
|
||||
Reference in New Issue
Block a user