It is now possible to add and update sources via client side scraping.
For that a new edge function `add-or-update-source-v1` was added and the
old `add-source-v1` function was deprecated.
The new function accepts a new `feedData` field, which can contain the
feed for a source. If the field is provided we will not try to get the
feed for a source within our edge function and instead use the provided
data.
Currently this function is only used to add a Reddit source. Later we
plan to extend it for other sources and want to use it to update source
via the app, when the source provider makes heavy use of rate limiting.
Update the used Flutter version to 3.16.5 and the used packages to their
latest version.
The Supabase package contained some breaking changes:
- `functionUrl` is not exported anymore, so that it must be generated by
ourselfs
- `Provider` was renamed to `OAuthProvider`
- The `signInWithApple` method was removed and is now implemented by us
via the `sign_in_with_apple` package.
We also renamed the `DesktopLoginManager` to `DesktopSignInManager` to
use the same naming as in other places of the app, where we are always
using sign in and not login.
This commit adds tests for all available sources.
This commit also fixes the parsing of Atom feeds for the RSS source,
where the `dc:date` field must be used for the `publishedAt` field.
This commit uses the "Continuous Integration" GitHub Action, to run
tests for the Deno code, which is used by the Supabase functions and our
Docker containers.
This commit also adds a first test so that the `deno test` command does
not fail.
This commit adds a new "Continuous Integration" GitHub Action, which is
used to run the tests for the Flutter app (and later also for Deno).
This commit also adds a first test, so that the GitHub Action does not
fail.
This PR also removes the Visual Studio Code and Neovim configurations
from the contribution guide, since I'm not using it anymore and for that
I do not want to maintain it any longer.
This commit adds 2 new jobs to the existing "Continuous Delivery" GitHub
Action to test the build of the iOS and Android app.
For this we also had to adjust the "build.gradle" file for the Android
app, so that the test build in the GitHub Action is signed with dummy
credentials, since we do not provide the keystore properties.
Update the used Flutter version to 3.16.0 and all Flutter packages to
their latest version.
This commit also fixes all of the newly added analysis options and the
layout changes introduced with the new Flutter version (e.g. we have to
set the "tabAlignment" property in the "TabBar" widget).
Instead of using the "just_audio_windows" and "just_audio_mpv" packages
for Windows and Linux, we are now using "just_audio_media_kit", so that
the audio player is working reliable on these platforms.
Note: We have to adjust the Flatpak, to include the dependencies which
are required on Linux.
This commit introduces a new "profile-v2" edge function and deprecates
the "profile-v1" edge function. We decided to provide a new edge
function for all profile related operation to improve the handling of
the different operation the edge function is responsible for.
The main differences to the "profile-v1" functions are:
- Pass the operation id within the request url instead of the body of
the request.
- Move the operations for accounts (e.g. GitHub) to seperate files, to
improve the readability of the function.
- Do not require the "sourceType" anymore, instead we are using the
operation id and request method to determine the operation which
should be executed
- The request body is now only used for the data of the corresponding
account and not for any other information like the operation id and
source information.
We have to add in-app purchases for the iOS, macOS and Android store, so
that users can also get the premium features of the app without using
Stripe for payments.
The in-app purchases are only enabled when a user uses the app with the
default Supabase environment or with the Supabase environment provided
during build time. If a user uses his own Supabase instance, he will not
be able to upgrade to the premium tier via in-app purchases.
We are using RevenueCat for in-app purchases, which automatically sends
all the events for a user to the "revenuecat-webhooks-v1" edge function.
Depending on the received event we can then upgrade / downgrade the
users profile. To be able to use RevenueCat as an additional provider to
Stripe we also had to add a new "subscriptionProvider" provider column
to the "profiles" table, which stores the information via which provider
a user upgraded his account.
Instead of downloading the Flatpak files from GitHub in the
"app.feeddeck.feeddeck.yml" file, we are now adding the files to the
archive we create during the release process.
During the review of the submission of the iOS and macOS versions of
FeedDeck we encountered some problems, so that the app was rejected. For
that we had to make the following changes:
- Change the foreground and background color of the "Sign in with Apple"
button. This means we are now using black as foreground and white as
background color.
- Add the "Sign in with Apple" capability to the macOS version, to
handle the sign in within the app as it is done for the iOS version.
- Add description in the "CreateDeck" widget, because it was confusing
for the review and they were thinking that they had to provide their
name.
This commit adds a continuous delivery pipeline for the landing page,
which is published as GitHub page.
This commit also fixes some typings and links within the landing page.
This commit fixes the continuous delivery GitHub Action to only run once
on a new release for all workflows and to add the required permissions
to upload artifacts to the GitHub release.
This commit adds the continuous delivery pipeline for Supabase, to
automatically push all database migrations and to deploy all Supabase
functions.
When a PR is merged to the "main" branch the pipeline is run for the
STAGE project. If a new tag is created the pipeline is run for the PROD
project.
Add continuous delivery workflows for the desktop apps. While we want to
provide the desktop versions of FeedDeck though the different app stores
we still want to build them via GitHub Actions, so users can also test
the desktop apps before an official release.
This is also useful to build the binaries we can then download and
upload to the official stores, since we currently only have a macOS
system to build the apps.
Add a new GitHub Action to publish the web version of FeedDeck to
Cloudflare Pages. The action will build and publish the web version to
the stage project on every commit to the main branch and to the prod
project when a new tag is created.
Add a continuous delivery and release workflow. The continuous delivery
workflow is used to build the Docker image for FeedDeck and the release
workflow is used to generate the changelog.