Your music, beautifully tracked. All yours. (coming soon) teal.fm
teal-fm atproto

Remove symlinks from git tracking and improve lexicons setup

- Remove lexicons/{app,chat,com,tools} symlinks from git tracking
- Add symlink paths to .gitignore (they'll be created during setup)
- Add setup script scripts/setup-lexicons.sh for easy initialization
- Update lexicons/README.md with detailed setup instructions
- Update main README.md with submodule initialization steps

This makes the repository cleaner by not tracking generated symlinks
while providing clear setup instructions for new contributors.

Changed files
+137 -13
lexicons
scripts
+5 -5
.gitignore
··· 71 71 # Track our custom lexicons 72 72 !lexicons/fm.teal.alpha/ 73 73 !lexicons/fm.teal.alpha/**/*.json 74 - # Track the symlinks to atproto lexicons 75 - !lexicons/app 76 - !lexicons/chat 77 - !lexicons/com 78 - !lexicons/tools 74 + # Ignore symlinks to atproto lexicons (created during setup) 75 + lexicons/app 76 + lexicons/chat 77 + lexicons/com 78 + lexicons/tools 79 79 # But ignore any generated files within lexicons 80 80 lexicons/**/*.js 81 81 lexicons/**/*.d.ts
+13
README.md
··· 29 29 # Install all dependencies (Node.js and Rust) 30 30 pnpm install 31 31 32 + # clone submodules 33 + git submodule update --init --recursive 34 + 32 35 # Set up environment configuration 33 36 cp apps/aqua/.env.example apps/aqua/.env 34 37 ··· 153 156 154 157 # Show lexicon change impact 155 158 pnpm lex:diff 159 + ``` 160 + 161 + # Updating Vendored Lexicons 162 + To update vendored lexicons (anything that's not under fm.teal), follow these steps: 163 + ```bash 164 + cd vendor/atproto 165 + git pull origin main 166 + cd ../.. 167 + git add vendor/atproto 168 + git commit -m "Update atproto lexicons to latest" 156 169 ``` 157 170 158 171 See [`tools/lexicon-cli/README.md`](tools/lexicon-cli/README.md) for detailed documentation.
+53 -4
lexicons/README.md
··· 17 17 18 18 ### Initial Setup 19 19 20 - If you're cloning this repository for the first time, you'll need to initialize the submodules: 20 + If you're cloning this repository for the first time, you'll need to initialize the submodules and create the symbolic links: 21 21 22 22 ```bash 23 + # Initialize submodules 23 24 git submodule update --init --recursive 25 + 26 + # Create symbolic links to atproto lexicons 27 + cd lexicons 28 + ln -s ../vendor/atproto/lexicons/app app 29 + ln -s ../vendor/atproto/lexicons/chat chat 30 + ln -s ../vendor/atproto/lexicons/com com 31 + ln -s ../vendor/atproto/lexicons/tools tools 32 + cd .. 33 + ``` 34 + 35 + Or use the provided setup script: 36 + 37 + ```bash 38 + ./scripts/setup-lexicons.sh 24 39 ``` 25 40 26 41 ### Updating ATProto Lexicons ··· 35 50 git commit -m "Update atproto lexicons to latest" 36 51 ``` 37 52 53 + ### Setup Script 54 + 55 + A convenience script is available to handle the initial setup: 56 + 57 + ```bash 58 + #!/bin/bash 59 + # scripts/setup-lexicons.sh 60 + 61 + echo "Setting up lexicons..." 62 + 63 + # Initialize submodules 64 + git submodule update --init --recursive 65 + 66 + # Create symbolic links if they don't exist 67 + cd lexicons 68 + if [ ! -L app ]; then 69 + ln -s ../vendor/atproto/lexicons/app app 70 + echo "Created symlink: lexicons/app" 71 + fi 72 + if [ ! -L chat ]; then 73 + ln -s ../vendor/atproto/lexicons/chat chat 74 + echo "Created symlink: lexicons/chat" 75 + fi 76 + if [ ! -L com ]; then 77 + ln -s ../vendor/atproto/lexicons/com com 78 + echo "Created symlink: lexicons/com" 79 + fi 80 + if [ ! -L tools ]; then 81 + ln -s ../vendor/atproto/lexicons/tools tools 82 + echo "Created symlink: lexicons/tools" 83 + fi 84 + cd .. 85 + 86 + echo "Lexicons setup complete!" 87 + ``` 88 + 38 89 ### Adding Custom Lexicons 39 90 40 91 Custom lexicons should be added to the `fm.teal.alpha/` directory following the ATProto lexicon schema format. These files are tracked directly in our repository and not affected by submodule updates. 41 92 42 - ## Generated Files 43 - 44 - This directory may contain generated files (`.js`, `.d.ts`, etc.) that are created by lexicon compilation tools. These are ignored by git as specified in the `.gitignore` file. 93 + **Note**: The symbolic links (`app`, `chat`, `com`, `tools`) are not tracked in git and will be created during setup. They are ignored in `.gitignore` to avoid conflicts.
-1
lexicons/app
··· 1 - ../vendor/atproto/lexicons/app
-1
lexicons/chat
··· 1 - ../vendor/atproto/lexicons/chat
-1
lexicons/com
··· 1 - ../vendor/atproto/lexicons/com
-1
lexicons/tools
··· 1 - ../vendor/atproto/lexicons/tools
+66
scripts/setup-lexicons.sh
··· 1 + #!/bin/bash 2 + # scripts/setup-lexicons.sh 3 + # Setup script for ATProto lexicons submodule and symbolic links 4 + 5 + set -e 6 + 7 + echo "Setting up lexicons..." 8 + 9 + # Check if we're in the right directory 10 + if [ ! -f "package.json" ] || [ ! -d "lexicons" ]; then 11 + echo "Error: This script must be run from the project root directory" 12 + exit 1 13 + fi 14 + 15 + # Initialize submodules 16 + echo "Initializing submodules..." 17 + git submodule update --init --recursive 18 + 19 + # Check if vendor/atproto exists 20 + if [ ! -d "vendor/atproto" ]; then 21 + echo "Error: vendor/atproto submodule not found" 22 + exit 1 23 + fi 24 + 25 + # Create symbolic links if they don't exist 26 + echo "Creating symbolic links..." 27 + cd lexicons 28 + 29 + if [ ! -L app ]; then 30 + ln -s ../vendor/atproto/lexicons/app app 31 + echo "Created symlink: lexicons/app" 32 + else 33 + echo "Symlink already exists: lexicons/app" 34 + fi 35 + 36 + if [ ! -L chat ]; then 37 + ln -s ../vendor/atproto/lexicons/chat chat 38 + echo "Created symlink: lexicons/chat" 39 + else 40 + echo "Symlink already exists: lexicons/chat" 41 + fi 42 + 43 + if [ ! -L com ]; then 44 + ln -s ../vendor/atproto/lexicons/com com 45 + echo "Created symlink: lexicons/com" 46 + else 47 + echo "Symlink already exists: lexicons/com" 48 + fi 49 + 50 + if [ ! -L tools ]; then 51 + ln -s ../vendor/atproto/lexicons/tools tools 52 + echo "Created symlink: lexicons/tools" 53 + else 54 + echo "Symlink already exists: lexicons/tools" 55 + fi 56 + 57 + cd .. 58 + 59 + echo "Lexicons setup complete!" 60 + echo "" 61 + echo "You should now have access to:" 62 + echo " - lexicons/app -> ATProto app lexicons" 63 + echo " - lexicons/chat -> ATProto chat lexicons" 64 + echo " - lexicons/com -> ATProto protocol lexicons" 65 + echo " - lexicons/tools -> ATProto tools lexicons" 66 + echo " - lexicons/fm.teal.alpha -> Custom Teal lexicons"