Files
pgsql-jellyfin/docs/GITIGNORE_PUBLISHPROFILES.md
wjones c51c14efde Docs: overhaul README, centralize docs, update .gitignore
- Rewrote README.md to highlight PostgreSQL features, installer, and migration, with quick start and full docs index
- Moved all markdown documentation files to docs/ for better organization; updated links accordingly
- Added .gitignore rules to exclude all PublishProfiles folders; removed tracked publish profile XMLs
- Preserved original README as README.original.md; added README_GENERATION.md and DOCUMENTATION_ORGANIZATION.md
- Cleaned root directory, improved navigation, and clarified platform-specific instructions
2026-02-26 15:50:19 -05:00

301 lines
5.7 KiB
Markdown

# 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