logdetective 3.1.0__py3-none-any.whl → 3.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,19 +1,15 @@
1
1
  System time: {{ system_time }}
2
2
 
3
- You are a highly capable expert system specialized in packaging and delivery of software using RPM,
4
- within the RHEL ecosystem. Your purpose is to help package maintainers diagnose and resolve package build failures.
5
- You are truthful, concise, and helpful.
3
+ You are an expert system specialized in RPM package build failures. Your purpose is to provide concise analysis of build log snippets.
6
4
 
7
- ## Input processing
5
+ ## Instructions:
8
6
 
9
- You will work with snippets of logs produced during package build.
10
- These snippets were extracted using data mining algorithm, and may not contain information
11
- useful for diagnosing the root cause. Snippets without useful information must be disregarded.
7
+ 1. Provide a short explanation of the diagnostic information contained in the snippet.
8
+ 2. Do not quote or repeat any text from the raw snippet in your response.
9
+ 3. If the snippet contains no information useful for identifying a build failure, state only: "This snippet is irrelevant."
10
+ 4. Be truthful and do not fabricate information.
12
11
 
13
- ## Analysis procedure
14
-
15
- 1. Provide the snippet with a short explanation.
16
- 2. If the snippet doesn't contain useful information, indicate the fact with a short sentence.
12
+ Your response must be as short as possible.
17
13
 
18
14
  ## Examples:
19
15
 
@@ -1,26 +1,22 @@
1
1
  System time: {{ system_time }}
2
2
 
3
- You are a highly capable expert system specialized in packaging and delivery of software using RPM,
4
- within the RHEL ecosystem. Your purpose is to help package maintainers diagnose and resolve package build failures.
5
- You are truthful, concise, and helpful.
3
+ You are an expert system specialized in RPM package build failures in Fedora ecosystem.
4
+ Your purpose is to diagnose the root cause of failures and propose solutions.
6
5
 
7
- ## Input processing
6
+ ## Input Format:
8
7
 
9
- You will work with snippets of logs produced during package build.
10
- These snippets were extracted using data mining algorithm, and may not contain information
11
- useful for diagnosing the root cause. Snippets without useful information must be disregarded.
8
+ Snippets are provided as [Log Snippet] : [Explanation].
12
9
 
13
- ## Analysis procedure
10
+ ## Instructions:
14
11
 
15
- Analyzed snippets are a format of [X] : [Y], where [X] is a log snippet, and [Y] is the explanation.
16
- Do not reanalyze the raw log [X].
12
+ 1. Identify the single primary error that caused the build to stop. Ignore subsequent errors that are merely side effects of the first failure.
13
+ 2. Ignore generic status messages such as "Copr build error" or "Build failed" as they are not root causes.
14
+ 3. Provide one concise paragraph explaining the technical root cause and a specific solution.
15
+ 4. Avoid generic boilerplate (e.g., "check the logs" or "ensure dependencies are met").
16
+ 5. Do not quote the snippets.
17
+ 6. Be truthful and do not fabricate information.
17
18
 
18
- Snippets are delimited with '================'.
19
-
20
- 1. Analyze individual snippets, unless they already have analysis attached.
21
- 2. Disregard snippets that do not contain useful information.
22
- 3. Using information from all snippets provide explanation of the issue.
23
- 4. (Optional) Recommend a solution for the package maintainer, only if the cause is clear.
19
+ Your response must be as short as possible.
24
20
 
25
21
  ## Examples:
26
22
 
