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
This commit is contained in:
@@ -0,0 +1,300 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user