* Attempt to fix Windows CI:
- Ensure version 15 of LLVM is installed in Windows CI (due to` ffmpeg-sys-next`)
- Use `GITHUB_TOKEN` in setup-system.ps1 to avoid rate-limiting by github api in Windows CI
- Add `yaml` settings to `.editorconfig`
- Create a symbolic link from `.prettierignore` to `.eslintignore`
- Move `eslint` root to package root config
- Enable `fileNesting` to reduce dotfile clutter in vscode
- Pass `--strict` to apps/releases `lint` command to avoid making interactive queries and hanging `pnpm lint`
- Format with `prettier` and `eslint`
- Remove empty interface/hooks/useMediaQuery.ts
* Replace unmaintained `actions-rs/toolchain` with `dtolnay/rust-toolchain`
- Change setup-system.ps1 to avoid installing pnpm in CI
- Change `pnpm/action-setup` to lock only o major versions of the action
* package releases with signatures
* only include necessary stuff in generated artifacts
* Publish updater binaries
* proper glob for updater binaries
* use separate paths for unix and windows updaters
* make .app executable
* brendan dumb
* Improve Windows setup script
- Change LLVM install logic to use version 15 instead of the latest, due to incompatibilities of new LLVM (16) with `ffmpeg-sys-next` build script
- Add check to ensure script is executed as administrator, due to chocolatey requiring admin privileges to install `protoc`
- Update ffmpeg to 5.1.1 to match used `ffmpeg-sys-next` version
- Don't attempt to reinstall LLVM when it is already installed
* Wait for key press before closing script
* Fix typo
* Choco install auto accept
* Specify PNPM version when installing on windows
* More logs
* Fix windows setup script not copying ffmpeg dlls to the correct location
* Better installation logic for llvm, protobuf, ffmpeg
- Remove dependency in Chocolatey
- Download ffmpeg version based on ffmpeg-sys-next version
- Improve version checks
- Install protobuf directly from github
- Update rimraf so globbing works in Windows
- Avoid dist/.gitignore being deleted by rimraf
* Fix bugs and handle errors in Windows setup script
- Check for connectivity with GitHub before proceeding with setup.
- Implement a workaround for pnpm bootstrap problems on Windows.
- Check if Cargo packages are up to date before parsing the metadata.
- Ensure that the FFMPEG_DIR environment variable is set.
- Use double quotes for rimraf arguments on Windows.
* Auto-install VisualBuildTools (C++) and Rust in Windows setup
- Fix protoc envvars not being set in CI
- Improve logs
* Install LLVM automatically
- Remove sleeps
- Uninstall any imcompatible LLVM version present
- Ensure path is fresh after installing rust and cargo
* Fix system path not being set correctly in windows setup script
- Install node with winget and pnpm with npm
- Rewrite initial script message
- Don't wait for user interaction when running in CI
* Improve environment check to ensure we are on Windows x64
- Warn users if they have already installed incompatible versions of LLVM and pnpm instead of silently removing them
* Ensure Path and Env are correctly set and available in the windows setup script
- Improve error handling
- Improve logs
* Fix FFmpeg version parsing getting multiple version sometimes
- Fix some typos
* stuff
* stuff (but for android)
* test mobile ci
* move pnpm up
* install ndk
* add ios & cleanup
* onboarding flow test
* test ci
* fixes, cleanup, caches
* why you do this cargo
* fix pnpm-lock
* add path to build rust script?
* ci is fun
* yolo
* fix broken flow..
* fix pnpm
* probably not gonna work
* test x2
* use real branch of pcr
* android emulator and try ios x2
* Use react native architectures, instead of all.
* override architecture to speed up android build
* protoc & build android on macos too
* fix java ndk
* android gradle
* disable ios for now
* use simulator sdk & debug configuration on ios build
* cleanup
* avd test
* fix avd settings.
* only build for x86_64 on ci
* Fix ios build
* Add IOS testing
* maestro script
* ios release build & wait for library creation
* clean up and disable android for now
* fix pnpm-lock
* Add concurrency to cancel previous runs
* fix pnpm-lock
---------
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
* Fix thumbnails and file previews on Linux
- Restructure auth_middleware to use axum's primitives to handle the auth tokens
- Fix incorrect token loading in App.tsx
- Add required dependencies for video playback to the Linux setup script
- Minor improvements to the Linux setup script, make it less error prone
- Fix a minor bug in the script_failure function in the Linux setup script
* Use a more idiomatic rust syntax in auth_middleware
* add `protobuf` deps to arch and fedora
* update webkit2gtk package name for fedora >= 37
* revert last change as fedora 37/38 can still use the old name
This reverts commit cc9b2d7053.
* shfmt
* re-introduce webkit changes (and fix my bad bash)
* remove duplicate webkit dep
* update mac setup logic
* remove ffmpeg versioning (we don't use it on any other system)
* check that RPMFusion is enabled
* more verbose protobuf variable names
* add comments/todos and remove unnecessary 64 bit declaration
* fix incorrect command & use latest ffmpeg on macos
* update deps & remove comments
* 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
* 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>
* 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>
* 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
* 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
* 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>
* 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>
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.