Compare commits

..

1 Commits

Author SHA1 Message Date
Jay
acf978c302 docs-ios 2025-03-12 12:17:47 +05:30
3704 changed files with 52431 additions and 120661 deletions

View File

@@ -1,17 +1,26 @@
name: Report a bug name: Report a bug
description: Things that were working earlier but don't anymore description: Let us know if something's not working the way you expected.
labels: [] labels: []
body: body:
- type: markdown - type: markdown
attributes: attributes:
value: | value: |
**Checklist** Before opening a new bug report, please ensure
1. You've searched existing [issues](https://github.com/search?q=repo%3Aente-io%2Fente+&type=issues) and [discussions](https://github.com/search?q=repo%3Aente-io%2Fente+&type=discussions) 1. you are on the latest version (it might've already been fixed),
2. It was working earlier (otherwise use [enhancements](https://github.com/ente-io/ente/discussions/categories/enhancements)) 2. you've searched for existing issues (please add your observations as a comment there instead of creating a duplicate).
3. It is not about self hosting (for those use [this](https://github.com/ente-io/ente/discussions/categories/q-a))
If you are self hosting, please create a community [Q&A](https://github.com/ente-io/ente/discussions/categories/q-a) instead.
- type: textarea - type: textarea
attributes: attributes:
label: Description label: Description
description: >
Please describe the bug. If possible, also include the steps to
reproduce the behaviour, and the expected behaviour (sometimes
bugs are just expectation mismatches, in which case this would be
a good fit for [feature
requests](https://github.com/ente-io/ente/discussions/categories/feature-requests)).
validations:
required: true
- type: input - type: input
attributes: attributes:
label: Version label: Version

View File

@@ -1,5 +1,5 @@
blank_issues_enabled: true blank_issues_enabled: true
contact_links: contact_links:
- name: Enhacements, feature requests, feedback and questions - name: Feature requests and questions
url: https://github.com/ente-io/ente/discussions url: https://github.com/ente-io/ente/discussions
about: Please use Discussions for everything apart from the above. about: Please use Discussions for everything apart from the above.

View File

@@ -9,10 +9,6 @@ on:
# Or the workflow itself is changed # Or the workflow itself is changed
- ".github/workflows/auth-crowdin.yml" - ".github/workflows/auth-crowdin.yml"
permissions:
contents: write
pull-requests: write
jobs: jobs:
push-sources-to-crowdin: push-sources-to-crowdin:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -24,8 +20,8 @@ jobs:
- name: Crowdin's action - name: Crowdin's action
uses: crowdin/github-action@v2 uses: crowdin/github-action@v2
with: with:
base_path: "mobile/apps/auth/" base_path: "auth/"
config: "mobile/apps/auth/crowdin.yml" config: "auth/crowdin.yml"
upload_sources: true upload_sources: true
upload_translations: false upload_translations: false
download_translations: false download_translations: false

View File

@@ -8,10 +8,6 @@ on:
# Also allow manually running the workflow. # Also allow manually running the workflow.
workflow_dispatch: workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs: jobs:
synchronize-with-crowdin: synchronize-with-crowdin:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -23,8 +19,8 @@ jobs:
- name: Crowdin's action - name: Crowdin's action
uses: crowdin/github-action@v2 uses: crowdin/github-action@v2
with: with:
base_path: "mobile/apps/auth/" base_path: "auth/"
config: "mobile/apps/auth/crowdin.yml" config: "auth/crowdin.yml"
upload_sources: true upload_sources: true
upload_translations: false upload_translations: false
download_translations: true download_translations: true

View File

@@ -6,16 +6,13 @@ on:
env: env:
FLUTTER_VERSION: "3.24.3" FLUTTER_VERSION: "3.24.3"
permissions:
contents: write
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
defaults: defaults:
run: run:
working-directory: mobile/apps/auth working-directory: auth
steps: steps:
- name: Checkout code and submodules - name: Checkout code and submodules
@@ -55,7 +52,7 @@ jobs:
with: with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }} serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
packageName: io.ente.auth packageName: io.ente.auth
releaseFiles: mobile/apps/auth/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab releaseFiles: auth/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
track: internal track: internal
- name: Notify Discord - name: Notify Discord

View File

@@ -10,15 +10,12 @@ on:
env: env:
FLUTTER_VERSION: "3.24.3" FLUTTER_VERSION: "3.24.3"
permissions:
contents: read
jobs: jobs:
lint: lint:
runs-on: ubuntu-latest runs-on: ubuntu-latest
defaults: defaults:
run: run:
working-directory: mobile/apps/auth working-directory: auth
steps: steps:
- name: Checkout code and submodules - name: Checkout code and submodules
uses: actions/checkout@v4 uses: actions/checkout@v4
@@ -33,7 +30,7 @@ jobs:
exit 1 exit 1
fi fi
done done
- name: Verify all icons are less than 20KB - name: Verify all icons are less than 20KB
run: | run: |
find assets/custom-icons -type f -name "*.svg" | while read -r file; do find assets/custom-icons -type f -name "*.svg" | while read -r file; do

View File

@@ -31,16 +31,13 @@ on:
env: env:
FLUTTER_VERSION: "3.24.3" FLUTTER_VERSION: "3.24.3"
permissions:
contents: write
jobs: jobs:
build-linux-latest: build-ubuntu:
runs-on: ubuntu-22.04 runs-on: ubuntu-20.04
defaults: defaults:
run: run:
working-directory: mobile/apps/auth working-directory: auth
steps: steps:
- name: Checkout code and submodules - name: Checkout code and submodules
@@ -83,7 +80,7 @@ jobs:
# disable this step if release tag contains nightly or beta # disable this step if release tag contains nightly or beta
if: startsWith(github.ref, 'refs/tags/auth-v') && !contains(github.ref, 'nightly') && !contains(github.ref, 'beta') if: startsWith(github.ref, 'refs/tags/auth-v') && !contains(github.ref, 'nightly') && !contains(github.ref, 'beta')
run: | run: |
flutter build appbundle --release --flavor playstore --dart-define=app.flavor=playstore --dart-define=cronetHttpNoPlay=true flutter build appbundle --release --flavor playstore --dart-define=app.flavor=playstore
env: env:
SIGNING_KEY_PATH: "/home/runner/work/_temp/keystore/ente_auth_key.jks" SIGNING_KEY_PATH: "/home/runner/work/_temp/keystore/ente_auth_key.jks"
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }} SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}
@@ -93,38 +90,27 @@ jobs:
- name: Install dependencies for desktop build - name: Install dependencies for desktop build
run: | run: |
sudo apt-get update -y sudo apt-get update -y
sudo apt-get install -y libsecret-1-dev libsodium-dev libfuse2 ninja-build libgtk-3-dev dpkg-dev pkg-config rpm patchelf libsqlite3-dev locate libayatana-appindicator3-dev libffi-dev libtiff5 xz-utils libarchive-tools libcurl4-openssl-dev sudo apt-get install -y libsecret-1-dev libsodium-dev libfuse2 ninja-build libgtk-3-dev dpkg-dev pkg-config libsqlite3-dev locate appindicator3-0.1 libappindicator3-dev libffi-dev libtiff5
sudo updatedb --localpaths='/usr/lib/x86_64-linux-gnu' sudo updatedb --localpaths='/usr/lib/x86_64-linux-gnu'
- name: Install appimagetool
run: |
wget -O appimagetool "https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage"
chmod +x appimagetool
mv appimagetool /usr/local/bin/
- name: Build desktop app - name: Build desktop app
run: | run: |
flutter config --enable-linux-desktop flutter config --enable-linux-desktop
dart pub global activate --source git https://github.com/ente-io/flutter_distributor_fork --git-ref develop --git-path packages/flutter_distributor # dart pub global activate flutter_distributor
# RPM dart pub global activate --source git https://github.com/prateekmedia/flutter_distributor --git-ref develop --git-path packages/flutter_distributor
flutter_distributor package --platform=linux --targets=rpm --skip-clean
mv dist/**/*-*-linux.rpm artifacts/ente-${{ github.ref_name }}-x86_64.rpm
# APPIMAGE
flutter_distributor package --platform=linux --targets=appimage --skip-clean
mv dist/**/*-*-linux.AppImage artifacts/ente-${{ github.ref_name }}-x86_64.AppImage
# DEB
flutter_distributor package --platform=linux --targets=deb --skip-clean flutter_distributor package --platform=linux --targets=deb --skip-clean
mv dist/**/*-*-linux.deb artifacts/ente-${{ github.ref_name }}-x86_64.deb mv dist/**/*-*-linux.deb artifacts/ente-${{ github.ref_name }}-x86_64.deb
env:
LIBSODIUM_USE_PKGCONFIG: 1
- name: Generate checksums - name: Generate checksums and push to artifacts
run: | run: |
sha256sum artifacts/ente-auth-*.apk >> artifacts/sha256sum-apk sha256sum artifacts/ente-* > artifacts/sha256sum-apk-deb
sha256sum artifacts/ente-auth-*.deb artifacts/ente-auth-*.rpm artifacts/ente-auth-*.AppImage >> artifacts/sha256sum-linux
- name: Create a draft GitHub release - name: Create a draft GitHub release
uses: ncipollo/release-action@v1 uses: ncipollo/release-action@v1
with: with:
artifacts: "mobile/apps/auth/artifacts/*" artifacts: "auth/artifacts/*"
draft: true draft: true
allowUpdates: true allowUpdates: true
updateOnlyUnreleased: true updateOnlyUnreleased: true
@@ -136,16 +122,76 @@ jobs:
with: with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }} serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
packageName: io.ente.auth packageName: io.ente.auth
releaseFiles: mobile/apps/auth/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab releaseFiles: auth/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
track: internal track: internal
build-windows: build-fedora-etc:
runs-on: windows-latest runs-on: ubuntu-latest
environment: "auth-win-build"
defaults: defaults:
run: run:
working-directory: mobile/apps/auth working-directory: auth
steps:
- name: Checkout code and submodules
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Flutter ${{ env.FLUTTER_VERSION }}
uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- name: Create artifacts directory
run: mkdir artifacts
- name: Install dependencies for desktop build
run: |
sudo apt-get update -y
sudo apt-get install -y libsecret-1-dev libsodium-dev libfuse2 ninja-build libgtk-3-dev dpkg-dev pkg-config rpm patchelf libsqlite3-dev locate libayatana-appindicator3-dev libffi-dev libtiff6 xz-utils libarchive-tools libcurl4-openssl-dev
sudo updatedb --localpaths='/usr/lib/x86_64-linux-gnu'
- name: Install appimagetool
run: |
wget -O appimagetool "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
chmod +x appimagetool
mv appimagetool /usr/local/bin/
- name: Build desktop app
run: |
flutter config --enable-linux-desktop
# dart pub global activate flutter_distributor
dart pub global activate --source git https://github.com/prateekmedia/flutter_distributor --git-ref develop --git-path packages/flutter_distributor
# Run below command if it is a beta or nightly
if [[ ${{ github.ref }} =~ beta|nightly ]]; then
flutter_distributor package --platform=linux --targets=pacman --skip-clean
mv dist/**/*-*-linux.pacman artifacts/ente-${{ github.ref_name }}-x86_64.pacman
fi
flutter_distributor package --platform=linux --targets=rpm --skip-clean
mv dist/**/*-*-linux.rpm artifacts/ente-${{ github.ref_name }}-x86_64.rpm
flutter_distributor package --platform=linux --targets=appimage --skip-clean
mv dist/**/*-*-linux.AppImage artifacts/ente-${{ github.ref_name }}-x86_64.AppImage
- name: Generate checksums
run: sha256sum artifacts/ente-* >> artifacts/sha256sum-rpm-appimage
- name: Create a draft GitHub release
uses: ncipollo/release-action@v1
with:
artifacts: "auth/artifacts/*"
draft: true
allowUpdates: true
updateOnlyUnreleased: true
build-windows:
runs-on: windows-latest
defaults:
run:
working-directory: auth
steps: steps:
- name: Checkout code and submodules - name: Checkout code and submodules
@@ -167,7 +213,7 @@ jobs:
run: | run: |
flutter config --enable-windows-desktop flutter config --enable-windows-desktop
# dart pub global activate flutter_distributor # dart pub global activate flutter_distributor
dart pub global activate --source git https://github.com/ente-io/flutter_distributor_fork --git-ref develop --git-path packages/flutter_distributor dart pub global activate --source git https://github.com/prateekmedia/flutter_distributor --git-ref develop --git-path packages/flutter_distributor
make innoinstall make innoinstall
flutter_distributor package --platform=windows --targets=exe --skip-clean flutter_distributor package --platform=windows --targets=exe --skip-clean
mv dist/**/*-windows-setup.exe artifacts/ente-${{ github.ref_name }}-installer.exe mv dist/**/*-windows-setup.exe artifacts/ente-${{ github.ref_name }}-installer.exe
@@ -175,22 +221,14 @@ jobs:
- name: Retain Windows EXE and DLLs - name: Retain Windows EXE and DLLs
run: cp -r build/windows/x64/runner/Release ente-${{ github.ref_name }}-windows run: cp -r build/windows/x64/runner/Release ente-${{ github.ref_name }}-windows
- name: Sign files with Trusted Signing - name: Code sign Windows installer and EXE
uses: azure/trusted-signing-action@v0 uses: dlemstra/code-sign-action@v1
with: with:
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }} certificate: "${{ secrets.WINDOWS_CERTIFICATE }}"
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }} password: "${{ secrets.WINDOWS_CERTIFICATE_PASSWORD }}"
azure-client-secret: ${{ secrets.AZURE_CLIENT_SECRET }} files: |
endpoint: ${{ secrets.AZURE_ENDPOINT }} auth/artifacts/ente-${{ github.ref_name }}-installer.exe
trusted-signing-account-name: ${{ secrets.AZURE_CODE_SIGNING_NAME }} auth/ente-${{ github.ref_name }}-windows/auth.exe
certificate-profile-name: ${{ secrets.AZURE_CERT_PROFILE_NAME }}
files: |
${{ github.workspace }}/mobile/apps/auth/artifacts/ente-${{ github.ref_name }}-installer.exe
${{ github.workspace }}/mobile/apps/auth/ente-${{ github.ref_name }}-windows/auth.exe
file-digest: SHA256
timestamp-rfc3161: http://timestamp.acs.microsoft.com
timestamp-digest: SHA256
- name: Zip Windows EXE and DLLs - name: Zip Windows EXE and DLLs
run: tar.exe -a -c -f artifacts/ente-${{ github.ref_name }}-windows.zip ente-${{ github.ref_name }}-windows run: tar.exe -a -c -f artifacts/ente-${{ github.ref_name }}-windows.zip ente-${{ github.ref_name }}-windows
@@ -201,7 +239,7 @@ jobs:
- name: Create a draft GitHub release - name: Create a draft GitHub release
uses: ncipollo/release-action@v1 uses: ncipollo/release-action@v1
with: with:
artifacts: "mobile/apps/auth/artifacts/*" artifacts: "auth/artifacts/*"
draft: true draft: true
allowUpdates: true allowUpdates: true
updateOnlyUnreleased: true updateOnlyUnreleased: true
@@ -211,7 +249,7 @@ jobs:
defaults: defaults:
run: run:
working-directory: mobile/apps/auth working-directory: auth
steps: steps:
- name: Checkout code and submodules - name: Checkout code and submodules
@@ -298,7 +336,7 @@ jobs:
- name: Create a draft GitHub release - name: Create a draft GitHub release
uses: ncipollo/release-action@v1 uses: ncipollo/release-action@v1
with: with:
artifacts: "mobile/apps/auth/artifacts/*" artifacts: "auth/artifacts/*"
draft: true draft: true
allowUpdates: true allowUpdates: true
updateOnlyUnreleased: true updateOnlyUnreleased: true

