This is the culmination of the previous few PRs. The payments app now
uses vite, which is what we want to give out a real shot for the smaller
of our apps.
**Tested by**
Local setup, and subscribing to a plan.
## Description
Users can now tap on the onboarding screen 7 times to bring up a page
where they can configure the endpoint the app should be connecting to.

## Tests
- [x] Verified that production flows are working as expected
- [x] Verified that configuring the endpoint to a local instance lets
you
- [x] Connect to that instance
- [x] Create an account
- [x] Upload a photo
- [x] Logout and log back in
This is a reduction in code generally before we give a shot to using
vite for Payments. Once that is done, will do an end-to-end test of the
payments pages on localhost.
The methods are trivial, and we cannot centralize the keys since they will be
different for different apps. So an abstraction for this is not beneficial.
Also move the next specific dev build check to @/next
From our Discord, someone commented
> if minio's cautions about Single-Node, Single-Drive are to be taken
seriously:
>
> "SNSD deployments use a zero-parity erasure coded backend that
provides no
added reliability or availability beyond what the underlying storage
volume
implements. These deployments are best suited for local testing and
evaluation, or for small-scale data workloads that do not have
availability or
performance requirements."
MinIO was never meant as a production replacement, it was only to make
it easy
for people to get started. So add a notice in the docs re this.
From our Discord, someone commented
> if minio's cautions about Single-Node, Single-Drive are to be taken seriously:
>
> "SNSD deployments use a zero-parity erasure coded backend that provides no
added reliability or availability beyond what the underlying storage volume
implements. These deployments are best suited for local testing and
evaluation, or for small-scale data workloads that do not have availability or
performance requirements."
MinIO was never meant as a production replacement, it was only to make it easy
for people to get started. So add a notice in the docs re this.
Open the link in a new tab. This prevents the desktop app from getting
into a state where the user cannot navigate back.
Tested on the web app and desktop app.
## Description
New Oneplus devices have a "ProXDR" feature when viewing images. These
images (when in HEIC format) decode fine on devices that supports
ProXDR, but fails to decode on other devices.
So if decoding fails, we convert it to a JPEG and use that image for
viewing it.
## Tests
- [x] Tries converting to jpeg only if decoding fails
- [x] If converting also fails, the behaviour remains the same as before
when decoding fails.
## Description
- Fixes corrupt files (missing GPS data) that were uploaded due to [this
issue](https://github.com/ente-io/ente/pull/1261)
- Refactor
## Tests
Tested and working
- Uploaded two file from a build that has missing permission for
`ACCESS_MEDIA_LOCATION` and GPS data is missing.
- Created a new build with changes in this PR.
- Deleted the file from device.
- Remote file has GPS data when checked from file info.
---------
Co-authored-by: Neeraj Gupta <254676+ua741@users.noreply.github.com>
It is not mentioned as a dependency in the SSR page
> For v10 and above, SSR just works in Next.js.
>
> https://emotion.sh/docs/ssr
Tested by - yarn dev, yarn preview:photos
Came across this when trying to migrate off bootstrap in the few remaining
places, this code is unused and just removing it instead of doing a migration of
it to mui.
This is no longer needed for emotion > 10
> For v10 and above, SSR just works in Next.js.
>
> https://emotion.sh/docs/ssr#nextjs
Tested with
- yarn dev:*
- yarn preview:*
This change screws up the CSS in places in dev mode though.
## Description
On bumping up photo_manager version, it introduced a breaking change
where we need to explicitly ask for ACCESS_MEDIA_LOCATION permission.
## Tests
Tested on android 13 and 14 devices.
- Use 3001 for sidecars
- Use the placeholder as the placeholder, not as the label
- Change slideshow time from 5s => 10s
- Remove the 123456 below the actual code
- Make the code copyable without inserting spaces in between
This was accidentally an ancient version of axios when importing from
the older repo - update it to what the rest of the code uses (via the
shared package).
This was accidentally an ancient version of axios when importing from the older
repo - update it to what the rest of the code uses (via the shared package).
## Description
- Add Checksums for mac and windows
- Capitalize ente Auth mostly everywhere
- Ask for installation mode (for all users [admin] or for current user
[non-privileged])
Fixes for auth desktop
- Install Dir path and name fix
- Install/Uninstall Icon fix
- Don't check "add Desktop icon" by default
- Fix Exit app in system tray
- Use the shared yarn monorepo configuration
- styled-components => emotion (since that's what the rest of the code uses)
- Remove Sentry (since it's gone elsewhere)
Manav: To avoid accidentally spilling out any secrets, squash and
import. However, the overwhelming majority of the work in the original
code was done by @abhinavkgrd so set them as the author for the commit.
Manav: To avoid accidentally spilling out any secrets, squash and
import. However, the overwhelming majority of the work in the original code was
done by Abhinav <abhinavk.grd@gmail.com> so set them as the author for the
commit.
Discord still hasn't fixed the issue on their end, and having a top
level link whenever a new comment is added is getting cumbersome, so add
a handler for the common comments case too.
Tested and deployed.
Discord still hasn't fixed the issue on their end, and having a top level link
whenever a new comment is added is getting cumbersome, so add a handler for the
common comments case too.
Tested and deployed.
- Switch to title case (discussed with others that the app's main menu is an
appropriate choice and exception to our sentence casing otherwise).
- Prune
## Description
When using `readAsBytes()`, noticed a lot of `concurrentMark` GC event
in timeline when using the performance profiler dev tool, which were
potentially causing longer build and raster time for frames.
## Description
When a customer whose Stripe subscription is past due (within the 30 day
window after expiry time and has not been cancelled) clicks on the
subscription modal, take them to the payment portal to complete the
subscription.
## Tests
- [x] Tested web
- [x] Tested mobile
Per https://www.electron.build/icons, a single 512x512 icon.png placed in the
buildResources directory (default `build`) is enough to generate icons for all
three - macOS, Windows and Linux.
## Description
### Stripe
- Settings have been modified to "Cancel" the subscription if all
attempts to charge an invoice fails. The previous configuration was to
set the subscription to "Past Due".
### Museum
- Updated our Stripe workflow to use `PaymentBehaviorAllowIncomplete` in
case of SEPA payments
- Fixed the issue caused by us spawning unnecessary subscriptions when a
customer tried to renew their expired subscription
- Removed the email that was being sent out when a Stripe subscription
expired. We will have to run our own cron to send a notification and
perform necessary clean up. When payments fail, we will still send a
notification to intimate the customer that their account is on hold.
### Mobile
- Fixed the dialogs and error messages on the payment page
## Tests
The following cases were tested for SEPA, Credit Cards, and Credit Cards
with 3DS.
- [x] Purchase
- [x] Success
- [x] Failure
- [x] Renewal
- [x] Success
- [x] Failure
- [x] Upgrades
- [x] Success
- [x] Failure
- [x] Cancellation
- [x] Resumption post recovery
## Note
These changes are likely to break in the event of some corner cases we
haven't thought of. But this will land us in a state that is better than
where we are right now in terms of collecting payments for expired
subscriptions and those via SEPA.
- Outline the plan
- Add a first cut of the publish script
Merging this now so that I can test the workflow. Post a successful
publish, I'll open another PR with any fixes entailed, and will also
document this in the main server README.
- And update to latest everything else too
- Fix the duplication in preload
- ... and many more cleanup changes (see commit titles for details)
Should not have major functional impact, and whatever IPC actions got
broken by the switch to context-isolation will still not be working.
This is just an intermediate step, and more PRs will continue fixing the
IPC APIs.
...hacky because it was using a timer instead of the "ready-to-show" event
(which wasn't getting fired for some reason). It is recommended that we set a
background color anyway.
This isn't doing anything for us currently, and I suspect is also the source of
this error when trying to run a binary built using `yarn build:quick`
> DevTools failed to load source map: Could not load content for next://app/preload.js.map:
Unexpected token '<', "<!DOCTYPE "... is not valid JSON
Note that the renderer process already has source maps.
On desktop, now there Help menu will have an "Ente Help" option instead
of "FAQ".
<img width="222" alt="Screenshot 2024-03-25 at 19 35 33"
src="https://github.com/ente-io/ente/assets/24503581/f061419d-7587-4438-b055-927a9cc8f42f">
The only place remaining after this is the sidebar on mobile
(`support_section_widget.dart`), but I wasn't sure of what string to use
(and how to add it to the localized strings for mobile) so I've left it
unchanged.
On desktop, now there Help menu will have an "Ente Help" option instead of "FAQ"
(Unrelated: I noticed that user facing strings in the desktop app are not
localized).
The only place remaining after this is the sidebar on mobile
(`support_section_widget.dart`), but I wasn't sure of what string to use (and
how to add it to the localized strings for mobile) so I've left it unchanged.
Fix an infinite loop of navigation under the following conditions: key
is valid
but token is not present.
Fix is to match the condition used in both gallery
if (!key || !token) {
and the root page.
They seemed to have diverged in commit
c3304571a9.
Was able to reproduce this when launching the desktop app such that the
key was
picked up (possibly from a prior installation) from the secure keychain,
but the
token was not found. I feel this is also a fix for a similar navigation
loop
recently reported by QA but unreproducible so far.
## Description
This is my first time in ente! I modified two commands to allow the
build scripts for web and desktop to work in a Windows environment.
- Before running the command to get the git SHA in `next.config.js`, I
checked the platform of the current OS and changed it so that we could
run a command that would work on Windows.
- `NUL` is same as `/dev/null` in Windows, and `cd .` is always return
nothing with 0 status code.
- Added a new package called
[`shx`](https://[github.com/shelljs/shx](https://github.com/shelljs/shx))
to the development dependencies to support `rm` and `ln`, which are
commands not supported by Windows when running the Desktop build
command.
#1191
## Tests
I've tested the web build and desktop build in a Windows environment. I
don't have a Mac, so I'd love for someone to test it on a Mac and let me
know the results.
Fix an infinite loop of navigation under the following conditions: key is valid
but token is not present.
Fix is to match the condition used in both gallery
if (!key || !token) {
and the root page.
They seemed to have diverged in commit c3304571a9.
Was able to reproduce this when launching the desktop app such that the key was
picked up (possibly from a prior installation) from the secure keychain, but the
token was not found. I feel this is also a fix for a similar navigation loop
recently reported by QA but unreproducible so far.
The preload script is now self contained, and the app when launched
tries to open the renderer correctly. It goes on to fail because of an
infinite navigation loop, but that's a different issue.
Beyond the navigation loop, there is more pending work to do - not all
the ipcMain/ipcRenderer communication would currently be working since
the objects being passed around (like "File") are not copyable. Still,
this PR is a checkpoint for the preload structure.
## Description
- Fix broken integration test used for benchmarking gallery scroll
performance.
- Automate email and password entry.
- Write script to run perf test.
- Refactor towards making preload.ts self contained (see comments at the
top of the file why)
- More PRs in this series will come
- Build is still broken
Don't upload existing translation when syncing with Crowdin. This way,
we let the existing translations be invalidated when we change the
source string (this was not happening previously since we also upload
the (older) translations when
we upload the changed source strings).
**Tested by**
Doing this on a different test branch, changing a source string,
manually running the workflow against that branch, and verifying that
the strings are getting reset in the PR that Crowdin' action opens.
Don't upload existing translation when syncing with Crowdin. This way, we let
the existing translations be invalidated when we change the source string (this
was not happening previously since we also upload the (older) translations when
we upload the changed source strings).
https://github.com/ente-io/ente/pull/1185 updated the file but in the
accounts app. That's not the file that's used as the source - this PR
updates the one we use as the source for Crowdin.
https://github.com/ente-io/ente/pull/1185 updated the file but in the accounts
app. That's not the file that's used as the source - this PR updates the one we
use as the source for Crowdin.
## Description
The intent was to lower the case for "Files" and "Each" (that were in
caps), since the file was open, also ended up flipping the case for
"ente".
## Tests
Have verified the places "files" and "each" were being printed. As for
"Ente", the change should not cause any side effects.
Remove the special disk only cache we had when running under Electron,
and instead rely on the "disk-cache-size" flag to get the embedded
Chromium in our app to cache more generously.
This change is being done to reduce the surface area of the APIs we need
to migrate to in a post no-node-integration world.
This continues the refactoring to disable node integration in our
rendered process. The code is still in a WIP state, and more PRs in this
series will come.
## Description
When importing a folder, I am getting this error on each image:
```
cmd: "'/tmp/.mount_ente-xHvuBzN/resources/image-magick' -auto-orient -define 'jpeg:size=1440x1440' 'IMG_9694.heic' -thumbnail '720x720>' -unsharp '0x.5' -quality 70 '/tmp/ente/E6YH91g3T3-thumb.jpeg'",
stdout: '',
stderr: "magick: no images found for operation `-auto-orient' at CLI arg 1 @ error/operation.c/CLIOption/5432.\n"
```
## Tests
This is UNTESTED because I don't have a build env ready, however it
seems like this error is coming out because we pass the input file after
specifying some modifier flag that applies to it, and we should put the
input before.
It reloads the BrowserWindow, but that already has HMR since we're connecting to
a Next dev server on localhost.
What we want is the main process to reload if the files for the main process are
changed. All options I've found so far just restart the main app on changes to
the main process code. I'm not sure that'll be useful, so not adding them right
now (and in any case, this is not a regression, it just wasn't working with
electron-reload either). For future reference if I need to revisit this, these
are the things I scouted:
- https://www.electronforge.io/config/plugins/webpack
- https://github.com/sindresorhus/electron-reloader
- https://electron-vite.org/guide/hot-reloading.html
* Also includes an unrelated change to update the support email.
* See corresponding commit messages for more details about why specific
bits of code were removed.
I'm not sure how it is happening, but both ffmpeg-static and onnx get to their
correct path without this configuration. the paths it gets to is also slightly
different, so it seems that this snippet does not have any effect (at best):
ente.app/Contents/Resources/app.asar.unpacked/node_modules
This migration path was in the last release v1.6.63, and it has now been out
there for a couple of months so apart from some outliers the migration should've
already happened. Even for the outliers, this will increase their cache size but
won't have a functional impact.
Cleaning this code now to reduce the amount that needs to be changed to support
a contextBridge aware cache.
The desktop app in its current state does not function. More PRs will
come, but I wanted to keep this branch in sync with main instead of
continually rebasing it. Now that the photos app has been deployed, it
is a good idea to merge these changes.
Have paid extra attention to ensure that the diff for the web changes is
correct and does not introduce bugs.
We now bundle the renderer code within the app. So a load-fail indicates
something really wrong, not something we can deal with upfront (the code wasn't
probably even working - e.g. it was assigning to a function parameter
mainWindow, not the actual global var behind it).
From discussions, it seems that it was pre-emptively added but not specifically
requested by a customer. We can bring this back later if needed, or at least
offer better options to clean it, but for now I'm pruning the IPC surface to
reduce the amount of work needed for handling contextIsolation and sandboxing.
Electron also comes with its own type definitions, and from a (possibly dated)
blog post announcing this I got that we should not be overriding it with
@types/node: https://www.electronjs.org/pt/blog/typescript
Things will break, but let's try to fix them. In the current state, this is
preventing us from running `yarn dev` without reverting back to Electron 21.
When we merge main into a deploy/* branch (e.g.
https://github.com/ente-io/ente/pull/1147), all changes get pulled in
not just the one related to that deployment, and this causes almost all
of the path based workflows to run again unnecessarily. Exclude the
various "deploy/**" branches to stop these unnecessary workflows from
being triggered.
When we merge main into a deploy/* branch
(e.g. https://github.com/ente-io/ente/pull/1147), all changes get pulled in not
just the one related to that deployment, and this causes almost all of the path
based workflows to run again unnecessarily. Exclude the various "deploy/**"
branches to stop these unnecessary workflows from being triggered.
## Description
- Also started storing the embedding size and version in the table. This
will come handy while comparing overall size when different compression
and serialization formats are used..
- Also, it can be used to smartly auto-download the embeddings or inform
the user about approximate size when they decide to enable indexing or
search on a particular client.
## Tests
✅ Verified that embedding fetch and store is working fine.
✅ Verified that embeddings/diff API is working fine.
- Move deployment related stuff into a separate folder
- Document the overall approach better
- Add an Nginx specific environment and service definition
- Remove the restart limiter
During recent DDoS attacks, these restart limits had to be manually
disabled. For now, disabling them in our reference copy too, will bring them
back if they are needed later.
Obtained these strings from
33faadf83e/apps/accounts/public/locales/en/translation.json (L632)
I didn't have a way of exhaustively ensuring that all strings are
covered, but I've tried to manually verify.
Once this is merged and translation files synced with Crowdin, I'll do
another PR to update the `local/**/translation.json` files within
apps/accounts.
Obtained these strings from 33faadf83e/apps/accounts/public/locales/en/translation.json (L632)
I didn't have a way of exhaustively ensuring that all strings are covered, but
I've tried to manually verify.
Once this is merged and translation files synced with Crowdin, I'll do another
PR to update the `local/**/translation.json` files within apps/accounts.
## Description
- Increase the interaction timeout to 15s
- Make sure that models aren't downloaded over mobile data, and that it
resumes initialization when network conditions are favorable
## Tests
- [x] Tested manually
- Disable the example.org domains in the default self-hosted
configuration (saner default)
- Add a new flag to support S3 path style URLs without disabling SSL
(needed for folks who want to run minio as their production S3, without
disabling SSL)
**Tested by**
Running a local cluster with the following `museum.yaml` and verifying
that the path style URLs are kicking in.
```
s3:
use_path_style_urls: true
```
The use case for this came up in Discord - someone is running a custom self
hosted instance where they're using MinIO as their "production S3", but it is
not local (so they don't want the clients to connect without SSL). So we need a
way to get MinIO to work, which needs path style URLs, without also disabling
the SSL.
- Change 'Add viewer' buttons logic to work with the new UI.
- Long press on an email to verify.
- Filter suggestions list with the text entered in 'Enter email' text field.
Someone got confused about this missing instruction in Discord. Have
added the submodule step, and also called out that it might be a good
idea to also refer to the project READMEs in case this guide in the
future drifts out of sync.
- Create infra directory
- Import the code for copycat-db
- Update its paths for the monorepo
- Fix up its GitHub workflow for the monorepo (untested yet)
Add a dotted arrow between museum and the hot object storage to indicate
that clients talk directly to the primary S3 storage.
This has confused some users who were trying to setup self-hosting, them
not realizing that the minio buckets need to be accessible outside the
container.
The actual flow is - for both GET and PUT, museum conjures up pre-signed
URLs by talking to the S3 bucket, and vends these pre-signed URLs back
to the client. Thereafter though (unless routed via a Cloudflare worker,
which is not the case when self-hosting), the clients directly connect
to this presigned URL.
Maybe too much information to convey with a single dotted arrow, but at
least it'll give a hint that there is a direct connection there
somewhere.
Add a dotted arrow between museum and the hot object storage to indicate that
clients talk directly to the primary S3 storage.
This has confused some users who were trying to setup self-hosting, them not
realizing that the minio buckets need to be accessible outside the container.
The actual flow is - for both GET and PUT, museum conjures up pre-signed URLs by
talking to the S3 bucket, and vends these pre-signed URLs back to the
client. Thereafter though (unless routed via a Cloudflare worker, which is not
the case when self-hosting), the clients directly connect to this presigned URL.
Maybe too much information to convey with a single dotted arrow, but at least
it'll give a hint that there is a direct connection there somewhere.
Fixes: Info button is not working when videos are playing in full screen
mode.
**Tested by**
Wasn't working before, but it works now. Still doesn't work with the
keybinding,
have left a note about that in the code.
Fixes: Info button is not working when videos are playing in full screen mode.
**Tested by**
Wasn't working before, but it works now. Still doesn't work with the keybinding,
have left a note about that in the code.
For now, this at least makes it less obtrusive. Once I have cleaned up
the state handling around selection (to better integrate this with the
rest of the selection state so that there are no discrepancies), can
revisit the UI - e.g. show it only on hover, or reduce the size of the
checkbox / give it a rounded look etc to make it look even less
obstrusive.
Every day is too much noise - we really only need this
- When a string gets changed in the source translation, in which case this
workflow gets triggered automatically anyway.
- Before we do a new release (this doesn't automatically happen, but the
workflow can be triggered manually if needed).
For now, reduce the frequency of the daily job to pull new translations from
Crowdin: now it'll only happen on Tuesdays and Fridays (just an arbitrary
choice).
The intent had always been to have the individual project gitignores be
self contained. In my previous PR
(https://github.com/ente-io/ente/pull/516) I'd for some reason not
followed this: correcting my mistake now. .vscode is gitignored both at
the top level and at the individual project levels (as it was
originally).
The intent had always been to have the individual project gitignores be self
contained. In my previous PR (https://github.com/ente-io/ente/pull/516) I'd for
some reason not followed this: correcting my mistake now. .vscode is gitignored
both at the top level and at the individual project levels (as it was
originally).
## Description
Adds the Authy migration guide from auth/migration-guides into the new
help website.
## Tests
- [X] Tested on a selfhosted instance to ensure that all new content is
properly visible, see screenshot below
<img width="1440" alt="image"
src="https://github.com/ente-io/ente/assets/41323182/aeb59c9f-0e36-4d94-a5f8-1042081db87b">
The current approach wasn't working. Not sure what caused it to stop
working,
but anyway that was an hacky import, as evidenced by the ungainly
warning
webpack would print on `yarn dev`. So instead of taking the path, we
just take
the JSON contents directly, sidestepping all that.
**Tested by**
Rerunning the upload tests
The current approach wasn't working. Not sure what caused it to stop working,
but anyway that was an hacky import, as evidenced by the ungainly warning
webpack would print on `yarn dev`. So instead of taking the path, we just take
the JSON contents directly, sidestepping all that.
**Tested by**
Rerunning the upload tests
## Description
Stack has `clipBehaviour = Clip.hardEdge` by default. This is necessary
if content inside the stack is overflowing it's boundary and it has to
be clipped. Clipping is expensive so it's worth removing it when it
makes sense.
In this case of `GalleryFileWidget`, content doesn't overflow the
Stack's boundary so the clip operation can be removed by setting
`clipBehaviour = Clip.none`.
This was found useful by @Bramas when building a Dockerfile of the web
app itself. See https://github.com/ente-io/ente/pull/1065.
Now, the GIT_SHA environment variable can just be undefined if we're not
in a git repository, and the code using it deals with that case
explicitly.
**Tested by**
Temporarily inverted the isDevBuild flag, then
1. Ran the build normally and verified that the SHA continued to appear
in the logs.
2. Ran the build after copying to a standalone folder without an
associated git repository and verified that the SHA was skipped without
causing the build to fail.
Change the syntax highlighting of the `env` code block from `env` to `sh`
because currently vite press doesn't support the env language and instead
complains
> The language 'env' is not loaded, falling back to 'txt' for syntax highlighting.
This was found useful by @Bramas when building a Dockerfile of the web app
itself. See https://github.com/ente-io/ente/pull/1065.
Now, the GIT_SHA environment variable can just be undefined if we're not in a
git repository, and the code using it deals with that case explicitly.
**Tested by**
Temporarily inverted the isDevBuild flag, tehn
1. Ran the build normally and verified that the SHA continued to appear in the logs.
2. Ran the build after copying to a standalone folder without an associated git
repository and verified that the SHA was skipped without causing the build to
fail.
- Main change here is removing a submodule and moving to the upstream
dependency
- Also updated to Prettier 3
The original issue, about yarn dev not working because of context
isolation, still remains. This PR prepares the ground, will have a go at
it in a subsequent PR.
Sentry has a measurable impact on page load, a metric that I'm keen to
improve. Apparently by default it loses us 8-9 page speed points, though
that can be reduced to 3-4
(https://github.com/getsentry/sentry-javascript/issues/9179).
All of this is doable, but there are bigger tasks to deal with. This is
not to say that Sentry won't be useful again at some point, when we have
time to deal with it better. But right now, we discussed that it's just
better to remove Sentry instead of piling on to the sunk cost.
Sentry has a measurable impact on page load, a metric that I'm keen to
improve. Apparently by default it loses us 8-9 page speed points, though that
can be reduced to 3-4
(https://github.com/getsentry/sentry-javascript/issues/9179).
All of this is doable, but there are bigger tasks to deal with. This is not to
say that Sentry won't be useful again at some point, when we have time to deal
with it better. But right now, we discussed that it's just better to remove
Sentry instead of piling on to the sunk cost.
On our Discord @Degos ran into an issue where their uploads to the self hosted
docker compose cluster were failing. On debugging, it was found that the
line-endings in `server/scripts/compose/minio-provision.sh` were set to CRLF,
causing the script to fail when run inside Docker. The minIO buckets never got
provisioned, and so the uploads would fail with
<Code>NoSuchBucket</Code>
<Message>The specified bucket does not exist</Message>
To fix this, we add a new .gitattributes that enforces the LF for the scripts
that run inside Docker. To (perhaps too preemptively) guard against similar
issues in other scenarios, turn this on for all shell scripts.
Refs:
- https://stackoverflow.com/questions/29603737/bash-seamlessly-run-scripts-with-crlf-line-endings
- https://docs.github.com/en/get-started/getting-started-with-git/configuring-git-to-handle-line-endings
Preview deployments can be made by manually triggering the "Preview
(web)" workflow. You can select the app you want to build
(accounts/auth/cast/photos) and the branch to take the code from. The
deployment will be available at https://preview.ente.sh.
## Description
- Upscale default placeholder
- Keep image ready to be rendered in home widget before adding the home
widget.
- Change the photo in home widget every time it's clicked.
- Open favourites when home widget is clicked.
- Fix multiple issues
## Tests
Did a good amount of testing.
---------
Co-authored-by: ashilkn <ashilkn99@gmail.com>
Co-authored-by: Ashil <77285023+ashilkn@users.noreply.github.com>
This is part 1 of general fixes to get the Photos desktop app back up
and building after moving to this monorepo. The main change in this PR
is to reformat the source to match the prettier config for the other
JS/TS (web/, docs/) code. And a few other fixes.
It still doesn't build, and there are a few eslint errors too. Those
will come in a subsequent PR.
- to the web alias for shared albums during nightly deployments
- Remove duplicate favicon link
- Capitalize Ente
- Document translation
- Remove the unnecessary console warning
## Description
Changed,
1. Section title in the discovery page
2. Page title in the page that pops up on tapping the > next to the
header on the discovery page
for Location and Description section.
This flow probably got broken when the select-all-for-a-day
functionality got added in https://github.com/ente-io/ente/pull/674
(haven't dug into this, I'm just guessing since that's where this all
got touched).
Thank you to @Bramas on our Discord for pointing this out, and also
providing the fix:
https://github.com/ente-io/ente/compare/main...Bramas:ente:fix-error-on-shared-album
Tested by
---------
Run normal web app on one terminal
NEXT_PUBLIC_ENTE_ENDPOINT=http://localhost:8080
NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT=http://localhost:3002 yarn dev
Run the albums listener on another port (need to do this since we're
running on localhost, and need to bind to a different origin):
NEXT_PUBLIC_ENTE_ENDPOINT=http://localhost:8080
NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT=http://localhost:3002 yarn dev:albums
Create a shared album, copy its public link, and verify that
- Before the fix we were getting an error (trying to access properties
of `galleryContext.selectedFile`)
- After the fix the shared album is visible
This flow probably got broken when the select-all-for-a-day functionality got
added in https://github.com/ente-io/ente/pull/674 (haven't dug into this, I'm
just guessing since that's where this all got touched).
Thank you to @Bramas on our Discord for pointing this out, and also providing the fix:
https://github.com/ente-io/ente/compare/main...Bramas:ente:fix-error-on-shared-album
Tested by
---------
Run normal web app on one terminal
NEXT_PUBLIC_ENTE_ENDPOINT=http://localhost:8080 NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT=http://localhost:3002 yarn dev
Run the albums listener on another port (need to do this since we're running on
localhost, and need to bind to a different origin):
NEXT_PUBLIC_ENTE_ENDPOINT=http://localhost:8080 NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT=http://localhost:3002 yarn dev:albums
Create a shared album, copy its public link, and verify that
- Before the fix we were getting an error (trying to access properties of `galleryContext.selectedFile`)
- After the fix the shared album is visible
## Description
After this commit https://github.com/ente-io/ente/pull/430 those 6 icons
I tried to add do not shows the icon or default letter, but icon is
filled with hexcolor, so I guess hexcolor is not needed.
After this commit https://github.com/ente-io/ente/pull/430 those 6 icons I tried to add do not shows the icon or default letter, but icon is filled with hexcolor, so I guess hexcolor is not needed.
People often run into issues with `yarn install` because they're using a
newer yarn. The situation is generally bad - we don't want to update to
Yarn v4 yet because it is marked experimental and is not the default
yarn that gets installed by node currently. We could add a
`packageManager` field to our package.json, but this will only fail the
build with a better (hopefully) error message, and will necessitate the
user to `corepack_enable`.
I'm not sure what's the best approach right now to make the initial
setup be seamless (I think we're using the approach that works for the
maximum of all the alternatives, but I'm not sure). At least, let me add
a note about it.
Ref:
* https://github.com/yarnpkg/berry/issues/5912
Not integrating GitHub deployments for now since creating a deployment
(anywhere) causes "This branch has not been deployed" message to appear on
unrelated branches.
Also, the Discord /github webhook doesn't support deployment status events
anyway - Discord accepts and responds to the webhook with a 204 but it doesn't
appear in the channel. This is not a big issue, we can easily massage the
payload ourselves, but just mentioning this for posterity. Refs:
* [Corresponding issue on Discord](https://github.com/discord/discord-api-docs/issues/6203#issuecomment-1608151265)
* [A general recipe](https://gist.github.com/jagrosh/5b1761213e33fc5b54ec7f6379034a22)
---
For deleting the existing deployment I had to
```
gh api /repos/ente-io/ente/deployments --jq=".[].id"
gh api --method DELETE -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" "/repos/ente-io/ente/deployments/1375794893"
```
This helpful hint taken from https://github.com/orgs/community/discussions/46375. Thanks!
Finalize the structure of the docs, and go through all of the existing
content, cleaning it up and making it a bit more consistent.
Apart from the photos/troubleshooting/sharing-logs page, there are no
other placeholders left. The content is still not complete, but things
are at a state where we can publish this and then iteratively keep
adding to it.
## Description
To keep the changes simple, we are not deleting any existing database
instances. In case we need to store this information in the future, we
will reuse the existing database instead of creating a new one.
## Description
Users can now tap on the onboarding screen **7 times** to bring up a
page where they can configure the endpoint the app should be connecting
to.

## Tests
- [x] Verified that production flows are working as expected
- [x] Verified that configuring the endpoint to a local instance lets
you
- [x] Connect to that instance
- [x] Create an account
- [x] Add a key
- [x] Modify a key
- [x] Logout and log back in
"confirmAccountDeleteMessage": "To konto jest połączone z innymi aplikacjami ente, jeśli ich używasz.\n\nTwoje przesłane dane, we wszystkich aplikacjach ente, zostaną zaplanowane do usunięcia, a Twoje konto zostanie trwale usunięte."
"confirmAccountDeleteMessage": "To konto jest połączone z innymi aplikacjami ente, jeśli ich używasz.\n\nTwoje przesłane dane, we wszystkich aplikacjach ente, zostaną zaplanowane do usunięcia, a Twoje konto zostanie trwale usunięte.",
"description": "Message to let the user know that authentication was failed. It is used on Android side. Maximum 60 characters."
},
"androidSignInTitle": "Wymagana autoryzacja",
"@androidSignInTitle": {
"description": "Message showed as a title in a dialog which indicates the user that they need to scan biometric to continue. It is used on Android side. Maximum 60 characters."
},
"goToSettings": "Przejdź do Ustawień",
"@goToSettings": {
"description": "Message showed on a button that the user can click to go to settings pages from the current dialog. It is used on both Android and iOS side. Maximum 30 characters."
},
"noInternetConnection": "Brak połączenia z Internetem",
"pleaseCheckYourInternetConnectionAndTryAgain": "Proszę sprawdzić połączenie internetowe i spróbować ponownie.",
"hearUsWhereTitle": "Jak usłyszałeś o Ente? (opcjonalnie)",
"waitingForVerification": "Oczekiwanie na weryfikację...",
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.