Rename GitTally to Werkator
`gitTally` is the name of another product in the git space, so the rename is a precaution; nothing about what the build system does changes. The name follows one rule: `Werkator` where it is prose, capitalized where it is a Kotlin type and its file, lowercase everywhere a machine reads it — the command, packages, paths, configuration keys and values, the Gitea check context. Environment variables keep their convention and are uppercase throughout. Every configuration file is still found under its pre-rename name (`ConfigFiles`): `.gittally.yml` at the repository root, in a build worktree and as committed on a branch, `.git/gittally/.gittally.yml` for the machine layer. The current name wins where both exist, and the old file is then ignored rather than merged — two files side by side are a half-done rename, not a layering. Without the fallback an installation that updated without renaming would not fail: a configuration that is not found leaves every setting at its default, so it would come up looking healthy while having forgotten its credentials and its builds. `docs/werkator-migrationsplan.md` lists what the fallback does not cover and has to be moved by hand — above all the state directory `.git/werkator/`, which holds the build history, the control token and the worktrees, and has no fallback of its own. `docs/migration-from-legacy.md` is deleted with this: it mapped the legacy script's environment variables, and every host it addressed has long since moved to the YAML configuration. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
7f550689dd
commit
35f06ec1ec
@@ -1,4 +1,4 @@
|
||||
# werkator Bootstrapping
|
||||
# Werkator Bootstrapping
|
||||
|
||||
Bootstrapping prepares a git repository for use with werkator.
|
||||
It creates the config files described in [configuration.md](configuration.md).
|
||||
@@ -30,14 +30,14 @@ java -jar <werkator-root>/build/libs/werkator.jar init
|
||||
|
||||
### 1. Detect the Repository Root
|
||||
|
||||
werkator resolves the repository root by running `git rev-parse --show-toplevel`.
|
||||
Werkator resolves the repository root by running `git rev-parse --show-toplevel`.
|
||||
If the current directory is not inside a git repository, `init` exits with an error.
|
||||
|
||||
### 2. Auto-detect Gitea Connection from `origin`
|
||||
|
||||
If `gitea.baseUrl`, `gitea.owner`, and `gitea.repo` are already set in `.werkator.yml`, these values are used.
|
||||
|
||||
Otherwise, werkator inspects the `origin` remote URL and derives the Gitea connection defaults:
|
||||
Otherwise, Werkator inspects the `origin` remote URL and derives the Gitea connection defaults:
|
||||
|
||||
| Origin URL form | Detected values |
|
||||
|--------------------------------------------|----------------------------------------|
|
||||
@@ -84,7 +84,7 @@ gitea:
|
||||
...
|
||||
```
|
||||
|
||||
Then, you have to configure *werkator* by amending this config file according to [configuration.md](configuration.md).
|
||||
Then, you have to configure *Werkator* by amending this config file according to [configuration.md](configuration.md).
|
||||
|
||||
## Output
|
||||
|
||||
@@ -104,9 +104,9 @@ Or, when files already exist:
|
||||
|
||||
## Hosts Without a Java Runtime
|
||||
|
||||
werkator is intended to run on Hostsharing Container Server environments, which provide Docker and git but no Java runtime.
|
||||
Werkator is intended to run on Hostsharing Container Server environments, which provide Docker and git but no Java runtime.
|
||||
For these hosts, `./gradlew runtimeBundle` builds a self-contained runtime bundle (jlink-trimmed JRE + JAR + launcher) — see [deployment.md](deployment.md) and ADR 0006.
|
||||
A containerized werkator runtime was considered and rejected there.
|
||||
A containerized Werkator runtime was considered and rejected there.
|
||||
|
||||
## Next Steps After `init`
|
||||
|
||||
@@ -124,15 +124,15 @@ A containerized werkator runtime was considered and rejected there.
|
||||
|
||||
## Example: Test Server with a Fake Build
|
||||
|
||||
[examples/setup-werkator-testserver.sh](examples/setup-werkator-testserver.sh) starts a werkator server against a scratch repository with a fake build — the setup used for the manual UI/API smoke tests during development.
|
||||
[examples/setup-werkator-testserver.sh](examples/setup-werkator-testserver.sh) starts a Werkator server against a scratch repository with a fake build — the setup used for the manual UI/API smoke tests during development.
|
||||
It creates a local bare origin plus a `work` clone, commits a slow fake build script (live log output, demo report artifact) with a `pollInterval: 5s` config, and starts the server on port 18980.
|
||||
The origin gets a second branch (`feature/demo`), so the Branches view shows more than one entry.
|
||||
No Gitea, no credentials, no Docker; `INSTALL_DIR`, `SERVER_PORT`, and `BUILD_SECONDS` can be overridden via environment variables.
|
||||
While the server runs, push empty commits from the `work` clone to trigger builds; a commit message containing `[fail]` makes the build fail, and pushing a new branch exercises the new-origin-branch path.
|
||||
|
||||
## Example: Self-Hosting werkator
|
||||
## Example: Self-Hosting Werkator
|
||||
|
||||
[examples/setup-werkator-selfhost.sh](examples/setup-werkator-selfhost.sh) shows the full sequence as a runnable script: it sets up a werkator instance that watches and builds werkator itself.
|
||||
[examples/setup-werkator-selfhost.sh](examples/setup-werkator-selfhost.sh) shows the full sequence as a runnable script: it sets up a Werkator instance that watches and builds Werkator itself.
|
||||
Run it from a working checkout; it builds the JAR, creates a dedicated clone, runs `init`, writes the machine-specific config, and starts the server.
|
||||
`INSTALL_DIR`, `ORIGIN_URL`, `SERVER_PORT`, `GIT_ACCOUNT`, and `GIT_TOKEN` can be overridden via environment variables.
|
||||
The script also demonstrates the kick-start trick: resetting the local ref one commit behind origin makes the very first poll build immediately, instead of waiting for the next push.
|
||||
|
||||
Reference in New Issue
Block a user