View File

@@ -1,70 +0,0 @@
name: "Windows build & Sign (auth)"
on:
workflow_dispatch: # Allow manually running the action
env:
FLUTTER_VERSION: "3.24.3"
permissions:
contents: write
jobs:
build-windows:
runs-on: windows-latest
environment: "auth-win-build"
defaults:
run:
working-directory: mobile/apps/auth
steps:
- name: Checkout code and submodules
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Flutter ${{ env.FLUTTER_VERSION }}
uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- name: Create artifacts directory
run: mkdir artifacts
- name: Build Windows installer
run: |
flutter config --enable-windows-desktop
# dart pub global activate flutter_distributor
dart pub global activate --source git https://github.com/ente-io/flutter_distributor_fork --git-ref develop --git-path packages/flutter_distributor
make innoinstall
flutter_distributor package --platform=windows --targets=exe --skip-clean
mv dist/**/*-windows-setup.exe artifacts/ente-${{ github.ref_name }}-installer.exe
- name: Retain Windows EXE and DLLs
run: cp -r build/windows/x64/runner/Release ente-${{ github.ref_name }}-windows
- name: Sign files with Trusted Signing
uses: azure/trusted-signing-action@v0
with:
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
azure-client-secret: ${{ secrets.AZURE_CLIENT_SECRET }}
endpoint: ${{ secrets.AZURE_ENDPOINT }}
trusted-signing-account-name: ${{ secrets.AZURE_CODE_SIGNING_NAME }}
certificate-profile-name: ${{ secrets.AZURE_CERT_PROFILE_NAME }}
files: |
${{ github.workspace }}/mobile/apps/auth/artifacts/ente-${{ github.ref_name }}-installer.exe
${{ github.workspace }}/mobile/apps/auth/ente-${{ github.ref_name }}-windows/auth.exe
file-digest: SHA256
timestamp-rfc3161: http://timestamp.acs.microsoft.com
timestamp-digest: SHA256
- name: Zip Windows EXE and DLLs
run: tar.exe -a -c -f artifacts/ente-${{ github.ref_name }}-windows.zip ente-${{ github.ref_name }}-windows
- name: Generate checksums
run: sha256sum artifacts/ente-* > artifacts/sha256sum-windows

