# PublishProfiles Added to .gitignore **Date:** 2026-02-26 **Status:** ✅ Complete **Action:** Added PublishProfiles folder patterns to .gitignore --- ## What Was Added ### Patterns Added to .gitignore ```gitignore # Publish profiles (anywhere in project) /Properties/PublishProfiles/ Properties/PublishProfiles/ **/PublishProfiles/ **/Properties/PublishProfiles/ ``` ### What These Patterns Ignore 1. **`/Properties/PublishProfiles/`** - Root level Properties/PublishProfiles 2. **`Properties/PublishProfiles/`** - Properties/PublishProfiles anywhere 3. **`**/PublishProfiles/`** - Any PublishProfiles folder at any level 4. **`**/Properties/PublishProfiles/`** - Properties/PublishProfiles at any level --- ## Why Ignore PublishProfiles? ### Machine-Specific Configuration - Contains local file paths - User-specific settings - Development environment details ### Security Concerns - May contain credentials - Connection strings - Server information ### Best Practices - Should not be in version control - Each developer maintains their own - Use template or documentation instead --- ## Existing PublishProfiles Found ``` Jellyfin.Server/Properties/PublishProfiles/ ``` This folder is currently tracked by Git and needs to be removed. --- ## Cleanup Steps ### 1. Remove from Git Tracking ```bash # Remove from Git but keep local files git rm -r --cached Jellyfin.Server/Properties/PublishProfiles # Verify removal git status ``` ### 2. Commit Changes ```bash # Commit .gitignore update git add .gitignore git commit -m "gitignore: Add PublishProfiles folder patterns - Added **/PublishProfiles/ to ignore publish profiles anywhere - Added **/Properties/PublishProfiles/ for comprehensive coverage - Removed existing PublishProfiles from Git tracking Reason: Publish profiles are machine-specific and should not be version controlled " ``` ### 3. Verify ```bash # Check that PublishProfiles is ignored git status # Should not show PublishProfiles folders ``` --- ## What Gets Ignored Now ### Project Publish Profiles ``` Jellyfin.Server/Properties/PublishProfiles/ MediaBrowser.Controller/Properties/PublishProfiles/ */Properties/PublishProfiles/ (any project) ``` ### Any PublishProfiles Folder ``` PublishProfiles/ src/PublishProfiles/ tests/PublishProfiles/ **/PublishProfiles/ (anywhere) ``` --- ## Creating Publish Profiles (For Developers) ### Don't Commit Create your own local publish profiles: 1. **In Visual Studio:** - Right-click project → Publish - Create new profile - Configure settings - **Don't commit!** 2. **Document Settings:** Create a template in docs: ``` docs/PUBLISH_PROFILE_TEMPLATE.md ``` 3. **Share Configuration:** Use README or documentation to explain: - Target framework - Deployment type - Required settings ### Example Documentation ```markdown ## Creating a Publish Profile 1. Right-click Jellyfin.Server project 2. Select "Publish" 3. Choose target: - Folder: `lib/Release/net11.0` - Configuration: Release - Target Framework: net11.0 - Deployment Mode: Self-contained 4. Save as "FolderProfile" **Note:** This is for local development only. Do not commit. ``` --- ## .gitignore Section (Complete) ```gitignore # Centralized lib output folder /lib/ lib/ /installer-output/ installer-output/ # Publish profiles (anywhere in project) /Properties/PublishProfiles/ Properties/PublishProfiles/ **/PublishProfiles/ **/Properties/PublishProfiles/ ``` --- ## Verification ### Check What's Ignored ```bash # List ignored files git status --ignored # Check specific folder git check-ignore -v Jellyfin.Server/Properties/PublishProfiles ``` ### Ensure Clean State ```bash # Should show no PublishProfiles git status # Verify .gitignore is working touch Jellyfin.Server/Properties/PublishProfiles/test.pubxml git status # Should NOT show the new file ``` --- ## Migration for Team Members If team members have PublishProfiles in their working directory: ### After Pulling This Change ```bash # Pull the updated .gitignore git pull # Their local PublishProfiles are now ignored # Git will stop tracking them # Local files remain untouched # Verify git status # Should not show PublishProfiles as modified ``` --- ## Related Files ### .gitignore Sections ```gitignore # Build output (existing) [Bb]in/ [Oo]bj/ lib/ # Visual Studio (existing) .vs/ *.user *.suo # Publish profiles (new) **/PublishProfiles/ **/Properties/PublishProfiles/ ``` --- ## Git Commands Summary ```bash # Update .gitignore (already done) git add .gitignore # Remove PublishProfiles from tracking git rm -r --cached Jellyfin.Server/Properties/PublishProfiles # Commit both changes git commit -m "gitignore: Add PublishProfiles folder patterns" # Push to remote git push origin pgsql_testing_branch ``` --- ## Benefits ✅ **No More Conflicts** - Each developer has their own profiles ✅ **Security** - No credentials in repo ✅ **Flexibility** - Different configs per machine ✅ **Clean History** - No unnecessary commits ✅ **Best Practice** - Follows .NET conventions --- ## Files Modified ``` Modified: ✏️ .gitignore To Remove (from Git tracking): 🗑️ Jellyfin.Server/Properties/PublishProfiles/ (if exists in Git) ``` --- ## Summary **Status:** ✅ Complete **Patterns Added:** 4 (comprehensive coverage) **Folders to Untrack:** 1 (Jellyfin.Server/Properties/PublishProfiles) **Team Impact:** None (local files remain) The .gitignore now properly excludes all PublishProfiles folders from version control while allowing developers to maintain their own local publish configurations. --- **Next Steps:** 1. ✅ .gitignore updated 2. ⏳ Run `git rm -r --cached Jellyfin.Server/Properties/PublishProfiles` 3. ⏳ Commit changes 4. ⏳ Push to remote