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.
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!
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:
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.
The following can be run with xc, eg. xc build.
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 preparepnpm install
pnpm build:desktopBuilds 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
pnpm install
pnpm devpnpm run --reporter append-only -r formatpnpm install
pnpm --filter tea exec pnpm predist
pnpm --filter tea exec pnpm distRuns the typescript compiler and linter.
pnpm run -r check
pnpm run -r lintRuns the webdriver.io end to end tests. Assumes that xc build has already been executed.
pnpm run --reporter append-only -r e2eInputs: 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 mainV="$(node -p "require('./modules/desktop/package.json').version")"
tea gh release create "v$V"
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 |