View File

@@ -12,10 +12,6 @@ on:
tags: tags:
- "cli-v*" - "cli-v*"
permissions:
contents: write
packages: write
jobs: jobs:
draft-release: draft-release:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@@ -1,53 +0,0 @@
# The only reason we're making a custom CodeQL configuration is because the
# default setup does not have an option to run daily / weekly instead of per
# push, which is too slow.
#
# In the future, it might become faster. Then just delete this file, and revert
# to the default configuration.
#
# References:
# https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/
name: "CodeQL"
on:
workflow_dispatch: # Allow running manually
schedule:
- cron: "22 1 * * 1"
jobs:
analyze:
name: Analyze (${{ matrix.language }})
runs-on: 'ubuntu-latest'
permissions:
contents: read
# Required for all workflows.
security-events: write
# Required to fetch internal or private CodeQL packs.
packages: read
strategy:
fail-fast: false
matrix:
include:
- language: actions
build-mode: none
- language: go
build-mode: autobuild
- language: javascript-typescript
build-mode: none
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"

View File

@@ -3,9 +3,6 @@ name: "Release (copycat-db)"
on: on:
workflow_dispatch: # Run manually workflow_dispatch: # Run manually
permissions:
contents: read
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@@ -7,9 +7,6 @@ on:
- "desktop/**" - "desktop/**"
- ".github/workflows/desktop-lint.yml" - ".github/workflows/desktop-lint.yml"
permissions:
contents: read
jobs: jobs:
lint: lint:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -23,7 +20,7 @@ jobs:
- name: Setup node and enable yarn caching - name: Setup node and enable yarn caching
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 22 node-version: 20
cache: "yarn" cache: "yarn"
cache-dependency-path: "desktop/yarn.lock" cache-dependency-path: "desktop/yarn.lock"

