feat(identity): rename user-visible identity to voculinux with one-time legacy import
The fork takes its own name everywhere a user can see it: binaries (voculinux, voculinux-gui), desktop entry, autostart, tray, D-Bus namespace (com.voculinux.Voculinux, no alias for the old name), config/data/cache dirs, single-instance lock, IBus engine identity, tray icons, resource prefixes, VOCULINUX_* environment names, and the update-checker user agent. The internal Python module stays vocalinux and the distribution metadata keeps the upstream URLs as provenance. On first run a previous Vocalinux install's config.json, custom dictionary, and portal restore token are copied once into the new locations (new config always wins, no merge, no write-back); models re-resolve through the pinned-checksum download path. An offline naming-sweep test proves no old-name strings remain on user-visible surfaces outside the allowlist. Refs #18
This commit is contained in:
@@ -41,7 +41,7 @@ jobs:
|
||||
|
||||
export GIT_SSH_COMMAND="ssh -i ~/.ssh/codeberg_mirror -o IdentitiesOnly=yes"
|
||||
|
||||
git remote add codeberg git@codeberg.org:jatinkrmalik/vocalinux.git
|
||||
git remote add codeberg git@codeberg.org:jatinkrmalik/voculinux.git
|
||||
git push codeberg --all
|
||||
# Force tags so the mirror stays aligned with GitHub when a tag
|
||||
# already exists on Codeberg (retagged release or prior partial sync).
|
||||
|
||||
@@ -11,7 +11,7 @@ on:
|
||||
- 'uv.lock'
|
||||
- 'requirements/**'
|
||||
- 'src/vocalinux/version.py'
|
||||
- 'vocalinux.desktop'
|
||||
- 'voculinux.desktop'
|
||||
- '.github/workflows/distro-test-matrix.yml'
|
||||
pull_request:
|
||||
branches: [ main, master ]
|
||||
@@ -23,7 +23,7 @@ on:
|
||||
- 'uv.lock'
|
||||
- 'requirements/**'
|
||||
- 'src/vocalinux/version.py'
|
||||
- 'vocalinux.desktop'
|
||||
- 'voculinux.desktop'
|
||||
- '.github/workflows/distro-test-matrix.yml'
|
||||
workflow_dispatch:
|
||||
|
||||
|
||||
@@ -71,8 +71,8 @@ jobs:
|
||||
- name: Build and bundle
|
||||
uses: flatpak/flatpak-github-actions/flatpak-builder@79327416609af08178ad73b352877e51450790b3 # v6
|
||||
with:
|
||||
bundle: vocalinux-${{ matrix.arch }}.flatpak
|
||||
manifest-path: packaging/flatpak/com.vocalinux.Vocalinux.yml
|
||||
bundle: voculinux-${{ matrix.arch }}.flatpak
|
||||
manifest-path: packaging/flatpak/com.voculinux.Voculinux.yml
|
||||
# The action appends -${arch} and restore-keys is
|
||||
# `flatpak-builder-${arch}`, so the key has to start with that
|
||||
# prefix. Putting the packaging hash first made every lock
|
||||
@@ -80,7 +80,7 @@ jobs:
|
||||
# github.sha in the key forced a full rebuild every run.
|
||||
cache-key: flatpak-builder-${{ matrix.arch }}-${{ hashFiles('packaging/flatpak/**') }}
|
||||
arch: ${{ matrix.arch }}
|
||||
artifact-name: vocalinux-flatpak-${{ matrix.arch }}
|
||||
artifact-name: voculinux-flatpak-${{ matrix.arch }}
|
||||
# Flathub mirrors screenshots at submission time; mirror locally so the
|
||||
# builddir linter does not flag the external screenshot URL.
|
||||
mirror-screenshots-url: https://dl.flathub.org/media
|
||||
|
||||
@@ -77,12 +77,12 @@ jobs:
|
||||
- name: Cache AppImage build tools
|
||||
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
||||
with:
|
||||
path: ~/.cache/vocalinux-appimage
|
||||
path: ~/.cache/voculinux-appimage
|
||||
key: appimage-native-${{ runner.arch }}-${{ steps.native-cache.outputs.id }}
|
||||
|
||||
- name: Build AppImage (x86_64)
|
||||
env:
|
||||
VOCALINUX_APPIMAGE_REQUIRE_VULKAN: "1"
|
||||
VOCULINUX_APPIMAGE_REQUIRE_VULKAN: "1"
|
||||
run: |
|
||||
bash packaging/appimage/docker-build.sh dist/*.whl "${{ steps.version.outputs.version }}" dist
|
||||
ls -la dist/*.AppImage
|
||||
@@ -159,13 +159,13 @@ jobs:
|
||||
#### Quick Install (Recommended)
|
||||
Download the wheel file below and install:
|
||||
\`\`\`bash
|
||||
pip install vocalinux-${{ steps.version.outputs.version }}-py3-none-any.whl
|
||||
pip install voculinux-${{ steps.version.outputs.version }}-py3-none-any.whl
|
||||
\`\`\`
|
||||
|
||||
#### From PyPI (Stable)
|
||||
For the latest stable release:
|
||||
\`\`\`bash
|
||||
pip install vocalinux
|
||||
pip install voculinux
|
||||
\`\`\`
|
||||
|
||||
#### Using Install Script
|
||||
@@ -176,8 +176,8 @@ jobs:
|
||||
#### AppImage (no install, no root)
|
||||
Download the \`.AppImage\` matching your CPU (\`x86_64\` or \`aarch64\`) below:
|
||||
\`\`\`bash
|
||||
chmod +x Vocalinux-${{ steps.version.outputs.version }}-x86_64.AppImage
|
||||
./Vocalinux-${{ steps.version.outputs.version }}-x86_64.AppImage
|
||||
chmod +x Voculinux-${{ steps.version.outputs.version }}-x86_64.AppImage
|
||||
./Voculinux-${{ steps.version.outputs.version }}-x86_64.AppImage
|
||||
\`\`\`
|
||||
Requires \`xdotool\`/\`wtype\`/\`ydotool\` on the host for text injection, same as the PyPI install path.
|
||||
|
||||
@@ -197,16 +197,16 @@ jobs:
|
||||
|
||||
### Files
|
||||
|
||||
- **\`vocalinux-${{ steps.version.outputs.version }}-py3-none-any.whl\`** - Python wheel (recommended)
|
||||
- **\`vocalinux-${{ steps.version.outputs.version }}.tar.gz\`** - Source distribution
|
||||
- **\`Vocalinux-${{ steps.version.outputs.version }}-x86_64.AppImage\`** - Self-contained, no install (Intel/AMD)
|
||||
- **\`Vocalinux-${{ steps.version.outputs.version }}-aarch64.AppImage\`** - Self-contained, no install (ARM64, added shortly after this release is published)
|
||||
- **\`voculinux-${{ steps.version.outputs.version }}-py3-none-any.whl\`** - Python wheel (recommended)
|
||||
- **\`voculinux-${{ steps.version.outputs.version }}.tar.gz\`** - Source distribution
|
||||
- **\`Voculinux-${{ steps.version.outputs.version }}-x86_64.AppImage\`** - Self-contained, no install (Intel/AMD)
|
||||
- **\`Voculinux-${{ steps.version.outputs.version }}-aarch64.AppImage\`** - Self-contained, no install (ARM64, added shortly after this release is published)
|
||||
|
||||
---
|
||||
|
||||
### Links
|
||||
|
||||
- [Documentation](https://vocalinux.com)
|
||||
- [Documentation](https://voculinux.com)
|
||||
- [Report Issues](https://github.com/VocaHQ/vocalinux/issues)
|
||||
- [Other Releases](https://github.com/VocaHQ/vocalinux/releases)
|
||||
|
||||
@@ -242,7 +242,7 @@ jobs:
|
||||
- name: Upload artifacts (backup)
|
||||
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
||||
with:
|
||||
name: vocalinux-nightly-${{ steps.version.outputs.version }}
|
||||
name: voculinux-nightly-${{ steps.version.outputs.version }}
|
||||
path: dist/
|
||||
retention-days: 7
|
||||
|
||||
@@ -296,12 +296,12 @@ jobs:
|
||||
- name: Cache AppImage build tools
|
||||
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
||||
with:
|
||||
path: ~/.cache/vocalinux-appimage
|
||||
path: ~/.cache/voculinux-appimage
|
||||
key: appimage-native-${{ runner.arch }}-${{ steps.native-cache.outputs.id }}
|
||||
|
||||
- name: Build AppImage (aarch64)
|
||||
env:
|
||||
VOCALINUX_APPIMAGE_REQUIRE_VULKAN: "1"
|
||||
VOCULINUX_APPIMAGE_REQUIRE_VULKAN: "1"
|
||||
run: |
|
||||
bash packaging/appimage/docker-build.sh dist/*.whl "${{ needs.nightly.outputs.version }}" dist
|
||||
ls -la dist/*.AppImage
|
||||
|
||||
@@ -15,11 +15,11 @@ env:
|
||||
# Build against the supported floor (requires-python in pyproject.toml).
|
||||
PYTHON_VERSION: '3.11'
|
||||
# The dedicated "tap" repo and the URL Pages serves it at. A custom
|
||||
# domain (e.g. flatpak.vocalinux.com) overrides both via the vars.
|
||||
# domain (e.g. flatpak.voculinux.com) overrides both via the vars.
|
||||
FLATPAK_REMOTE_REPO: ${{ vars.FLATPAK_REMOTE_REPO || 'VocaHQ/vocalinux-flatpak' }}
|
||||
FLATPAK_REMOTE_URL: ${{ vars.FLATPAK_REMOTE_URL || 'https://vocahq.github.io/vocalinux-flatpak/repo' }}
|
||||
FLATPAKREPO_URL: ${{ vars.FLATPAKREPO_URL || 'https://vocahq.github.io/vocalinux-flatpak/vocahq.flatpakrepo' }}
|
||||
FLATPAKREF_URL: ${{ vars.FLATPAKREF_URL || 'https://vocahq.github.io/vocalinux-flatpak/com.vocalinux.Vocalinux.flatpakref' }}
|
||||
FLATPAK_REMOTE_URL: ${{ vars.FLATPAK_REMOTE_URL || 'https://vocahq.github.io/voculinux-flatpak/repo' }}
|
||||
FLATPAKREPO_URL: ${{ vars.FLATPAKREPO_URL || 'https://vocahq.github.io/voculinux-flatpak/vocahq.flatpakrepo' }}
|
||||
FLATPAKREF_URL: ${{ vars.FLATPAKREF_URL || 'https://vocahq.github.io/voculinux-flatpak/com.voculinux.Voculinux.flatpakref' }}
|
||||
|
||||
jobs:
|
||||
build-and-release:
|
||||
@@ -101,12 +101,12 @@ jobs:
|
||||
- name: Cache AppImage build tools
|
||||
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
||||
with:
|
||||
path: ~/.cache/vocalinux-appimage
|
||||
path: ~/.cache/voculinux-appimage
|
||||
key: appimage-native-${{ runner.arch }}-${{ steps.native-cache.outputs.id }}
|
||||
|
||||
- name: Build AppImage (x86_64)
|
||||
env:
|
||||
VOCALINUX_APPIMAGE_REQUIRE_VULKAN: "1"
|
||||
VOCULINUX_APPIMAGE_REQUIRE_VULKAN: "1"
|
||||
run: |
|
||||
bash packaging/appimage/docker-build.sh dist/*.whl "${{ steps.get_version.outputs.VERSION }}" dist
|
||||
ls -la dist/*.AppImage
|
||||
@@ -151,7 +151,7 @@ jobs:
|
||||
```bash
|
||||
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||
flatpak remote-add --if-not-exists vocahq __FLATPAKREPO_URL__
|
||||
flatpak install vocahq com.vocalinux.Vocalinux
|
||||
flatpak install vocahq com.voculinux.Voculinux
|
||||
```
|
||||
|
||||
Or download the `.flatpak` matching your CPU (`x86_64` or `aarch64`, attached
|
||||
@@ -161,8 +161,8 @@ jobs:
|
||||
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||
flatpak install flathub org.gnome.Platform//50
|
||||
|
||||
flatpak install --user ./Vocalinux-__VERSION__-x86_64.flatpak
|
||||
flatpak run com.vocalinux.Vocalinux
|
||||
flatpak install --user ./Voculinux-__VERSION__-x86_64.flatpak
|
||||
flatpak run com.voculinux.Voculinux
|
||||
```
|
||||
EOF
|
||||
else
|
||||
@@ -175,8 +175,8 @@ jobs:
|
||||
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||
flatpak install flathub org.gnome.Platform//50
|
||||
|
||||
flatpak install --user ./Vocalinux-__VERSION__-x86_64.flatpak
|
||||
flatpak run com.vocalinux.Vocalinux
|
||||
flatpak install --user ./Voculinux-__VERSION__-x86_64.flatpak
|
||||
flatpak run com.voculinux.Voculinux
|
||||
```
|
||||
EOF
|
||||
if [ "$prerelease" = true ]; then
|
||||
@@ -223,7 +223,7 @@ jobs:
|
||||
### From Source
|
||||
```bash
|
||||
git clone https://github.com/VocaHQ/vocalinux.git
|
||||
cd vocalinux
|
||||
cd voculinux
|
||||
./install.sh
|
||||
```
|
||||
|
||||
@@ -231,10 +231,10 @@ jobs:
|
||||
```bash
|
||||
# Install the Linux system packages first:
|
||||
# GTK/AppIndicator, PortAudio, and xdotool/wtype are required.
|
||||
python3 -m venv ~/.local/share/vocalinux-pypi/venv --system-site-packages
|
||||
source ~/.local/share/vocalinux-pypi/venv/bin/activate
|
||||
pip install vocalinux
|
||||
vocalinux
|
||||
python3 -m venv ~/.local/share/voculinux-pypi/venv --system-site-packages
|
||||
source ~/.local/share/voculinux-pypi/venv/bin/activate
|
||||
pip install voculinux
|
||||
voculinux
|
||||
```
|
||||
|
||||
PyPI installs the Python package only. For automatic system dependency,
|
||||
@@ -243,15 +243,15 @@ jobs:
|
||||
|
||||
### Arch Linux (AUR)
|
||||
```bash
|
||||
yay -S vocalinux
|
||||
yay -S voculinux
|
||||
```
|
||||
|
||||
### AppImage (no install, no root)
|
||||
Download the `.AppImage` matching your CPU (`x86_64` or `aarch64`, the latter attached
|
||||
shortly after this release is published) below:
|
||||
```bash
|
||||
chmod +x Vocalinux-${{ steps.get_version.outputs.VERSION }}-x86_64.AppImage
|
||||
./Vocalinux-${{ steps.get_version.outputs.VERSION }}-x86_64.AppImage
|
||||
chmod +x Voculinux-${{ steps.get_version.outputs.VERSION }}-x86_64.AppImage
|
||||
./Voculinux-${{ steps.get_version.outputs.VERSION }}-x86_64.AppImage
|
||||
```
|
||||
Still requires `xdotool`/`wtype`/`ydotool` on the host for text injection, same as the PyPI path.
|
||||
|
||||
@@ -260,10 +260,10 @@ jobs:
|
||||
attached shortly after this release is published):
|
||||
```bash
|
||||
# Debian / Ubuntu
|
||||
sudo apt install ./vocalinux_*_amd64.deb
|
||||
sudo apt install ./voculinux_*_amd64.deb
|
||||
|
||||
# Fedora
|
||||
sudo dnf install ./vocalinux-*.x86_64.rpm
|
||||
sudo dnf install ./voculinux-*.x86_64.rpm
|
||||
```
|
||||
Thin packages: Python, GTK, PyGObject and the AppIndicator typelib come from the
|
||||
distro, and `apt`/`dnf` resolves them. Only `pywhispercpp` and `pynput` are
|
||||
@@ -278,13 +278,13 @@ jobs:
|
||||
${{ steps.flatpak_notes.outputs.flatpak }}
|
||||
|
||||
### Snap
|
||||
Tagged releases also attach `vocalinux_${{ steps.get_version.outputs.VERSION }}_amd64.snap`
|
||||
Tagged releases also attach `voculinux_${{ steps.get_version.outputs.VERSION }}_amd64.snap`
|
||||
and try the Snap Store (`edge` and `candidate`). `stable` is promoted
|
||||
from candidate after QA by the `snap-promote.yml` dispatch workflow.
|
||||
Wayland typing runs through the RemoteDesktop portal; the snap ships no `uinput` plug.
|
||||
The GitHub `.snap` is also the sideload while a Store revision lags:
|
||||
```bash
|
||||
sudo snap install --dangerous ./vocalinux_${{ steps.get_version.outputs.VERSION }}_amd64.snap
|
||||
sudo snap install --dangerous ./voculinux_${{ steps.get_version.outputs.VERSION }}_amd64.snap
|
||||
```
|
||||
`--dangerous` is required because this file is not a Store revision. It will not
|
||||
refresh from the Store. amd64 only.
|
||||
@@ -298,7 +298,7 @@ jobs:
|
||||
```
|
||||
Each artifact also carries GitHub build provenance, which ties it to this workflow run:
|
||||
```bash
|
||||
gh attestation verify Vocalinux-${{ steps.get_version.outputs.VERSION }}-x86_64.AppImage \
|
||||
gh attestation verify Voculinux-${{ steps.get_version.outputs.VERSION }}-x86_64.AppImage \
|
||||
--repo ${{ github.repository }}
|
||||
```
|
||||
|
||||
@@ -343,12 +343,12 @@ jobs:
|
||||
- name: Cache AppImage build tools
|
||||
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
||||
with:
|
||||
path: ~/.cache/vocalinux-appimage
|
||||
path: ~/.cache/voculinux-appimage
|
||||
key: appimage-native-${{ runner.arch }}-${{ steps.native-cache.outputs.id }}
|
||||
|
||||
- name: Build AppImage (aarch64)
|
||||
env:
|
||||
VOCALINUX_APPIMAGE_REQUIRE_VULKAN: "1"
|
||||
VOCULINUX_APPIMAGE_REQUIRE_VULKAN: "1"
|
||||
run: |
|
||||
bash packaging/appimage/docker-build.sh dist/*.whl "${{ steps.get_version.outputs.VERSION }}" dist
|
||||
ls -la dist/*.AppImage
|
||||
@@ -492,8 +492,8 @@ jobs:
|
||||
- name: Build and bundle
|
||||
uses: flatpak/flatpak-github-actions/flatpak-builder@79327416609af08178ad73b352877e51450790b3 # v6
|
||||
with:
|
||||
bundle: Vocalinux-${{ steps.get_version.outputs.VERSION }}-x86_64.flatpak
|
||||
manifest-path: packaging/flatpak/com.vocalinux.Vocalinux.yml
|
||||
bundle: Voculinux-${{ steps.get_version.outputs.VERSION }}-x86_64.flatpak
|
||||
manifest-path: packaging/flatpak/com.voculinux.Voculinux.yml
|
||||
# Same prefix rule as flatpak.yml: restore-keys is
|
||||
# `flatpak-builder-${arch}`. The action appends -${arch} again.
|
||||
cache-key: flatpak-builder-x86_64-${{ hashFiles('packaging/flatpak/**') }}
|
||||
@@ -506,7 +506,7 @@ jobs:
|
||||
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
||||
with:
|
||||
name: flatpak-x86_64
|
||||
path: Vocalinux-${{ steps.get_version.outputs.VERSION }}-x86_64.flatpak
|
||||
path: Voculinux-${{ steps.get_version.outputs.VERSION }}-x86_64.flatpak
|
||||
if-no-files-found: error
|
||||
retention-days: 7
|
||||
|
||||
@@ -529,8 +529,8 @@ jobs:
|
||||
- name: Build and bundle
|
||||
uses: flatpak/flatpak-github-actions/flatpak-builder@79327416609af08178ad73b352877e51450790b3 # v6
|
||||
with:
|
||||
bundle: Vocalinux-${{ steps.get_version.outputs.VERSION }}-aarch64.flatpak
|
||||
manifest-path: packaging/flatpak/com.vocalinux.Vocalinux.yml
|
||||
bundle: Voculinux-${{ steps.get_version.outputs.VERSION }}-aarch64.flatpak
|
||||
manifest-path: packaging/flatpak/com.voculinux.Voculinux.yml
|
||||
cache-key: flatpak-builder-aarch64-${{ hashFiles('packaging/flatpak/**') }}
|
||||
arch: aarch64
|
||||
upload-artifact: false
|
||||
@@ -540,7 +540,7 @@ jobs:
|
||||
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
||||
with:
|
||||
name: flatpak-aarch64
|
||||
path: Vocalinux-${{ steps.get_version.outputs.VERSION }}-aarch64.flatpak
|
||||
path: Voculinux-${{ steps.get_version.outputs.VERSION }}-aarch64.flatpak
|
||||
if-no-files-found: error
|
||||
retention-days: 7
|
||||
|
||||
@@ -715,27 +715,27 @@ jobs:
|
||||
echo '[Flatpak Repo]'
|
||||
echo 'Title=VocaHQ'
|
||||
echo "Url=${FLATPAK_REMOTE_URL}"
|
||||
echo 'Homepage=https://vocalinux.com'
|
||||
echo 'Comment=Official Vocalinux Flatpak remote'
|
||||
echo 'Description=Self-hosted Vocalinux Flatpak repository'
|
||||
echo 'Icon=https://vocalinux.com/icon-512x512.png'
|
||||
echo 'Homepage=https://voculinux.com'
|
||||
echo 'Comment=Official Voculinux Flatpak remote'
|
||||
echo 'Description=Self-hosted Voculinux Flatpak repository'
|
||||
echo 'Icon=https://voculinux.com/icon-512x512.png'
|
||||
echo 'DefaultBranch=stable'
|
||||
echo "GPGKey=$(base64 -w0 "$RUNNER_TEMP/pubkey.gpg")"
|
||||
} > publish/vocahq.flatpakrepo
|
||||
{
|
||||
echo '[Flatpak Ref]'
|
||||
echo 'Version=1'
|
||||
echo 'Title=Vocalinux'
|
||||
echo 'Name=com.vocalinux.Vocalinux'
|
||||
echo 'Title=Voculinux'
|
||||
echo 'Name=com.voculinux.Voculinux'
|
||||
echo 'Branch=stable'
|
||||
echo "Url=${FLATPAK_REMOTE_URL}"
|
||||
echo 'SuggestRemoteName=vocahq'
|
||||
echo 'RuntimeRepo=https://dl.flathub.org/repo/flathub.flatpakrepo'
|
||||
echo 'IsRuntime=false'
|
||||
echo 'Homepage=https://vocalinux.com'
|
||||
echo 'Icon=https://vocalinux.com/icon-512x512.png'
|
||||
echo 'Homepage=https://voculinux.com'
|
||||
echo 'Icon=https://voculinux.com/icon-512x512.png'
|
||||
echo "GPGKey=$(base64 -w0 "$RUNNER_TEMP/pubkey.gpg")"
|
||||
} > publish/com.vocalinux.Vocalinux.flatpakref
|
||||
} > publish/com.voculinux.Voculinux.flatpakref
|
||||
cp "$RUNNER_TEMP/pubkey.gpg" publish/vocahq.gpg
|
||||
grep -v GPGKey publish/vocahq.flatpakrepo
|
||||
sed -e "s|__FLATPAKREPO_URL__|${FLATPAKREPO_URL}|g" \
|
||||
@@ -751,7 +751,7 @@ jobs:
|
||||
external_repository: ${{ env.FLATPAK_REMOTE_REPO }}
|
||||
publish_dir: ./publish
|
||||
publish_branch: gh-pages
|
||||
commit_message: 'Vocalinux ${{ github.ref_name }}'
|
||||
commit_message: 'Voculinux ${{ github.ref_name }}'
|
||||
|
||||
attach-flatpak:
|
||||
name: Attach Flatpak bundles
|
||||
@@ -854,7 +854,7 @@ jobs:
|
||||
id-token: write # PyPI trusted publishing; there is no API token to leak
|
||||
environment:
|
||||
name: pypi
|
||||
url: https://pypi.org/project/vocalinux/
|
||||
url: https://pypi.org/project/voculinux/
|
||||
steps:
|
||||
# Not a rebuild: the artifact attached to the GitHub release, so one
|
||||
# checksum describes both.
|
||||
@@ -892,14 +892,14 @@ jobs:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
gh release download "$GITHUB_REF_NAME" --repo "$GITHUB_REPOSITORY" \
|
||||
--pattern 'vocalinux-*.tar.gz' --pattern SHA256SUMS --dir release-source
|
||||
--pattern 'voculinux-*.tar.gz' --pattern SHA256SUMS --dir release-source
|
||||
- name: Verify provenance and prepare the exact source PKGBUILD
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
uv run --python "$(command -v python)" --locked --only-group release-build \
|
||||
python scripts/prepare_aur_source.py \
|
||||
--sdist release-source/vocalinux-*.tar.gz --manifest release-source/SHA256SUMS \
|
||||
--sdist release-source/voculinux-*.tar.gz --manifest release-source/SHA256SUMS \
|
||||
--tag "$GITHUB_REF_NAME" --source-commit "$GITHUB_SHA" --output build/aur-source
|
||||
- name: Build and install the exact source PKGBUILD on Arch
|
||||
run: |
|
||||
@@ -944,7 +944,7 @@ jobs:
|
||||
if: steps.aur.outputs.configured == 'true'
|
||||
uses: KSXGitHub/github-actions-deploy-aur@084b0d9b15415bf9cdb65d44dad1efe37a354050 # v4.2.0
|
||||
with:
|
||||
pkgname: vocalinux
|
||||
pkgname: voculinux
|
||||
pkgbuild: aur-source/PKGBUILD
|
||||
updpkgsums: 'false'
|
||||
commit_username: ${{ secrets.AUR_USERNAME }}
|
||||
@@ -985,7 +985,7 @@ jobs:
|
||||
run: |
|
||||
set -euo pipefail
|
||||
TAG="${GITHUB_REF#refs/tags/v}"
|
||||
PKGBUILD=packaging/aur/vocalinux-bin/PKGBUILD
|
||||
PKGBUILD=packaging/aur/voculinux-bin/PKGBUILD
|
||||
sed -i "s/^pkgver=.*/pkgver=${TAG//-/}/; s/^_tag=.*/_tag=${TAG}/; s/^pkgrel=.*/pkgrel=1/" "$PKGBUILD"
|
||||
grep -E '^(pkgver|_tag|pkgrel)=' "$PKGBUILD"
|
||||
|
||||
@@ -998,21 +998,21 @@ jobs:
|
||||
set -euo pipefail
|
||||
tag="${GITHUB_REF_NAME#v}"
|
||||
for arch in x86_64 aarch64; do
|
||||
url="https://github.com/VocaHQ/vocalinux/releases/download/${GITHUB_REF_NAME}/Vocalinux-${tag}-${arch}.AppImage"
|
||||
url="https://github.com/VocaHQ/vocalinux/releases/download/${GITHUB_REF_NAME}/Voculinux-${tag}-${arch}.AppImage"
|
||||
sum="$(curl -fsSL "$url" | sha256sum | cut -d' ' -f1)"
|
||||
sed -i "s/^sha256sums_${arch}=('[0-9a-f]*')/sha256sums_${arch}=('${sum}')/" \
|
||||
packaging/aur/vocalinux-bin/PKGBUILD
|
||||
packaging/aur/voculinux-bin/PKGBUILD
|
||||
done
|
||||
|
||||
- name: Publish AUR -bin package
|
||||
if: steps.aur.outputs.configured == 'true'
|
||||
uses: KSXGitHub/github-actions-deploy-aur@084b0d9b15415bf9cdb65d44dad1efe37a354050 # v4.2.0
|
||||
with:
|
||||
pkgname: vocalinux-bin
|
||||
# The -bin PKGBUILD names local sources (vocalinux.desktop,
|
||||
# vocalinux.svg, LICENSE); publishing the whole directory mirrors
|
||||
pkgname: voculinux-bin
|
||||
# The -bin PKGBUILD names local sources (voculinux.desktop,
|
||||
# voculinux.svg, LICENSE); publishing the whole directory mirrors
|
||||
# them into the AUR repo instead of shipping a lone PKGBUILD.
|
||||
asset_dir: packaging/aur/vocalinux-bin
|
||||
asset_dir: packaging/aur/voculinux-bin
|
||||
# Sums are pinned in the step above for BOTH arches; regenerating
|
||||
# here would only refresh the x86_64 array.
|
||||
updpkgsums: 'false'
|
||||
@@ -1195,5 +1195,5 @@ jobs:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: ./web/out
|
||||
publish_branch: gh-pages
|
||||
cname: vocalinux.com
|
||||
cname: voculinux.com
|
||||
force_orphan: true
|
||||
|
||||
@@ -77,7 +77,7 @@ jobs:
|
||||
run: |
|
||||
set -euo pipefail
|
||||
VERSION="${TAG#v}"
|
||||
/snap/bin/snapcraft status vocalinux | tee /tmp/snap-status.txt
|
||||
/snap/bin/snapcraft status voculinux | tee /tmp/snap-status.txt
|
||||
# POSIX: mawk has no \S — use a literal non-space class.
|
||||
row=$(awk '/^[^ \t]/ { track = $1 }
|
||||
track == "latest" && $1 == "candidate" { print $2, $3; exit }
|
||||
@@ -110,7 +110,7 @@ jobs:
|
||||
row=$(awk '/^[^ \t]/ { track = $1 }
|
||||
track == "latest" && $1 == "candidate" { print $2, $3; exit }
|
||||
track == "latest" && $3 == "candidate" { print $4, $5; exit }' \
|
||||
<(/snap/bin/snapcraft status vocalinux))
|
||||
<(/snap/bin/snapcraft status voculinux))
|
||||
read -r seen_version revision <<<"$row"
|
||||
if [ "${revision:-}" != "$REVISION" ] || [ "$seen_version" != "$VERSION" ]; then
|
||||
echo "latest/candidate moved on (now version=${seen_version:-none} revision=${revision:-none}); aborting instead of promoting the stale revision" >&2
|
||||
@@ -123,5 +123,5 @@ jobs:
|
||||
REVISION: ${{ steps.candidate.outputs.revision }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
/snap/bin/snapcraft release vocalinux "$REVISION" latest/stable
|
||||
/snap/bin/snapcraft status vocalinux
|
||||
/snap/bin/snapcraft release voculinux "$REVISION" latest/stable
|
||||
/snap/bin/snapcraft status voculinux
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
name: Vocalinux CI
|
||||
name: Voculinux CI
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -51,7 +51,7 @@ jobs:
|
||||
# entry and the icon into the AppDir.
|
||||
- 'install.sh'
|
||||
- 'install.d/**'
|
||||
- 'vocalinux.desktop'
|
||||
- 'voculinux.desktop'
|
||||
- 'resources/**'
|
||||
- 'justfile'
|
||||
# scripts/ is guarded by tests/ and one of them is executed by the
|
||||
@@ -65,7 +65,7 @@ jobs:
|
||||
- '.pre-commit-config.yaml'
|
||||
- '.github/workflows/unified-pipeline.yml'
|
||||
- '.github/workflows/release.yml'
|
||||
# The AUR gate builds packaging/aur/vocalinux/PKGBUILD from this
|
||||
# The AUR gate builds packaging/aur/voculinux/PKGBUILD from this
|
||||
# tree. Its depends= mirror pyproject.toml, so every python change
|
||||
# reaches the gate through the python filter above; this filter
|
||||
# exists so a PKGBUILD-only change runs the gate without dragging
|
||||
@@ -350,12 +350,12 @@ jobs:
|
||||
- name: Cache AppImage build tools
|
||||
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
||||
with:
|
||||
path: ~/.cache/vocalinux-appimage
|
||||
path: ~/.cache/voculinux-appimage
|
||||
key: appimage-native-${{ runner.arch }}-${{ steps.native-cache.outputs.id }}
|
||||
|
||||
- name: Build AppImage
|
||||
env:
|
||||
VOCALINUX_APPIMAGE_REQUIRE_VULKAN: "1"
|
||||
VOCULINUX_APPIMAGE_REQUIRE_VULKAN: "1"
|
||||
run: |
|
||||
VERSION=$(grep -oP '__version__\s*=\s*"\K[^"]+' src/vocalinux/version.py)
|
||||
WHEEL=$(ls dist/*.whl)
|
||||
@@ -365,7 +365,7 @@ jobs:
|
||||
- name: Upload AppImage artifact
|
||||
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
||||
with:
|
||||
name: vocalinux-appimage-${{ matrix.arch }}
|
||||
name: voculinux-appimage-${{ matrix.arch }}
|
||||
path: dist/*.AppImage
|
||||
retention-days: 7
|
||||
|
||||
@@ -394,7 +394,7 @@ jobs:
|
||||
- name: Download the AppImage built above
|
||||
uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
||||
with:
|
||||
name: vocalinux-appimage-x86_64
|
||||
name: voculinux-appimage-x86_64
|
||||
path: dist
|
||||
|
||||
- name: Boot it on ${{ matrix.distro }}
|
||||
@@ -434,7 +434,7 @@ jobs:
|
||||
run: |
|
||||
uv run --python "$(command -v python)" --locked --only-group release-build \
|
||||
python scripts/prepare_aur_source.py \
|
||||
--local-unattested --sdist dist/vocalinux-*.tar.gz --output build/aur-source
|
||||
--local-unattested --sdist dist/voculinux-*.tar.gz --output build/aur-source
|
||||
|
||||
- name: Build the PKGBUILD on Arch
|
||||
run: |
|
||||
@@ -445,7 +445,7 @@ jobs:
|
||||
|
||||
# The .deb and .rpm exist to be installed and run, so the gate does exactly
|
||||
# that: build both in the pinned Debian 12 image release.yml uses, then
|
||||
# install them in distro containers and run vocalinux --version plus an
|
||||
# install them in distro containers and run voculinux --version plus an
|
||||
# import smoke. debian:12 and ubuntu:24.04 exercise the .deb's dependency
|
||||
# list (and the vendored cp311/cp312 wheels), fedora:42 the .rpm's.
|
||||
native-build:
|
||||
@@ -535,7 +535,7 @@ jobs:
|
||||
- name: Upload the verified snap
|
||||
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
||||
with:
|
||||
name: vocalinux-snap-amd64
|
||||
name: voculinux-snap-amd64
|
||||
path: ${{ steps.build.outputs.snap }}
|
||||
if-no-files-found: error
|
||||
retention-days: 7
|
||||
@@ -628,5 +628,5 @@ jobs:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: ./web/out
|
||||
publish_branch: gh-pages
|
||||
cname: vocalinux.com
|
||||
cname: voculinux.com
|
||||
force_orphan: true
|
||||
|
||||
Reference in New Issue
Block a user