Skip to content

Commit f252cba

Browse files
committed
Add community files and auto-updating changelog
- CHANGELOG.md: Version history with Keep a Changelog format - CONTRIBUTING.md: Comprehensive contribution guide - Issue templates: Bug reports and feature requests - Pull request template: Standardized PR checklist - Release workflow: Now updates CHANGELOG.md automatically on releases
1 parent 1f38c6a commit f252cba

6 files changed

Lines changed: 593 additions & 1 deletion

File tree

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
name: Bug Report
3+
about: Report a bug or unexpected behavior
4+
title: '[BUG] '
5+
labels: bug
6+
assignees: ''
7+
---
8+
9+
## Description
10+
11+
A clear and concise description of the bug.
12+
13+
## Steps to Reproduce
14+
15+
Steps to reproduce the behavior:
16+
17+
1. Go to '...'
18+
2. Run command '...'
19+
3. See error
20+
21+
## Expected Behavior
22+
23+
A clear and concise description of what you expected to happen.
24+
25+
## Actual Behavior
26+
27+
A clear and concise description of what actually happened.
28+
29+
## Environment
30+
31+
- **OS:** [e.g., Ubuntu 24.04, Windows 11, macOS 14]
32+
- **.NET Version:** [e.g., 9.0.100]
33+
- **LRM Version:** [e.g., 0.6.2]
34+
- **Installation Method:** [e.g., built from source, downloaded binary]
35+
36+
## Error Messages
37+
38+
```
39+
Paste any error messages or stack traces here
40+
```
41+
42+
## Resource Files
43+
44+
If applicable, provide information about your .resx files:
45+
46+
- Number of languages: [e.g., 3]
47+
- Number of keys: [e.g., 250]
48+
- File names: [e.g., SharedResource.resx, SharedResource.el.resx]
49+
50+
## Screenshots
51+
52+
If applicable, add screenshots to help explain your problem.
53+
54+
## Additional Context
55+
56+
Add any other context about the problem here.
57+
58+
## Possible Solution
59+
60+
If you have any ideas on how to fix this, please share them here.
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
name: Feature Request
3+
about: Suggest a new feature or enhancement
4+
title: '[FEATURE] '
5+
labels: enhancement
6+
assignees: ''
7+
---
8+
9+
## Problem Statement
10+
11+
A clear and concise description of the problem this feature would solve.
12+
13+
**Example:** "I find it frustrating when [situation] because [reason]."
14+
15+
## Proposed Solution
16+
17+
A clear and concise description of what you want to happen.
18+
19+
**Example:** "Add a command that allows users to [action] so that [benefit]."
20+
21+
## Alternative Solutions
22+
23+
Describe any alternative solutions or features you've considered.
24+
25+
## Use Case
26+
27+
Describe your specific use case for this feature:
28+
29+
- **Scenario:** [Describe when you would use this]
30+
- **Frequency:** [How often would you use this?]
31+
- **Impact:** [How would this improve your workflow?]
32+
33+
## Examples
34+
35+
If applicable, provide examples of:
36+
- Similar features in other tools
37+
- Command syntax you envision
38+
- Expected output
39+
40+
```bash
41+
# Example command
42+
lrm your-command --option value
43+
44+
# Expected output
45+
Expected result here
46+
```
47+
48+
## Additional Context
49+
50+
Add any other context, screenshots, or mockups about the feature request here.
51+
52+
## Would you like to implement this?
53+
54+
- [ ] Yes, I'd like to work on this (please wait for maintainer feedback first)
55+
- [ ] No, just suggesting the idea
56+
- [ ] Maybe, if I get guidance
57+
58+
## Checklist
59+
60+
- [ ] I have searched existing issues and discussions to avoid duplicates
61+
- [ ] This feature aligns with the project's goals (CLI + TUI .resx management)
62+
- [ ] I have provided sufficient detail for discussion

.github/pull_request_template.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
## Description
2+
3+
Brief description of the changes in this PR.
4+
5+
## Type of Change
6+
7+
- [ ] Bug fix (non-breaking change that fixes an issue)
8+
- [ ] New feature (non-breaking change that adds functionality)
9+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
10+
- [ ] Documentation update
11+
- [ ] Code refactoring
12+
- [ ] Performance improvement
13+
- [ ] Test improvements
14+
15+
## Related Issues
16+
17+
Closes #(issue number)
18+
Fixes #(issue number)
19+
Relates to #(issue number)
20+
21+
## Changes Made
22+
23+
-
24+
-
25+
-
26+
27+
## Testing
28+
29+
### Test Environment
30+
- **OS:** [e.g., Ubuntu 24.04]
31+
- **.NET Version:** [e.g., 9.0.100]
32+
33+
### How Has This Been Tested?
34+
35+
Describe the tests you ran to verify your changes:
36+
37+
- [ ] Unit tests (all passing)
38+
- [ ] Integration tests (all passing)
39+
- [ ] Manual testing
40+
- [ ] Tested with real .resx files
41+
42+
### Test Coverage
43+
44+
- [ ] Added new tests for new functionality
45+
- [ ] Updated existing tests (if applicable)
46+
- [ ] All tests pass locally
47+
48+
## Screenshots (if applicable)
49+
50+
Add screenshots or terminal output showing the changes.
51+
52+
## Checklist
53+
54+
### Code Quality
55+
- [ ] My code follows the project's coding style
56+
- [ ] I have performed a self-review of my code
57+
- [ ] I have commented my code, particularly in hard-to-understand areas
58+
- [ ] My changes generate no new warnings or errors
59+
60+
### Documentation
61+
- [ ] I have updated the documentation (README, code comments, etc.)
62+
- [ ] I have updated CHANGELOG.md under `[Unreleased]` section
63+
- [ ] I have added/updated command help text (if applicable)
64+
65+
### Testing
66+
- [ ] I have added tests that prove my fix is effective or that my feature works
67+
- [ ] New and existing unit tests pass locally with my changes
68+
- [ ] I have tested the changes on my target platform(s)
69+
70+
### Breaking Changes
71+
- [ ] This PR includes breaking changes
72+
- [ ] I have documented the breaking changes in the PR description
73+
- [ ] I have updated the migration guide (if applicable)
74+
75+
## Additional Notes
76+
77+
Add any additional notes, concerns, or questions here.