View File

@@ -10,9 +10,6 @@ on:
# Also allow manually running the workflow # Also allow manually running the workflow
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -28,7 +25,7 @@ jobs:
- name: Setup node and enable yarn caching - name: Setup node and enable yarn caching
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 22 node-version: 20
cache: "yarn" cache: "yarn"
cache-dependency-path: "docs/yarn.lock" cache-dependency-path: "docs/yarn.lock"

View File

@@ -1,32 +0,0 @@
name: "Lint (docs)"
on:
# Run on every pull request (open or push to it) that changes docs/
pull_request:
paths:
- "docs/**"
- ".github/workflows/docs-lint.yml"
permissions:
contents: read
jobs:
lint:
runs-on: ubuntu-latest
defaults:
run:
working-directory: docs
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 22
cache: "yarn"
cache-dependency-path: "web/yarn.lock"
- run: yarn install
- run: yarn pretty:check

View File

@@ -10,9 +10,6 @@ on:
- "docs/**" - "docs/**"
- ".github/workflows/docs-verify-build.yml" - ".github/workflows/docs-verify-build.yml"
permissions:
contents: read
jobs: jobs:
verify-build: verify-build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -28,7 +25,7 @@ jobs:
- name: Setup node and enable yarn caching - name: Setup node and enable yarn caching
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 22 node-version: 20
cache: "yarn" cache: "yarn"
cache-dependency-path: "docs/yarn.lock" cache-dependency-path: "docs/yarn.lock"

View File

@@ -10,9 +10,6 @@ on:
# Also allow manually running the workflow # Also allow manually running the workflow
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
lint: lint:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -28,7 +25,7 @@ jobs:
- name: Setup node and enable yarn caching - name: Setup node and enable yarn caching
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 22 node-version: 20
cache: "yarn" cache: "yarn"
cache-dependency-path: "infra/staff/yarn.lock" cache-dependency-path: "infra/staff/yarn.lock"

View File

