ossapp
is the graphical app complement to pkgx
.
Under the hood ossapp
installs and manages your packages with pkgx
while exposing additional functionality, features and informational touches
that complement and expand upon the nature of package management.
To install ossapp
, visit: https://pkgx.app and download the latest
version. ossapp
auto-updates itself.
Contributing
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
ossapp
is a Svelte Electron app. The electron “backend” can be found in
electron/
, the Svelte “frontend” is in svelte/
.
The following technologies are used:
Hacking on ossapp
xc setup # only required once
xc build # only required if you modify the backend
xc dev # opens the app in dev mode
Make sure to run
xc prettier
before submitting pull-requests.
i18n (Translating ossapp
)
We’d love your help in translating the gui into different languages.
The translation related source code are all in ./svelte/src/libs/translations/*
.
To add a new language:
- Create a json file in
./svelte/src/libs/translations/languages/[lang].json
. Copy the contents ofen.json
then translate. - Import the new language in
./svelte/src/libs/translations/index.ts
. More instructions are in that file.
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 electron/config.json ]; then
echo '{}' > electron/config.json
fi
if [ ! -e modules/desktop/.env ]; then
cp .env.example .env
fi
npm install
npx electron-rebuild
npm run prepare
Build
npm install
npm run package
Build:lite
Builds only a .app
that is not codesigned or notarized. Ideal for local testing.
export CSC_IDENTITY_AUTO_DISCOVER=false
export MAC_BUILD_TARGET=dir
export NOTARIZE=false
npm install
npm run package
Dev
npm run dev
Prettier
npm run format
Dist
npm install
npm run predist
npm run dist
Check
Runs the typescript compiler and linter.
npm run check
npm run lint
e2e
Runs the webdriver.io end to end tests. Assumes that xc build
has already been
executed.
npm run e2e
Bump
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('./package.json').version")
V=$(tea semverator bump $V $PRIORITY)
if ! grep -F "\"version\": \"$V\",$" package.json; then
sed -i.bak -e "s/\"version\": .*,$/\"version\": \"$V\",/" package.json
rm package.json.bak
git add package.json
git commit -m "bump $V" --gpg-sign
fi
git push origin main
Release
V="$(node -p "require('./package.json').version")"
tea gh release create "v$V"