Re: Structured Changelogs for ELPA packages
Jean Louis <[email protected]> Sat, 08 Aug 2026 07:25:40 +0300
| Newsgroups | gmane.emacs.devel |
|---|---|
| Organization | GNU Support |
| Message-ID | <[email protected]> |
On 2026-08-08 04:07, Andrew Hyatt wrote: > Richard Stallman <[email protected]> writes: > >>> I know this will be controversial, but if we want to maintain that >>> changelogs are for humans and not machines, the solution is to use >>> an LLM to produce a standardized changelog from the freeform >>> changelog. >> >> It is beyond radical to proclaim something weird, and with >> drawbacks, as "the" solution. Why ignore the solution that we have >> always made to work? That is, to adopt a format and follow it. > > I don't think my statement was weird or radical, but perhaps there > was a misunderstanding. Let me attempt to clarify. > > Mandating a format is a perfectly good solution, but the disadvantage > is that formats have to be standardized. Everyone has to conform. > > If you instead really want to accept any human-readable changelog > format (what has historically been allowed), with the advantage that > no one has to change what they are doing, yet still transform or > process it in a structured manner, then an LLM is the appropriate > solution to that problem. Hmm. I must add something to this. Why do you generalize all the millions of LLMs into single "LLM". What does it practically mean? Which LLM do you use? How do you run it? To me it is contradictory to say that "formats have to be standardized" yet you insist that LLM is appropriate solution to that problem. That is maybe your isolated feeling while using one or some LLMs. Knowing that LLMs may output such a nonsense, there is absolutely no guarantee that all of the LLMs that are downloaded on my hard drives, all of the 452 of them, would give the same results, not even correct output, for changelogs. So which model exactly do you mean that could "standardize" it? What percentage of users can run such model on their computer practically? Is such model really free? How about some tests: model : /mnt/data/LLM/quantized/Apertus-8B-Instruct-2509-Q6_K.gguf CRITICAL FORMATTING RULES: 1. Header MUST be: YYYY-MM-DD Author Name <[email protected]> (with TWO spaces between each element) 2. Entries MUST start with a tab, then an asterisk: ' * ' 3. Each entry MUST include: filename.ext (function_name): Description 4. Function names MUST be written in FULL (no abbreviations) 5. Separat ... (truncated) * 2026-08-08 Your Name <[email protected]> (1 tab) data_processor.py: Added caching mechanism for JSON data loading. data_processor.py: Improved data validation in load_data method. data_processor.py: Enhanced processing of values with optional multiplier. data_processor.py: Updated statistics calculation to include count, sum, avg, max and min. - Header is on the wrong line and has wrong format - The asterisk * should NOT be on the header line - The header should be the FIRST line, not indented See: https://www.gnu.org/prep/standards/html_node/Style-of-Change-Logs.html Next test: model : /mnt/maxtor/LLM/quantized/Hermes-4-14B.Q6_K.gguf CRITICAL FORMATTING RULES: 1. Header MUST be: YYYY-MM-DD Author Name <[email protected]> (with TWO spaces between each element) 2. Entries MUST start with a tab, then an asterisk: ' * ' 3. Each entry MUST include: filename.ext (function_name): Description 4. Function names MUST be written in FULL (no abbreviations) 5. Separat ... (truncated) 2026-08-08 Your Name <[email protected]> * data_processor.py (DataProcessor.__init__, DataProcessor.load_data, DataProcessor._validate_data, DataProcessor.process_values, DataProcessor.get_statistics): New implementation of an advanced data processing utility with caching and validation. The class now includes methods for loading JSON data from files or cache, validating required keys in the data structure, processing values with a multiplier, and calculating statistics such as count, sum, average, max, and min. * data_processor.py (main): Added a main function demonstrating usage of the DataProcessor class by loading sample data, processing it, and printing statistics. - Header format: 2026-08-08 Your Name <[email protected]> - Perfect - Grouping too many functions on one line. According to GNU standards, you should NOT group unrelated functions like this. Each function should have its own entry with specific changes. - The description is too generic "New implementation of an advanced data processing utility with caching and validation" while every function needs specific description of what changed. - Missing blank line between unrelated changes Next test: model : /mnt/nvme0n1/LLM/quantized/LFM2-24B-A2B-Q4_K_M.gguf 2026-08-08 Your Name [email protected] * data_processing.py: Added caching mechanism for loaded data to improve performance and reduce redundant file reads * data_processing.py: Implemented validation of JSON structure ensuring required fields are present before processing * data_processing.py: Enhanced value processing with optional multiplier parameter for flexible scaling operations - Specific per-function changes are not there - Function names in parentheses missing - proper grouping isn't there But I get tired proving that LLMs are not reliable. Next test: CRITICAL FORMATTING RULES: 1. Header MUST be: YYYY-MM-DD Author Name <[email protected]> (with TWO spaces between each element) 2. Entries MUST start with a tab, then an asterisk: ' * ' 3. Each entry MUST include: filename.ext (function_name): Description 4. Function names MUST be written in FULL (no abbreviations) 5. Separat ... (truncated) 2023-03-15 Your Name <[email protected]> * DataProcessor.py: Added _validate_data method to ensure required keys and data structure in loaded JSON files. * DataProcessor.py: Updated load_data method to use _validate_data before caching and returning data. * DataProcessor.py: Modified process_values to accept an optional multiplier parameter for value processing. * main.py: Updated to demonstrate the usage of the new multiplier parameter in process_values.\n - header is good - Missing function names in parentheses, should be DataProcessor.py (DataProcessor._validate_data): New method... - wrong filename, Script uses data_processor.py (lowercase with underscore), Model output uses DataProcessor.py (camelcase) and main.py - Since entries are all in the same file, should be grouped I am not exhaustive, just showing few examples. CONCLUSION: LLMs cannot be trusted to generate correctly formatted GNU ChangeLogs; they are probabilistic text generators, not format-enforcement engines. -- Jean Louis