- Updated the step to hide Clang compilers by renaming executables instead of modifying environment variables.
- Ensured `libclang.dll` remains accessible for bindgen while preventing CMake from using Clang over MSVC's cl.exe.
- Changed the shell for LLVM configuration from bash to PowerShell to align with Windows environment.
- Updated environment variable settings for `LIBCLANG_PATH` and modified PATH handling to ensure compatibility with MSVC's cl.exe.
- Removed unnecessary CMake compiler variables from the release workflow, streamlining the configuration process.
- Added steps to set `LIBCLANG_PATH`, `CC`, and `CXX` environment variables for Windows builds.
- Updated PATH to exclude LLVM binaries, ensuring CMake uses MSVC's cl.exe instead of Clang.
- Added a new GitHub Actions workflow (`mobile.yml`) for manual dispatch to build and release the React Native app for iOS and Android.
- Updated the publish artifacts action to change Windows bundle type from MSI to NSIS and adjusted related paths.
- Modified the front-end bundle path to reflect the new structure in the mobile app.
- Enhanced documentation to include details about the new mobile release process and required secrets.
- Removed unnecessary target specifications from rust-toolchain.toml to streamline the configuration.
- Added a new step in the GitHub Actions workflow to conditionally add build targets for self-hosted runners, enhancing flexibility in target management.
- Added a step to ensure that rustup binaries are prioritized in the PATH, improving the reliability of Rust toolchain usage.
- Included checks to verify the installation paths of rustc and cargo, enhancing the verification process for Rust installation.
- Added a check to determine if Rust is already installed before proceeding with the installation step, improving the efficiency of the setup process. This ensures that Rust is only installed when necessary, reducing redundant installations.
- Added target specifications for multiple architectures in rust-toolchain.toml to support cross-compilation.
- Updated GitHub Actions setup to include a verification step for Rust installation, ensuring the environment is correctly configured before proceeding with builds.
- Changed Bun version from 'latest' to '1.3.4' in setup actions.
- Updated macOS host version from 'macos-13' to 'macos-15-intel' across multiple workflow files.
- Standardized quotes in YAML files for consistency.
- Removed the `prisma-client-rust` and `prisma-client-rust-sdk` dependencies from `Cargo.toml` to streamline the project.
- Deleted the `spacedrive-jobs-derive` crate, consolidating job registration functionality into the main job system.
- Updated the `.gitattributes` file to reflect changes in generated code tracking.
- Adjusted the `package.json` scripts for improved build processes and removed unnecessary commands.
- Enhanced the `combine.sh` script to correctly reference documentation paths.
These changes aim to simplify the project structure and improve maintainability.
* Update rspc, prisma-client-rust, axum and tanstack-query
- Deleted some unused examples and fully commented out frontend code
- Implement many changes required due to the updates
- Update most rust dependencies
* Re-enable p2p
* Fix server
* Auto format
* Fix injected script format
- Update some github actions
- Update pnpm lock file
* Fix devtools showing up when app opens
- Fix million complaining about Sparkles component
* Fix sd-server
* Fix and improve thumbnails rendering
- Fix core always saying a new thumbnail was generated even for files that it skiped thumbnail generation
- Rewrite FileThumb and improve related components
* Ignore tmp files when running prettier
* Improve FileThumb component performance
- Rework useExplorerDraggable and useExplorerItemData hooks due to reduce unecessary re-renders
* More fixes for thumb component
- A couple of minor performance improvements to frontend code
* auto format
* Fix Thumbnail and QuickPreview
* Fix logic for when to show 'fail to load original' error message in QuickPreview
- Updated prisma-client-rust, libp2p, tauri, tauri-specta, rspc and hyper
* Fix type checking
- Format scripts
* Add script prettier config
* Fix serde missing feature
- Use rust-libp2p spacedrive fork again
- Update rspc
* Autoformat + fix pnpm lock
* Fix thumbnail first load again
* Autoformat
* autoformat
* Fix rust-libp2p fork url again?
* Remove usePathsInfiniteQuery hook
* Update tauri 2.0.6
* Fix frontend bundle upload
- Update pnpm
* Revert incorrect removal of fontenf packaging job
* Fix tauri not building updater bundles
* Ensure release action is executed when PRs modify the publish-artifacts action
* Fix unused argument for patchTauri function
* Couple for format fixes
* tauri requires building the app bundle to build the updater
* Ensure prisma generation works before continuing CI
- Add script that list all dependencies with multiple version in Cargo.lock
* Ensure CI runs when custom actions are modified
* Rever windows change in hopes that it fixes prisma generation
* Fix prisma generation check in CI
* Update deps
* Replace prisma-client-rust-cli with oficial prisma cli to fix windows model generation
- Revert back to windows-rs implementation of get_inode in file-path-helper
- Adjust Github CI to use oficial prisma cli
- Update scripts dependencies
- Fix some new rust warnings due to it trying to compile OS specific code on all plataforms
* Fix windows-rs impl for get_inode_windows in file-path-helper
* More fixes to windows-rs impl for get_inode_windows in file-path-helper
* More fixes to windows-rs impl for get_inode_windows in file-path-helper
* More fixes to windows-rs impl for get_inode_windows in file-path-helper
* More fixes to windows-rs impl for get_inode_windows in file-path-helper
* More fixes to windows-rs impl for get_inode_windows in file-path-helper
* Import windows constant intead of hardcoding its value
* Fix check for prisma files in setup-rust
* Autoformat
* Fix iOS and Android targets in watcher
---------
Co-authored-by: Arnab Chakraborty <11457760+Rocky43007@users.noreply.github.com>
* Config dev profile for faster debug builds
* Remove redundant changes to Cargo.toml in CI
* Forgot Windows
---------
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
* initial ffprobe commit
* Working slim down version ffprobe
* Auto format ffprobe and deps source
* Remove show_pixel_formats logic
- Fix do_bitexact incorrect check in main after last changes
- Fix some clangd warning
* Remove show_* and print_format options and their respective logic
* Rework ffprobe into simple_ffprobe
- Simplify ffprobe logic into a simple program that gather and print a media file metadata
* Reduce the amount of ffmpeg log messages while generating thumbnails
* Fix completly wrong comments
* mend
* Start modeling ffmpeg extracted metadata on schema
- Start porting ffprobe code to rust
- Rename some references to media_data to exif_data
* Finish modeling media info data
- Add MediaProgram, MediaStream, MediaCodec, MediaVideoProps, MediaAudioProps, MediaSubtitleProps to Schema
- Fix simple_ffproble to use its custom print_codec, instead of ffmpeg's impl
* Add relation between MediaInfo and FilePath
- Remove shared properties from MediaInfo and related structs
- Implement Iterator for FFmpegDict
* Fix and update schema
* Data models and start populating MediaInfo in rust
* Finish populating media info, chapters and program
* Improve FFmpegFormatContext data raw pointer access
- Implement stream data gathering
* Impl FFmpegCodecContext, retrieve codec information
- Improve some unsafe pointer uses
- Impl from FFmpegFormatContext to MediaInfo conversion
* Fix FFmpegDict Drop
* Fix some crago warnings
* Impl retrieval of video props
- Fix C char* to Rust String convertion
* Impl retrieval of audio and subtitle props
- Fill props for MediaCodec
* Remove simple_ffprobe now that the Rust impl is done
* Fix schema to match actually retrieved media info
- Fix import some FFmpeg constants instead of directly using values
* Rework movie_decoder
- Re-implement create_scale_string and add support anamorphic video
- Improve C pointer access for FFmpegFormatContext and FFmpegCodecContext
- Use newer FFmpeg abstractions in movie_decoder
* Fix incorrect props when initializing MovieDecoder
* Remove unecessary lifetimes
* Added more native wrappers for some FFmpeg native objects used in movie_decoder
* Remove FFmpegPacket
- Some more improvements to movie_decoder
* WIP
* Some small fixes
* More fixes
Rename movie_decoder to frame_decoder
Remove more references to film_strips
* fmt
* Fix duplicate migration for job error changes
* fix rebase
* Solving segfaults, fuck C lang
Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>
* Update rust to version 1.77
- Pin rust version with rust-toolchain.toml
- Change from dtolnay/rust-toolchain to IronCoreLabs/rust-toolchain for rust-toolchain support
- Remove unused function and imports
- Replace most CString uses with new c literal string
* More segfault solving and other minor fixes
Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>
* Fix ffmpeg rotation filter breaking portrait video thumbnails #2150
- Plus some other misc fixes
* Auto format
* Retrieve video/audio metadata on frontend
* Auto format
* First draft on ffmpeg data save on db
Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>
* Fix some incorrect changes to prisma schema
* Some fixes for the FFmpegData schema
- Expand logic to save FFmpegData to db
* A ton of things
Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>
* Integrating ffmpeg media data in jobs and API
* Rspc can't BigInt
* 🙄
* Add initial ffmpeg metadata entries to Inspector
- Fix ephemeral metadata api to match the files metadata api call
* Fix Inspector not showing ffmpeg metadata
* Add bitrate, start time and chapters video metadata to Inspector
- Fix backend BigInt conversion incorrectly using i32 instead of u32
- Change FFmpegFormatContext/FFmpegMetaData bit_rate to i64
- Rename byteSize to humanizeSize
- Expand humanizeSize logic to allow handling bits and Binary units
- Move capitalize to @sd/client utils
* Solving some issues
* Fix ffmpeg probe getting incorrect stream id and breaking database unique constraint
- Fix humanizeSize breaking when receiving floating numbers
- Fix incorrect equality in StatCard
- Fix unhandled error in Dialog when trying to remove an unknown dialog
* fmt
* small improvements
- Remove some unecessary recursion_limit directive
- Remove unused app_image releated functions
- Fix metadata query enabled flag
* Add migration for ffmpeg media data
* Fix cypress test
* Requested changes
* Implement feedback
- Update locale keys for all languages
- Add pnpm command to update all language keys
* Fix thumb reactivity in non indexed locations
---------
Co-authored-by: Ericson Soares <ericson.ds999@gmail.com>
Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>
* Fix migration check not always failing when it should on main
- Fix check due to Github using `refs/heads/gh-readonly-queue/main/` as ref when merging a PR from merge-queue to main
- Add migration due to changes made in #2161
* Fix missing migration error message being showed when it shouldn't
- Filter out empty migrations files from check testing if a migration is missing
* Prevent inner grep from failling the whole command
- Fix last grep outputting gibberish when not receiving any file
* Fix xargs and grep command on macOS
* auto format
* Configure python 3.11 version on Github CI
- Python 3.12 is the default on CI now, which breaks node-gyp and most of the native dependencies installations
- Fix _new_migrations having lead and trailing spaces
* Remove migration, already included in #2302
* CI now checks if a migration is missing
- Fail CI on main and tag releases if a new migration should be created due to changes in the db schema
- Add error msg to schema.prisma file if a migration is not created to reflect changes made to db schema, but do NOT fail action
* Change schema to test CI changes
* Add debug to prisma generate CI script
* Removem prisma cache to test
* Fix grep for migrations
* Revert changes made for testing
* Only cache prisma data on main or cache-factory
* Replace macos-14 with ubuntu runner in cypress
- Replace macos-14 with macos-13 runner in clippy
- macos14 runner has weaker hardware than other runners: https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories
* Remove pre-installed incompatible packages from ubuntu runner
https://github.com/actions/runner-images/issues/9546#issuecomment-2014940361
* Use ubuntu-20.04 for Cypress CI
* Adjust Cypress CI to follow common steps for linux env
* Debug preprep script
* Fix copy/paste typo
* Install playwright native dependencies
* Update release.yml
* Add Remove 32-bit libs to setup-system
* Change Cypress CI to macos-13
- Some small test fixes
- Fix onboarding test must skip testing default location screen if no default locations os available
* Back to ubuntu for Cypress and back to macos-14 to clippy
- Attempt to fix empty default locations on ubuntu CI runner
* Oops
* Install playwright native deps
* Replace path regexs with consts
- Click on share minimum when doing a fastOnboarding
* Try macos-14 again
* Attempt at making mobile tests more resilient
* Forgot shell property
* Remove debug flag from run-maestro-tests.sh
* Fix kill command
* Improve device emulator launch code
- Remove maestro version lock (expo is not using it anymore on their repo)
- Use some of the same command expo uses to ensure device emulator launched
* ...
* ...
* Make grep timeout less strict
* Increase timeouts
* Downgrade macOS and Xcode
Following Expo changes:
cb7c90dac4
* Fix onboarding sometimes not redirecting to Explorer on prod builds
- Fix failure trying to compile landing prod builds outside Vercel
- Fix Server docker failing to restart due to some incorrecting logic for creating the unprivileged users erroring out
- Fix Storybook failing to build due to updates to Vite
- Update Storybook dependencies
- Remove unused Inter font dependency
- Fix some incorrect references to NodeJS types inside web code
- Fix $libraryId index using the incorrect redirect function
- Improve error handling for the $libraryId index route
- Fix Prism not being correctly loaded, and failing to register its plugins
- Improve Prism loading error handling
- Small improvement to the text highlight logic
- Fix SCSS deprecation for untyped hsl values
- Fix library query cache incorrectly saving empty values, which lead to the onboarding redirect bug
- Patch contentLayer to fix an error during the final part of it's build process
- Update most dev dependencies
- Update publish-artifact to be compatible with new @actions/artifact
- Fix issue with new vite-plugin-solid failing to build our .ts files due to the removal of the typescript plugin
- Fix pnpm overrides not applying due to incorrect placement in package.json
- Replace deprecated react-tsparticles and updated three used by the Bubbles background in the landing page
- Rework Bubbles background to be compatible with new @tsparticles/react
- Update @sd/config dependencies
- Update @sd/scripts dependencies
* Implement suggestions
- Replace mobile JS node setup with custom setup-pnpm action
- Handle GITHUB_SECRET default value in code and throw a warning when it is not set
- Fix pnpm now resolving the correct node version when building Spacedrive server docker
- Add missing getent command to spacedrive server docker
- Fix typo in entrypoint.sh
- Implement a more robust check if the user is already in a group
- Fix adduser failing due to missing default group
- Disconnect IntersectionObserver on component unmount
- Improve prism import comment
* Implement more suggestions
- Pin genent version to latest stable release of UClibc
- Add checksum checks for all ADD clauses in Spacedrive server Dockerfile
* Increase Maestro timeout to reduce CI failures due to slow simulator startup
* Dowgrade maestro to workaround CI timeout
* Improvements to the script that run maestro mobile tests
- Increase the amount of retries for a maestro test run to 6
- Increase Maestro driver startup timeout to 2 minutes
* Let run-maestro-tests.sh decide how to run itself
* ¯\_(ツ)_/¯
* Update github actions due to nodejs 16 deprecation
- Replace archived actions-rs/clippy-check with maintained fork actions-rs-plus/clippy-check
- Replace redhat-actions/push-to-registry with updated fork Eusebiotrigo/push-to-registry
- Point redhat-actions/buildah-build and softprops/action-gh-release to current master to fix nodejs deprecation
* Build the correct ios core rust arch for CI runs
* Build ios app for the same arch as the host in Mobile CI
* Some changes to try and make cache-factory faster and avoid failing so much
* Add trigger to run cache-factory on pull requests when there are changes to itself
* Attempt to fix sed usage on macOS
* Don't treat warning as errors
* Fix windows
* Fix windows 2
* Use target ad cache key for rust to differentiate between macOS x86_64 and arm64
* Use faster/better linkers to compile for macOS, Linux and Windows
* Fix missing shell in action
* Fix typo
* Fix missing shell in action 2
* Fix mold download
- Replace bsdtar with plain tar
* Fix permission denied when extracting mold
* Remove zld
* Don't restore cache for rustfmt
- Remove target symlink to C:/ in an attempt to speed-up windows CI
* Fix typo
* Restore target symlink on windows
- Removing it didn't make CI faster
* Run Mobile on macos-14