.github/workflows/release.yml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,31 @@ jobs:
7878
echo "EOF"
7979
} >> $GITHUB_OUTPUT
8080
81+
- name: Update CHANGELOG.md
82+
run: |
83+
VERSION=${{ steps.version.outputs.version }}
84+
DATE=$(date +%Y-%m-%d)
85+
86+
# Create new version section with current date
87+
sed -i "s/## \[Unreleased\]/## [Unreleased]\n\n## [$VERSION] - $DATE/" CHANGELOG.md
88+
89+
# Update version comparison links at bottom
90+
PREV_TAG=$(git describe --tags --abbrev=0 --match "v[0-9]*" HEAD^ 2>/dev/null || echo "")
91+
if [ -n "$PREV_TAG" ]; then
92+
# Update [Unreleased] link
93+
sed -i "s|\[Unreleased\]:.*|[Unreleased]: https://github.com/${{ github.repository }}/compare/v$VERSION...HEAD|" CHANGELOG.md
94+
# Add new version link
95+
sed -i "/\[Unreleased\]:/a [$VERSION]: https://github.com/${{ github.repository }}/compare/${PREV_TAG}...v$VERSION" CHANGELOG.md
96+
else
97+
# First release
98+
sed -i "/\[Unreleased\]:/a [$VERSION]: https://github.com/${{ github.repository }}/releases/tag/v$VERSION" CHANGELOG.md
99+
fi
100+
81101
- name: Commit version changes
82102
run: |
83103
git config user.name "github-actions[bot]"
84104
git config user.email "github-actions[bot]@users.noreply.github.com"
85-
git add LocalizationManager.csproj README.md
105+
git add LocalizationManager.csproj README.md CHANGELOG.md
86106
git commit -m "Bump version to ${{ steps.version.outputs.version }} [skip ci]"
87107
88108
- name: Push version commit to main

CHANGELOG.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
## [0.6.2] - 2025-01-09
11+
12+
### Added
13+
- GitHub Actions CI/CD workflows for automated releases
14+
- Version management scripts (`bump-version.sh` and `get-version.sh`)
15+
- Status badges to README (CI, Release, Version, License, .NET, Platform)
16+
- Repository topics and improved description
17+
18+
### Changed
19+
- Build script now uses dynamic version extraction from `.csproj`
20+
- Removed hardcoded VERSION variable from `build.sh` for safety
21+
- Workflow only modifies `.csproj` and `README.md` (build scripts untouched)
22+
23+
### Fixed
24+
- Build script now explicitly publishes main project only (excludes test project)
25+
26+
## [0.6.0] - 2025-11-09
27+
28+
### Added
29+
- Initial release of Localization Resource Manager
30+
- **CLI Commands:**
31+
- `validate` - Validate resource files for missing translations, duplicates, and empty values
32+
- `stats` - Display translation coverage statistics with charts
33+
- `view` - Display specific key details in table, JSON, or simple format
34+
- `add` - Add new localization keys to all languages
35+
- `update` - Modify existing key values with preview
36+
- `delete` - Remove keys from all languages
37+
- `export` - Export translations to CSV format
38+
- `import` - Import translations from CSV with conflict resolution
39+
- `edit` - Launch interactive TUI editor
40+
- **Interactive TUI Editor:**
41+
- Real-time search and filter
42+
- Multi-column table view for all languages
43+
- Add, edit, delete keys with keyboard shortcuts
44+
- Automatic validation (F6)
45+
- Unsaved changes tracking
46+
- Keyboard shortcuts help (F1)
47+
- **Core Features:**
48+
- Auto-discovery of `.resx` files and languages
49+
- Dynamic language support (no hardcoded languages)
50+
- Language validation with helpful errors
51+
- Automatic backup system before modifications
52+
- Multi-platform build support (Linux/Windows x64/ARM64)
53+
- Shell completion scripts (bash and zsh)
54+
- **Testing:**
55+
- 21 passing unit and integration tests
56+
- Test coverage for core logic, CRUD operations, and validation
57+
- **Documentation:**
58+
- Comprehensive README with usage examples
59+
- EXAMPLES.md with real-world scenarios
60+
- INSTALLATION.md with platform-specific instructions
61+
- BUILDING.md with build and distribution guide
62+
- **Build System:**
63+
- Automated multi-platform build script (`build.sh`)
64+
- Self-contained executables (no .NET runtime required)
65+
- Distribution archives ready for release
66+
- **License:**
67+
- MIT License with copyright headers in all source files
68+
69+
[Unreleased]: https://github.com/nickprotop/LocalizationManager/compare/v0.6.2...HEAD
70+
[0.6.2]: https://github.com/nickprotop/LocalizationManager/compare/v0.6.0...v0.6.2
71+
[0.6.0]: https://github.com/nickprotop/LocalizationManager/releases/tag/v0.6.0

0 commit comments

Comments
 (0)