- Database Push Workflow: Complete Instructions
- CRITICAL: Automatic JNDI replacement before/after GitHub pushes
- File:
src/main/resources/META-INF/persistence.xml - Environment Variables: Replace
jdbc/coopwith${JDBC_DATASOURCE}andjdbc/ruhunuAuditwith${JDBC_AUDIT_DATASOURCE}
- Commit Conventions: Details
- Project Board: Workflow
- GitHub CLI Usage: Complete GitHub CLI Guide
- QA Deployment: Bot-Friendly QA Deployment Guide
- Auto-close keywords:
Closes #issueNumber,Fixes #issueNumber
- Quoting Issues: When using
gh pr createwith--titleor--bodyflags, ensure that the entire string for the title and body is properly quoted to avoid shell interpretation issues, especially on Windows. For multi-line bodies or complex strings, consider using--body-fileto read content from a temporary file. - Base Branch: Always verify the correct base branch for the pull request. Use
git remote show originto identify theHEAD branch(e.g.,developmentinstead ofmain) and specify it with--base <branch_name>. - Seamless PR Creation: The most reliable method for
gh pr createis often to use the--fillflag after ensuring the local branch is up-to-date with the remote base branch.
# Check default branch
git remote show origin
# Create PR with proper base branch
gh pr create --base development --fill
# Create PR with specific title and body file
echo "Fix CodeRabbit AI issues" > /tmp/pr_title.txt
echo "- Fixed JPQL query duplicates\n- Removed debug code" > /tmp/pr_body.txt
gh pr create --title-file /tmp/pr_title.txt --body-file /tmp/pr_body.txt
# Handle permission errors
gh auth refresh --scopes repo
# Check current authentication status
gh auth status- Maven Commands: Environment Setup
- Preferred: Use
./detect-maven.sh testauto-detection script - Fallback: Machine-specific Maven paths
- JSF-Only Changes: When modifying only XHTML/JSF files (no Java changes), compilation/testing is not required
- Guidelines: Complete Reference
- CRITICAL: Never modify existing constructors - only add new ones
- Use direct DTO queries - avoid entity-to-DTO conversion loops
- Naming Convention: Issue-based branches (
12875-implement-full-lab-workflow) - PR Integration: Auto-close with
Closes #issueNumber - Status Tracking: Project board updates
- Icon Management: SVG-only, consistent sizing (80x80)
- Theming: Use
currentColorfor dynamic styling - Accessibility: Proper tooltips and labeling
- Enum-based: Add to
Privileges.java - UI Integration: Use
webUserController.hasPrivilege() - Assignment: Via User Privileges admin interface
- Dynamic Values: Use
configOptionApplicationController - Color Schemes: Centralized color configuration
- Feature Toggles: Boolean flags for UI elements
For comprehensive implementation details, see:
- Branch & PR Management: Branch workflow details
- GitHub CLI Usage: Complete GitHub CLI Guide
- UI Development Handbook: Complete Reference
- Icon & UI Standards: UI guidelines
- Privilege Implementation: Security patterns
- Configuration Patterns: Config usage
- Consistency: Follow established patterns
- Security: Validate privileges, sanitize inputs
- Maintainability: Use centralized configuration
- Accessibility: Ensure inclusive design
- Always use environment variables in pushed persistence.xml
- Include issue closing keywords in commit messages
- Update project board status automatically
- Run tests before committing using detect-maven script (only for Java changes)
- Follow DTO patterns to avoid breaking changes
- JSF-only changes do not require compilation or testing