Fix syncing when network latency is present (#4)
* WIP * Add debug * Dedupe inserts * Add deterministic ordering * Fix whitespaces * Update insta * Add integration test script * Rename * Add test * Working for non-deletes * omg it mostly works for deletes * Isdeleted fix * remove created dates * update api * Take document id * No max attempt * works * Use string uuids * . * working!!!! (hopefully) * Improve bundling * Add module * lint * . * lint * Fix CI * use toolchain * clean up * Add useSlowFileEvents * Delete fuzz * Fix CI * use docker * fix script * clean up * Clean up * change node version * Build docker image on every commit * fix ci * 1 db per vault * Add scritps folder * Bump versions * Lint * . * Fix tests for real * Style * . * try * Consistent ordering * Fix tests * hmm * . * Clean up diff * Fixes * . * Fix version bump * . * . * .
This commit is contained in:
parent
bcf48c428d
commit
8b8f1d91d9
91 changed files with 2252 additions and 1586 deletions
52
scripts/bump-version.sh
Executable file
52
scripts/bump-version.sh
Executable file
|
|
@ -0,0 +1,52 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ -z $1 ]]; then
|
||||
echo "Usage: $0 {patch|minor|major}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $1 =~ ^(patch|minor|major)$ ]]; then
|
||||
echo "Creating a new '$1' version"
|
||||
else
|
||||
echo "Invalid argument: $1"
|
||||
echo "Usage: $0 {patch|minor|major}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -n $(git status --porcelain) ]]; then
|
||||
echo "Your working directory is not clean. Please commit or stash your changes before proceeding."
|
||||
exit 1
|
||||
else
|
||||
echo "Your working directory is clean."
|
||||
fi
|
||||
|
||||
echo "Bumping backend versions"
|
||||
cd backend
|
||||
cargo set-version --bump patch
|
||||
|
||||
echo "Bumping frontend versions"
|
||||
cd ../frontend
|
||||
npm version patch --workspaces
|
||||
|
||||
echo "Updating frontend dependencies to match the new backend versions"
|
||||
cd ../backend/sync_lib
|
||||
wasm-pack build --target web --features console_error_panic_hook
|
||||
|
||||
cd ../../frontend
|
||||
npm install
|
||||
|
||||
cd ..
|
||||
cp frontend/obsidian-plugin/manifest.json manifest.json # for BRAT, otherwise it wouldn't update
|
||||
|
||||
Commit and tag
|
||||
git add .
|
||||
TAG=$(node -p "require('./plugin/package.json').version")
|
||||
git commit -m "Bump versions to $TAG"
|
||||
|
||||
git push
|
||||
echo "Tagging $TAG"
|
||||
git tag -a $TAG -m "Release $TAG"
|
||||
git push origin $TAG
|
||||
echo "Done"
|
||||
4
scripts/clean-up.sh
Executable file
4
scripts/clean-up.sh
Executable file
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
rm -rf backend/databases
|
||||
rm -rf logs
|
||||
79
scripts/e2e.sh
Executable file
79
scripts/e2e.sh
Executable file
|
|
@ -0,0 +1,79 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
# Check if the argument is provided
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "Usage: $0 <number_of_processes>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get the number of processes from the first argument
|
||||
process_count=$1
|
||||
|
||||
mkdir -p logs
|
||||
|
||||
cd frontend
|
||||
npm run build
|
||||
|
||||
pids=()
|
||||
for i in $(seq 1 $process_count); do
|
||||
node test-client/dist/cli.js > "../logs/log_${i}.log" 2>&1 &
|
||||
pids+=($!)
|
||||
done
|
||||
|
||||
cd -
|
||||
|
||||
print_failed_log() {
|
||||
for i in $(seq 1 $process_count); do
|
||||
if [ -n "${pids[$i-1]}" ] && ! kill -0 ${pids[$i-1]} 2>/dev/null; then
|
||||
# Get the exit code of the process
|
||||
wait ${pids[$i-1]}
|
||||
exit_code=$?
|
||||
|
||||
# Only consider non-zero exit codes as failures
|
||||
if [ $exit_code -ne 0 ]; then
|
||||
echo "Process ${pids[$i-1]} failed with exit code $exit_code. Log file: $(pwd)/logs/log_${i}.log"
|
||||
return 0
|
||||
else
|
||||
echo "Process ${pids[$i-1]} completed successfully with exit code 0"
|
||||
# Mark this PID as processed by setting it to empty
|
||||
pids[$i-1]=""
|
||||
fi
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
echo "Monitoring $process_count processes"
|
||||
|
||||
# Monitor processes
|
||||
while true; do
|
||||
if print_failed_log; then
|
||||
# Kill remaining processes
|
||||
for pid in "${pids[@]}"; do
|
||||
if [ -n "$pid" ]; then
|
||||
kill $pid 2>/dev/null || true
|
||||
fi
|
||||
done
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if all processes have completed
|
||||
all_done=true
|
||||
for pid in "${pids[@]}"; do
|
||||
if [ -n "$pid" ] && kill -0 $pid 2>/dev/null; then
|
||||
all_done=false
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if $all_done; then
|
||||
echo "All processes completed successfully"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
sleep 0.2
|
||||
done
|
||||
|
||||
4
scripts/update-api-types.sh
Executable file
4
scripts/update-api-types.sh
Executable file
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
npm install -g openapi-typescript
|
||||
openapi-typescript http://localhost:3030/api.json --output frontend/sync-client/src/services/types.ts
|
||||
Loading…
Add table
Add a link
Reference in a new issue