tea/gui is the graphical app complement to tea/cli.
Under the hood tea/gui installs and manages your packages with tea/cli
while exposing additional functionality, features and informational touches
that complement and expand upon the nature of package management.
To install the gui, visit: https://tea.xyz/gui/ and download the latest version. The gui auto-updates itself.
Contributing to tea/gui
If you have suggestions or ideas, start a discussion. If we agree, we’ll move it to an issue. Bug fixes straight to pull request or issue please!
Anatomy
tea/gui is a Svelte Electon app. The electron “backend” can be found in
modules/desktop, the Svelte “frontend” in modules/ui. The following
technologies are used:
Hacking on tea/gui
xc setup # only required once
xc build # only required if you modify the backend
xc dev # opens the app in dev modeMake sure to run
xc prettierbefore submitting pull-requests.
Tasks
The following can be run with xc, eg. xc build.
Setup
Setup ensures that required configuration placeholder files are present and installs dependencies.
if [ ! -e modules/desktop/electron/config.json ]; then
echo '{}' > modules/desktop/electron/config.json
fi
if [ ! -e modules/desktop/.env ]; then
cp modules/desktop/.env.example modules/desktop/.env
fi
pnpm install
pnpm run -r prepareBuild
pnpm install
pnpm build:desktopBuild:lite
Builds a .app that is not codesigned or notarized. Ideal for local testing.
export CSC_IDENTITY_AUTO_DISCOVER=false
export MAC_BUILD_TARGET=dir
pnpm install
pnpm build:desktop
Dev
pnpm install
pnpm devPrettier
pnpm run --reporter append-only -r formatDist
pnpm install
pnpm --filter tea exec pnpm predist
pnpm --filter tea exec pnpm distCheck
Runs the typescript compiler and linter.
pnpm run -r check
pnpm run -r linte2e
Runs the webdriver.io end to end tests. Assumes that xc build has already been executed.
pnpm run --reporter append-only -r e2eBump
Inputs: PRIORITY
if ! git diff-index --quiet HEAD --; then
echo "error: dirty working tree" >&2
exit 1
fi
if [ "$(git rev-parse --abbrev-ref HEAD)" != "main" ]; then
echo "error: requires main branch" >&2
exit 1
fi
V=$(node -p "require('./modules/desktop/package.json').version")
V=$(tea semverator bump $V $PRIORITY)
if ! grep -F "\"version\": \"$V\",$" modules/desktop/package.json; then
sed -i.bak -e "s/\"version\": .*,$/\"version\": \"$V\",/" modules/desktop/package.json
rm modules/desktop/package.json.bak
git add modules/desktop/package.json
git commit -m "bump $V" --gpg-sign
fi
git push origin mainRelease
V="$(node -p "require('./modules/desktop/package.json').version")"
tea gh release create "v$V"
Dependencies
tea/cli will automagically make these available to your environment.
| Project | Version |
|---|---|
| nodejs.org | =18.15.0 |
| pnpm.io | =7.18.2 |
| xcfile.dev | >=0.0.110 |
| python.org | ^3.10 |
