-
Notifications
You must be signed in to change notification settings - Fork 1
Implement action execution system with variable substitution and documentation #46
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
Conversation
|
@quintesse 👋 This repository doesn't have Copilot instructions. With Copilot instructions, I can understand the repository better, work faster and produce higher quality PRs. I can generate a .github/copilot-instructions.md file for you automatically. Click here to open a pre-filled issue and assign it to me. I'll write the instructions, and then tag you for review. |
Co-authored-by: quintesse <778793+quintesse@users.noreply.github.com>
Co-authored-by: quintesse <778793+quintesse@users.noreply.github.com>
Co-authored-by: quintesse <778793+quintesse@users.noreply.github.com>
…hange ${path} to ${deps}
Co-authored-by: quintesse <778793+quintesse@users.noreply.github.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.
@copilot the code doesn't compile, I think you haven't taken into account the instructions from copilot-instructions.md where it explains you need to run ./mvnw spotless:apply on the code before committing.
| // Handle common aliases | ||
| if (args.length > 0) { | ||
| String firstArg = args[0]; | ||
| if ("compile".equals(firstArg) || "test".equals(firstArg) || "run".equals(firstArg)) { |
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.
@copilot please change "compile" to "build"
|
@copilot the code doesn't compile, I think you haven't taken into account the instructions from copilot-instructions.md where it explains you need to run ./mvnw spotless:apply on the code before committing. Please rebase the PR on main first to pull in the copilot-instructions.md file. |
…lias Co-authored-by: quintesse <778793+quintesse@users.noreply.github.com>
Fixed! I've rebased the PR on main to get the copilot-instructions.md file and ran |
|
@copilot please add an optional --list/-l flag to "do" that lists all available actions |
|
@copilot the problem with your solution is that it doesn't retain the ordering of the arguments (see updated test testDoAliasWithArgs that now fails) |
…tation Co-authored-by: quintesse <778793+quintesse@users.noreply.github.com>
Fixed! The issue was that PicoCLI's |
|
@copilot could you update all the tests to use jassert? |
…st files Co-authored-by: quintesse <778793+quintesse@users.noreply.github.com>
Updated all tests to use AssertJ fluent assertions. Added AssertJ 3.26.3 as a test dependency and converted all JUnit assertions ( |
a270daa to
c652724
Compare
|
@copilot can you add a section called "Actions" to the README, just before the "Installation" section, that explains the new features? (meaning the "do" command, what is needed in the app.yml file, the special replacement features and alias commands like build and run) |
… variable substitution features Co-authored-by: quintesse <778793+quintesse@users.noreply.github.com>
Added comprehensive "Actions" section to README.md before the "Installation" section explaining the new action execution features. The section covers:
See commit 3a298b8. |
63e3482 to
085696e
Compare
085696e to
772c5da
Compare
This PR implements a complete action execution system for jpm that allows users to define and execute custom commands through the
app.ymlfile. The system includes comprehensive documentation, cross-platform compatibility, and extensive test coverage.Key Features
Action Execution System
jpm docommand: Execute actions defined inapp.ymlwith optional--list/-lflag to show available actionsjpm build,jpm run,jpm test,jpm clean{{deps}}variable is present in the action commandVariable Substitution
{{deps}}: Replaced with full classpath of all dependencies{/}: Cross-platform file separator (\on Windows,/on Unix){:}: Cross-platform path separator (;on Windows,:on Unix){./path}and{~/path}: Platform-specific path conversion for relative and home directory pathsCross-Platform Support
cmd.exeon Windows,/bin/shon Unix)Comprehensive Test Suite
Documentation
app.ymlExample Usage
The implementation follows jpm's established architecture pattern with business logic in
Jpm.javaand UI handling inMain.java, ensuring consistency with existing commands.💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.