@@ -7,9 +7,6 @@ on:
- "infra/staff/**" - "infra/staff/**"
- ".github/workflows/infra-deploy-staff.yml" - ".github/workflows/infra-deploy-staff.yml"
permissions:
contents: read
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -25,7 +22,7 @@ jobs:
- name: Setup node and enable yarn caching - name: Setup node and enable yarn caching
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 22 node-version: 20
cache: "yarn" cache: "yarn"
cache-dependency-path: "infra/staff/yarn.lock" cache-dependency-path: "infra/staff/yarn.lock"

View File

@@ -5,14 +5,10 @@ on:
branches: [main] branches: [main]
paths: paths:
# Run workflow when mobiles's intl_en.arb is changed # Run workflow when mobiles's intl_en.arb is changed
- "mobile/apps/photos/lib/l10n/intl_en.arb" - "mobile/lib/l10n/intl_en.arb"
# Or the workflow itself is changed # Or the workflow itself is changed
- ".github/workflows/mobile-crowdin.yml" - ".github/workflows/mobile-crowdin.yml"
permissions:
contents: write
pull-requests: write
jobs: jobs:
push-sources-to-crowdin: push-sources-to-crowdin:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -24,8 +20,8 @@ jobs:
- name: Crowdin's action - name: Crowdin's action
uses: crowdin/github-action@v2 uses: crowdin/github-action@v2
with: with:
base_path: "mobile/apps/photos/" base_path: "mobile/"
config: "mobile/apps/photos/crowdin.yml" config: "mobile/crowdin.yml"
upload_sources: true upload_sources: true
upload_translations: false upload_translations: false
download_translations: false download_translations: false

View File

@@ -1,4 +1,4 @@
name: "Sync Crowdin translations (mobile/photos)" name: "Sync Crowdin translations (mobile)"
on: on:
schedule: schedule:
@@ -8,10 +8,6 @@ on:
# Also allow manually running the workflow. # Also allow manually running the workflow.
workflow_dispatch: workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs: jobs:
synchronize-with-crowdin: synchronize-with-crowdin:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -23,14 +19,14 @@ jobs:
- name: Crowdin's action - name: Crowdin's action
uses: crowdin/github-action@v2 uses: crowdin/github-action@v2
with: with:
base_path: "mobile/apps/photos/" base_path: "mobile/"
config: "mobile/apps/photos/crowdin.yml" config: "mobile/crowdin.yml"
upload_sources: true upload_sources: true
upload_translations: false upload_translations: false
download_translations: true download_translations: true
localization_branch_name: translations/mobile localization_branch_name: translations/mobile
create_pull_request: true create_pull_request: true
pull_request_title: "[mobile/photos] New translations" pull_request_title: "[mobile] New translations"
pull_request_body: "New translations from [Crowdin](https://crowdin.com/project/ente-photos-app)" pull_request_body: "New translations from [Crowdin](https://crowdin.com/project/ente-photos-app)"
pull_request_base_branch_name: "main" pull_request_base_branch_name: "main"
project_id: 574741 project_id: 574741

View File

@@ -1,77 +0,0 @@
name: "Internal release (photos)"
on:
workflow_dispatch: # Allow manually running the action
env:
FLUTTER_VERSION: "3.24.3"
RUST_VERSION: "1.85.1"
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: mobile/apps/photos
steps:
- name: Checkout code and submodules
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup JDK 17
uses: actions/setup-java@v1
with:
java-version: 17
- name: Install Flutter ${{ env.FLUTTER_VERSION }}
uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- name: Install Rust ${{ env.RUST_VERSION }}
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}
- name: Install Flutter Rust Bridge
run: cargo install flutter_rust_bridge_codegen
- name: Setup keys
uses: timheuer/base64-to-file@v1
with:
fileName: "keystore/ente_photos_key.jks"
encodedString: ${{ secrets.SIGNING_KEY_PHOTOS }}
- name: Build PlayStore AAB
run: |
flutter build appbundle --dart-define=cronetHttpNoPlay=true --release --flavor playstore
env:
SIGNING_KEY_PATH: "/home/runner/work/_temp/keystore/ente_photos_key.jks"
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS_PHOTOS }}
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD_PHOTOS }}
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD_PHOTOS }}
- name: Upload AAB to PlayStore
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
packageName: io.ente.photos
releaseFiles: mobile/apps/photos/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
track: internal
- name: Notify Discord
uses: sarisia/actions-status-discord@v1
with:
webhook: ${{ secrets.DISCORD_INTERNAL_RELEASE_WEBHOOK }}
nodetail: true
title: "🏆 Internal release available for Photos"
description: "[Download](https://play.google.com/store/apps/details?id=io.ente.photos)"
color: 0x00ff00

View File

@@ -6,16 +6,13 @@ on:
env: env:
FLUTTER_VERSION: "3.24.3" FLUTTER_VERSION: "3.24.3"
permissions:
contents: write
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
defaults: defaults:
run: run:
working-directory: mobile/apps/photos working-directory: mobile
steps: steps:
- name: Checkout code and submodules - name: Checkout code and submodules
@@ -55,14 +52,14 @@ jobs:
with: with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }} serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
packageName: io.ente.photos packageName: io.ente.photos
releaseFiles: mobile/apps/photos/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab releaseFiles: mobile/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
track: internal track: internal
- name: Notify Discord - name: Notify Discord
uses: sarisia/actions-status-discord@v1 uses: sarisia/actions-status-discord@v1
with: with:
webhook: ${{ secrets.DISCORD_INTERNAL_RELEASE_WEBHOOK }} webhook: ${{ secrets.DISCORD_INTERNAL_RELEASE_WEBHOOK }}
nodetail: true nodetail: true
title: "🏆 Internal release Photos (Branch: ${{ github.ref_name }})" title: "🏆 Internal release available for Photos"
description: "[Download](https://play.google.com/store/apps/details?id=io.ente.photos)" description: "[Download](https://play.google.com/store/apps/details?id=io.ente.photos)"
color: 0x00ff00 color: 0x00ff00

View File

@@ -4,21 +4,19 @@ on:
# Run on every pull request (open or push to it) that changes mobile/ # Run on every pull request (open or push to it) that changes mobile/
pull_request: pull_request:
paths: paths:
- "mobile/apps/photos/**" - "mobile/**"
- ".github/workflows/mobile-lint.yml" - ".github/workflows/mobile-lint.yml"
env: env:
FLUTTER_VERSION: "3.24.3"
permissions: FLUTTER_VERSION: "3.24.3"
contents: read
jobs: jobs:
lint: lint:
runs-on: ubuntu-latest runs-on: ubuntu-latest
defaults: defaults:
run: run:
working-directory: mobile/apps/photos working-directory: mobile
steps: steps:
- name: Checkout code and submodules - name: Checkout code and submodules
uses: actions/checkout@v4 uses: actions/checkout@v4

View File

@@ -11,16 +11,13 @@ on:
env: env:
FLUTTER_VERSION: "3.24.3" FLUTTER_VERSION: "3.24.3"
permissions:
contents: write
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
defaults: defaults:
run: run:
working-directory: mobile/apps/photos working-directory: mobile
steps: steps:
- name: Checkout code and submodules - name: Checkout code and submodules
@@ -62,5 +59,5 @@ jobs:
- name: Create a draft GitHub release - name: Create a draft GitHub release
uses: ncipollo/release-action@v1 uses: ncipollo/release-action@v1
with: with:
artifacts: "mobile/apps/photos/build/app/outputs/flutter-apk/ente-${{ github.ref_name }}.apk,mobile/apps/photos/build/app/outputs/flutter-apk/sha256sum" artifacts: "mobile/build/app/outputs/flutter-apk/ente-${{ github.ref_name }}.apk,mobile/build/app/outputs/flutter-apk/sha256sum"
draft: true draft: true

View File

@@ -7,9 +7,6 @@ on:
- "server/**" - "server/**"
- ".github/workflows/server-lint.yml" - ".github/workflows/server-lint.yml"
permissions:
contents: read
jobs: jobs:
lint: lint:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@@ -7,10 +7,6 @@ on:
# Run manually if needed to publish out of schedule. # Run manually if needed to publish out of schedule.
workflow_dispatch: workflow_dispatch:
permissions:
contents: write # for pushing the `ghcr/server` branch
packages: write
jobs: jobs:
publish: publish:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -40,6 +36,6 @@ jobs:
username: ${{ github.actor }} username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- name: Update branch ghcr/server to point to source commit - name: Update branch server/ghcr to point to source commit
run: | run: |
git push -f origin HEAD:refs/heads/ghcr/server git push -f origin HEAD:refs/heads/server/ghcr

View File

@@ -3,9 +3,6 @@ name: "Release (server)"
on: on:
workflow_dispatch: # Run manually workflow_dispatch: # Run manually
permissions:
contents: read
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@@ -12,10 +12,6 @@ on:
# `gh workflow run web-crowdin-push-both.yml --ref <my-branch>` # `gh workflow run web-crowdin-push-both.yml --ref <my-branch>`
workflow_dispatch: workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs: jobs:
push-both-to-crowdin: push-both-to-crowdin:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@@ -22,15 +22,6 @@ on:
# Also allow manually running the workflow. # Also allow manually running the workflow.
workflow_dispatch: workflow_dispatch:
# "In order to push translations and create pull requests, the Crowdin GitHub
# action requires the `GITHUB_TOKEN` to have write permission on the `contents`
# and `pull-requests`.
#
# - https://github.com/crowdin/github-action?tab=readme-ov-file#permissions
permissions:
contents: write
pull-requests: write
jobs: jobs:
synchronize-with-crowdin: synchronize-with-crowdin:
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@@ -15,9 +15,6 @@ on:
- "payments" - "payments"
- "photos" - "photos"
permissions:
contents: read
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -33,7 +30,7 @@ jobs:
- name: Setup node and enable yarn caching - name: Setup node and enable yarn caching
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 22 node-version: 20
cache: "yarn" cache: "yarn"
cache-dependency-path: "web/yarn.lock" cache-dependency-path: "web/yarn.lock"

View File

@@ -15,9 +15,6 @@ on:
- "payments" - "payments"
- "photos" - "photos"
permissions:
contents: read
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -33,7 +30,7 @@ jobs:
- name: Setup node and enable yarn caching - name: Setup node and enable yarn caching
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 22 node-version: 20
cache: "yarn" cache: "yarn"
cache-dependency-path: "web/yarn.lock" cache-dependency-path: "web/yarn.lock"

View File

@@ -11,9 +11,6 @@ on:
# Also allow manually running the workflow # Also allow manually running the workflow
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -41,7 +38,7 @@ jobs:
- name: Setup node and enable yarn caching - name: Setup node and enable yarn caching
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 22 node-version: 20
cache: "yarn" cache: "yarn"
cache-dependency-path: "web/yarn.lock" cache-dependency-path: "web/yarn.lock"

View File

