Skip to content

Commit 58e63f4

Browse files
authored
Merge branch 'main' into remoteFix
2 parents 3348afe + f8fa131 commit 58e63f4

File tree

9 files changed

+56
-43
lines changed

9 files changed

+56
-43
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type" : "bugfix",
3+
"description" : "Amazon Q /doc: Fix uploading file method throwing incorrect workspace too large error message"
4+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type" : "bugfix",
3+
"description" : "/transform: skip running tests locally when user chooses to do so"
4+
}

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/common/util/AmazonQCodeGenService.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import software.aws.toolkits.core.utils.getLogger
2020
import software.aws.toolkits.core.utils.warn
2121
import software.aws.toolkits.jetbrains.common.clients.AmazonQCodeGenerateClient
2222
import software.aws.toolkits.jetbrains.common.session.Intent
23+
import software.aws.toolkits.jetbrains.services.amazonqDoc.docServiceError
2324
import software.aws.toolkits.jetbrains.services.amazonqDoc.session.DocGenerationStreamResult
2425
import software.aws.toolkits.jetbrains.services.amazonqDoc.session.ExportDocTaskAssistResultArchiveStreamResult
2526
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.CodeIterationLimitException
@@ -31,6 +32,7 @@ import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.FeatureDevOper
3132
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.MonthlyConversationLimitError
3233
import software.aws.toolkits.jetbrains.services.amazonqFeatureDev.ZipFileCorruptedException
3334
import software.aws.toolkits.jetbrains.services.cwc.controller.chat.telemetry.getStartUrl
35+
import software.aws.toolkits.resources.message
3436
import software.aws.toolkits.telemetry.AmazonqTelemetry
3537
import software.aws.toolkits.telemetry.MetricResult
3638

@@ -82,7 +84,7 @@ class AmazonQCodeGenService(val proxyClient: AmazonQCodeGenerateClient, val proj
8284
}
8385
}
8486

