This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RFC: automatically listing fixed bugs for NEWS


Attached is a (Python 3) script to generate a list of fixed bugs for NEWS 
from Bugzilla data (including bug summaries as proposed by Mike in 
<https://sourceware.org/ml/libc-alpha/2015-08/msg00103.html>), using the 
Bugzilla API to obtain the relevant information from Bugzilla in JSON 
format.  I've included current output below.  Note that this output is 
*not* complete, as I haven't finished going through bugs listed in NEWS 
for 2.23 to set their milestones; that would be necessary before switching 
from manual NEWS updates to using this script.

What do people think of using this script - put in 
scripts/list-fixed-bugs.py, say - to replace the manual NEWS edits when 
fixing bugs?

Notes:

* We previously discussed having a "fixed in" Bugzilla field to handle 
bugs fixed on both mainline and release branches.  But since we don't 
currently make point releases (just leaving it to distributors to get 
release branch changes from git), that seems pretty pointless - the script 
would never be run for release branches.  So for now I'd proposed that 
people continue to edit NEWS manually for release branch fixes (using the 
new longer format, of course).

* The section on milestones at 
<https://sourceware.org/glibc/wiki/Bugzilla%20Procedures> should be 
considered largely obsolete (and mostly speculative rather than describing 
anything that ever happened).  Closed bugs, closed as FIXED, should have 
the milestone set to the version of the first mainline release with the 
fix (not to any older branch to which the fix was backported).  Open bugs, 
and bugs closed other than as FIXED, should not have milestones.

* It would become important that people do actually set milestones when 
closing bugs as fixed.  Thus, people watching commits and Bugzilla should 
watch for that.

* The script's output is UTF-8 when non-ASCII characters are included in 
bug descriptions; it needs to be run in a UTF-8 locale.

* I'd be inclined to put the list of fixed bugs at the *end* of the NEWS 
section for a release, rather than at the start, so starting with the more 
significant changes with their own NEWS items.

* Before a release, the NEWS file would contain a placeholder like:

  [The release manager will add the list generated by
  scripts/list-fixed-bugs.py just before the release.]

and <https://sourceware.org/glibc/wiki/Release> would list this step just 
before the existing "6.10. Tag".

  [BZ #887] Math library function "logb" and "nextafter" inconsistent
  [BZ #2542] Incorrect return from float gamma (-0X1.FA471547C2FE5P+1)
  [BZ #2543] Incorrect return from float gamma (-0X1.9260DCP+1)
  [BZ #2558] Incorrect return from double gamma (-0X1.FA471547C2FE5P+1)
  [BZ #2898] [improve]  warning: the use  of `mktemp' is dangerous, better
    use `mkstemp'
  [BZ #4404] German translation of "Alarm clock" is misleading
  [BZ #6803] scalb(), scalbln(), scalbn() do not set errno on
    overflow/underflow
  [BZ #10432] _nss_nis_setnetgrent assertion failure
  [BZ #14341] Dynamic linker crash when DT_JMPREL and DT_REL{,A} are not
    contiguous
  [BZ #14912] Rename non-installed bits/*.h headers
  [BZ #15367] Let gcc use __builtin_isinf
  [BZ #15384] One constant fewer in ieee754/dbl-64/wordsize-64/s_finite.c
  [BZ #15470] [arm] On ARM llrintl() and llroundl() do not raise FE_INVALID
    with argument out of range
  [BZ #15491] [i386/x86_64] x86 nearbyint implementations wrongly clear all
    exceptions
  [BZ #15786] ifunc resolver functions can smash function arguments
  [BZ #15918] Unnecessary check for equality in hypotf()
  [BZ #16068] [i386/x86_64] x86 and x86_64 fesetenv exclude state they
    should include
  [BZ #16141] strptime %z offset restriction
  [BZ #16296] fegetround is pure?
  [BZ #16347] [ldbl-128ibm] ldbl-128/e_lgammal_r.c may not be suitable.
  [BZ #16399] [mips] lrint / llrint / lround / llround missing exceptions
  [BZ #16415] Clean up ldbl-128 / ldbl-128ibm expm1l for large positive
    arguments
  [BZ #16422] [powerpc] math-float, math-double failing llrint tests with
    "Exception "Inexact" set" on ppc32
  [BZ #16517] Missing underflow exception from tanf/tan/tanl
  [BZ #16519] Missing underflow exception from sinhf
  [BZ #16520] Missing underflow exception from tanhf
  [BZ #16521] Missing underflow exception from exp2
  [BZ #16620] [ldbl-128ibm] exp10l spurious overflows / bad directed
    rounding results
  [BZ #16734] fopen calls mmap to allocate its buffer
  [BZ #16973] Fix lang_lib/lang_term as per ISO 639-2
  [BZ #16985] localedef: confusing error message when opening output fails
  [BZ #17118] ctanh(INFINITY + 2 * I) returns incorrect value
  [BZ #17243] trunk/posix/execl.c:53: va_args problem ?
  [BZ #17244] trunk/sysdeps/unix/sysv/linux/semctl.c:116: va_args muxup ?
  [BZ #17250] static linking breaks nss loading
    (getaddrinfo/getpwnam/etc...)
  [BZ #17404] atomic_exchange_rel lacking a barrier on MIPS16, GCC before
    4.7?
  [BZ #17441] isnan() should use __builtin_isnan() in GCC
  [BZ #17787] Exponent on page 324 of the PDF ends prematurely
  [BZ #17886] strptime should be able to parse "Z" as a timezone with %z
  [BZ #17887] strptime should be able to parse "+01:00" style timezones
  [BZ #17905] catopen() Multiple unbounded stack allocations
  [BZ #18084] backtrace (..., 0) dumps core on x86
  [BZ #18086] nice() sets errno to 0 on success
  [BZ #18240] hcreate((size_t)-1) should fail with ENOMEM
  [BZ #18265] add attributes for wchar string and memory functions
  [BZ #18370] csqrt missing underflows
  [BZ #18421] [hppa] read-only segment has dynamic relocations
  [BZ #18480] hppa glibc miscompilation in sched_setaffinity()
  [BZ #18525] Remove locale timezone information
  [BZ #18589] sort-test.sh fails at random
  [BZ #18595] ctan, ctanh missing underflows
  [BZ #18610] S390: fetestexcept() reports any exception if DXC-code
    contains a vector instruction exception.
  [BZ #18611] j1, jn missing errno setting on underflow
  [BZ #18618] sync Chechen locale definitions with other *_RU locales
  [BZ #18647] powf(-0x1.000002p0, 0x1p30) returns 0 instead of +inf
  [BZ #18661] Some x86-64 assembly codes don't align stack to 16 bytes
  [BZ #18674] [i386] trunk/sysdeps/i386/tst-auditmod3b.c:84: possible
    missing break ?
  [BZ #18675] fpathconf(_PC_NAME_MAX) fails against large filesystems for
    32bit processes
  [BZ #18681] regexp.h is obsolete and buggy, and should be desupported
  [BZ #18699] tilegx cproj() for various complex infinities does not yield
    infinity
  [BZ #18724] Harden put*ent functions against data injection
  [BZ #18743] PowerPC: findutils testcase fails with --enable-lock-elision
  [BZ #18757] fmemopen fails to set errno on failure
  [BZ #18778] ld.so crashes if failed dlopen causes libpthread to be forced
    unloaded
  [BZ #18781] openat64 lacks O_LARGEFILE
  [BZ #18787] [hppa] sysdeps/unix/sysv/linux/hppa/bits/atomic.h:71:6: error:
    canʼt find a register in class ʽR1_REGSʼ while reloading ʽasmʼ
  [BZ #18789] [ldbl-128ibm] sinhl inaccurate near 0
  [BZ #18790] [ldbl-128ibm] tanhl inaccurate
  [BZ #18803] hypot missing underflows
  [BZ #18823] csqrt spurious underflows
  [BZ #18824] fma spurious underflows
  [BZ #18825] pow missing underflows
  [BZ #18857] [ldbl-128ibm] nearbyintl wrongly uses signaling comparisons
  [BZ #18875] Excess precision leads incorrect libm
  [BZ #18918] hu_HU: change time to HH:MM:SS format
  [BZ #18951] tgamma missing underflows
  [BZ #18953] lt_LT: change currency symbol to the euro
  [BZ #18956] powf inaccuracy
  [BZ #18961] [i386] exp missing underflows
  [BZ #18966] [i386] exp10 missing underflows
  [BZ #18967] math.h XSI POSIX namespace (gamma, isnan, scalb)
  [BZ #18970] Reference of pthread_setcancelstate in libc.a
  [BZ #18980] i386 libm functions return with excess range and precision
  [BZ #18982] va_list and vprintf
  [BZ #19003] [x86_64] fma4 version of pow inappropriate contraction
  [BZ #19007] FAIL: elf/check-localplt with -z now and binutils 2.26
  [BZ #19016] clog, clog10 inaccuracy
  [BZ #19032] [i386] acosh (-qNaN) spurious "invalid" exception
  [BZ #19046] ldbl-128 / ldbl-128ibm lgamma bad overflow handling
  [BZ #19049] [powerpc] erfc incorrect zero sign
  [BZ #19050] [powerpc] log* incorrect zero sign
  [BZ #19059] nexttoward overflow incorrect in non-default rounding modes
  [BZ #19076] [ldbl-128ibm] log1pl (-1) wrong sign of infinity
  [BZ #19077] [ldbl-128ibm] logl (1) incorrect sign of zero result
  [BZ #19078] [ldbl-128ibm] expl overflow incorrect in non-default rounding
    modes
  [BZ #19079] dbl-64/wordsize-64 lround based on llround incorrect for ILP32
  [BZ #19085] ldbl-128 lrintl, lroundl missing exceptions for 32-bit long
  [BZ #19086] posix_fallocate64 documented argument order is wrong.
  [BZ #19088] lround, llround missing exceptions close to overflow threshold
  [BZ #19094] lrint, llrint missing exceptions close to overflow threshold
  [BZ #19095] dbl-64 lrint incorrect for 64-bit long
  [BZ #19124] ld.so failed to build with older assmebler
  [BZ #19125] [powerpc32] llroundf, llround incorrect exceptions
  [BZ #19129] [arm] Concurrent lazy TLSDESC resolution can crash
  [BZ #19134] [powerpc32] lround, lroundf spurious exceptions
  [BZ #19137] i386/epoll_pwait.S doesn't support cancellation
  [BZ #19156] [ldbl-128] j0l spurious underflows
  [BZ #19174] PowerPC: TLE enabled pthread mutex performs poorly.
  [BZ #19181] [i386/x86_64] fesetenv (FE_DFL_ENV), fesetenv (FE_NOMASK_ENV)
    do not clear SSE exceptions

-- 
Joseph S. Myers
joseph@codesourcery.com
#! /usr/bin/python3
# Copyright (C) 2015 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# The GNU C Library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
# <http://www.gnu.org/licenses/>.

"""List fixed bugs for the NEWS file.

This script takes a version number as input and generates a list of
bugs marked as FIXED with that milestone, to be added to the NEWS file
just before release.  Run the script in a UTF-8 locale.
"""

import json
import sys
import textwrap
import urllib.request

def list_fixed_bugs(version):
    """List the bugs fixed in a given version."""
    url = ('https://sourceware.org/bugzilla/rest.cgi/bug?product=glibc'
           '&resolution=FIXED&target_milestone=%s'
           '&include_fields=id,summary' % version)
    response = urllib.request.urlopen(url)
    json_data = response.read().decode('utf-8')
    data = json.loads(json_data)
    for bug in data['bugs']:
        desc = '[BZ #%d] %s' % (bug['id'], bug['summary'])
        desc = textwrap.fill(desc, width=76, initial_indent='  ',
                             subsequent_indent='    ')
        print(desc)

if __name__ == '__main__':
    list_fixed_bugs(sys.argv[1])

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]