c51c14efde
- 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
301 lines
5.7 KiB
Markdown
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
|