85-
fun createUploadUrl(conversationId: String, contentChecksumSha256: String, contentLength: Long, uploadId: String):
87+
fun createUploadUrl(conversationId: String, contentChecksumSha256: String, contentLength: Long, uploadId: String, featureName: String? = null):
8688
CreateUploadUrlResponse {
8789
try {
8890
logger.debug { "Executing createUploadUrl with conversationId $conversationId" }
@@ -104,6 +106,9 @@ class AmazonQCodeGenService(val proxyClient: AmazonQCodeGenerateClient, val proj
104106
logger.warn(e) { "Create UploadUrl failed for request: ${e.requestId()}" }
105107

106108
if (e is ValidationException && e.message?.contains("Invalid contentLength") == true) {
109+
if (featureName?.equals("docGeneration") == true) {
110+
throw docServiceError(message("amazonqDoc.exception.content_length_error"))
111+
}
107112
throw ContentLengthException(operation = FeatureDevOperation.CreateUploadUrl.toString(), desc = null, cause = e.cause)
108113
}
109114
}

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonqDoc/session/PrepareDocGenerationState.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ class PrepareDocGenerationState(
4848
config.conversationId,
4949
zipFileChecksum,
5050
zipFileLength,
51-
uploadId
51+
uploadId,
52+
"docGeneration"
5253
)
5354

5455
uploadArtifactToS3(

plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/ChatController.kt

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,10 @@ import kotlinx.coroutines.job
3232
import kotlinx.coroutines.withContext
3333
import migration.software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator
3434
import software.amazon.awssdk.services.codewhispererstreaming.model.UserIntent
35-
import software.aws.toolkits.core.utils.debug
3635
import software.aws.toolkits.core.utils.getLogger
3736
import software.aws.toolkits.core.utils.info
3837
import software.aws.toolkits.core.utils.warn
3938
import software.aws.toolkits.jetbrains.core.coroutines.EDT
40-
import software.aws.toolkits.jetbrains.services.amazonq.CHAT_IMPLICIT_PROJECT_CONTEXT_TIMEOUT
4139
import software.aws.toolkits.jetbrains.services.amazonq.apps.AmazonQAppInitContext
4240
import software.aws.toolkits.jetbrains.services.amazonq.auth.AuthController
4341
import software.aws.toolkits.jetbrains.services.amazonq.auth.AuthNeededState
@@ -140,7 +138,6 @@ class ChatController private constructor(
140138
val triggerId = UUID.randomUUID().toString()
141139
var shouldAddIndexInProgressMessage: Boolean = false
142140
var shouldUseWorkspaceContext: Boolean = false
143-
val startUrl = getStartUrl(context.project)
144141

145142
if (prompt.contains("@workspace")) {
146143
if (CodeWhispererSettings.getInstance().isProjectContextEnabled()) {
@@ -153,13 +150,6 @@ class ChatController private constructor(
153150
} else {
154151
sendOpenSettingsMessage(message.tabId)
155152
}
156-
} else if (CodeWhispererSettings.getInstance().isProjectContextEnabled()) {
157-
if (ProjectContextController.getInstance(context.project).getProjectContextIndexComplete()) {
158-
val projectContextController = ProjectContextController.getInstance(context.project)
159-
queryResult = projectContextController.queryChat(prompt, timeout = CHAT_IMPLICIT_PROJECT_CONTEXT_TIMEOUT)
160-
} else {
161-
logger.debug { "skipping implicit workspace context as index is not ready" }
162-
}
163153
}
164154

165155
handleChat(

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/constants/CodeTransformChatItems.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -204,14 +204,14 @@ private val selectSkipTestsFlagFormItem = FormItem(
204204
title = message("codemodernizer.chat.form.user_selection.item.choose_skip_tests_option"),
205205
mandatory = true,
206206
options = listOf(
207+
FormItemOption(
208+
label = message("codemodernizer.chat.message.skip_tests_form.skip"),
209+
value = message("codemodernizer.chat.message.skip_tests_form.skip"),
210+
),
207211
FormItemOption(
208212
label = message("codemodernizer.chat.message.skip_tests_form.run_tests"),
209213
value = message("codemodernizer.chat.message.skip_tests_form.run_tests"),
210214
),
211-
FormItemOption(
212-
label = message("codemodernizer.chat.message.skip_tests_form.skip"),
213-
value = message("codemodernizer.chat.message.skip_tests_form.skip"),
214-
)
215215
)
216216
)
217217

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/controller/CodeTransformChatController.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -710,7 +710,7 @@ class CodeTransformChatController(
710710
else -> {
711711
if (result is CodeModernizerJobCompletedResult.ZipUploadFailed && result.failureReason is UploadFailureReason.CREDENTIALS_EXPIRED) {
712712
return
713-
} else {
713+
} else if (CodeModernizerSessionState.getInstance(context.project).currentJobId != null) {
714714
val downloadResult = artifactHandler.downloadArtifact(
715715
CodeModernizerSessionState.getInstance(context.project).currentJobId as JobId,
716716
TransformationDownloadArtifactType.CLIENT_INSTRUCTIONS

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/ideMaven/MavenRunnerUtils.kt

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import java.nio.file.Path
2727
fun runHilMavenCopyDependency(
2828
sourceFolder: File,
2929
destinationDir: File,
30-
buildlogBuilder: StringBuilder,
30+
logBuilder: StringBuilder,
3131
logger: Logger,
3232
project: Project,
3333
): MavenCopyCommandsResult {
@@ -39,13 +39,13 @@ fun runHilMavenCopyDependency(
3939

4040
// run copy dependencies
4141
val copyDependenciesRunnable =
42-
runMavenCopyDependencies(sourceFolder, buildlogBuilder, mvnSettings, transformMvnRunner, destinationDir.toPath(), logger)
42+
runMavenCopyDependencies(sourceFolder, logBuilder, mvnSettings, transformMvnRunner, destinationDir.toPath(), logger)
4343
copyDependenciesRunnable.await()
44-
buildlogBuilder.appendLine(copyDependenciesRunnable.getOutput())
44+
logBuilder.appendLine(copyDependenciesRunnable.getOutput())
4545
if (copyDependenciesRunnable.isComplete()) {
4646
val successMsg = "IntelliJ IDEA bundled Maven copy-dependencies executed successfully"
4747
logger.info { successMsg }
48-
buildlogBuilder.appendLine(successMsg)
48+
logBuilder.appendLine(successMsg)
4949
} else if (copyDependenciesRunnable.isTerminated()) {
5050
return MavenCopyCommandsResult.Cancelled
5151
}
@@ -57,7 +57,7 @@ fun runHilMavenCopyDependency(
5757
return MavenCopyCommandsResult.Success(destinationDir)
5858
}
5959

60-
fun runMavenCopyCommands(sourceFolder: File, buildlogBuilder: StringBuilder, logger: Logger, project: Project): MavenCopyCommandsResult {
60+
fun runMavenCopyCommands(sourceFolder: File, logBuilder: StringBuilder, logger: Logger, project: Project, shouldSkipTests: Boolean): MavenCopyCommandsResult {
6161
val currentTimestamp = System.currentTimeMillis()
6262
val destinationDir = Files.createTempDirectory("transformation_dependencies_temp_$currentTimestamp")
6363
val telemetry = CodeTransformTelemetryManager.getInstance(project)
@@ -79,13 +79,13 @@ fun runMavenCopyCommands(sourceFolder: File, buildlogBuilder: StringBuilder, log
7979

8080
// run copy dependencies
8181
val copyDependenciesRunnable =
82-
runMavenCopyDependencies(sourceFolder, buildlogBuilder, mvnSettings, transformMvnRunner, destinationDir, logger)
82+
runMavenCopyDependencies(sourceFolder, logBuilder, mvnSettings, transformMvnRunner, destinationDir, logger)
8383
copyDependenciesRunnable.await()
84-
buildlogBuilder.appendLine(copyDependenciesRunnable.getOutput())
84+
logBuilder.appendLine(copyDependenciesRunnable.getOutput())
8585
if (copyDependenciesRunnable.isComplete()) {
8686
val successMsg = "IntelliJ IDEA bundled Maven copy-dependencies executed successfully"
8787
logger.info { successMsg }
88-
buildlogBuilder.appendLine(successMsg)
88+
logBuilder.appendLine(successMsg)
8989
} else if (copyDependenciesRunnable.isTerminated()) {
9090
telemetryLocalBuildResult = Result.Cancelled
9191
return MavenCopyCommandsResult.Cancelled
@@ -94,13 +94,13 @@ fun runMavenCopyCommands(sourceFolder: File, buildlogBuilder: StringBuilder, log
9494
}
9595

9696
// Run clean
97-
val cleanRunnable = runMavenClean(sourceFolder, buildlogBuilder, mvnSettings, transformMvnRunner, logger, destinationDir)
97+
val cleanRunnable = runMavenClean(sourceFolder, logBuilder, mvnSettings, transformMvnRunner, logger, destinationDir)
9898
cleanRunnable.await()
99-
buildlogBuilder.appendLine(cleanRunnable.getOutput())
99+
logBuilder.appendLine(cleanRunnable.getOutput())
100100
if (cleanRunnable.isComplete()) {
101101
val successMsg = "IntelliJ bundled Maven clean executed successfully"
102102
logger.info { successMsg }
103-
buildlogBuilder.appendLine(successMsg)
103+
logBuilder.appendLine(successMsg)
104104
} else if (cleanRunnable.isTerminated()) {
105105
telemetryLocalBuildResult = Result.Cancelled
106106
return MavenCopyCommandsResult.Cancelled
@@ -112,13 +112,13 @@ fun runMavenCopyCommands(sourceFolder: File, buildlogBuilder: StringBuilder, log
112112
}
113113

114114
// Run install
115-
val installRunnable = runMavenInstall(sourceFolder, buildlogBuilder, mvnSettings, transformMvnRunner, logger, destinationDir)
115+
val installRunnable = runMavenInstall(sourceFolder, logBuilder, mvnSettings, transformMvnRunner, logger, destinationDir, shouldSkipTests)
116116
installRunnable.await()
117-
buildlogBuilder.appendLine(installRunnable.getOutput())
117+
logBuilder.appendLine(installRunnable.getOutput())
118118
if (installRunnable.isComplete()) {
119119
val successMsg = "IntelliJ bundled Maven install executed successfully"
120120
logger.info { successMsg }
121-
buildlogBuilder.appendLine(successMsg)
121+
logBuilder.appendLine(successMsg)
122122
} else if (installRunnable.isTerminated()) {
123123
telemetryLocalBuildResult = Result.Cancelled
124124
return MavenCopyCommandsResult.Cancelled
@@ -212,18 +212,24 @@ private fun runMavenClean(
212212

213213
private fun runMavenInstall(
214214
sourceFolder: File,
215-
buildlogBuilder: StringBuilder,
215+
logBuilder: StringBuilder,
216216
mvnSettings: MavenRunnerSettings,
217217
transformMavenRunner: TransformMavenRunner,
218218
logger: Logger,
219219
destinationDir: Path,
220+
shouldSkipTests: Boolean,
220221
): TransformRunnable {
221-
buildlogBuilder.appendLine("Command Run: IntelliJ IDEA bundled Maven install")
222+
logBuilder.appendLine("Command Run: IntelliJ IDEA bundled Maven install")
223+
val flags = if (shouldSkipTests) {
224+
listOf("-Dmaven.repo.local=$destinationDir", "install", "-DskipTests")
225+
} else {
226+
listOf("-Dmaven.repo.local=$destinationDir", "install")
227+
}
222228
val installParams = MavenRunnerParameters(
223229
false,
224230
sourceFolder.absolutePath,
225231
null,
226-
listOf("-Dmaven.repo.local=$destinationDir", "install"),
232+
flags,
227233
emptyList<String>(),
228234
null
229235
)
@@ -234,20 +240,20 @@ private fun runMavenInstall(
234240
} catch (t: Throwable) {
235241
logger.error(t) { "Maven Install: Unexpected error when executing bundled Maven install" }
236242
installTransformRunnable.setExitCode(Integer.MIN_VALUE) // to stop looking for the exitCode
237-
buildlogBuilder.appendLine("IntelliJ bundled Maven install failed: ${t.message}")
243+
logBuilder.appendLine("IntelliJ bundled Maven install failed: ${t.message}")
238244
}
239245
}
240246
return installTransformRunnable
241247
}
242248

243249
private fun runMavenDependencyUpdatesReport(
244250
sourceFolder: File,
245-
buildlogBuilder: StringBuilder,
251+
logBuilder: StringBuilder,
246252
mvnSettings: MavenRunnerSettings,
247253
transformMavenRunner: TransformMavenRunner,
248254
logger: Logger,
249255
): TransformRunnable {
250-
buildlogBuilder.appendLine("Command Run: IntelliJ IDEA bundled Maven dependency updates report")
256+
logBuilder.appendLine("Command Run: IntelliJ IDEA bundled Maven dependency updates report")
251257

252258
val dependencyUpdatesReportCommandList = listOf(
253259
"versions:dependency-updates-aggregate-report",
@@ -270,25 +276,25 @@ private fun runMavenDependencyUpdatesReport(
270276
} catch (t: Throwable) {
271277
logger.error(t) { "Maven dependency report: Unexpected error when executing bundled Maven dependency updates report" }
272278
dependencyUpdatesReportRunnable.setExitCode(Integer.MIN_VALUE) // to stop looking for the exitCode
273-
buildlogBuilder.appendLine("IntelliJ bundled Maven dependency updates report failed: ${t.message}")
279+
logBuilder.appendLine("IntelliJ bundled Maven dependency updates report failed: ${t.message}")
274280
}
275281
}
276282
return dependencyUpdatesReportRunnable
277283
}
278284

279-
fun runDependencyReportCommands(sourceFolder: File, buildlogBuilder: StringBuilder, logger: Logger, project: Project): MavenDependencyReportCommandsResult {
285+
fun runDependencyReportCommands(sourceFolder: File, logBuilder: StringBuilder, logger: Logger, project: Project): MavenDependencyReportCommandsResult {
280286
logger.info { "Executing IntelliJ bundled Maven" }
281287

282288
val transformMvnRunner = TransformMavenRunner(project)
283289
val mvnSettings = MavenRunner.getInstance(project).settings.clone() // clone required to avoid editing user settings
284290

285-
val runnable = runMavenDependencyUpdatesReport(sourceFolder, buildlogBuilder, mvnSettings, transformMvnRunner, logger)
291+
val runnable = runMavenDependencyUpdatesReport(sourceFolder, logBuilder, mvnSettings, transformMvnRunner, logger)
286292
runnable.await()
287-
buildlogBuilder.appendLine(runnable.getOutput())
293+
logBuilder.appendLine(runnable.getOutput())
288294
if (runnable.isComplete()) {
289295
val successMsg = "IntelliJ bundled Maven dependency report executed successfully"
290296
logger.info { successMsg }
291-
buildlogBuilder.appendLine(successMsg)
297+
logBuilder.appendLine(successMsg)
292298
} else if (runnable.isTerminated()) {
293299
return MavenDependencyReportCommandsResult.Cancelled
294300
} else {

plugins/amazonq/codetransform/jetbrains-community/src/software/aws/toolkits/jetbrains/services/codemodernizer/model/CodeModernizerSessionContext.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,10 @@ data class CodeModernizerSessionContext(
9999
return excluded
100100
}
101101

102-
fun executeMavenCopyCommands(sourceFolder: File, buildLogBuilder: StringBuilder) = runMavenCopyCommands(sourceFolder, buildLogBuilder, LOG, project)
102+
fun executeMavenCopyCommands(sourceFolder: File, buildLogBuilder: StringBuilder): MavenCopyCommandsResult {
103+
val shouldSkipTests = customBuildCommand == MAVEN_BUILD_SKIP_UNIT_TESTS
104+
return runMavenCopyCommands(sourceFolder, buildLogBuilder, LOG, project, shouldSkipTests)
105+
}
103106

104107
private fun executeHilMavenCopyDependency(sourceFolder: File, destinationFolder: File, buildLogBuilder: StringBuilder) = runHilMavenCopyDependency(
105108
sourceFolder,

0 commit comments

Comments
 (0)