Skip to content
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

[RFE] Support renaming a file - example with recommendation of changing persistence.xml file to application.properties #502

Open
jwmatthews opened this issue Nov 22, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@jwmatthews
Copy link
Member

This issue is tracking our ability to detect and execute when the LLM tells us that a given file should be renamed/moved.

For this specific example we would want to:

  1. Create a new file src/main/resources/application.properties
  2. Update src/main/resources/application.properties with entries derived from the older src/main/resources/META-INF/persistence.xml
  3. Remove the older src/main/resources/META-INF/persistence.xml

See src/main/resources/META-INF/persistence.xml from coolstore sample and recommendation to change its contents and rename/move to application.properties

# This file should be renamed to application.properties
quarkus.datasource.jdbc.url=jdbc:mysql://localhost:3306/coolstore
quarkus.datasource.db-kind=mysql
quarkus.datasource.username=root
quarkus.datasource.password=password

quarkus.hibernate-orm.database.generation=none
quarkus.hibernate-orm.sql-load-script=import.sql
quarkus.hibernate-orm.show-sql=false
quarkus.hibernate-orm.format-sql=true
quarkus.hibernate-orm.use-sql-comments=true
quarkus.hibernate-orm.jdbc.use-get-generated-keys=false

Note this is both rename AND move, as persistence.xml was under src/main/resources/META-INF/ and we are moving up 1 directory, so no longer under META-INF

@rszwajko
Copy link

@pranavgaikwad
On the IDE side we anticipated this functionality and introduced following Change type inspired by Git extension types.

export interface Change {
  // relative file path before the change, may be empty if file was created in this change
  original: string;
  // relative file path after the change, may be empty if file was deleted in this change
  modified: string;
  // diff in unified format - tested with git diffs
  diff: string;
}

Can you send array of such objects instead of the current response?

// current types
export interface SolutionResponse {
 diff: string;
 modified_files: string[];
 // ...other fields
}

rszwajko added a commit to rszwajko/editor-extensions that referenced this issue Nov 28, 2024
Map solution response to internal format using only information from the
provided diff.

Main advantages:
1. automatically map files to corresponding diffs - apply/discard
   operations are file based and require single-file diff
2. allows incremental update to support add/delete/rename
3. file paths in git diffs are relative to repository root which
   usually maps to VS Code workspace

Main disadvantage is increasing the dependency on the git diff format.

Reference-Url: konveyor/kai#502
Signed-off-by: Radoslaw Szwajkowski <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants