Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pkgxdev/ossapp
The App Store for Open Source
https://github.com/pkgxdev/ossapp
app-store gui package-manager
Last synced: 3 days ago
JSON representation
The App Store for Open Source
- Host: GitHub
- URL: https://github.com/pkgxdev/ossapp
- Owner: pkgxdev
- License: apache-2.0
- Created: 2022-03-09T17:22:20.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-07-15T11:45:05.000Z (5 months ago)
- Last Synced: 2024-12-15T13:04:02.481Z (10 days ago)
- Topics: app-store, gui, package-manager
- Language: TypeScript
- Homepage: https://pkgx.app
- Size: 11.2 MB
- Stars: 185
- Watchers: 11
- Forks: 99
- Open Issues: 67
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
![pkgx.dev](https://pkgx.dev/banner.png)
`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: 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:
- [svelte](https://svelte.dev/)
- [tailwind](https://tailwindcss.com/)
- [fontastic](https://fontastic.me)
- [electron](http://electronjs.org)# Hacking on `ossapp`
```sh
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:
1. Create a json file in `./svelte/src/libs/translations/languages/[lang].json`.
Copy the contents of `en.json` then translate.
2. 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.```sh
if [ ! -e electron/config.json ]; then
echo '{}' > electron/config.json
fiif [ ! -e modules/desktop/.env ]; then
cp .env.example .env
finpm install
npx electron-rebuild
npm run prepare
```## Build
```sh
npm install
npm run package
```## Build:lite
Builds only a `.app` that is not codesigned or notarized. Ideal for local testing.
```sh
export CSC_IDENTITY_AUTO_DISCOVER=false
export MAC_BUILD_TARGET=dir
export NOTARIZE=false
npm install
npm run package
```## Dev
```sh
npm run dev
```## Prettier
```sh
npm run format
```## Dist
```sh
npm install
npm run predist
npm run dist
```## Check
Runs the typescript compiler and linter.
```sh
npm run check
npm run lint
```## e2e
Runs the webdriver.io end to end tests. Assumes that `xc build` has already been
executed.```sh
npm run e2e
```## Bump
Inputs: PRIORITY
```sh
if ! git diff-index --quiet HEAD --; then
echo "error: dirty working tree" >&2
exit 1
fiif [ "$(git rev-parse --abbrev-ref HEAD)" != "main" ]; then
echo "error: requires main branch" >&2
exit 1
fiV=$(node -p "require('./package.json').version")
V=$(pkgx 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
figit push origin main
```## Release
```sh
V="$(node -p "require('./package.json').version")"
pkgx gh release create "v$V"
```[`pkgx`]: https://github.com/pkgxdev/pkgx
[`xc`]: https://xcfile.dev
[discussion]: https://github.com/orgs/pkgxdev/discussions