diff --git a/.github/screenshots/image-old.png b/.github/screenshots/image-old.png new file mode 100644 index 0000000..15e31b0 Binary files /dev/null and b/.github/screenshots/image-old.png differ diff --git a/.github/screenshots/image.png b/.github/screenshots/image.png index 15e31b0..c78e650 100644 Binary files a/.github/screenshots/image.png and b/.github/screenshots/image.png differ diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 9a4f29d..d4d1276 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -47,45 +47,48 @@ jobs: *.zip *.tar.gz - # # --- JOB 2 : Building Windows Installer --- - # # Disabled due to not working - # build_windows_installer: - # name: Build Inno Setup - # runs-on: windows-latest - # steps: - # - uses: actions/checkout@v6.0.2 - # - name: Compile .ISS - # uses: Minionguyjpro/Inno-Setup-Action@v1.2.8 - # with: - # path: packages\windows\setup-nigthly.iss - # options: '/O+ /F"LCE_Qt_Launcher_Windows_Nigthly_Setup"' + # --- JOB 2 : Building Windows Installer --- + build_windows_installer: + name: Build Inno Setup + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 # test to see if version 4 work, verfify if update coudld be fixed or needed + - name: Compile .ISS + uses: Minionguyjpro/Inno-Setup-Action@v1.2.8 + with: + path: packages\windows\setup-nigthly.iss + options: '/O+ /F"LCE_Qt_Launcher_Windows_Nigthly_Setup"' - # - name: Upload Artifact - # uses: actions/upload-artifact@v7.0.1 - # with: - # name: installer-windows - # path: packages\windows\Output\*.exe + - name: Upload Artifact + uses: actions/upload-artifact@v7.0.1 + with: + name: installer-windows + path: packages\windows\Output\*.exe - # # --- JOB 3 : Making Arch Linux Packages --- - # # Disabled due to not working - # build_arch_installer: - # name: Build Arch Package - # runs-on: ubuntu-latest - # steps: - # - uses: actions/checkout@v6.0.2 - # - name: Validate and Build package - # uses: heyhusen/archlinux-package-action@v3.0.0 - # with: - # namcap: true - # updpkgsums : true - # path : "packages/linux/nigthly" - # srcinfo: true + # --- JOB 3 : Making Arch Linux Packages --- + # Disabled due to not working + build_arch_installer: + name: Build Arch Package + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6.0.2 + - name: Validate and Build package + uses: heyhusen/archlinux-package-action@v3.0.0 + with: + namcap: true + updpkgsums : true + path : "packages/linux/nigthly" - # - name: Upload Artifact - # uses: actions/upload-artifact@v7.0.1 - # with: - # name: packages-arch - # path: packages/linux/nightly/****.pkg.tar.zst + - name: Upload Artifact + uses: actions/upload-artifact@v7.0.1 + with: + name: packages-arch + path: | + packages/linux/nigthly/* + packages/linux/nigthly/lce-qt-launcher-git-*.r?.*-?-any.pkg.tar.zst + !packages/linux/nigthly/pkg/ + !packages/linux/nigthly/src/ + !packages/linux/nigthly/lce-qt-launcher-git/ # --- JOB 4 : Publish the Nightly Release --- release: @@ -111,6 +114,8 @@ jobs: > The nightly prebuild is only avaiable for GNU/Linux and Windows. \n > For NixOS/Nixpkg you need to build it yourself by downloading the source files and then run `./nix-helper install` \n + > For FreeBSD, check [my FreeBSD Port Overlay collection](https://github.com/xgui4/freebsd-ports/). + Note that the Nightly build is not avaiable as a port right now. \n Automatic Nighty (daily) binary build powered by GtiHub Actions. \n The nighy build are experimental nuitka compilation from the nighly branch \n diff --git a/data/defaults_instances/revelation.lce_inst b/data/defaults_instances/revelation.lce_inst index 3f0436c..ff7945e 100644 --- a/data/defaults_instances/revelation.lce_inst +++ b/data/defaults_instances/revelation.lce_inst @@ -4,10 +4,10 @@ "installation_path": ".lce-revelations ", "archive_file": "LCE-Revelations-Client-Win64.zip", "exe_name": "Minecraft.Client.exe", - "repo_url": "https://github.com/itsRevela/LCE-Revelations", + "repo_url": "https://git.revela.dev/itsRevela/LCE-Revelations", "image" : ":/assets/Revelation.jpg", - "news_feed" : "https://github.com/itsRevela/LCE-Revelations/commits/main/", - "instance_source": "InstanceSource.GITHUB_RELEASE", + "news_feed" : "https://git.revela.dev/itsRevela/LCE-Revelations/commits/branch/main", + "instance_source": "InstanceSource.FORGEJO_RELEASE", "instance_type": "InstanceType.CLIENT_VANILLA", "version": "Nightly" } \ No newline at end of file diff --git a/docs/en/COMPILING.md b/docs/en/COMPILING.md index 93a0a11..334d93d 100644 --- a/docs/en/COMPILING.md +++ b/docs/en/COMPILING.md @@ -13,27 +13,7 @@ ### Nix Package - -#### Nixpkg - -```bash - -if [[ $user_input == "install" ]]; then - nix-build default.nix - nix-env -i ./result -fi -if [[ $user_input == "compile" ]]; then - ./scripts/build.sh -fi -if [[ $user_input == "clear" ]]; then - ./scripts/clear.sh -fi - -``` +Documentation Coming Soon #### Windows Installer @@ -43,7 +23,10 @@ Requirements : 1. Go to the windows packages locations : `cd pacakges/windows` 2. run the script with Inno Setup for your desired channel [`setup-nightly.iss`](packages/windows/setup-nigthly.iss) or [`setup.iss`](packages/windows/setup.iss)) -#### FreeBSD +#### FreeBSD Port (Experimental) + +> [!NOTE] +> The FreeBSD port is only avaiable for the latest tagged release right now and is experimental. And sometime may lagged in version. To get the nightly build or custom version, the UV method is currently the only officially supported method. Using my Github FreeBSD [Overlay](https://github.com/xgui4/freebsd-ports/tree/master/lce-qt-launcher) diff --git a/docs/en/RUNNING.md b/docs/en/RUNNING.md index df3b11c..07380c6 100644 --- a/docs/en/RUNNING.md +++ b/docs/en/RUNNING.md @@ -20,20 +20,10 @@ ## FreeBSD -```shell - -#!/usr/bin/env sh - -if [ "$1" = "create-venv" ]; then - uv venv --system-site-packages -fi - -if [ "$1" = "sync" ]; then - uv sync --system-certs -fi - - -``` +1. Create a virtual Python environment with system access using the command `uv venv --system-site-packages` +2. Synchronize the virtual environment with `uv sync` +3. Activate the virtual environment (replace {.sh} with .sh for bash, .fish for fish, or leave it blank for the POSIX shell) using `source .venv/bin/activate{.sh}` +4. Run the program with the command `python src/lce_qt_launcher/main.py` ## Using the command line diff --git a/docs/fr/COMPILATION.md b/docs/fr/COMPILATION.md index f93d8b2..23617a5 100644 --- a/docs/fr/COMPILATION.md +++ b/docs/fr/COMPILATION.md @@ -13,31 +13,20 @@ ### Paquet Nix +Documentation à venir + #### Nixpkg -```bash +1. nix-build default.nix -if [[ $user_input == "install" ]]; then +2. nix-env -i ./result -nix-build default.nix - -nix-env -i ./result -fi -if [[ $user_input == "compile" ]]; puis - -./scripts/build.sh -fi puis - -./scripts/clear.sh -fi - -``` +--> #### Programme d'installation Windows @@ -47,7 +36,10 @@ Prérequis : 1. Accédez au répertoire des paquets Windows : `cd packages/windows` 2. Exécutez le script avec Inno Setup pour le canal souhaité : [`setup-nightly.iss`](packages/windows/setup-nightly.iss) ou [`setup.iss`](packages/windows/setup.iss) -#### FreeBSD +#### Via système de portage FreeBSD (Expérimental) + +> [!NOTE] +> La version pour le system de portage pour FreeBSD n'est actuellement disponible que pour la dernière version étiquetée et est expérimental. Il peut arriver qu'il y ait un retard de version. Pour obtenir une version de développement ou une version personnalisée, la méthode UV est actuellement la seule méthode officiellement prise en charge. Utilité mon FreeBSD Port [Overlay](https://github.com/xgui4/freebsd-ports/tree/master/lce-qt-launcher) diff --git a/docs/fr/UTILISATION.md b/docs/fr/UTILISATION.md index 33e9a61..0296365 100644 --- a/docs/fr/UTILISATION.md +++ b/docs/fr/UTILISATION.md @@ -10,24 +10,14 @@ 1. Créez un environnement virtuel Python à l'aide d'un outil comme UV (si ce n'est pas déjà fait). 2. Configurez VSCode pour utiliser cet environnement virtuel Python. 3. Exécutez « Pyside : Synchroniser l'environnement virtuel et lancer ». - 4. Lancez l'application via le mode débogage de VSCode ou directement le fichier [`src/lce_qt_launcher/main.py`](src/lce_qt_launcher/main.py). ## FreeBSD -```shell - -#!/usr/bin/env sh - -if [ "$1" = "create-venv" ]; then - uv venv --system-site-packages -fi - -if [ "$1" = "sync" ]; then - uv sync --system-certs -fi - -``` +1. Crée un environnemnt python virtuelle avec accès system avec la commande `uv venv --system-site-packages` +2. Synchroniser l'environnement virtuelle avec `uv sync` +3. Activer l'environnement virtuelle (remplace {.sh} par .sh pour bash, .fish pour fish ou rien pour le shell POSIX) `source .venv/bin/activate{.sh}` +4. Executer le programme avec la commande `python src/lce_qt_launcher/main.py` ## NixOS diff --git a/lisezmoi.md b/lisezmoi.md index 8f278ea..e807558 100644 --- a/lisezmoi.md +++ b/lisezmoi.md @@ -3,7 +3,7 @@ [Version anglaise](readme.md) ![LCE-QT-Launcher](assets/io.github.xgui4.lce_qt_launcher.png) -![Capture d'écran du lanceur](.github/screenshots/image.png) +![Capture d'écran du lanceur (version à jour)](.github/screenshots/image.png) > [!WARNING] > Ce lanceur est en cours de développement et ses fonctionnalités peuvent être modifiées ou supprimées à tout moment. @@ -87,6 +87,7 @@ Vous pouvez également télécharger ce dépôt avec la commande `git clone http - Un environnement virtuel avec les bibliothèques requises installées (spécifiées dans le fichier README et le fichier [`pyproject.toml`](pyproject.toml)) - [PySide6](https://pypi.org/project/PySide6/) - [Police Monocraft](https://github.com/IdreesInc/Monocraft) installée +- [Police Miracode](https://github.com/IdreesInc/Miracode) - Pour les systèmes de type UNIX - Un serveur d'affichage ou un compositeur (sauf sur macOS où un serveur propriétaire est utilisé). - Bash (normalement préinstallé sous Linux, mais souvent requis sous *BSD et macOS) diff --git a/packages/linux/dev/PKGBUILD b/packages/linux/dev/PKGBUILD deleted file mode 100644 index 06a6187..0000000 --- a/packages/linux/dev/PKGBUILD +++ /dev/null @@ -1,63 +0,0 @@ -# Maintainer: Xgui4 -pkgname=lce-qt-launcher-dev -pkgver=3076fd1 -pkgrel=1 -pkgdesc="A custom Minecraft LCE Launcher written in Python and Qt with GNU/Linux support in mind. (Nightly Beta Build)" -arch=('any') -url="https://github.com/xgui4/LCE-Qt-Launcher" -license=('GPL-3.0-or-later') -depends=( - 'python' - 'pyside6' - 'python-vdf' - 'python-platformdirs' - 'python-rich' -) -makedepends=( - 'git' - 'bash' - 'curl' - 'python-build' - 'python-installer' - 'python-hatchling' - 'python-wheel' - 'qt6-tools' -) -optdepends=( - 'wine: Allow to launch non-Linux-native Minecraft LCE ports' - 'steam: Allow for Steam integration' - 'steamtinkerlaunch: For better Stream integration on Linux' -) - -replace=("${pkgname%-beta}") -provides=("${pkgname%-dev}" "${pkgname%}") -conflicts=("${pkgname%-nightly}" "${pkgname%-git}" "${pkgname%-stable}") -source=("${pkgname}::git+${url}.git#branch=testing") -sha256sums=('SKIP') - -pkgver() { - cd "$pkgname" - # cutting off 'foo-' prefix that presents in the git tag - git describe --long --always --tags | sed 's/^foo-//;s/\([^-]*-g\)/r\1/;s/-/./g' -} - -build() { - cd "$pkgname" - rm -rf dist/ build/ - /usr/bin/python -m build --wheel --no-isolation -} - -package() { - cd "$pkgname" - /usr/bin/python -m installer --destdir="$pkgdir" dist/*.whl - install -d "$pkgdir/opt/lce_qt_launcher" - cp -r data assets "$pkgdir" - install -Dm644 "data/lce_qt_launcher.ini" "$pkgdir/etc/lce_qt_launcher.ini" - install -Dm644 "packages/io.github.xgui4.lce_qt_launcher.desktop" "$pkgdir/usr/share/applications/io.github.xgui4.lce_qt_launcher.desktop" - install -Dm644 "packages/lce_inst-mime.xml" "$pkgdir/usr/share/mime/packages/io.github.xgui4.lce_qt_launcher.xml" - install -Dm644 "license.md" -t "$pkgdir/usr/share/licenses/$pkgname/" - install -Dm644 "readme.md" "code-of-conduct.md" -t "$pkgdir/usr/share/doc/$pkgname/" - install -Dm644 "packages/io.github.xgui4.lce_qt_launcher.metainfo.xml" "$pkgdir/usr/share/metainfo/io.github.xgui4.lce_qt_launcher.metainfo.xml" - install -Dm644 "assets/io.github.xgui4.lce_qt_launcher.png" "$pkgdir/usr/share/icons/hicolor/128x128/apps/io.github.xgui4.lce_qt_launcher.png" - install -Dm644 "assets/lce_inst.png" "$pkgdir/usr/share/icons/hicolor/128x128/mimetypes/application-x-lce_inst.png" -} diff --git a/packages/linux/nigthly/PKGBUILD b/packages/linux/nigthly/PKGBUILD index 362c728..d410eb5 100644 --- a/packages/linux/nigthly/PKGBUILD +++ b/packages/linux/nigthly/PKGBUILD @@ -1,8 +1,8 @@ # Maintainer: Xgui4 pkgname=lce-qt-launcher-git -pkgver=nightly.r0.g3b0a721 +pkgver=nightly.r0.gef515be pkgrel=1 -pkgdesc="A custom Minecraft LCE Launcher written in Python and Qt with GNU/Linux support in mind. (Nigthly Build)" +pkgdesc="A custom Minecraft LCE Launcher written in Python and Qt with GNU/Linux support in mind. (Nightly/Git Build)" arch=('any') url="https://github.com/xgui4/LCE-Qt-Launcher" license=('GPL-3.0-or-later') @@ -16,7 +16,6 @@ depends=( makedepends=( 'git' 'bash' - 'curl' 'python-build' 'python-installer' 'python-hatchling' @@ -24,20 +23,20 @@ makedepends=( 'qt6-tools' ) optdepends=( - 'wine: Allow to launch non-Linux-native Minecraft LCE ports' + 'wine: Allow to launch non-Linux-native Minecraft LCE ports' 'steam: Allow for Steam integration' 'steamtinkerlaunch: For better Stream integration on Linux' ) provides=("${pkgname%-nightly}" "${pkgname%}") -conflicts=("${pkgname%-dev}" "${pkgname%-stable}") +conflicts=("${pkgname%-dev}" "${pkgname%-git}" "${pkgname%-stable}") source=("${pkgname}::git+${url}.git#branch=nightly") sha256sums=('SKIP') pkgver() { cd "$pkgname" # cutting off 'foo-' prefix that presents in the git tag - git describe --long --tags | sed 's/^foo-//;s/\([^-]*-g\)/r\1/;s/-/./g' + git describe --long --always --tags | sed 's/^foo-//;s/\([^-]*-g\)/r\1/;s/-/./g' } build() { @@ -53,10 +52,10 @@ package() { cp -r data assets "$pkgdir" install -Dm644 "data/lce_qt_launcher.ini" "$pkgdir/etc/lce_qt_launcher.ini" install -Dm644 "packages/io.github.xgui4.lce_qt_launcher.desktop" "$pkgdir/usr/share/applications/io.github.xgui4.lce_qt_launcher.desktop" + install -Dm644 "packages/lce_inst-mime.xml" "$pkgdir/usr/share/mime/packages/io.github.xgui4.lce_qt_launcher.xml" install -Dm644 "license.md" -t "$pkgdir/usr/share/licenses/$pkgname/" install -Dm644 "readme.md" "code-of-conduct.md" -t "$pkgdir/usr/share/doc/$pkgname/" install -Dm644 "packages/io.github.xgui4.lce_qt_launcher.metainfo.xml" "$pkgdir/usr/share/metainfo/io.github.xgui4.lce_qt_launcher.metainfo.xml" - install -Dm644 "packages/lce_inst-mime.xml" "$pkgdir/usr/share/mime/packages/io.github.xgui4.lce_qt_launcher.metainfo.xml" install -Dm644 "assets/io.github.xgui4.lce_qt_launcher.png" "$pkgdir/usr/share/icons/hicolor/128x128/apps/io.github.xgui4.lce_qt_launcher.png" install -Dm644 "assets/lce_inst.png" "$pkgdir/usr/share/icons/hicolor/128x128/mimetypes/application-x-lce_inst.png" } diff --git a/packages/linux/nix/readme b/packages/linux/nix/readme deleted file mode 100644 index 0d21274..0000000 --- a/packages/linux/nix/readme +++ /dev/null @@ -1 +0,0 @@ -the nix package is at the root of the package for technical reason, since this is how a nix package are usally places \ No newline at end of file diff --git a/packages/linux/stable/NOTE b/packages/linux/stable/NOTE deleted file mode 100644 index 2627152..0000000 --- a/packages/linux/stable/NOTE +++ /dev/null @@ -1,3 +0,0 @@ -# Notice - -This `PKGBUILD` is for the upcoming version, so it won't work until the version is released. diff --git a/packages/linux/stable/PKGBUILD b/packages/linux/stable/PKGBUILD index e6b50e0..4f08616 100644 --- a/packages/linux/stable/PKGBUILD +++ b/packages/linux/stable/PKGBUILD @@ -1,8 +1,8 @@ # Maintainer: Xgui4 pkgname=lce-qt-launcher -pkgver=0.0.2.0 +pkgver="0.0.20b0" pkgrel=1 -pkgdesc="A custom Minecraft LCE Launcher written with PySide6 (Python) with GNU/Linux support in mind. (Master/Stable Branch)" +pkgdesc="A custom Minecraft LCE Launcher written in Python and Qt with GNU/Linux support in mind." arch=('any') url="https://github.com/xgui4/LCE-Qt-Launcher" license=('GPL-3.0-or-later') @@ -16,7 +16,6 @@ depends=( makedepends=( 'git' 'bash' - 'curl' 'python-build' 'python-installer' 'python-hatchling' @@ -24,13 +23,13 @@ makedepends=( 'qt6-tools' ) optdepends=( - 'wine: Allow to launch non-Linux-native Minecraft LCE ports' + 'wine: Allow to launch non-Linux-native Minecraft LCE ports' 'steam: Allow for Steam integration' 'steamtinkerlaunch: For better Stream integration on Linux' ) provides=("${pkgname%-stable}" "${pkgname%}") conflicts=("${pkgname%-git}" "${pkgname%-dev}") -source=("${pkgname}::git+${url}.git#tag=beta-v0.2.0") +source=("${pkgname}::git+${url}.git#tag=v0.0.20b0") sha256sums=('SKIP') build() { @@ -46,10 +45,10 @@ package() { cp -r data assets "$pkgdir" install -Dm644 "data/lce_qt_launcher.ini" "$pkgdir/etc/lce_qt_launcher.ini" install -Dm644 "packages/io.github.xgui4.lce_qt_launcher.desktop" "$pkgdir/usr/share/applications/io.github.xgui4.lce_qt_launcher.desktop" - install -Dm644 "packages/lce_inst-mime.xml" "$pkgdir/usr/share/mime/packages/io.github.xgui4.lce_qt_launcher.metainfo.xml" + install -Dm644 "packages/lce_inst-mime.xml" "$pkgdir/usr/share/mime/packages/io.github.xgui4.lce_qt_launcher.xml" install -Dm644 "license.md" -t "$pkgdir/usr/share/licenses/$pkgname/" install -Dm644 "readme.md" "code-of-conduct.md" -t "$pkgdir/usr/share/doc/$pkgname/" install -Dm644 "packages/io.github.xgui4.lce_qt_launcher.metainfo.xml" "$pkgdir/usr/share/metainfo/io.github.xgui4.lce_qt_launcher.metainfo.xml" install -Dm644 "assets/io.github.xgui4.lce_qt_launcher.png" "$pkgdir/usr/share/icons/hicolor/128x128/apps/io.github.xgui4.lce_qt_launcher.png" install -Dm644 "assets/lce_inst.png" "$pkgdir/usr/share/icons/hicolor/128x128/mimetypes/application-x-lce_inst.png" -} +} \ No newline at end of file diff --git a/packages/windows/setup-nigthly.iss b/packages/windows/setup-nigthly.iss index 9f7a5a1..c96d9c7 100644 --- a/packages/windows/setup-nigthly.iss +++ b/packages/windows/setup-nigthly.iss @@ -3,7 +3,7 @@ ; Non-commercial use only #define MyAppName "LCE Qt Launcher (Nightly)" -#define MyAppVersion "0.0.20b0" +#define MyAppVersion "nighly" #define MyAppPublisher "Xgui4" #define MyAppURL "https://github.com/xgui4/lce-qt-launcher" #define MyAppExeName "main.exe" diff --git a/packages/windows/setup.iss b/packages/windows/setup.iss index 70b1bf3..96f38d4 100644 --- a/packages/windows/setup.iss +++ b/packages/windows/setup.iss @@ -24,8 +24,18 @@ AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} DefaultDirName={autopf}\{#MyAppName} -DisableDirPage=yes -UninstallDisplayIcon={app}\{#MyAppExeName} +DefaultGroupName={#MyAppName} +LicenseFile=..\..\license.md +InfoBeforeFile=..\..\code-of-conduct.md +InfoAfterFile=..\..\readme.md +; Uncomment the following line to run in non administrative install mode (install for current user only). +;PrivilegesRequired=lowest +PrivilegesRequiredOverridesAllowed=dialog +OutputBaseFilename=LCE-Qt-Launcher-Windows-Setup +SetupIconFile=..\..\assets\setup.ico +SolidCompression=yes +WizardStyle=modern dark polar +; ArchiveExtraction=full ; "ArchitecturesAllowed=x64compatible" specifies that Setup cannot run ; on anything but x64 and Windows 11 on Arm. ArchitecturesAllowed=x64compatible @@ -34,18 +44,7 @@ ArchitecturesAllowed=x64compatible ; meaning it should use the native 64-bit Program Files directory and ; the 64-bit view of the registry. ArchitecturesInstallIn64BitMode=x64compatible -ChangesAssociations=yes -LicenseFile=..\..\license.md -InfoBeforeFile=..\..\code-of-conduct.md -InfoAfterFile=..\..\lisezmoi.md -; Uncomment the following line to run in non administrative install mode (install for current user only). -;PrivilegesRequired=lowest -PrivilegesRequiredOverridesAllowed=dialog -OutputDir=. -OutputBaseFilename=LCE-Qt-Launcher-Windows-Setup -SetupIconFile=..\..\assets\setup.ico -SolidCompression=yes -WizardStyle=modern dark polar +; SetupArchitecture=x64 ; for the inno 7 preview [Languages] Name: "english"; MessagesFile: "compiler:Default.isl" @@ -55,14 +54,15 @@ Name: "french"; MessagesFile: "compiler:Languages\French.isl" Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] -Source: "..\..\dist\main.dist\{#MyAppExeName}"; DestDir: "{app}"; Flags: ignoreversion -Source: "..\..\dist\main.dist\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs +; NOTE: Use the "issigverify" flag or the "Hash" parameter to verify downloads +Source: "https://github.com/xgui4/LCE-Qt-Launcher/releases/download/v0.0.20b0/LCE-Qt-Launcher-Windows.zip"; DestDir: "{app}"; DestName: "LCE-Qt-Launcher-Windows.zip"; ExternalSize: "186646528"; Flags: ignoreversion external download extractarchive recursesubdirs createallsubdirs +Source: "lce_inst.ico"; DestDir: "{app}"; Flags: ignoreversion ; NOTE: Don't use "Flags: ignoreversion" on any shared system files [Registry] Root: HKA; Subkey: "Software\Classes\{#MyAppAssocExt}\OpenWithProgids"; ValueType: string; ValueName: "{#MyAppAssocKey}"; ValueData: ""; Flags: uninsdeletevalue Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}"; ValueType: string; ValueName: ""; ValueData: "{#MyAppAssocName}"; Flags: uninsdeletekey -Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyAppExeName},0" +Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\lce_inst.ico" Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#MyAppExeName}"" ""%1""" [Icons] diff --git a/pyproject.toml b/pyproject.toml index a5be2ff..da7e15e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ build-backend = "hatchling.build" [project] name = "LCE-Qt-Launcher" version = "0.0.20a0" -description = "This is a custom Free/Libre Minecraft LCE Launcher written in Python and Qt. (Nightly Build)" +description = "A custom Free/Libre Minecraft LCE Launcher written with PySide6 (Python for Qt 6." requires-python = ">3.10, <3.13" license = "GPL-3.0-or-later" readme = "readme.md" @@ -38,7 +38,6 @@ path = "hatch_build.py" [tool.hatch.envs.default.scripts] packages = "python packages.py" -run-app = "python run.py" [tool.pyright] reportImportCycles="hint" diff --git a/readme.md b/readme.md index 2de5d05..b019acc 100644 --- a/readme.md +++ b/readme.md @@ -3,7 +3,7 @@ [French Version](lisezmoi.md) ![LCE-QT-Launcher](assets/io.github.xgui4.lce_qt_launcher.png) -![Screnshot of the launcher](.github/screenshots/image.png) +![Screnshot of the launcher (updated version)](.github/screenshots/image.png) > [!WARNING] > This launcher is work in progress and its feature could be changes or remove at any time. @@ -88,6 +88,7 @@ You can also, downloading this repo with the command `git clone https://github.c - with a virtual env with the required library install (specified in the readme and [`pyproject.toml`](pyproject.toml)) - [PySide6](https://pypi.org/project/PySide6/) - [Monocraft Font](https://github.com/IdreesInc/Monocraft) installed +- [Miracode Font](https://github.com/IdreesInc/Miracode) - For UNIX like system - A display server or compositor (Except on MacOS where it use its own proprietary one) - Bash (normally pre-installed on Linux but often demand installation in *BSD and MacOS) diff --git a/run.py b/run.py deleted file mode 100644 index b0630c5..0000000 --- a/run.py +++ /dev/null @@ -1,7 +0,0 @@ -import os -import subprocess - -if os.name == "posix": - _ = subprocess.run("./scripts/run.sh", check=True) -if os.name == "nt": - _ = subprocess.run("scripts\\run.cmd", check=True, shell=True) diff --git a/scripts/build.sh b/scripts/build.sh index 15bdcdf..04211b1 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -5,43 +5,48 @@ set -e QT_RESSOURCE="res.qrc" UI_FILES=("form" "system_info" "instance" "settingDialog" "about" "contentInstaller") -if [[ $(uname -s) != "FreeBSD" ]]; then - if command -v pyside6-rcc &> /dev/null; then - echo "Starting Compilaton of Qt Ressource" - pyside6-rcc $QT_RESSOURCE -o src/lce_qt_launcher/res_rc.py - echo "done" - - for ui in "${UI_FILES[@]}"; do - echo "Compiling ${ui}.ui" - OUT="src/lce_qt_launcher/ui_${ui}.py" - pyside6-uic -g python "src/${ui}.ui" -o "$OUT" - echo "done" - sed -i "s/^import res_rc/from . import res_rc/g" "$OUT" - echo "fixed the import done" - done - else - echo "Starting Compilaton of Qt Ressource" - /usr/lib/qt6/rcc -g python $QT_RESSOURCE -o src/lce_qt_launcher/res_rc.py - echo "done" - - for ui in "${UI_FILES[@]}"; do - echo "Compiling ${ui}.ui" - OUT="src/lce_qt_launcher/ui_${ui}.py" - /usr/lib/qt6/uic -g python "src/${ui}.ui" -o "$OUT" - echo "done" - sed -i "s/^import res_rc/from . import res_rc/g" "$OUT" - echo "fixed the import done" - done +RCC="pyside6-rcc" +UIC="pyside6-ui" + +fix_import() { + if [[ $(uname -o) == "GNU/Linux" ]]; then + sed -i 's/^import res_rc/from . import res_rc/g' "$1" + else + sed -i.bak 's/^import res_rc/from . import res_rc/g' "$1" + rm "$1.bak" fi -else - echo "Starting Compilaton of Qt Ressource" - /usr/local/PySide6/bin/rcc -g python $QT_RESSOURCE -o src/lce_qt_launcher/res_rc.py +} + +find_qt_tool() { + if command -v pyside6-rcc &> /dev/null; then + RCC="pyside6-rcc" + UIC="pyside6-uic" + elif command -v /usr/local/bin/pyside6-rcc &> /dev/null; then + RCC="/usr/local/bin/pyside6-rcc" + UIC="/usr/local/bin/pyside6-uic" + elif command -v /usr/lib/qt6/rcc &> /dev/null; then + RCC="/usr/lib/qt6/rcc -g python" + UIC="/usr/lib/qt6/uic -g python" + elif command -v /usr/local/PySide6/bin/rcc &> /dev/null; then + RCC="/usr/local/PySide6/bin/rcc -g python" + UIC="/usr/local/PySide6/bin/uic -g python" + fi +} + +echo "finding the correct path for the Qt compilers" +find_qt_tool +echo "done" + +echo "Starting Compilaton of Qt Ressource" +$RCC -g python $QT_RESSOURCE -o src/lce_qt_launcher/res_rc.py +echo "done" + +for ui in "${UI_FILES[@]}"; do + echo "Compiling ${ui}.ui" + OUT="src/lce_qt_launcher/ui_${ui}.py" + $UIC "src/${ui}.ui" -o "$OUT" echo "done" - - for ui in "${UI_FILES[@]}"; do - echo "Compiling ${ui}.ui" - OUT="src/lce_qt_launcher/ui_${ui}.py" - /usr/local/PySide6/bin/uic -g python "src/${ui}.ui" -o "$OUT" - echo "done" - done -fi \ No newline at end of file + echo "fixing the import" + fix_import "$OUT" + echo "done" +done \ No newline at end of file diff --git a/scripts/packages.sh b/scripts/packages.sh index 4f301a6..1cb9787 100755 --- a/scripts/packages.sh +++ b/scripts/packages.sh @@ -4,10 +4,40 @@ set -e scripts/prepare.sh -echo "Beginning the Nuitka compilation" -hatch run python -m nuitka --standalone --assume-yes-for-download --output-dir=dist src/lce_qt_launcher/main.py -echo "done" +echo "NOTE : this new version of the packages helper script +for UNIX like system is experiental and a work in progrss +The script in nightly or in other branch/channel might be +more up to date." -echo "Compressing the Nuitka compressions" -tar -czf LCE-Qt-Launcher-Linux.tar.gz -C dist/main.dist . -echo "done" \ No newline at end of file +echo "1. Ntuika portable build" +echo "2. Arch Packages (Require Arch)" +echo "3. Flatpak. (Hightly experiental)" +echo "Choose a option (between 1 and 3):" + +read -r user_input + +if [[ $user_input == "1" ]]; then + echo "Beginning the Nuitka compilation" + hatch run python -m nuitka --standalone --assume-yes-for-download --output-dir=dist src/lce_qt_launcher/main.py + echo "done" + + echo "Compressing the Nuitka compressions" + tar -czf LCE-Qt-Launcher-Linux.tar.gz -C dist/main.dist . + echo "done" +elif [[ $user_input == "2" ]]; then + cd packages/linux + + echo "stable (0) or nigthly (git)" + echo "Choose a channel (0 or 1):" + read -r user_input + if [[ $user_input == "0" ]]; then + cd stable + makepkg -s + elif [[ $user_input == "1" ]]; then + cd "dev" + makepkg -s + fi +elif [[ $user_input == "3" ]]; then + cd packages/flatpak + flatpak-builder --user --install build-dir io.github.xgui4 .lce_qt_launcher.yml --install-deps-from=flathub +fi \ No newline at end of file diff --git a/scripts/run.cmd b/scripts/run.cmd deleted file mode 100644 index c3879e1..0000000 --- a/scripts/run.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@echo off - -echo "Activate the python venv" -call .venv\Scripts\activate.bat || exit /b 1 -echo "done" - -python src\lce_qt_launcher\main.py || exit /b 1 \ No newline at end of file diff --git a/scripts/run.sh b/scripts/run.sh deleted file mode 100755 index c9d3261..0000000 --- a/scripts/run.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash - -set -e - -echo "Activate the python venv" -# shellcheck source=/dev/null -source .venv/bin/activate -echo "done" - -src/lce_qt_launcher/main.py \ No newline at end of file diff --git a/src/lce_qt_launcher/views/launcher.py b/src/lce_qt_launcher/views/launcher.py index 10d02a4..64eb185 100644 --- a/src/lce_qt_launcher/views/launcher.py +++ b/src/lce_qt_launcher/views/launcher.py @@ -320,9 +320,6 @@ class LauncherView(QMainWindow): self.ui.actionLoad360RevivedInstance.setEnabled(False) # Due to dcma it is disabled self.ui.actionLoad360RevivedInstance.setText("360Revived (Disabled due to DMCA)") - self.ui.actionLoadRevelationsInstance.setEnabled(False) # Due to dcma it is disabled - self.ui.actionLoadRevelationsInstance.setText("Revelations (Disabled due to DMCA)") - # hellishEndsJson = QFile(":/instances/hellishends.lce_inst") # if not hellishEndsJson.open(QIODevice.OpenModeFlag.ReadOnly): # term_service.print_error("Cannot found or open Helish Ends Instance") @@ -345,16 +342,16 @@ class LauncherView(QMainWindow): # load360RevivedInstance = lambda : self.loadInstanceCommand(data_360, instanceManager) # self.ui.actionLoad360RevivedInstance.triggered.connect(load360RevivedInstance) - # revelationJson = QFile(":/instances/revelations.lce_inst") - # if not revelationJson.open(QIODevice.OpenModeFlag.ReadOnly): - # term_service.print_error("Cannot found or open revelations Instance") - # self.ui.actionLoadRevelationsInstance.setEnabled(False) - # return None - # else: - # raw_text_rev = bytes(revelationJson.readAll().data()).decode('utf-8') - # data_rev = json.loads(raw_text_rev) - # loadRevelationInstance = lambda : self.loadInstanceCommand(data_rev, instanceManager) - # self.ui.actionLoadRevelationsInstance.triggered.connect(loadRevelationInstance) + revelationJson = QFile(":/instances/revelations.lce_inst") + if not revelationJson.open(QIODevice.OpenModeFlag.ReadOnly): + term_service.print_error("Cannot found or open revelations Instance") + self.ui.actionLoadRevelationsInstance.setEnabled(False) + return None + else: + raw_text_rev = bytes(revelationJson.readAll().data()).decode('utf-8') + data_rev = json.loads(raw_text_rev) + loadRevelationInstance = lambda : self.loadInstanceCommand(data_rev, instanceManager) + self.ui.actionLoadRevelationsInstance.triggered.connect(loadRevelationInstance) aetherJson = QFile(":/instances/aether.lce_inst") if not aetherJson.open(QIODevice.OpenModeFlag.ReadOnly): diff --git a/uv.lock b/uv.lock index a8eda39..5202cfd 100644 --- a/uv.lock +++ b/uv.lock @@ -98,11 +98,11 @@ wheels = [ [[package]] name = "certifi" -version = "2026.4.22" +version = "2026.5.20" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/25/ee/6caf7a40c36a1220410afe15a1cc64993a1f864871f698c0f93acb72842a/certifi-2026.4.22.tar.gz", hash = "sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580", size = 137077, upload-time = "2026-04-22T11:26:11.191Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/ce/ee2ecad540810a79593028e88299baeae54d346cc7a0d94b6199988b89b1/certifi-2026.5.20.tar.gz", hash = "sha256:69dea482ab64caa7b9f6aba1c6bf48bb6a5448d1c0f1b17ab42ad8c763a5344d", size = 135422, upload-time = "2026-05-20T11:46:50.073Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/22/30/7cd8fdcdfbc5b869528b079bfb76dcdf6056b1a2097a662e5e8c04f42965/certifi-2026.4.22-py3-none-any.whl", hash = "sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a", size = 135707, upload-time = "2026-04-22T11:26:09.372Z" }, + { url = "https://files.pythonhosted.org/packages/59/8c/57e832b7af6d7c5abe66eb3fbe3a3a32f4d11ea23a1aa7131371035be991/certifi-2026.5.20-py3-none-any.whl", hash = "sha256:3c52e209ba0a4ad7aebe60436a4ab349c39e1e602e8c134221e546902ad25897", size = 134134, upload-time = "2026-05-20T11:46:48.578Z" }, ] [[package]] @@ -141,14 +141,14 @@ wheels = [ [[package]] name = "click" -version = "8.3.3" +version = "8.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/bb/63/f9e1ea081ce35720d8b92acde70daaedace594dc93b693c869e0d5910718/click-8.3.3.tar.gz", hash = "sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2", size = 328061, upload-time = "2026-04-22T15:11:27.506Z" } +sdist = { url = "https://files.pythonhosted.org/packages/23/e4/796662cd90cf80e3a363c99db2b88e0e394b988a575f60a17e16440cd011/click-8.4.0.tar.gz", hash = "sha256:638f1338fe1235c8f4e008e4a8a254fb5c5fbdcbb40ece3c9142ebb78e792973", size = 350843, upload-time = "2026-05-17T00:47:58.425Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ae/44/c1221527f6a71a01ec6fbad7fa78f1d50dfa02217385cf0fa3eec7087d59/click-8.3.3-py3-none-any.whl", hash = "sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613", size = 110502, upload-time = "2026-04-22T15:11:25.044Z" }, + { url = "https://files.pythonhosted.org/packages/ee/ae/8e92f8058baf87f6c7d86ee7e457668690195cc77efedb8d3797a06e3940/click-8.4.0-py3-none-any.whl", hash = "sha256:40c50b7c6c6adac2823d411041ec84f3f103f1b280d5e9ce0d7f998995832f81", size = 116147, upload-time = "2026-05-17T00:47:56.842Z" }, ] [[package]] @@ -730,11 +730,11 @@ wheels = [ [[package]] name = "trove-classifiers" -version = "2026.5.7.17" +version = "2026.5.20.19" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/35/68/175e7c07c5be13200387d5c0995b0da1e198e360047c08eb17d1002fcd92/trove_classifiers-2026.5.7.17.tar.gz", hash = "sha256:a04a48f8f0a787cb996514d3969ac7608aa3c60cb15d073c1e02801e60533e80", size = 17041, upload-time = "2026-05-07T17:48:01.931Z" } +sdist = { url = "https://files.pythonhosted.org/packages/63/ee/4900b7d32cfe5bf40c31c3e65205922f65c6dceb32fc3f855711639d4025/trove_classifiers-2026.5.20.19.tar.gz", hash = "sha256:6e611993987ca9326968ad70452733dadd31471599d39896045b28970a9bb81e", size = 17036, upload-time = "2026-05-20T19:17:44.974Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7b/e3/d81b065a2d866a33a541ac63a2a4cc5737e03ce2379ac3191c98bb8867e3/trove_classifiers-2026.5.7.17-py3-none-any.whl", hash = "sha256:5ec0800de5e2ddbd7c663cb4c0c15328f132dc168813897c18866c5c7b93db33", size = 14201, upload-time = "2026-05-07T17:48:00.488Z" }, + { url = "https://files.pythonhosted.org/packages/15/96/9666c8ba2e7695e804b2b2129e45202320d2a8b5e2c9f6e5e837a61708f5/trove_classifiers-2026.5.20.19-py3-none-any.whl", hash = "sha256:7a173916960d0635fcbf610550d2c27bcc9125164d6f397adf46fc1ef6455c7c", size = 14224, upload-time = "2026-05-20T19:17:42.949Z" }, ] [[package]] @@ -760,28 +760,28 @@ wheels = [ [[package]] name = "uv" -version = "0.11.14" +version = "0.11.15" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/30/a3/be4a946c7c2fc4094c020c8f7d8bd0a739bad55ebe4e2817d6e2b1bc6bff/uv-0.11.14.tar.gz", hash = "sha256:0ea006a117b586b2681b6dfd9703a540d2ad2a136ec0f48d272767e599cc3dfb", size = 4130699, upload-time = "2026-05-12T18:00:37.321Z" } +sdist = { url = "https://files.pythonhosted.org/packages/da/34/609d5d01ba21dc8f0974610ca7802fbb2c946a0c38665cfe5c5aeddbefb5/uv-0.11.15.tar.gz", hash = "sha256:755f959ec6a2fd8ccb6ee76ad90ab759d2eb1f4797444078645dd1ee4bca92d6", size = 4159545, upload-time = "2026-05-18T19:57:48.133Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f7/15/9b2138b16eb1fa8c2cd84b1037ad10c38b3acc36ce96c6d27000bfb7e716/uv-0.11.14-py3-none-linux_armv6l.whl", hash = "sha256:78411a883f230a710af19f2ac6e6f0ba8eae90f0e5af4605f923fd367539fff4", size = 23545199, upload-time = "2026-05-12T18:01:34.526Z" }, - { url = "https://files.pythonhosted.org/packages/75/81/c678e8b9a8e624f9c338c66cd57dd9cfc6b5a0501ad3c87fd0cc0bf8850a/uv-0.11.14-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:078f2e63da89c8fcf6d578f02156045c5990c57d76464aab3f3f798d3fff95cd", size = 22957064, upload-time = "2026-05-12T18:00:54.225Z" }, - { url = "https://files.pythonhosted.org/packages/f7/ad/95fbd15b23f26f36d0cfb0ddf159b9602a1b1c0feced60a7f98385e919f1/uv-0.11.14-py3-none-macosx_11_0_arm64.whl", hash = "sha256:dcdad43d52c130e3159e84ab1844e04d819d2c4a2495a687d27f80d560a3650e", size = 21678307, upload-time = "2026-05-12T18:00:57.132Z" }, - { url = "https://files.pythonhosted.org/packages/8b/cb/b3da1c4d95d6dd507896bca16dbd643118013b2b151f5f35a08d3391728c/uv-0.11.14-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:9923da7c63d70de9fe71829503d7e7ebfd6304e804d7232aad5f716e190db25b", size = 23353409, upload-time = "2026-05-12T18:01:27.512Z" }, - { url = "https://files.pythonhosted.org/packages/51/ad/78c6b8d6bcc04c5043b50631e9b413422a03a0bd7c4a997748f8e9cbac25/uv-0.11.14-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:3b0759ca504e48dcd4fafb1a61ef69aeb24c5a60fbf5f504a7873c8db1b24718", size = 23103964, upload-time = "2026-05-12T18:01:31.094Z" }, - { url = "https://files.pythonhosted.org/packages/0f/7d/acb66e09bc54a74e4288e996d841af04d88588fd6bdbfbab2468ab7169a7/uv-0.11.14-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:78b51b117549ee4db7197ea5ece0848cecd443e464fb9dff9f254cdc1e4ed96f", size = 23104638, upload-time = "2026-05-12T18:01:10.093Z" }, - { url = "https://files.pythonhosted.org/packages/31/0a/8497be61accdb8e56d02e11edd3ac471466259420e0bd9c05c1966df134a/uv-0.11.14-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a1ddbe8a2ab160affc179e9c3a40913b23a08cdf55254e1f3829cc22a51a0d8d", size = 24625888, upload-time = "2026-05-12T18:01:17.192Z" }, - { url = "https://files.pythonhosted.org/packages/95/91/f730799fd20a45777b255e20cf9f648a4e4e0979bf65e87a8633197cf7d9/uv-0.11.14-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f3005a2db1e8d72e125630d4f22ac4ceddb2c033e1f9b94b7f3ea38ebac46dd6", size = 25445231, upload-time = "2026-05-12T18:00:40.012Z" }, - { url = "https://files.pythonhosted.org/packages/f5/4d/106463fc27e63e402aec2e791774dac2db5bd5e1c36cdcf38125aa97ab1c/uv-0.11.14-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5c8f9ea36274ef2f9d24f0522085e280844172e901d9213f66a21b212266706", size = 24571961, upload-time = "2026-05-12T18:00:43.713Z" }, - { url = "https://files.pythonhosted.org/packages/12/4d/163fe746b97bd1129627e8b1f943e17583ddc143eaab532d56a799a9ba5a/uv-0.11.14-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:379e64b236cf55f762a8308d7efe4365d5296ba29f3a4868761bc45b4e915a71", size = 24718523, upload-time = "2026-05-12T18:01:06.587Z" }, - { url = "https://files.pythonhosted.org/packages/19/fb/7a3673494a0cf70267559166398f9c50c4925ff20122f99a28d6c5a80d83/uv-0.11.14-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:29c12a562441fc2d604e6920c558cacce74a55f889468708683a79b35a6e18a1", size = 23454821, upload-time = "2026-05-12T18:00:51.166Z" }, - { url = "https://files.pythonhosted.org/packages/bb/43/6358394a567d865f3a5ce27b1e0d939549911e36d9b59f0c545a167f92f7/uv-0.11.14-py3-none-manylinux_2_31_riscv64.musllinux_1_1_riscv64.whl", hash = "sha256:e84069681c0334e07cbc7f114eb09d7fe1335e1db0297a66dbca80a1b393fe6d", size = 24087843, upload-time = "2026-05-12T18:00:47.272Z" }, - { url = "https://files.pythonhosted.org/packages/ef/f6/7d0ae1e1f52b85057ca24d8876d6a4cc87b541ea6aca627fe36594c06099/uv-0.11.14-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:b15bf7c146e38d7c938d3a207115d5fdd8ef764fe1f866c225b1bed27e88da1e", size = 24147611, upload-time = "2026-05-12T18:01:20.499Z" }, - { url = "https://files.pythonhosted.org/packages/5a/a2/511ad0c5da5697fd990b99569425b62b81cbc3458c35acc845211b55d6b5/uv-0.11.14-py3-none-musllinux_1_1_i686.whl", hash = "sha256:ddda5c5e41097814adac535c74851bae55e8097b9afc79aeae7fcffd8d86c06d", size = 23920348, upload-time = "2026-05-12T18:01:24.033Z" }, - { url = "https://files.pythonhosted.org/packages/6b/b6/7084e3401b1f1020f215a125136eec1ed2bd541e10a5fea1625515579599/uv-0.11.14-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:e54326703f1eca83a6fd73275e0f398b16b7d3f81531bf58899c2869bc403f6c", size = 24928981, upload-time = "2026-05-12T18:01:13.961Z" }, - { url = "https://files.pythonhosted.org/packages/4d/6a/7e81729fe729889c8cc63bbf64291734359bd7f6ba84852dc0504453511d/uv-0.11.14-py3-none-win32.whl", hash = "sha256:b384d873d0d18552c7524226125efd3965d921b7134c2f476c333771beb733e1", size = 22573503, upload-time = "2026-05-12T18:00:34.36Z" }, - { url = "https://files.pythonhosted.org/packages/94/5d/f8905f9af5cd46af2a688b2246dbb5a4d95b8557eeffd7f241e037659d9e/uv-0.11.14-py3-none-win_amd64.whl", hash = "sha256:f0a8b58b38e984241bca5d7a5a47bf9ffe1ca2ab392a640887db8a04c4a9ec95", size = 25175590, upload-time = "2026-05-12T18:01:00.38Z" }, - { url = "https://files.pythonhosted.org/packages/04/cb/7333d08d944f3018eb89242cd5e646e7b37faa1b567faeaf9254a8b59d53/uv-0.11.14-py3-none-win_arm64.whl", hash = "sha256:6a13e7e064563050c6606b3fd77091d427cdbdc5938b6f134baf8d8ec79bfdb7", size = 23594775, upload-time = "2026-05-12T18:01:03.55Z" }, + { url = "https://files.pythonhosted.org/packages/a6/7c/dcc230c5911884d8848145dabcac8fb95a5ed6f9fe1c57fae8242618f28a/uv-0.11.15-py3-none-linux_armv6l.whl", hash = "sha256:83b04ab49514a0a761ffedb36a748ee81f87746671e72088e5f32c9585e5f1a9", size = 23110183, upload-time = "2026-05-18T19:57:23.051Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f3/efd4e044b60eb9c3c12ee386be098d56c335538ccec7caa49349cfba9344/uv-0.11.15-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b6cae61f737be075b90be9e3f07d961072aed7019f4c9b8ed5c5d41c4d6cade3", size = 22637941, upload-time = "2026-05-18T19:57:26.752Z" }, + { url = "https://files.pythonhosted.org/packages/a6/b8/48627f895a1569e576822e0a8416aa4797eb4a4551de21a4ad97b9b5819d/uv-0.11.15-py3-none-macosx_11_0_arm64.whl", hash = "sha256:9accae33619a9166e5c48531deb455d672cfb89f9357a00975e669c76b0bd49f", size = 21258803, upload-time = "2026-05-18T19:57:05.473Z" }, + { url = "https://files.pythonhosted.org/packages/af/50/4bc8a148274feabee2d9c9f1fa15009e10c0228dfe57981ee3ea2ef1d481/uv-0.11.15-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:c0cf52cd6d50bb9e05e2d968f45f80761107e4cbc8d4a26d9758f9d8274aaec1", size = 23066178, upload-time = "2026-05-18T19:57:33.058Z" }, + { url = "https://files.pythonhosted.org/packages/a9/56/139fc3bec9a8b0a25bfe2196123adb9f16124da437bf4fbcf0d21cfcafb2/uv-0.11.15-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:49dc6ed70bff00937384f96cdc4b1a4742d18e5504ec2c4a1214dba2dee5687a", size = 22705332, upload-time = "2026-05-18T19:57:36.714Z" }, + { url = "https://files.pythonhosted.org/packages/ca/b0/b18b3dd204f8c213236a1ebd148e009861637129a8cce34df0e9aa22ed40/uv-0.11.15-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:adb9a89352539fdd8f7cd5f9966cf9f94fc5b98e0ccdf5003a04123dc6423bec", size = 22707534, upload-time = "2026-05-18T19:58:04.117Z" }, + { url = "https://files.pythonhosted.org/packages/76/36/3ca09f95572df99d361b49c96b1297149e96e120d8d1ecf074095a4b6da4/uv-0.11.15-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40ff67e3f8e8a7533781a2e892a534975a93acb83ea35460e64e7b2bf2111774", size = 24096607, upload-time = "2026-05-18T19:58:11.625Z" }, + { url = "https://files.pythonhosted.org/packages/64/be/3bdee21a296bbf5336a526e3613d0e7d4538dacc39c62d7fcba55d15f6b0/uv-0.11.15-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c6463a299ed7e6b5a800ed6f108af8e1588352629424133ddef7572b0e1e1118", size = 25082562, upload-time = "2026-05-18T19:57:40.69Z" }, + { url = "https://files.pythonhosted.org/packages/cd/73/f371f3689ffe741066468d001d85f739fc4b5574de83b639ef19b5e8a7f4/uv-0.11.15-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:68c1e62d4b78578b90b833553286b65d6a7e327537716441068583ba652ec4f5", size = 24253391, upload-time = "2026-05-18T19:57:18.47Z" }, + { url = "https://files.pythonhosted.org/packages/d3/16/fe392d618af6b00c064b3e718d585dcf791546a77c5123a5bec07ce53a0a/uv-0.11.15-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98edf1bdaf82447014852051d93e3ee95012509c567bf057fd117e6bdbd9a807", size = 24415871, upload-time = "2026-05-18T19:58:19.651Z" }, + { url = "https://files.pythonhosted.org/packages/6e/24/2e92a052fb6334fcd746d1c7cb57847c204b118c84f5da53c0f9e129f7b7/uv-0.11.15-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:be8f76d25bcf4c92bb384240ac1bf9aa7f51063d0bdeca4c9cf0ec3ed8b145e0", size = 23159007, upload-time = "2026-05-18T19:57:10.653Z" }, + { url = "https://files.pythonhosted.org/packages/3d/2e/6923d0658d164bb2c435ed1868aa2d49b3074594679917a001ff92dc95bb/uv-0.11.15-py3-none-manylinux_2_31_riscv64.musllinux_1_1_riscv64.whl", hash = "sha256:f9f4fbbf4fe485522054f3c7496c6e8e932d6436e4200ff3daf718db0b7c7bd5", size = 23769385, upload-time = "2026-05-18T19:58:15.856Z" }, + { url = "https://files.pythonhosted.org/packages/a4/99/7e34cd949e57360814e8064cc9fb7104df445d0f6a663504e5f7473480aa/uv-0.11.15-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:0ed920e896b2fd13a35031707e307e42fbb2681458b967440a17272d86d49137", size = 23860973, upload-time = "2026-05-18T19:57:55.575Z" }, + { url = "https://files.pythonhosted.org/packages/28/98/8fe1f5f9d816e94569a0298dd8e0936801097625fa1952162951f0d628b6/uv-0.11.15-py3-none-musllinux_1_1_i686.whl", hash = "sha256:41d907611f3e6a13262807fd7f0a17849f76285ca80f536f6b3943732bdc6656", size = 23431392, upload-time = "2026-05-18T19:57:59.814Z" }, + { url = "https://files.pythonhosted.org/packages/cc/6b/76a1ce2fa860026913a5941700cdc7d715fce9c3277a3fa3489cf2523ca0/uv-0.11.15-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:e3b68f8bf1a4568710f77e5bda9182ce7682811d89a8e7468c22460e032b234d", size = 24519478, upload-time = "2026-05-18T19:57:51.165Z" }, + { url = "https://files.pythonhosted.org/packages/43/60/1d58e8a05718cb50494763115710b73846cacb651fd735d285233fd72c59/uv-0.11.15-py3-none-win32.whl", hash = "sha256:8e2da3076761086a5b76869c3f38ef0509c836046ef41ddd19485dfd7271dca9", size = 22020178, upload-time = "2026-05-18T19:58:07.64Z" }, + { url = "https://files.pythonhosted.org/packages/55/53/40fcefcb348af660488597ed3c01363df7344e60611f8883750dc596f5c6/uv-0.11.15-py3-none-win_amd64.whl", hash = "sha256:cc3915ab291a1ecaf31de05f5d8bd70d09c66fe9911a53f70d9efa62ff0dbd8a", size = 24668779, upload-time = "2026-05-18T19:57:44.894Z" }, + { url = "https://files.pythonhosted.org/packages/e5/7d/fa3a9960c95af9bbe2a629048760d0b9b4fead8ccd4f2235af747ec7cdf0/uv-0.11.15-py3-none-win_arm64.whl", hash = "sha256:4f39426a13dee24897aed60c4b98058c66f18bd983885ac5f4a54a04b24fbddf", size = 23198178, upload-time = "2026-05-18T19:57:14.68Z" }, ] [[package]] @@ -811,9 +811,9 @@ wheels = [ [[package]] name = "zipp" -version = "3.23.1" +version = "4.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/30/21/093488dfc7cc8964ded15ab726fad40f25fd3d788fd741cc1c5a17d78ee8/zipp-3.23.1.tar.gz", hash = "sha256:32120e378d32cd9714ad503c1d024619063ec28aad2248dc6672ad13edfa5110", size = 25965, upload-time = "2026-04-13T23:21:46.6Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b9/d8/eab98a517c14134c0b2eb4e2387bc5f457334293ec5d2dd3857ec2966802/zipp-4.1.0.tar.gz", hash = "sha256:4cb57381f544315db7688e976e922a2b18cdb513d21cc194eb42232ba2a3e602", size = 26214, upload-time = "2026-05-18T20:08:57.967Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/08/8a/0861bec20485572fbddf3dfba2910e38fe249796cb73ecdeb74e07eeb8d3/zipp-3.23.1-py3-none-any.whl", hash = "sha256:0b3596c50a5c700c9cb40ba8d86d9f2cc4807e9bedb06bcdf7fac85633e444dc", size = 10378, upload-time = "2026-04-13T23:21:45.386Z" }, + { url = "https://files.pythonhosted.org/packages/3a/13/547360d81e6d88d58492968ffda9f9542854f11310ee556fef14260cc886/zipp-4.1.0-py3-none-any.whl", hash = "sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f", size = 10238, upload-time = "2026-05-18T20:08:57.045Z" }, ]