@@ -71,14 +71,13 @@ async def collect_emojis_in_comments( # pylint: disable=too-many-locals
71
71
  else:
72
72
  project = projects[mr_job_db.id]
73
73
  merge_request_iid = mr_job_db.mr_iid
74
- if merge_request_iid not in merge_requests:
75
- merge_request = await asyncio.to_thread(
74
+ project_id = mr_job_db.project_id
75
+ if (project_id, merge_request_iid) not in merge_requests:
76
+ merge_requests[(project_id, merge_request_iid)] = await asyncio.to_thread(
76
77
  project.mergerequests.get, merge_request_iid
77
78
  )
78
79
 
79
- merge_requests[merge_request_iid] = merge_request
80
- else:
81
- merge_request = merge_requests[merge_request_iid]
80
+ merge_request = merge_requests[(project_id, merge_request_iid)]
82
81
 
83
82
  discussion = await asyncio.to_thread(
84
83
  merge_request.discussions.get, comment.comment_id
@@ -87,9 +86,10 @@ async def collect_emojis_in_comments( # pylint: disable=too-many-locals
87
86
  # Get the ID of the first note
88
87
  if "notes" not in discussion.attributes or len(discussion.attributes["notes"]) == 0:
89
88
  LOG.warning(
90
- "No notes were found in comment %s in merge request %d",
89
+ "No notes were found in comment %s in merge request %d of project %d",
91
90
  comment.comment_id,
92
91
  merge_request_iid,
92
+ project_id,
93
93
  )
94
94
  continue
95
95
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: logdetective
3
- Version: 3.1.0
3
+ Version: 3.2.0
4
4
  Summary: Analyze logs with a template miner and an LLM to discover errors and suggest solutions.
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -6,9 +6,9 @@ logdetective/logdetective.py,sha256=um7rHKqwLGYdYLs46koRDADvYVYL2Q9-B9Y7veVHYO8,
6
6
  logdetective/models.py,sha256=UV5eTo8mVMkJuY2W869iBZv-ZfMIXh4_jLhOf-dhdyQ,2204
7
7
  logdetective/prompts/message_template.j2,sha256=yuniCNUtYvrAoQChOXI6-CV8XDeV8cX3EJmOn5hWbVw,13
8
8
  logdetective/prompts/snippet_message_template.j2,sha256=YRKZ_rdK1xqN4i66dlACStgP_gFroC7k_EGmQgzFEU0,12
9
- logdetective/prompts/snippet_system_prompt.j2,sha256=zaQk6pYvf7oY2KZJihg2gILYY1Xq7k2ifIcibigl-UE,1259
9
+ logdetective/prompts/snippet_system_prompt.j2,sha256=pLSDf_LnM1ddexbH1ROsCgyuUld5JZvs0nZhddDiT3s,1093
10
10
  logdetective/prompts/staged_message_template.j2,sha256=yuniCNUtYvrAoQChOXI6-CV8XDeV8cX3EJmOn5hWbVw,13
11
- logdetective/prompts/staged_system_prompt.j2,sha256=kiTTspTCMinRBcO9broks2RDwJqRSfJ7xHqoNOoKUUo,1808
11
+ logdetective/prompts/staged_system_prompt.j2,sha256=Qdpc1IrKvSkaiuzUchJsJekEafYekF-T44GfA-_cwTs,1584
12
12
  logdetective/prompts/system_prompt.j2,sha256=mOf3yGG830sqHO_JWBUtq5TMITUVDgwbW5XihbgNRM8,2330
13
13
  logdetective/prompts-summary-first.yml,sha256=kmyMFQmqFXpojkz7p3CyCWCPxMpFLpfDdMGisB4YwL0,808
14
14
  logdetective/prompts-summary-only.yml,sha256=8U9AMJV8ePW-0CoXOXlQoO92DAJDeutIT8ntSkkm6W0,470
@@ -25,7 +25,7 @@ logdetective/server/database/models/exceptions.py,sha256=4ED7FSSA1liV9-7VIN2BwUi
25
25
  logdetective/server/database/models/koji.py,sha256=HNWxHYDxf4JN9K2ue8-V8dH-0XY5ZmxqH7Y9lAIbILA,6436
26
26
  logdetective/server/database/models/merge_request_jobs.py,sha256=MxiAVKQIsQMbFylBsmYBmVXYvid-4_5mwwXLfWdp6_w,19965
27
27
  logdetective/server/database/models/metrics.py,sha256=XpiGrZJ-SuHfePBOeek_WiV-i0p1wjoCBTekSMiZZM0,15559
28
- logdetective/server/emoji.py,sha256=zSaYtLpSkpRCXpjMWnHR1bYwkmobMJASZ7YNalrd85U,5274
28
+ logdetective/server/emoji.py,sha256=1hPFjoA_zdefPNm5bz2eSerjBFqrPZjnq4x7GgE4ADA,5340
29
29
  logdetective/server/exceptions.py,sha256=WN715KLL3ya6FiZ95v70VSbNuVhGuHFzxm2OeEPWQCw,981
30
30
  logdetective/server/gitlab.py,sha256=X9JSotUUlG9bOWYbUNKt9KqLUAj6Uocd2KNpfn35ccU,17192
31
31
  logdetective/server/koji.py,sha256=LG1pRiKUFvYFRKzgQoUG3pUHfcEwMoaMNjUSMKw_pBA,5640
@@ -39,8 +39,8 @@ logdetective/server/templates/gitlab_short_comment.md.j2,sha256=2krnMlGqqju2V_6p
39
39
  logdetective/server/utils.py,sha256=0BZ8WmzXNEtkUty1kOyFbBxDZWL0Icc8BUrxuHw9uvs,4015
40
40
  logdetective/skip_snippets.yml,sha256=reGlhPPCo06nNUJWiC2LY-OJOoPdcyOB7QBTSMeh0eg,487
41
41
  logdetective/utils.py,sha256=buis3FVNOb5lsZtM2LDTcYDgTTHxvi4Y59E4fvHdSuE,10327
42
- logdetective-3.1.0.dist-info/METADATA,sha256=H6nNDHy16aB8sW4McoLD6vEAlMIz2iL3P1nkNKltj-w,24063
43
- logdetective-3.1.0.dist-info/WHEEL,sha256=3ny-bZhpXrU6vSQ1UPG34FoxZBp3lVcvK0LkgUz6VLk,88
44
- logdetective-3.1.0.dist-info/entry_points.txt,sha256=3K_vXja6PmcA8sNdUi63WdImeiNhVZcEGPTaoJmltfA,63
45
- logdetective-3.1.0.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
46
- logdetective-3.1.0.dist-info/RECORD,,
42
+ logdetective-3.2.0.dist-info/METADATA,sha256=K2C3gvvxmLWkbCop8g4TVerIMNzBbeL99e3oULfkitI,24063
43
+ logdetective-3.2.0.dist-info/WHEEL,sha256=kJCRJT_g0adfAJzTx2GUMmS80rTJIVHRCfG0DQgLq3o,88
44
+ logdetective-3.2.0.dist-info/entry_points.txt,sha256=3K_vXja6PmcA8sNdUi63WdImeiNhVZcEGPTaoJmltfA,63
45
+ logdetective-3.2.0.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
46
+ logdetective-3.2.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.3.0
2
+ Generator: poetry-core 2.3.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any