Commit Graph

170 Commits

Author SHA1 Message Date
Oscar Beaumont
d21a521cbe [ENG-407] Spacedrop backend (#598)
* format Rust

* Spacedrop a string

* Praise thee Clippy, lord of the Rust

* add protobuf to Mac and Linux CI

* plz GH Actions have Chocolatey
2023-03-09 11:27:45 +08:00
Brendan Allan
31df51501e CI Cache Factory (#593)
* introduce cache factory

run cache factory on all branches

add names

use single quotes

add setup and prisma generation

add pnpm install

don't install cargo-watch in ci

make composite setup script

use env var for windows ci

undo all powershell stuff

* better windows ci

* don't install cargo-watch in ci

* only run cache factory on main

* i'm silly

* debug only ci

* check runner instead of matrix in setup action

* don't save cache output most of the time

* no more os-specific features

* cache entire workspace

* only cache on main again

* test instead of buidl in cache factory

* smaller ci + testing

* don't individually test each crate

* remove unnecessary needs

* smaller formatting and more clippy

* undo rustfmt changes

* disable tests
2023-03-06 06:10:55 -08:00
Brendan Allan
dad2072d7b generate + use ModelSyncData enum (#592)
* generate + use ModelSyncData enum

* cache prisma clients on sync-generator
2023-03-04 22:12:37 -08:00
Oscar Beaumont
c6455dd439 Add Cargo Watch to install scripts (#584) 2023-02-27 13:54:26 +08:00
jake
c7dbc784cd [ENG-361] Crypto crate docs and tests (#572)
* add hashing tests

* add encryption/decryption tests

* remove `reason`

* add file header tests (preview media deserialization is broken)

* fix keyslot reading bug

* add sd-crypto testing to ci

* add tests/constants for all hashing algorthms and param levels

* add blake3-kdf tests

* use `const` arrays for storing expected output

* test for `5MiB` `encrypt_streams` and `decrypt_streams`

* add invalid/mismatched nonce tests

* update `primitives` docs

* remove erroneous `,`

* grammar tweaks

* add errors to `#[should_panic]`

* cleanup `stream` tests

* cleanup hashing tests a little

* function docs
2023-02-16 11:42:30 +00:00
Brendan Allan
f0da8b037f update name of eslint job 2023-01-22 16:14:59 +08:00
Brendan Allan
d3737cea97 simplify eslint configs + add CI job 2023-01-22 16:01:15 +08:00
maxichrome
394851efd8 Update CODEOWNERS 2023-01-21 00:02:21 -08:00
maxichrome
ec4352a30a cleanup(don't hate me): prettier format everything 2023-01-19 19:32:35 -08:00
Brendan Allan
676e512c4a Beginning of sync stuff (#502) 2023-01-04 23:11:55 -08:00
Ericson "Fogo" Soares
bcbcd260d4 ENG 223 Location Awareness (#468)
* Introducing location online/offline checks and location relink

* Some initial drafts for location watchers

* Location metadata relink and add library

* Many improvements at job system
Now using prisma batching at identifier job
Removing blocking I/O from extension subcrate
Implementing lazy generation of thumbnails
New current directory identifier job to be used on light rescans

* Some optimizations on identifier and object validator jobs

* merge jamie's identifier PR

* fully repaired identifier job

* properly hooked up object kind

* inspector fix

* fix video badge

* small improvements to libraries settings

* identifier and inspector improvements

* fix feature flags and hook up context menu location utilities

* BETTER CONTEXT MENU x100

* test-files

* style tweaks

* new icon designs

* manifest

* fix thumbnails on web

* media data

* New Location Watcher and some minor fixes

* disable broken media_data extractor, wip

* wip

* function name fix

* Fixing pnpm prep and some warnings

* Solving a race condition beetween indexer job and FS event handlerSome other minor warnings

* Generating thumbnails on watcher

* Remove event handler on watcher

* Some initial works on modify events and other small fixes

* File update event

* Trying to be more generic with used events and some tests to validate our assumptions

* Turning on location metadata file

* Introducing core unit tests on CI pipeline

* Submiting new unit test assumptions to validate on windows CI

* Fixing unit tests

* Fixing unit tests again

* Fixing unit tests

* Fixing unit tests for macos

* Fixing unit tests for macos again

* New structure for platform dependent event handling
Implementing event handlers for Linux and MacOS

* minor fixes + rustfmt + clippy

* Windows event handling

* Introducing a feature gate to only use location watching on desktop app for now

* Putting more stuff behind feature gates to avoid warnings

* Adding feature to cargo test on CI

* Changing some debug logs to trace logs and removing Jamie specific stuff

* Make location removal from manager less async

* fix build when "location-watcher" feature disabled

* fix types + clippy

* make location manager non-static

* remove uses of `to_string_lossy`

* more invalidate_query calls

* Expose `library_ctx` directly to avoid needless clones

* New materialized_path handling for directories

* Removing cascade delete between file_path and object
- Some other minor stuff

* remove unused `CurrentDirFileIdentifierJob`

Co-authored-by: Jamie Pine <ijamespine@me.com>
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
2022-12-31 00:53:24 +08:00
Utku Bakir
959783b08a Bump node to lts (v18) 2022-12-14 12:43:02 +03:00
Utku
42f09b0918 Mobile - Settings & Tags (#479)
* Sync tailwind configs

* Switch to new colors part 1

* new colors part 2

* switched to new colors

* settings screens template

* settings progress

* Setting header titles

* Refactor settings icon

* Fix tsconfig relative path issue

* Move mobile eslint config to @sd/config

* Add no-restricted-imports rule to eslint

* rename TextInput to Input & tailwind font sizing

* General Settings screen + Card component

* Library settings screen & delete lib dialog

* autoform hook

* Mini tweaks and new packages

* Exclude android & ios from search

* Add Switch (Input)

* Library General settings screen

* Refactor settings + Switch and Switch Container

* Locations screen & delete and rescan locations

* Rename folder + small tweaks

* Make things Swipeable

* Create Tag Dialog with color picker

* Upgrade to Expo 47

* More tag stuff

* fix pnpm lock

* regen pnpm-lock

* Change CI node version to 16

* Move `isVideo` into shared package

Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
2022-12-13 15:18:03 +08:00
maxichrome
9d72de352b Improve setup script (#436)
* Improve bash setup script (less silent!)

* use proper FFmpeg capitalization in relevant docs

* Fix typo in Homebrew error message

Co-authored-by: maxichrome <maxichrome@users.noreply.github.com>
2022-10-25 18:08:50 -07:00
Oscar Beaumont
f263c311bf Add the new crates into CODEOWNERS 2022-10-22 17:28:59 +10:00
Oscar Beaumont
a82655973b PR #416
Co-authored-by: PyRo1121 <o.latham@me.com>
2022-10-18 02:23:23 +08:00
Brendan Allan
35144be8a1 separate fetch & check 2022-10-05 17:20:40 +08:00
Brendan Allan
9bf071e5d9 bump rust cache key 2022-10-05 10:46:56 +08:00
Brendan Allan
162f3d7782 Improve CI Speed (#398)
* use different cache

* cache prisma client in rustfmt

* cleanup prettier config

* build server image in sub-action

* server image + prisma client custom actions

* remove lefthoook checks that are in ci

* fix build-server-image

* rename Clippy job

* rename build core job

* use custom rust caching action

* fix rust cache shared key

* cleanup custom action job names

* remove platform check in clippy ci

* setup pnpm in clippy ci

* update mobile package name

* make ios compiling conditional

* use pnpm cache

* run clippy in release

* force use release for all jobs
2022-10-04 18:45:54 -07:00
Brendan Allan
ed06e3051e [ENG-84] Sync library (#394)
* new sql lib stuff

* add sync stuff + rename all crates

* build sd-core

* add sync/example/dist to source

* fix sync example in monorepop

* appease clippy

* update lockfile

* update commit hooks

* fix typescript

* fix typescript build

* please rustfmt
2022-10-04 05:25:12 -07:00
Brendan Allan
7d15ce0152 run rustfmt in ci 2022-10-04 20:03:49 +08:00
Brendan Allan
46e1d47596 use proper workflow syntax 2022-09-28 11:42:05 +08:00
Brendan Allan
3e2ae2ddad expand prisma client cache key 2022-09-28 11:39:04 +08:00
Brendan Allan
b395491b28 remove needs: typescript from rust ci 2022-09-23 13:53:56 +08:00
Brendan Allan
6e07435a15 Use PCR for migrations (#385)
* use pcr migrations branch

* use 0.6.2 branch with migrations

* use latest prisma stuff

* allow force reset of db in dev

* remove .spacedrive file

* update rspc in apps/server

* use rspc 0.0.5 in all crates

* add os to prisma client cache key

* add runner os to clippy prisma cache
2022-09-22 00:50:21 -07:00
Oscar Beaumont
c972928161 remove readme copier workflow 2022-09-09 07:39:00 +08:00
Oscar Beaumont
cc6e921ca0 new invalidate_query + add IOS sim to setup script 2022-08-31 18:42:06 +08:00
Oscar Beaumont
8be083c062 Merge pull request #358 from ned-park/setup-system-debian
Fixes Tauri dependencies for Debian Buster (stable), fixes warning fo…
2022-08-29 19:14:59 +08:00
ned-park
f425ff5781 Adds trap for error handling from set -e, updates error handling conditionals for set -e compatibility, updates debian tauri dependencies 2022-08-23 12:03:56 -04:00
Brendan Allan
5208628060 fix clippy ci 2022-08-19 09:57:52 +08:00
ned-park
cd181d8282 Fixes Tauri dependencies for Debian Buster (stable), fixes warning for users without cargo or pnpm installed 2022-08-12 19:23:15 -04:00
Utku
3cdd0808a5 Mobile app (#352)
* Mobile app: Initial Commit!

* Fix monorepo issues and add tailwind.

Fix & Test tailwind.

working ball app

Fix workspace module import

* Mobile app cleanup and structure

* App Icons, Splash screen and eslint config

* More cleanup

* Use SVGs directly in React Native

* Add placeholder files for project structrate

* Cleanup all svg icons and modify metro config to use icons from interface package (temporary)

* Potentially fix types for react & update some packages.

* Onboarding screen + add reanimated & moti

* Finishing touches on Onboarding screen

* Persist onboarding, Button comp and Nav. flow.

* Add mobile info to Contributing.md

* Add .prettierignore for disabling auto import ordering for some files.

* Introducing the new navigation flow

* Change package name

* use the new @sd/assets package

* Add a temp. folder for @sd/assets organization

* Drawer nav bar looks good now.

* Hacky method to get the active route on drawer

* Fix react native types & update few packages.

* Drawer animation

* Add counter

* Collapsible Tags / Locations

* rename Counter and add saveState prop

* Sync counter with desktop version

* Move some screens to BottomTab Nav.

* Add Overview Stats

* [WIP] - Device component

* Upgrade to Expo 46 and fix types.

* Add @sd/core to mobile

* Fix eslint stuff

* placeholder and some notes

* Show folder icons on overview screen

* Fixed android build, style and some screen tweaks

* Add bottom sheet package

* Fix bundler issues and rename landing package.json

* Rename landing package.json

* update all packages to latest React

* Eject expo app

* fix pnpm & expo & monorepo

* monorepo debugging

* cleanup dependencies & static link to shared packages

* cleanup, switch to hermes, pollyfill intl for ios

* Cleanup monorepo

* Fix: Style for FileItem

* Above average app icons

* cleanup ios

* update msrv

* update codeowners for mobile

* fix typecheck

* update lockfile

* fix ffmpeg install

* rename UI to 'SpacedriveInterface' for clarity

* Update codeowners

* Fix eslint config mobile.

* Refactor navigation flow, move types to navigators

Co-authored-by: Utku <74243531+utkubkr@users.noreply.github.com>
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2022-08-08 20:29:14 -07:00
Brendan Allan
b68f4f3684 Update org-readme.yml 2022-08-04 07:41:42 -07:00
Oscar Beaumont
9d4423dfc2 fix macos ffmpeg install command 2022-08-04 13:17:19 +08:00
Oscar Beaumont
4cc41d6ec2 Merge pull request #351 from spacedriveapp/brew-lock-ffmpeg
install custom ffmpeg version
2022-08-04 13:08:50 +08:00
Oscar Beaumont
ea92af57f8 Move Rust backend to rspc (#345)
* move Rust backend to rspc

* move server to Axum + remove parts of old bridge

* move frontend over to @rspc/client

* move core to rspc + update deps

* fix Typescript errors + upgrade deps

* document invalidate_query! macro

* general cleanup + upgrade to PCR 0.6.0

* prisma error handling

* upgrade to rspc 0.0.4

* update vite-plugin-ssr

* fix typescript

* fix builds

* put landing page app name back

* hardcode ffmpeg version on Windows

* rename 'command' to 'mutation' to line up with react-query terminology

* upgrade rspc to v0.0.5 + fix types

* use shared ffmpeg binaries

* general Typescript cleanup

* fix clippy workflow failing due to tauri proc-macro

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2022-08-03 08:36:03 -07:00
Brendan Allan
04200681d0 install custom ffmpeg version 2022-08-01 11:09:29 +08:00
Oscar Beaumont
cc3c63b996 Remove frozen flag from clippy workflow 2022-07-19 09:59:13 +08:00
Oscar Beaumont
bcdcacf0e5 Merge pull request #321 from voletro/main
Rewrite of setup-system.ps1 for Windows development setup
2022-07-11 11:41:28 +08:00
Oscar Beaumont
70ea568530 fix Linux setup script for PopOS 2022-07-07 12:53:41 +08:00
voletro
989cd58ac5 Add a close bracket (i'm dumb) 2022-07-06 12:33:23 +10:00
voletro
c635077c3c Remove Action for LLVM, use action that is already built in. Set GH env variables. 2022-07-06 12:28:28 +10:00
Oscar Beaumont
2c73ca18a0 remove Cargo frozen flag 2022-07-05 23:55:44 +08:00
voletro
b56fc5cd86 Added headless mode, added LLVM installer to ci. 2022-07-05 11:21:42 +10:00
voletro
76d21b7847 Remove user input so it works with ci. 2022-07-01 10:38:41 +10:00
voletro
591a6c16cf Rewrite of setup-system.ps1
This is a full rewrite of setup-system.ps1 that sets up a users machine for Spacedrive development. The CONTRIBUTING.md also includes info on this file.
2022-06-30 11:44:14 +10:00
Oscar Beaumont
55e52eb2ec fix clippy workflow (hopefully) 2022-06-20 11:27:37 +08:00
Oscar Beaumont
6cc52e5480 remove frozen flag from cargo fetch 2022-06-19 01:52:03 +08:00
Oscar Beaumont
79fa96c3bd Fix CI (#242) 2022-06-14 22:27:03 +08:00
Lars Gyrup Brink Nielsen
8253813dca ci: update actions/checkout to v3 2022-06-03 10:38:51 +02:00