[Dev] dbscripts plan v2
Luke Shumaker
lukeshu at lukeshu.com
Thu Sep 20 16:46:33 GMT 2018
Luke Shumaker wrote:
> 2. Use db-{move,update,remove}
>
> Change:
>
> Rework `db-import-pkg` to set up a `db-update`-style staging
> directory, rather than manipulating the repos directly. At
> this point, `db-import-pkg` is still running as `repo`.
> However, set `ProtectSystem=strict`, limit it to a staging &
> scratch directory, and have it
>
> ssh localhost DBSCRIPTS_CONFIG=...${UPSTREAM} db-update
>
> to add/remove packages. This will involve adding an ssh key
> for repo.
>
> Rationale: Obviously, this is a primary objective. Using
> ssh+ProtectSystem allows us to ensure that the objective is met.
>
> Concerns: Testing this will probably involve running an SSH server
> in the test suite.
I ended up not implementing it with `ssh localhost`. That can come
later. But it does now use db-{move,update,remove}, which it simply
calls directly.
> Timeframe: As soon as I can get it done after step 1; a couple of
> days.
This has been ready to go since the 3rd, but I didn't want to roll
anything out with the bugtracker or mailing list down.
> 3. Migrate humans off of repo@
>
> Change: Adjust the default `libretools.conf:REPODEST` to be
> `ssh://$LIBREUSER@repo.parabola.nu:1863/~/staging/` instead of
> `ssh://repo@repo.parabola.nu:1863/~/staging/$LIBREUSER/staging/`.
>
> Rationale: This will change the user-separated `db-update` from
> opt-in (following step 1) to opt-out.
>
> DISRUPTION: This will make the default configuration unsuitable
> for packagers whose local username doesn't match their username in
> hackers.git. They will need to manually adjust their
> `libretools.conf:REPODEST` to have the correct username.
If the user sets REPODEST in their
~/.config/libretools/libretools.conf, then the default HOOKPRERELEASE
won't do the right thing. Maybe we say "you'll also need to set
HOOKPRERELEASE if you set REPODEST there", or "you need to set
REPODEST in /etc". But I don't like those solutions. Things should
just work, intuitively.
The "obvious" answer is to adjust the expression at HOOKPRERELEASE to
be evaluated at call-time, rather than config-parse-time. But, at
call-time, it doesn't have REPODEST.
I'll have to meditate about what to do.
Current status:
[x] 1. Set up the `repo` group [eta: 2018-08-23]
[x] 2. Use db-{move,update,remove} [eta: 2018-09-20]
[-] 3. Migrate humans off of repo@ [eta: ???]
[ ] 4. Migrate robots off of repo@ [eta: a week after that]
--
Happy hacking,
~ Luke Shumaker
More information about the Dev
mailing list