@@ -19,9 +19,6 @@ on:
# Also allow manually running the workflow # Also allow manually running the workflow
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
deploy: deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -37,7 +34,7 @@ jobs:
- name: Setup node and enable yarn caching - name: Setup node and enable yarn caching
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 22 node-version: 20
cache: "yarn" cache: "yarn"
cache-dependency-path: "web/yarn.lock" cache-dependency-path: "web/yarn.lock"
@@ -93,13 +90,3 @@ jobs:
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
command: pages deploy --project-name=ente --commit-dirty=true --branch=deploy/payments web/apps/payments/dist command: pages deploy --project-name=ente --commit-dirty=true --branch=deploy/payments web/apps/payments/dist
- name: Build locker
run: yarn build:locker
- name: Publish locker
uses: cloudflare/wrangler-action@v3
with:
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
command: pages deploy --project-name=ente --commit-dirty=true --branch=deploy/locker web/apps/locker/out

View File

@@ -7,9 +7,6 @@ on:
- "web/**" - "web/**"
- ".github/workflows/web-lint.yml" - ".github/workflows/web-lint.yml"
permissions:
contents: read
# Cancel in-progress lint runs when a new commit is pushed. # Cancel in-progress lint runs when a new commit is pushed.
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
@@ -28,7 +25,7 @@ jobs:
- name: Setup node and enable yarn caching - name: Setup node and enable yarn caching
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 22 node-version: 20
cache: "yarn" cache: "yarn"
cache-dependency-path: "web/yarn.lock" cache-dependency-path: "web/yarn.lock"

View File

@@ -1,38 +0,0 @@
name: "Publish ghcr (web)"
on:
# Run automatically every Wednesday, at 07:00 UTC.
schedule:
- cron: '0 7 * * 3'
# Run manually if needed to publish out of schedule.
workflow_dispatch:
permissions:
contents: write # for pushing the `ghcr/web` branch
packages: write
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build and push
uses: mr-smithers-excellent/docker-build-push@v6
with:
dockerfile: web/Dockerfile
directory: web
# Resultant package name will be ghcr.io/ente-io/web
image: web
registry: ghcr.io
enableBuildKit: true
multiPlatform: true
platform: linux/amd64,linux/arm64
tags: ${{ github.sha }}, latest
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Update branch ghcr/web to point to source commit
run: |
git push -f origin HEAD:refs/heads/ghcr/web

4
.gitmodules vendored
View File

@@ -3,9 +3,9 @@
url = https://github.com/ente-io/sentry-dart.git url = https://github.com/ente-io/sentry-dart.git
branch = sentry_flutter_ente branch = sentry_flutter_ente
[submodule "auth/flutter"] [submodule "auth/flutter"]
path = mobile/apps/auth/flutter path = auth/flutter
url = https://github.com/flutter/flutter.git url = https://github.com/flutter/flutter.git
branch = stable branch = stable
[submodule "auth/assets/simple-icons"] [submodule "auth/assets/simple-icons"]
path = mobile/apps/auth/assets/simple-icons path = auth/assets/simple-icons
url = https://github.com/simple-icons/simple-icons.git url = https://github.com/simple-icons/simple-icons.git

View File

