diff --git a/.gitea/workflows/build-deployment-images.yaml b/.gitea/workflows/build-deployment-images.yaml index 746f228..8babd1e 100644 --- a/.gitea/workflows/build-deployment-images.yaml +++ b/.gitea/workflows/build-deployment-images.yaml @@ -75,6 +75,8 @@ jobs: --push \ --platform "${{ inputs.platform }}" \ --build-arg IMAGE_ID="${{ inputs.target }}.${SHORT_SHA}" \ + --build-arg IMAGE_VERSION="${VERSION}" \ + --build-arg IMAGE_REVISION="${SHORT_SHA}" \ -f services/backend/Dockerfile \ --target "${{ inputs.target }}" \ -t "${{ inputs.registry }}/hotpocket/backend:${{ inputs.target }}-${VERSION}-${BUILD}" \ diff --git a/.gitea/workflows/development.yaml b/.gitea/workflows/development.yaml index 2f9a221..2880087 100644 --- a/.gitea/workflows/development.yaml +++ b/.gitea/workflows/development.yaml @@ -68,7 +68,7 @@ jobs: set -x ( - cd deployment/hotpocket.bthlab ; + cd deployment/hotpocket_bthlab ; export KUBECONFIG="/opt/k8s/etc/kubeconfig" ; /opt/k8s/bin/kubectl config use-context ${KUBERNETES_CLUSTER} ; /opt/k8s/bin/kubectl -n ${KUBERNETES_NAMESPACE} apply -f resources/backend/config-map-local-deps.yaml ; @@ -83,7 +83,7 @@ jobs: run: | set -x ( - cd deployment/hotpocket.bthlab ; + cd deployment/hotpocket_bthlab ; export KUBECONFIG="/opt/k8s/etc/kubeconfig" ; /opt/k8s/bin/kubectl config use-context ${KUBERNETES_CLUSTER} ; /opt/k8s/bin/kustomize edit set image hotpocket-backend=nexus.bthlab.bthlabs.net:8002/hotpocket/backend:${BACKEND_TAG} ; diff --git a/README.md b/README.md index 385a870..d225167 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,8 @@ This repository contains the _HotPocket_ project. ### Requirements: -* Python 3.12, -* Poetry 1.8.3, +* Python 3.13, +* Poetry 2.2.1, * `git-crypt`, * Docker with Docker Compose and Buildx. @@ -66,7 +66,7 @@ $ docker run --rm -it \ -e HOTPOCKET_BACKEND_INITIAL_ACCOUNT_USERNAME=hotpocket \ -e HOTPOCKET_BACKEND_INITIAL_ACCOUNT_PASSWORD=hotpocketm4st3r \ -p 8000:8000 \ - docker-hosted.nexus.bthlabs.pl/hotpocket/backend:aio-v25.11.12-01 + hotpocket/backend:aio-v25.11.12-01 ``` The command above will set up and start the application. The SQLite file will diff --git a/deployment/aio/docker-compose.yaml b/deployment/aio/docker-compose.yaml index ff47593..2a80952 100644 --- a/deployment/aio/docker-compose.yaml +++ b/deployment/aio/docker-compose.yaml @@ -1,6 +1,6 @@ services: backend: - image: "docker-hosted.nexus.bthlabs.pl/hotpocket/backend:aio-v25.11.12-01" + image: "hotpocket/backend:aio-v25.11.12-01" environment: HOTPOCKET_BACKEND_SECRET_KEY: "thisisntright" HOTPOCKET_BACKEND_INITIAL_ACCOUNT_USERNAME: "hotpocket" diff --git a/deployment/fullstack/docker-compose.yaml b/deployment/fullstack/docker-compose.yaml index 4428f12..ec70238 100644 --- a/deployment/fullstack/docker-compose.yaml +++ b/deployment/fullstack/docker-compose.yaml @@ -8,7 +8,7 @@ x-backend-environment: &x-backend-environment services: webapp: - image: "docker-hosted.nexus.bthlabs.pl/hotpocket/backend:deployment-v25.11.12-01" + image: "hotpocket/backend:deployment-v25.11.12-01" environment: <<: *x-backend-environment HOTPOCKET_BACKEND_ALLOWED_HOSTS: "app.staging.hotpocket.bthlab.bthlabs.net" @@ -21,7 +21,7 @@ services: restart: "unless-stopped" admin: - image: "docker-hosted.nexus.bthlabs.pl/hotpocket/backend:deployment-v25.11.12-01" + image: "hotpocket/backend:deployment-v25.11.12-01" environment: <<: *x-backend-environment HOTPOCKET_BACKEND_APP: "admin" @@ -35,7 +35,7 @@ services: restart: "unless-stopped" celery-worker: - image: "docker-hosted.nexus.bthlabs.pl/hotpocket/backend:deployment-v25.11.12-01" + image: "hotpocket/backend:deployment-v25.11.12-01" command: - "/srv/venv/bin/celery" - "-A" @@ -57,7 +57,7 @@ services: restart: "unless-stopped" celery-beat: - image: "docker-hosted.nexus.bthlabs.pl/hotpocket/backend:deployment-v25.11.12-01" + image: "hotpocket/backend:deployment-v25.11.12-01" command: - "/srv/venv/bin/celery" - "-A" diff --git a/deployment/hotpocket.bthlab/configs/backend/admin b/deployment/hotpocket_bthlab/configs/backend/admin similarity index 100% rename from deployment/hotpocket.bthlab/configs/backend/admin rename to deployment/hotpocket_bthlab/configs/backend/admin diff --git a/deployment/hotpocket.bthlab/configs/backend/base b/deployment/hotpocket_bthlab/configs/backend/base similarity index 100% rename from deployment/hotpocket.bthlab/configs/backend/base rename to deployment/hotpocket_bthlab/configs/backend/base diff --git a/deployment/hotpocket.bthlab/configs/backend/webapp b/deployment/hotpocket_bthlab/configs/backend/webapp similarity index 100% rename from deployment/hotpocket.bthlab/configs/backend/webapp rename to deployment/hotpocket_bthlab/configs/backend/webapp diff --git a/deployment/hotpocket.bthlab/kustomization.yaml b/deployment/hotpocket_bthlab/kustomization.yaml similarity index 100% rename from deployment/hotpocket.bthlab/kustomization.yaml rename to deployment/hotpocket_bthlab/kustomization.yaml diff --git a/deployment/hotpocket.bthlab/resources/backend/admin-ingress.yaml b/deployment/hotpocket_bthlab/resources/backend/admin-ingress.yaml similarity index 100% rename from deployment/hotpocket.bthlab/resources/backend/admin-ingress.yaml rename to deployment/hotpocket_bthlab/resources/backend/admin-ingress.yaml diff --git a/deployment/hotpocket.bthlab/resources/backend/admin-service.yaml b/deployment/hotpocket_bthlab/resources/backend/admin-service.yaml similarity index 100% rename from deployment/hotpocket.bthlab/resources/backend/admin-service.yaml rename to deployment/hotpocket_bthlab/resources/backend/admin-service.yaml diff --git a/deployment/hotpocket.bthlab/resources/backend/admin.yaml b/deployment/hotpocket_bthlab/resources/backend/admin.yaml similarity index 100% rename from deployment/hotpocket.bthlab/resources/backend/admin.yaml rename to deployment/hotpocket_bthlab/resources/backend/admin.yaml diff --git a/deployment/hotpocket.bthlab/resources/backend/celery-beat.yaml b/deployment/hotpocket_bthlab/resources/backend/celery-beat.yaml similarity index 100% rename from deployment/hotpocket.bthlab/resources/backend/celery-beat.yaml rename to deployment/hotpocket_bthlab/resources/backend/celery-beat.yaml diff --git a/deployment/hotpocket.bthlab/resources/backend/celery-worker.yaml b/deployment/hotpocket_bthlab/resources/backend/celery-worker.yaml similarity index 100% rename from deployment/hotpocket.bthlab/resources/backend/celery-worker.yaml rename to deployment/hotpocket_bthlab/resources/backend/celery-worker.yaml diff --git a/deployment/hotpocket.bthlab/resources/backend/config-map-local-deps.yaml b/deployment/hotpocket_bthlab/resources/backend/config-map-local-deps.yaml similarity index 100% rename from deployment/hotpocket.bthlab/resources/backend/config-map-local-deps.yaml rename to deployment/hotpocket_bthlab/resources/backend/config-map-local-deps.yaml diff --git a/deployment/hotpocket.bthlab/resources/backend/job-migrations.yaml b/deployment/hotpocket_bthlab/resources/backend/job-migrations.yaml similarity index 100% rename from deployment/hotpocket.bthlab/resources/backend/job-migrations.yaml rename to deployment/hotpocket_bthlab/resources/backend/job-migrations.yaml diff --git a/deployment/hotpocket.bthlab/resources/backend/webapp-ingress.yaml b/deployment/hotpocket_bthlab/resources/backend/webapp-ingress.yaml similarity index 100% rename from deployment/hotpocket.bthlab/resources/backend/webapp-ingress.yaml rename to deployment/hotpocket_bthlab/resources/backend/webapp-ingress.yaml diff --git a/deployment/hotpocket.bthlab/resources/backend/webapp-service.yaml b/deployment/hotpocket_bthlab/resources/backend/webapp-service.yaml similarity index 100% rename from deployment/hotpocket.bthlab/resources/backend/webapp-service.yaml rename to deployment/hotpocket_bthlab/resources/backend/webapp-service.yaml diff --git a/deployment/hotpocket.bthlab/resources/backend/webapp.yaml b/deployment/hotpocket_bthlab/resources/backend/webapp.yaml similarity index 100% rename from deployment/hotpocket.bthlab/resources/backend/webapp.yaml rename to deployment/hotpocket_bthlab/resources/backend/webapp.yaml diff --git a/deployment/hotpocket.bthlab/resources/namespace.yaml b/deployment/hotpocket_bthlab/resources/namespace.yaml similarity index 100% rename from deployment/hotpocket.bthlab/resources/namespace.yaml rename to deployment/hotpocket_bthlab/resources/namespace.yaml diff --git a/deployment/hotpocket.bthlab/resources/volumes.yaml b/deployment/hotpocket_bthlab/resources/volumes.yaml similarity index 100% rename from deployment/hotpocket.bthlab/resources/volumes.yaml rename to deployment/hotpocket_bthlab/resources/volumes.yaml diff --git a/poetry.lock b/poetry.lock index 0a3fd85..c56f82d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -5,7 +5,7 @@ name = "hotpocket-workspace-tools" version = "1.0.0.dev0" description = "HotPocket Workspace Tools" optional = false -python-versions = "^3.12" +python-versions = "^3.13" groups = ["main"] files = [] develop = true @@ -31,5 +31,5 @@ files = [ [metadata] lock-version = "2.1" -python-versions = "^3.12" -content-hash = "a7028d4a0260c82012077d9cc4b324b0ef5ab8ed24aa283a51cf941ba09685a9" +python-versions = "^3.13" +content-hash = "175bf795c7148fe40af7e095d6f41918fa14cf4c71be87444a4d6c467fbd38d2" diff --git a/pyproject.toml b/pyproject.toml index b3052a0..d193990 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ license = "Apache-2.0" package-mode = false [tool.poetry.dependencies] -python = "^3.12" +python = "^3.13" hotpocket-workspace-tools = {path = "services/packages/workspace_tools", develop = true} [build-system] diff --git a/services/apple/Dockerfile b/services/apple/Dockerfile index 19cfce7..f3c26a9 100644 --- a/services/apple/Dockerfile +++ b/services/apple/Dockerfile @@ -2,7 +2,7 @@ ARG APP_USER_UID=1000 ARG APP_USER_GID=1000 ARG IMAGE_ID=development.00000000 -FROM docker-hosted.nexus.bthlabs.pl/hotpocket/base:build-node-20251014-01 AS development +FROM docker-hosted.nexus.bthlabs.pl/hotpocket/base:build-node-20251114-01 AS development ARG APP_USER_UID ARG APP_USER_GID diff --git a/services/apple/HotPocket.xcodeproj/project.pbxproj b/services/apple/HotPocket.xcodeproj/project.pbxproj index 751f1f5..79fdc1b 100644 --- a/services/apple/HotPocket.xcodeproj/project.pbxproj +++ b/services/apple/HotPocket.xcodeproj/project.pbxproj @@ -7,8 +7,8 @@ objects = { /* Begin PBXBuildFile section */ - 4C1159202E8B055F003B34AD /* Save to HotPocket.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 4CBCEA4F2E81CB9500722009 /* Save to HotPocket.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 4C2F0C692E851BBD0033F5C2 /* Save to HotPocket.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 4C2F0C5E2E851BBD0033F5C2 /* Save to HotPocket.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 4C1159202E8B055F003B34AD /* Save to HotPocket Development.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 4CBCEA4F2E81CB9500722009 /* Save to HotPocket Development.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 4C2F0C692E851BBD0033F5C2 /* Save to HotPocket Development.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 4C2F0C5E2E851BBD0033F5C2 /* Save to HotPocket Development.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 4C70F30D2E8869FB00320048 /* HPShareExtensionHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C70F30C2E8869FB00320048 /* HPShareExtensionHelper.m */; }; 4C70F30E2E8869FB00320048 /* HPShareExtensionHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C70F30C2E8869FB00320048 /* HPShareExtensionHelper.m */; }; 4C70F3152E886A8F00320048 /* HPSharedItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C70F3142E886A8F00320048 /* HPSharedItem.m */; }; @@ -58,7 +58,7 @@ dstSubfolderSpec = 13; files = ( 4CABCAD62E56F0C900D8A354 /* HotPocket Extension.appex in Embed Foundation Extensions */, - 4C2F0C692E851BBD0033F5C2 /* Save to HotPocket.appex in Embed Foundation Extensions */, + 4C2F0C692E851BBD0033F5C2 /* Save to HotPocket Development.appex in Embed Foundation Extensions */, ); name = "Embed Foundation Extensions"; runOnlyForDeploymentPostprocessing = 0; @@ -69,7 +69,7 @@ dstPath = ""; dstSubfolderSpec = 13; files = ( - 4C1159202E8B055F003B34AD /* Save to HotPocket.appex in Embed Foundation Extensions */, + 4C1159202E8B055F003B34AD /* Save to HotPocket Development.appex in Embed Foundation Extensions */, 4CABCAE02E56F0C900D8A354 /* HotPocket Extension.appex in Embed Foundation Extensions */, ); name = "Embed Foundation Extensions"; @@ -78,18 +78,18 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 4C2F0C5E2E851BBD0033F5C2 /* Save to HotPocket.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Save to HotPocket.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; + 4C2F0C5E2E851BBD0033F5C2 /* Save to HotPocket Development.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Save to HotPocket Development.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; 4C70F30B2E8869FB00320048 /* HPShareExtensionHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HPShareExtensionHelper.h; sourceTree = ""; }; 4C70F30C2E8869FB00320048 /* HPShareExtensionHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HPShareExtensionHelper.m; sourceTree = ""; }; 4C70F3132E886A8F00320048 /* HPSharedItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HPSharedItem.h; sourceTree = ""; }; 4C70F3142E886A8F00320048 /* HPSharedItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HPSharedItem.m; sourceTree = ""; }; 4C70F3172E886ADD00320048 /* HPSharedItemsContainer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HPSharedItemsContainer.h; sourceTree = ""; }; 4C70F3182E886ADD00320048 /* HPSharedItemsContainer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HPSharedItemsContainer.m; sourceTree = ""; }; - 4CABCAB02E56F0C900D8A354 /* HotPocket.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HotPocket.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 4CABCAC62E56F0C900D8A354 /* HotPocket.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HotPocket.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 4CABCAB02E56F0C900D8A354 /* HotPocket Development.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "HotPocket Development.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 4CABCAC62E56F0C900D8A354 /* HotPocket Development.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "HotPocket Development.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 4CABCAD52E56F0C900D8A354 /* HotPocket Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "HotPocket Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; 4CABCADF2E56F0C900D8A354 /* HotPocket Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "HotPocket Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; - 4CBCEA4F2E81CB9500722009 /* Save to HotPocket.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Save to HotPocket.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; + 4CBCEA4F2E81CB9500722009 /* Save to HotPocket Development.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Save to HotPocket Development.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ @@ -107,6 +107,7 @@ HPAPI.m, HPCredentialsHelper.m, HPRPCClient.m, + "NSBundle+HotPocketExtensions.m", "NSURL+HotPocketExtensions.m", "Resources/icon-mac-384.png", ); @@ -123,6 +124,7 @@ isa = PBXFileSystemSynchronizedBuildFileExceptionSet; membershipExceptions = ( MultilineLabel.m, + UnameLabel.m, ); target = 4C2F0C5D2E851BBD0033F5C2 /* iOS (Share Extension) */; }; @@ -134,6 +136,7 @@ HPAuthFlow.m, HPCredentialsHelper.m, HPRPCClient.m, + "NSBundle+HotPocketExtensions.m", "NSURL+HotPocketExtensions.m", "Resources/icon-mac-384.png", ); @@ -161,6 +164,7 @@ HPAuthFlow.m, HPCredentialsHelper.m, HPRPCClient.m, + "NSBundle+HotPocketExtensions.m", "NSURL+HotPocketExtensions.m", "Resources/icon-mac-384.png", ); @@ -215,6 +219,7 @@ HPAPI.m, HPCredentialsHelper.m, HPRPCClient.m, + "NSBundle+HotPocketExtensions.m", "NSURL+HotPocketExtensions.m", "Resources/icon-mac-384.png", ); @@ -384,12 +389,12 @@ 4CABCAB12E56F0C900D8A354 /* Products */ = { isa = PBXGroup; children = ( - 4CABCAB02E56F0C900D8A354 /* HotPocket.app */, - 4CABCAC62E56F0C900D8A354 /* HotPocket.app */, + 4CABCAB02E56F0C900D8A354 /* HotPocket Development.app */, + 4CABCAC62E56F0C900D8A354 /* HotPocket Development.app */, 4CABCAD52E56F0C900D8A354 /* HotPocket Extension.appex */, 4CABCADF2E56F0C900D8A354 /* HotPocket Extension.appex */, - 4CBCEA4F2E81CB9500722009 /* Save to HotPocket.appex */, - 4C2F0C5E2E851BBD0033F5C2 /* Save to HotPocket.appex */, + 4CBCEA4F2E81CB9500722009 /* Save to HotPocket Development.appex */, + 4C2F0C5E2E851BBD0033F5C2 /* Save to HotPocket Development.appex */, ); name = Products; sourceTree = ""; @@ -416,7 +421,7 @@ packageProductDependencies = ( ); productName = "iOS (Share Extension)"; - productReference = 4C2F0C5E2E851BBD0033F5C2 /* Save to HotPocket.appex */; + productReference = 4C2F0C5E2E851BBD0033F5C2 /* Save to HotPocket Development.appex */; productType = "com.apple.product-type.app-extension"; }; 4CABCAAF2E56F0C900D8A354 /* HotPocket (iOS) */ = { @@ -441,7 +446,7 @@ packageProductDependencies = ( ); productName = "HotPocket (iOS)"; - productReference = 4CABCAB02E56F0C900D8A354 /* HotPocket.app */; + productReference = 4CABCAB02E56F0C900D8A354 /* HotPocket Development.app */; productType = "com.apple.product-type.application"; }; 4CABCAC52E56F0C900D8A354 /* HotPocket (macOS) */ = { @@ -466,7 +471,7 @@ packageProductDependencies = ( ); productName = "HotPocket (macOS)"; - productReference = 4CABCAC62E56F0C900D8A354 /* HotPocket.app */; + productReference = 4CABCAC62E56F0C900D8A354 /* HotPocket Development.app */; productType = "com.apple.product-type.application"; }; 4CABCAD42E56F0C900D8A354 /* HotPocket Extension (iOS) */ = { @@ -532,7 +537,7 @@ packageProductDependencies = ( ); productName = "macOS (Share Extension)"; - productReference = 4CBCEA4F2E81CB9500722009 /* Save to HotPocket.appex */; + productReference = 4CBCEA4F2E81CB9500722009 /* Save to HotPocket Development.appex */; productType = "com.apple.product-type.app-extension"; }; /* End PBXNativeTarget section */ @@ -728,7 +733,7 @@ ); MARKETING_VERSION = 25.11.12; PRODUCT_BUNDLE_IDENTIFIER = pl.bthlabs.HotPocket.ShareExtension; - PRODUCT_NAME = "Save to HotPocket"; + PRODUCT_NAME = "Save to HotPocket Development"; SDKROOT = iphoneos; SKIP_INSTALL = YES; STRING_CATALOG_GENERATE_SYMBOLS = YES; @@ -881,7 +886,7 @@ WebKit, ); PRODUCT_BUNDLE_IDENTIFIER = pl.bthlabs.HotPocket; - PRODUCT_NAME = HotPocket; + PRODUCT_NAME = "HotPocket Development"; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTS_MACCATALYST = NO; @@ -1041,7 +1046,7 @@ WebKit, ); PRODUCT_BUNDLE_IDENTIFIER = pl.bthlabs.HotPocket; - PRODUCT_NAME = HotPocket; + PRODUCT_NAME = "HotPocket Development"; REGISTER_APP_GROUPS = YES; SDKROOT = macosx; SWIFT_EMIT_LOC_STRINGS = YES; @@ -1222,7 +1227,7 @@ MACOSX_DEPLOYMENT_TARGET = 15.0; MARKETING_VERSION = 25.11.12; PRODUCT_BUNDLE_IDENTIFIER = pl.bthlabs.HotPocket.ShareExtension; - PRODUCT_NAME = "Save to HotPocket"; + PRODUCT_NAME = "Save to HotPocket Development"; REGISTER_APP_GROUPS = YES; SDKROOT = macosx; SKIP_INSTALL = YES; diff --git a/services/apple/Shared (App)/Assets.xcassets/AppIcon.appiconset/icon-mac-1024.png b/services/apple/Shared (App)/Assets.xcassets/AppIcon.appiconset/icon-mac-1024.png index 8240ecf..8c03a9f 100644 Binary files a/services/apple/Shared (App)/Assets.xcassets/AppIcon.appiconset/icon-mac-1024.png and b/services/apple/Shared (App)/Assets.xcassets/AppIcon.appiconset/icon-mac-1024.png differ diff --git a/services/apple/Shared (App)/NSBundle+HotPocketExtensions.h b/services/apple/Shared (App)/NSBundle+HotPocketExtensions.h new file mode 100644 index 0000000..772f3ac --- /dev/null +++ b/services/apple/Shared (App)/NSBundle+HotPocketExtensions.h @@ -0,0 +1,18 @@ +// +// NSBundle+HotPocketExtensions.h +// HotPocket +// +// Created by Tomek Wójcik on 17/11/2025. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSBundle (HotPocketExtensions) + ++(NSString *)uname; + +@end + +NS_ASSUME_NONNULL_END diff --git a/services/apple/Shared (App)/NSBundle+HotPocketExtensions.m b/services/apple/Shared (App)/NSBundle+HotPocketExtensions.m new file mode 100644 index 0000000..ee3eb8f --- /dev/null +++ b/services/apple/Shared (App)/NSBundle+HotPocketExtensions.m @@ -0,0 +1,17 @@ +// +// NSBundle+HotPocketExtensions.m +// HotPocket +// +// Created by Tomek Wójcik on 17/11/2025. +// + +#import "NSBundle+HotPocketExtensions.h" + +@implementation NSBundle (HotPocketExtensions) + ++(NSString *)uname { + NSBundle *mainBundle = [NSBundle mainBundle]; + return [NSString stringWithFormat:@"HotPocket v%@ (%@)", [mainBundle.infoDictionary valueForKey:@"CFBundleShortVersionString"], [mainBundle.infoDictionary valueForKey:@"CFBundleVersion"]]; +} + +@end diff --git a/services/apple/Shared (App)/Resources/icon-mac-384.png b/services/apple/Shared (App)/Resources/icon-mac-384.png index 882de35..5e4d7b8 100644 Binary files a/services/apple/Shared (App)/Resources/icon-mac-384.png and b/services/apple/Shared (App)/Resources/icon-mac-384.png differ diff --git a/services/apple/Shared (Extension)/SafariWebExtensionHandler.m b/services/apple/Shared (Extension)/SafariWebExtensionHandler.m index f21f33c..a46efdd 100644 --- a/services/apple/Shared (Extension)/SafariWebExtensionHandler.m +++ b/services/apple/Shared (Extension)/SafariWebExtensionHandler.m @@ -5,10 +5,10 @@ // Created by Tomek Wójcik on 21/08/2025. // -#import "SafariWebExtensionHandler.h" - #import +#import "SafariWebExtensionHandler.h" + @implementation SafariWebExtensionHandler - (void)beginRequestWithExtensionContext:(NSExtensionContext *)context { diff --git a/services/apple/iOS (App)/AuthorizationViewController.h b/services/apple/iOS (App)/AuthorizationViewController.h index fa82f6c..b04803a 100644 --- a/services/apple/iOS (App)/AuthorizationViewController.h +++ b/services/apple/iOS (App)/AuthorizationViewController.h @@ -9,11 +9,14 @@ NS_ASSUME_NONNULL_BEGIN +@class UnameLabel; + @interface AuthorizationViewController : UIViewController @property UIImageView *invalidURLWarningView; @property IBOutlet UITextField *instanceURLField; +@property IBOutlet UnameLabel *unameLabel; -(IBAction)doStartAuthorizationFlow:(id)sender; diff --git a/services/apple/iOS (App)/AuthorizationViewController.m b/services/apple/iOS (App)/AuthorizationViewController.m index 6dd1592..2353a8a 100644 --- a/services/apple/iOS (App)/AuthorizationViewController.m +++ b/services/apple/iOS (App)/AuthorizationViewController.m @@ -12,7 +12,9 @@ #import "HPAuthFlow.h" #import "HPCredentialsHelper.h" #import "MainViewController.h" +#import "NSBundle+HotPocketExtensions.h" #import "NSURL+HotPocketExtensions.h" +#import "UnameLabel.h" @interface AuthorizationViewController (AuthorizationViewControllerPrivate) @@ -31,6 +33,8 @@ self.invalidURLWarningView.contentMode = UIViewContentModeScaleAspectFit; self.invalidURLWarningView.frame = CGRectMake(0, 0, 16, 16); self.invalidURLWarningView.tintColor = [UIColor colorNamed:@"WarningColor"]; + + self.unameLabel.text = [NSBundle uname]; } -(void)viewWillAppear:(BOOL)animated { diff --git a/services/apple/iOS (App)/Base.lproj/Main.storyboard b/services/apple/iOS (App)/Base.lproj/Main.storyboard index 64c7b39..a1cc4cf 100644 --- a/services/apple/iOS (App)/Base.lproj/Main.storyboard +++ b/services/apple/iOS (App)/Base.lproj/Main.storyboard @@ -77,6 +77,13 @@ + @@ -86,6 +93,7 @@ + @@ -136,7 +144,7 @@ -