Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 8 additions & 12 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,13 @@
# Ensure Python files always use LF for line endings.
*.py text eol=lf
# Treat designated file types as binary and do not alter their contents or line endings.
*.png filter=lfs diff=lfs merge=lfs -text binary
*.jpg filter=lfs diff=lfs merge=lfs -text binary
*.jpeg filter=lfs diff=lfs merge=lfs -text binary
*.png binary
*.jpg binary
*.jpeg binary
*.ico binary
*.pdf binary
# Explicit LFS tracking for test files
/data/.lfs/*.tar.gz filter=lfs diff=lfs merge=lfs -text
*.onnx filter=lfs diff=lfs merge=lfs -text binary
*.mp4 filter=lfs diff=lfs merge=lfs -text binary
*.mov filter=lfs diff=lfs merge=lfs -text binary
*.gif filter=lfs diff=lfs merge=lfs -text binary
*.foxe filter=lfs diff=lfs merge=lfs -text binary
docs/capabilities/memory/assets/** filter=lfs diff=lfs merge=lfs -text
docs/capabilities/memory/assets/.gitattributes -filter -diff -merge text
*.onnx binary
*.mp4 binary
*.mov binary
*.gif binary
*.foxe binary
10 changes: 4 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,8 @@ __pycache__

.bash_history

# Ignore all test data directories but allow compressed files
/data/*
!/data/.lfs/
# Ignore all test data (archives are stored in S3, not git)
/data/

# node env (used by devcontainers cli)
node_modules
Expand All @@ -43,9 +42,8 @@ package-lock.json
dist/
build/

# Ignore data directory but keep .lfs subdirectory
data/*
!data/.lfs/
# Ignore data directory (archives are stored in S3, not git)
data/
FastSAM-x.pt
yolo11n.pt

Expand Down
4 changes: 2 additions & 2 deletions bin/hooks/lfs_check
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ done
if [ ${#new_data[@]} -gt 0 ]; then
echo -e "${RED}✗${NC} New test data detected at /data:"
echo -e " ${GREEN}${new_data[@]}${NC}"
echo -e "\nEither delete or run ${GREEN}./bin/lfs_push${NC}"
echo -e "(lfs_push will compress the files into /data/.lfs/, upload to LFS, and add them to your commit)"
echo -e "\nEither delete or run ${GREEN}./bin/s3_push${NC}"
echo -e "(s3_push will compress the files into /data/.lfs/ and upload to S3)"
exit 1
fi
76 changes: 76 additions & 0 deletions bin/s3_push
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
!/bin/bash
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Missing # in shebang line

The file starts with !/bin/bash instead of #!/bin/bash. Without the #! two-byte magic sequence, the kernel cannot identify this as a script and will return "Exec format error" on most Linux systems, making the upload workflow completely broken for any developer who tries to run ./bin/s3_push directly.

# Compresses directories/files in data/* into data/.lfs/<name>.tar.gz
# Uploads to S3 (replaces bin/lfs_push)

set -e

RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'

S3_BUCKET="${DIMOS_DATA_S3_BUCKET:-dimos-github-lfs}"
S3_PREFIX="${DIMOS_DATA_S3_PREFIX:-.lfs/}"
AWS_PROFILE="${AWS_PROFILE:-dimensional-aws}"

ROOT=$(git rev-parse --show-toplevel)
cd "$ROOT"

if [ ! -d "data/" ]; then
echo -e "${YELLOW}No data directory found, skipping.${NC}"
exit 0
fi

mkdir -p data/.lfs

compressed_entries=()

for entry_path in data/*; do
[ ! "$entry_path" ] && continue

entry_name=$(basename "$entry_path")

[ "$entry_name" = ".lfs" ] && continue

# Skip SQLite ephemeral sidecar files
case "$entry_name" in
*-wal|*-shm|*-journal) continue ;;
esac

compressed_file="data/.lfs/${entry_name}.tar.gz"

if [ -f "$compressed_file" ]; then
continue
fi

echo -e " ${YELLOW}Compressing${NC} $entry_path -> $compressed_file"

entry_size=$(du -sh "$entry_path" | cut -f1)
echo -e " Data size: ${YELLOW}$entry_size${NC}"

tar -czf "$compressed_file" \
--exclude='*.tmp' \
--exclude='*.temp' \
--exclude='.DS_Store' \
--exclude='Thumbs.db' \
--checkpoint=1000 \
--checkpoint-action=dot \
-C "data/" \
"$entry_name"

if [ $? -eq 0 ]; then
compressed_size=$(du -sh "$compressed_file" | cut -f1)
echo -e " ${GREEN}✓${NC} Compressed $entry_name (${GREEN}$entry_size${NC} → ${GREEN}$compressed_size${NC})"
compressed_entries+=("$entry_name")
else
echo -e " ${RED}✗${NC} Failed to compress $entry_name"
exit 1
fi
Comment on lines +61 to +68
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Dead code: if [ $? -eq 0 ] is unreachable under set -e

set -e at line 5 causes the shell to exit immediately if tar returns a non-zero exit code, so execution never reaches the if [ $? -eq 0 ] check when tar fails. The else branch (failure message + exit 1) is dead code.

done

echo -e "\n${GREEN}Syncing data/.lfs/ to s3://${S3_BUCKET}/${S3_PREFIX}${NC}"
aws s3 sync data/.lfs/ "s3://${S3_BUCKET}/${S3_PREFIX}" \
--profile "$AWS_PROFILE" \
--exclude ".gitkeep"

echo -e "${GREEN}✓${NC} Upload complete"
3 changes: 0 additions & 3 deletions data/.lfs/ab_lidar_frames.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/apartment.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/assets.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/astar_corner_min_cost.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/astar_min_cost.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/big_office.ply.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/big_office_height_cost_occupancy.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/big_office_simple_occupancy.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/cafe-smol.jpg.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/cafe.jpg.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/chair-image.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/command_center.html.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/drone.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/expected_occupancy_scene.xml.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/g1_wholebody_replay.json.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/g1_zed.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/go2_bigoffice.db.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/go2_china_office.db.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/go2_hongkong_office.db.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/go2_sf_office.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/go2_short.db.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/gradient_simple.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/gradient_voronoi.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/inflation_simple.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/lcm_msgs.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/make_navigation_map_mixed.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/make_navigation_map_simple.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/make_path_mask_full.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/make_path_mask_two_meters.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/models_clip.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/models_contact_graspnet.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/models_edgetam.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/models_fastsam.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/models_graspgen.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/models_mobileclip.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/models_torchreid.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/models_yolo.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/models_yoloe.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/mujoco_sim.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/occupancy_general.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/occupancy_simple.npy.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/occupancy_simple.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/office_building_1.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/office_lidar.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/openarm_description.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/osm_map_test.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/overlay_occupied.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/person.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/piper.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/piper_description.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/raw_odometry_rotate_walk.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/replay_g1.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/replay_g1_run.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/resample_path_simple.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/resample_path_smooth.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/rgbd_frames.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/security_detection.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/security_no_detection.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/smooth_occupied.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/three_paths.npy.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/three_paths.ply.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/three_paths.png.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/unitree_go2_bigoffice.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/unitree_go2_bigoffice_map.pickle.tar.gz

This file was deleted.

3 changes: 0 additions & 3 deletions data/.lfs/unitree_go2_lidar_corrected.tar.gz

This file was deleted.

Loading
Loading