@@ -1,42 +1,54 @@
# Contributing # Contributing
- [Spread the word](#spread-the-word) First and foremost, thank you for your interest in contributing to Ente 🙏
- [Engage with the community](#engage-with-the-community)
- [Translate](#translate) There are many ways to contribute, and most of them don't require writing code.
- [Document](#document)
* [Spread the word](#spread-the-word)
* [Engage with the community](#engage-with-the-community)
* [Translate](#translate)
* [Document](#document)
## Spread the word ## Spread the word
**This is the most impactful contribution you can make**. This is perhaps the most impactful contribution you can make. [Spread the
word](https://help.ente.io/photos/features/referral-program/). Online on your
[Spread the word](https://help.ente.io/photos/features/referral-program/). Online on your favorite social media channels. Offline to your friends and family who are looking for a privacy-friendly alternative to big tech. favorite social media channels. Offline to your friends and family who are
looking for a privacy-friendly alternative to big tech.
## Engage with the community ## Engage with the community
Just hang around, enjoy the vibe. The Ente community — the people who are building Ente, and the people who are using Ente — hang out at various places depending on their proclivity: Just hang around, enjoy the vibe. Answer someone's query on our
[Discord](https://discord.gg/z2YVKkycX3), or pile on in the sporadic #off-topic
rants there. Chuckle (or wince!) at our [Twitter](https://twitter.com/enteio)
memes. Suggest a new feature in our [Github
Discussions](https://github.com/ente-io/ente/discussions/new?category=feature-requests),
or upvote the existing ones that you feel we should focus on first. Provide your
opinion on existing threads.
- [Discord](https://discord.ente.io) These might seem like small things, but it provides us energy. Knowing that
- [Mastodon](https://fosstodon.org/@ente) there is a community of people who care for what we are building.
- [X / Twitter](https://twitter.com/enteio)
- [Github Discussions](https://github.com/ente-io/ente/discussions)
Just being around might seem a small thing, but it provides us energy. Knowing that there is a community of people who care for what we are building, **who want us to do better**.
## Translate ## Translate
Visit our Crowdin projects to help with translations: If you're interested in helping out with translation, please visit our Crowdin
projects to get started:
| Project | |
| ------------- | ------------- |
| [Auth](https://crowdin.com/project/ente-authenticator-app) | [![Crowdin](https://badges.crowdin.net/ente-authenticator-app/localized.svg)](https://crowdin.com/project/ente-authenticator-app) |
| [Photos](https://crowdin.com/project/ente-photos-app) | [![Crowdin](https://badges.crowdin.net/ente-photos-app/localized.svg)](https://crowdin.com/project/ente-photos-app) |
| [Photos Web / Desktop](https://crowdin.com/project/ente-photos-web) | [![Crowdin](https://badges.crowdin.net/ente-photos-web/localized.svg)](https://crowdin.com/project/ente-photos-web) |
| Project | |
| ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| [Auth](https://crowdin.com/project/ente-authenticator-app) | [![Crowdin](https://badges.crowdin.net/ente-authenticator-app/localized.svg)](https://crowdin.com/project/ente-authenticator-app) |
| [Photos](https://crowdin.com/project/ente-photos-app) | [![Crowdin](https://badges.crowdin.net/ente-photos-app/localized.svg)](https://crowdin.com/project/ente-photos-app) |
| [Photos Web / Desktop](https://crowdin.com/project/ente-photos-web) | [![Crowdin](https://badges.crowdin.net/ente-photos-web/localized.svg)](https://crowdin.com/project/ente-photos-web) |
If your language is not listed for translation, please [create a GitHub If your language is not listed for translation, please [create a GitHub
issue](https://github.com/ente-io/ente/issues/new?title=Request+for+New+Language+Translation&body=Language+name%3A+%0AProject%3A+auth%2Fphotos%2Fboth) issue](https://github.com/ente-io/ente/issues/new?title=Request+for+New+Language+Translation&body=Language+name%3A+%0AProject%3A+auth%2Fphotos%2Fboth)
to have it added. It is okay to have partial translations. Once ~90% of the to have it added. It is okay to have partial translations. Once ~90% of the
strings in a language get translated, we will start surfacing it in the apps. strings in a language get translated, we will start surfacing it in the apps.
Thank you for your support.
## Document ## Document
The help guides and FAQs for users of Ente products are also open source, and The help guides and FAQs for users of Ente products are also open source, and
@@ -48,9 +60,25 @@ See [docs/](docs/README.md) for how to edit these documents.
## Code contributions ## Code contributions
If you'd like to contribute code, it is best to start small. Consider some well-scoped changes, say like adding more [custom icons to auth](auth/docs/adding-icons.md), or fixing a specific bug. Code is a small aspect of community, and the ways mentioned above are more
important in helping us. But if you'd _really_ like to contribute code, it is
best to start small. Consider some well-scoped changes, say like adding more
[custom icons to auth](auth/docs/adding-icons.md).
Code that changes the behaviour of the product might not get merged, at least not initially. The PR can serve as a discussion bed, but you might find it easier to just start a discussion instead, or post your perspective in the (likely) existing thread about the behaviour change or new feature you wish for. Each of the individual product/platform specific directories in this repository
have instructions on setting up a dev environment.
For anything beyond trivial bug fixes, please use [features requests and
discussions](https://github.com/ente-io/ente/discussions) instead of performing
code changes directly.
> [!TIP]
>
> Please remember that code is a important, but small, part of the overall big
> picture that makes a product a joy to use. Something that's easy in code is
> not necessarily the right choice for the product as a whole. So we'll repeat -
> there are other ways to contribute than code that we'd request you to
> consider.
## Leave a review or star ## Leave a review or star

View File

@@ -35,7 +35,7 @@ Private sharing. Collaborative albums. Family plans. Easy import, easier export.
Background uploads. The list goes on. And of course, all of this, while being Background uploads. The list goes on. And of course, all of this, while being
fully end-to-end encrypted across platforms. fully end-to-end encrypted across platforms.
Ente Photos is a paid service, but we offer 10GB of free storage. Ente Photos is a paid service, but we offer 5GB of free storage.
You can also clone this repository and choose to self-host. You can also clone this repository and choose to self-host.
<br /> <br />

View File

@@ -41,7 +41,4 @@ lib/generated_plugin_registrant.dart
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
android/key.properties android/key.properties
dist/ dist/
# FVM Version Cache
.fvm/

View File

@@ -73,7 +73,7 @@ If the code you're working needs to modify user facing strings, see
## 🔩 Architecture ## 🔩 Architecture
The architecture that powers end-to-end encrypted storage and sync of your The architecture that powers end-to-end encrypted storage and sync of your
tokens has been documented [here](architecture/README.md). tokens has been documented [here](../architecture/README.md).
## 🌍 Translate ## 🌍 Translate

View File

@@ -5,8 +5,6 @@ gradle-wrapper.jar
/gradlew.bat /gradlew.bat
/local.properties /local.properties
GeneratedPluginRegistrant.java GeneratedPluginRegistrant.java
/app/.cxx/
/.kotlin/
# Remember to never publicly share your keystore. # Remember to never publicly share your keystore.
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app

View File

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 134 KiB

View File

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 126 KiB

View File

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

View File

Before

Width:  |  Height:  |  Size: 69 B

After

Width:  |  Height:  |  Size: 69 B

View File

Before

Width:  |  Height:  |  Size: 69 B

After

Width:  |  Height:  |  Size: 69 B

View File

Before

Width:  |  Height:  |  Size: 253 KiB

After

Width:  |  Height:  |  Size: 253 KiB

View File

Before

Width:  |  Height:  |  Size: 237 KiB

After

Width:  |  Height:  |  Size: 237 KiB

View File

Before

Width:  |  Height:  |  Size: 604 KiB

After

Width:  |  Height:  |  Size: 604 KiB

Some files were not shown because too many files have changed in this diff Show More