-
Notifications
You must be signed in to change notification settings - Fork 23
Fresh build improvements #57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fresh build improvements #57
Conversation
This commit modernizes the Maven build configuration and adds comprehensive environment validation to improve developer experience. Changes to pom.xml: - Add centralized version properties for all dependencies and plugins - Add dependencyManagement section for consistent dependency versions - Add pluginManagement section for plugin version management - Upgrade from JUnit 4 to JUnit 5 (Jupiter) - Add Maven Enforcer plugin to validate Java 21+ and Maven 3.6+ requirements - Add Maven Surefire plugin configuration for JUnit 5 support Changes to build tooling: - Add Maven wrapper (mvnw, mvnw.cmd) for consistent Maven versions - Add scripts/validate-setup.sh to check environment prerequisites - Update Makefile with Maven wrapper usage and new targets: - validate: Run environment validation checks - test: Run test suite - safe-build: Validate then build Benefits: - Easier dependency version management (centralized in properties) - Better build validation with enforcer plugin - No need for system-wide Maven installation - Quick environment troubleshooting with validate-setup.sh - Modern JUnit 5 testing framework 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit adds full release automation using Maven Release Plugin,
making it easy to create versioned releases with proper git tagging
and automated deployment.
Changes to pom.xml:
- Add maven-release-plugin to pluginManagement and plugins
- Configure release plugin with semantic versioning tags (v@{version})
- Add release profile that enables GPG signing and Javadoc generation
- Configure release goals and SCM commit prefixes
Changes to Makefile:
- Add release-prepare target for version bumping and tagging
- Add release-perform target for building and deploying
- Add release target for full release workflow
- Add release-rollback for reverting failed releases
- Add release-clean for cleanup
- Add deploy and deploy-skip-tests targets
- Update help with release and deployment sections
New Documentation:
- docs/RELEASE_PROCESS.md with complete release guide
- Prerequisites checklist (Git, GPG, Maven credentials)
- Step-by-step release instructions
- Configuration examples for GPG and Maven settings
- Troubleshooting section for common issues
- Release checklist
Usage:
make release # Full automated release
make release-prepare # Just prepare (version bump + tag)
make release-perform # Just perform (build + deploy)
make deploy # Deploy current version
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces comprehensive improvements to the build setup and development workflow for the GPULlama3.java project. Key changes include adding Maven wrapper support for consistent builds across environments, implementing environment validation tooling, and establishing a formal release process with proper version management.
- Added Maven wrapper (mvnw/mvnw.cmd) for standardized Maven version across all developers
- Created environment validation script to check prerequisites before building
- Enhanced build configuration with dependency/plugin management and release profiles
- Expanded Makefile with deployment, testing, and release automation targets
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/validate-setup.sh | New validation script that checks Java, Maven, TornadoVM, and project setup |
| pom.xml | Enhanced with dependency management, plugin management, enforcer rules, and release profile |
| mvnw.cmd | Maven wrapper script for Windows environments |
| mvnw | Maven wrapper script for Unix-like environments |
| docs/RELEASE_PROCESS.md | Comprehensive documentation for the release workflow and troubleshooting |
| Makefile | Extended with validation, testing, deployment, and release automation targets |
| .mvn/wrapper/maven-wrapper.properties | Maven wrapper configuration specifying Maven 3.9.6 |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| echo -e "${BLUE}Checking for common issues...${NC}" | ||
|
|
||
| # Check if running from project root | ||
| if [ -f "llama-tornado" ]; then |
Copilot
AI
Oct 27, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The check uses '-f' flag which tests for a regular file, but 'llama-tornado' is likely an executable script or directory. Consider using '-e' (exists) or '-x' (executable) instead, depending on what llama-tornado is.
| if [ -f "llama-tornado" ]; then | |
| if [ -e "llama-tornado" ]; then |
| # Clean the project | ||
| clean: | ||
| mvn clean | ||
| $(MVN) clean |
Copilot
AI
Oct 27, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The MVN variable should be checked for existence before use. If ./mvnw doesn't exist (e.g., fresh checkout before wrapper setup), this will fail silently. Consider adding a validation or fallback to 'mvn'.
No description provided.