| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that everything is in place, we go for the main thing: add
snapshot support to s6-rc-set install. The workflow is:
- check the major version of the old db against the current s6-rc
- if the old db is up to date, nothing changes
- otherwise:
+ find the snapshot corresponding to the old db
+ compile it
+ copy the snapshot db to the bootdir
+ call s6-rc-format-upgrade on it
+ atomically switch the bootdb to it. At this point the snapshot
is the new bootdb: same as the old db, but with the correct major version.
+ unconditionally remove the old db
+ and now we can perform the regular s6-rc-update with the
wanted set, since they have the same major.
We also add --no-snapshot options to s6-rc-set-commit and
s6-rc-set-install, and propagate them in the supporting functions,
so users can manually skip all this bloat (and this is important
for the initial install).
All that remains is cleaning up obsolete snapshots. This will
probably go at the end of s6-rc-set-install as well.
|
| |
|
|
|
|
|
|
|
|
| |
If a db format upgrade is necessary, we need to compile the snapshot
with the new s6-rc-compile. There's data we need to pass to it that
isn't stored (options passed when committing the original set), so
we store it in the db itself (patching s6-rc-compile). We modify
the s6-rc-compile wrappers to pass all this metadata.
Next, we will compile the snapshot.
|
| |
|
|
|
|
|
| |
We don't want to install compiled dbs without having a snapshot of
their source set, so whenever we test that the compiled db is up to
date, we also test that a snapshot is present. This is important
because we will auto-cleanup unused snapshots after installation.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
| |
s6-rc-set-install is undergoing changes, it might not work
properly. The rest is coming this week.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In order to work across major bumps, we need to add a call to
s6-rc-format-upgrade before s6-rc-update in the s6-rc-set-install
sequence of commands.
s6-rc-format-upgrade only works when the db is exactly the same
across s6-rc versions. That means we need to have the source version
of the current live set at all times, in order to compile it with
the new s6-rc version before upgrading and then updating.
So:
1. we take a snapshot of the source version of a set every time
we commit.
2. we refuse to install if we don't have the snapshot.
3. we add s6-rc-format-upgrade to the processing chain
4. for cleanup: after installing, we delete all the snapshots of
the set except the one that corresponds to the newly
installed live set.
This commit implements 1: taking the snapshot. It's a regular
s6-rc-set-copy, using an internal name. We refactor
s6-rc-set-copy and s6-rc-set-delete to have primitives we can
use internally.
Wait for later commits before using repo, else you'll fill
your repository with snapshots that won't get cleaned up.
TBD: how to store the s6-rc version in the compiled db. We
probably need to add a small file in there.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- s6-rc-bundle deleted. Changing bundles without recompiling is not
supported anymore. (It works, but it incentivizes poor workflows; it is
better to handle stuff at the source level and recompile when in doubt,
that's what s6-frontend does.)
- new db format, need to recompile and use s6-rc-format-upgrade on new live db
- support for the reload-signal file in service directories
- new reload scripts for oneshots (which is why the db format has changed)
- new "s6-rc reload" command, calling s6-svc -l on longruns (which makes use
of reload-signal, HUP by default) and the reload script on oneshots
- the live state now tracks when a service has been explicitly brought up
as opposed to by pulled by dependencies. Nothing uses the feature for now
but now the tech is there for an auto-stop-if-unneeded feature.
|
| |
|
|
| |
Also support reload-signal in the service definition directory.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
Also add the missing support for flag-newpidns when compiling a db
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|