The findstat errors very likely occur because findstat switched to python3 last weekend. Some of these might be upstream errors, many thanks for the report!
Are you going to open a ticket, or should I do it? Martin On Monday, 7 November 2022 at 13:52:05 UTC+1 Sébastien Labbé wrote: > On Ubuntu 18.04, with few optional/external packages, here is what I get: > > Running with SAGE_LOCAL='/home/slabbe/GitBox/sage/local' and > SAGE_VENV='/home/slabbe/GitBox/sage/local/var/lib/sage/venv-python3.10.8' > Using --optional=build,debian,external,glucose,pip,sage,sage_spkg > Features to be detected: > 4ti2,benzene,bliss,buckygen,conway_polynomials,cplex,csdp,database_cremona_ellcurve,database_cremona_mini_ellcurve,database_cubic_hecke,database_jones_numfield,database_knotinfo,dvipng,ffmpeg,gfan,graphviz,gurobi,imagemagick,internet,jupymake,kenzo,latex,latex_package_tkz_graph,latte_int,lrslib,lualatex,macaulay2,magma,maple,mathematica,matlab,mcqd,meataxe,msolve,nauty,octave,palp,pandoc,pdf2svg,pdflatex,pdftocairo,phitigra,plantri,polytopes_db,polytopes_db_4d,pynormaliz,python_igraph,rubiks,sage.combinat,sage.geometry.polyhedron,sage.graphs,sage.groups,sage.misc.cython,sage.plot,sage.rings.number_field,sage.rings.padics,sage.rings.real_double,sage.symbolic,sage_numerical_backends_coin,sagemath_doc_html,scilab,sphinx,tdlib,xelatex > > ... > > ---------------------------------------------------------------------- > sage -t --long --random-seed=125260421738293551212373193771007533631 > src/doc/en/reference/sat/index.rst # Killed due to abort > sage -t --long --random-seed=125260421738293551212373193771007533631 > src/sage/crypto/mq/sr.py # Killed due to abort > sage -t --long --random-seed=125260421738293551212373193771007533631 > src/sage/databases/findstat.py # 24 doctests failed > sage -t --long --random-seed=125260421738293551212373193771007533631 > src/sage/repl/interpreter.py # 1 doctest failed > sage -t --long --random-seed=125260421738293551212373193771007533631 > src/sage/rings/polynomial/multi_polynomial_sequence.py # Killed due to > abort > sage -t --long --random-seed=125260421738293551212373193771007533631 > src/sage/rings/polynomial/pbori/PyPolyBoRi.py # Killed due to abort > sage -t --long --random-seed=125260421738293551212373193771007533631 > src/sage/rings/polynomial/pbori/fglm.py # Killed due to abort > sage -t --long --random-seed=125260421738293551212373193771007533631 > src/sage/rings/polynomial/pbori/pbori.pyx # Killed due to abort > sage -t --long --random-seed=125260421738293551212373193771007533631 > src/sage/rings/polynomial/polynomial_ring_constructor.py # Killed due to > abort > sage -t --long --random-seed=125260421738293551212373193771007533631 > src/sage/sat/boolean_polynomials.py # Killed due to abort > sage -t --long --random-seed=125260421738293551212373193771007533631 > src/sage/sat/solvers/dimacs.py # Killed due to abort > sage -t --long --random-seed=125260421738293551212373193771007533631 > src/sage/tests/cmdline.py # 1 doctest failed > ---------------------------------------------------------------------- > Features detected for doctesting: > dvipng,ffmpeg,gfan,graphviz,imagemagick,internet,latex,latex_package_tkz_graph,lualatex,nauty,octave,palp,pandoc,pdf2svg,pdflatex,pdftocairo,sage.combinat,sage.geometry.polyhedron,sage.graphs,sage.groups,sage.misc.cython,sage.plot,sage.rings.number_field,sage.rings.padics,sage.rings.real_double,sage.symbolic,sagemath_doc_html,sphinx,xelatex > > Rerunning failed tests gives the same list. > > Follow-up at https://trac.sagemath.org/ticket/25536 > > Among the new failures is the findstat module which is welcome back in the > list! > > > sage -t --long --random-seed=95614862795994508165725448677302087211 > src/sage/databases/findstat.py > ********************************************************************** > File "src/sage/databases/findstat.py", line 49, in sage.databases.findstat > Failed example: > r = findstat([(m, m.number_of_nestings()) for n in range(6) for m in > PM(2*n)], depth=1); r # optional -- internet > Expected: > 0: St000042oMp00116 (quality [100, 100]) > 1: St000041 (quality [20, 100]) > ... > Got: > 0: St000233 (quality [16, 100]) > 1: St000496 (quality [16, 100]) > 2: St000233oMp00112 (quality [16, 100]) > 3: St000496oMp00112 (quality [16, 100]) > 4: St000232oMp00115 (quality [12, 70]) > 5: St000233oMp00249 (quality [12, 70]) > 6: St000496oMp00249 (quality [12, 70]) > ********************************************************************** > File "src/sage/databases/findstat.py", line 83, in sage.databases.findstat > Failed example: > print(r[1].statistic().description()) > # optional -- internet > Expected: > The number of nestings of a perfect matching. > <BLANKLINE> > <BLANKLINE> > This is the number of pairs of edges $((a,b), (c,d))$ such that $a\le > c\le d\le b$. i.e., the edge $(c,d)$ is nested inside $(a,b)$... > Got: > The rcs statistic of a set partition. > > Let $S = B_1,\ldots,B_k$ be a set partition with ordered blocks $B_i$ > and with $\operatorname{min} B_a < \operatorname{min} B_b$ for $a < b$. > > According to [1, Definition 3], a '''rcs''' (right-closer-smaller) of > $S$ is given by a pair $i > j$ such that $j = \operatorname{max} B_b$ and > $i \in B_a$ for $a < b$. > ********************************************************************** > File "src/sage/databases/findstat.py", line 91, in sage.databases.findstat > Failed example: > r[1].statistic().references() > # optional -- internet > Expected: > 0: [1] de Médicis, A., Viennot, X. G., Moments des $q$-polynômes de > Laguerre et la bijection de Foata-Zeilberger [[MathSciNet:1288802]] > 1: [2] Simion, R., Stanton, D., Octabasic Laguerre polynomials and > permutation statistics [[MathSciNet:1418763]]... > Got: > 0: [1] Steingrimsson, E., Statistics on ordered partitions of sets > [[arXiv:math/0605670]] > ********************************************************************** > File "src/sage/databases/findstat.py", line 104, in sage.databases.findstat > Failed example: > findstat(data, depth=0) > # optional -- internet > Expected: > 0: St000041 (quality [99, 100]) > 1: St000042 (quality [99, 100]) > Got: > 0: St000232 (quality [99, 100]) > 1: St000233 (quality [99, 100]) > 2: St000496 (quality [99, 100]) > 3: St000559 (quality [15, 57]) > 4: St000563 (quality [15, 57]) > 5: St001781 (quality [15, 57]) > ********************************************************************** > File "src/sage/databases/findstat.py", line 120, in sage.databases.findstat > Failed example: > r = findstat(Permutations, lambda pi: pi.saliances()[0], depth=2); r > # optional -- internet > Expected: > 0: St000740oMp00087 with offset 1 (quality [100, 100]) > ... > Got: > 0: St000740oMp00066 with offset 1 (quality [100, 100]) > 1: St000740oMp00087 with offset 1 (quality [100, 100]) > 2: St000476oMp00099oMp00127 (quality [100, 100]) > 3: St000740oMp00238oMp00087 with offset 1 (quality [100, 100]) > 4: St000740oMp00236oMp00087 with offset 1 (quality [100, 100]) > 5: St000740oMp00236oMp00066 with offset 1 (quality [100, 100]) > 6: St000740oMp00238oMp00066 with offset 1 (quality [100, 100]) > 7: St000740oMp00089oMp00149 with offset 1 (quality [100, 100]) > 8: St000740oMp00087oMp00254 with offset 1 (quality [100, 100]) > 9: St000740oMp00159oMp00254 with offset 1 (quality [100, 100]) > 10: St000740oMp00066oMp00254 with offset 1 (quality [100, 100]) > 11: St000740oMp00257oMp00066 with offset 1 (quality [99, 100]) > 12: St000740oMp00257oMp00087 with offset 1 (quality [99, 100]) > 13: St000740oMp00067oMp00062 with offset 1 (quality [99, 100]) > 14: St000147oMp00027oMp00127 (quality [96, 100]) > 15: St000740oMp00175oMp00062 with offset 1 (quality [91, 100]) > 16: St000054oMp00066oMp00149 with offset 1 (quality [89, 100]) > 17: St000054oMp00064oMp00062 with offset 1 (quality [88, 100]) > 18: St000740oMp00175oMp00087 with offset 1 (quality [88, 100]) > 19: St000740oMp00067oMp00087 with offset 1 (quality [88, 100]) > 20: St000740oMp00175oMp00066 with offset 1 (quality [88, 100]) > 21: St000740oMp00067oMp00066 with offset 1 (quality [88, 100]) > 22: St000740oMp00257oMp00062 with offset 1 (quality [88, 100]) > 23: St000740oMp00062 with offset 1 (quality [87, 100]) > 24: St000054oMp00064oMp00087 with offset 1 (quality [87, 100]) > 25: St000054oMp00025oMp00127 with offset 1 (quality [87, 100]) > 26: St000054oMp00064oMp00066 with offset 1 (quality [87, 100]) > 27: St000141oMp00025oMp00127 (quality [87, 100]) > 28: St000740oMp00062oMp00254 with offset 1 (quality [87, 100]) > 29: St000740oMp00238oMp00062 with offset 1 (quality [87, 100]) > 30: St000740oMp00236oMp00062 with offset 1 (quality [87, 100]) > 31: St001291oMp00127 with offset 1 (quality [87, 86]) > 32: St000051oMp00061oMp00069 (quality [87, 86]) > 33: St000051oMp00061oMp00149 (quality [87, 86]) > 34: St000316oMp00025oMp00127 (quality [87, 86]) > 35: St000653oMp00129oMp00127 (quality [87, 86]) > 36: St000740oMp00089oMp00069 with offset 1 (quality [87, 86]) > 37: St001184oMp00127oMp00064 with offset 1 (quality [87, 86]) > 38: St001227oMp00028oMp00127 (quality [87, 86]) > 39: St001291oMp00132oMp00127 with offset 1 (quality [87, 86]) > 40: St001291oMp00124oMp00127 with offset 1 (quality [87, 86]) > 41: St001291oMp00127oMp00254 with offset 1 (quality [87, 86]) > 42: St001291oMp00099oMp00127 with offset 1 (quality [87, 86]) > 43: St001480oMp00032oMp00127 (quality [87, 86]) > 44: St001480oMp00118oMp00127 (quality [87, 86]) > 45: St000066oMp00063oMp00149 with offset 1 (quality [54, 86]) > 46: St000066oMp00063oMp00069 with offset 1 (quality [54, 86]) > 47: St000840oMp00146oMp00127 (quality [18, 86]) > 48: St000199oMp00063 with offset 1 (quality [15, 71]) > 49: St000193oMp00004oMp00063 with offset 1 (quality [15, 71]) > 50: St000199oMp00063oMp00254 with offset 1 (quality [15, 71]) > 51: St000199oMp00137oMp00127 with offset 1 (quality [15, 71]) > 52: St000200oMp00063oMp00062 with offset 1 (quality [15, 71]) > 53: St000200oMp00005oMp00063 with offset 1 (quality [15, 71]) > 54: St000200oMp00063oMp00087 with offset 1 (quality [15, 71]) > 55: St000200oMp00035oMp00127 with offset 1 (quality [15, 71]) > 56: St000200oMp00137oMp00127 with offset 1 (quality [15, 71]) > 57: St000740oMp00201oMp00127 with offset 1 (quality [15, 71]) > 58: St001291oMp00199oMp00127 with offset 1 (quality [15, 71]) > ********************************************************************** > File "src/sage/databases/findstat.py", line 127, in sage.databases.findstat > Failed example: > r[0].info() > # optional -- internet > Expected: > after adding 1 to every value > and applying > Mp00087: inverse first fundamental transformation: Permutations -> > Permutations > to the objects (see `.compound_map()` for details) > <BLANKLINE> > your input matches > St000740: The last entry of a permutation. > <BLANKLINE> > among the values you sent, 100 percent are actually in the database, > among the distinct values you sent, 100 percent are actually in the > database > Got: > after adding 1 to every value > and applying > Mp00066: inverse: Permutations -> Permutations > to the objects (see `.compound_map()` for details) > <BLANKLINE> > your input matches > St000740: The last entry of a permutation. > <BLANKLINE> > among the values you sent, 100 percent are actually in the database, > among the distinct values you sent, 100 percent are actually in the > database > ********************************************************************** > File "src/sage/databases/findstat.py", line 434, in > sage.databases.findstat._get_json > Failed example: > _get_json(FINDSTAT_API_MAPS + "?xxx=yyy") # > optional -- internet > Expected: > Traceback (most recent call last): > ... > ValueError: E005: On filtering maps, the following parameters are not > allowed: [u'xxx']. > Got: > {'data': ['Mp00001', > 'Mp00002', > 'Mp00003', > 'Mp00004', > 'Mp00005', > 'Mp00006', > 'Mp00007', > 'Mp00008', > 'Mp00009', > 'Mp00010', > > ... > > 'Mp00249', > 'Mp00250', > 'Mp00251', > 'Mp00252', > 'Mp00253', > 'Mp00254', > 'Mp00255', > 'Mp00256', > 'Mp00257', > 'Mp00258', > 'Mp00259'], > 'included': {'Maps': {}}} > ********************************************************************** > File "src/sage/databases/findstat.py", line 457, in > sage.databases.findstat._post_json > Failed example: > _post_json(FINDSTAT_API_STATISTICS, {"xxx": "yyy"}) # > optional -- internet > Expected: > Traceback (most recent call last): > ... > ValueError: E005: On filtering statistics, the following parameters > are not allowed: ['xxx']. > Got: > {'data': ['St000001', > 'St000002', > 'St000003', > 'St000004', > 'St000005', > 'St000006', > 'St000007', > 'St000008', > > ... > > > 'St001838', > 'St001839', > 'St001840', > 'St001841', > 'St001842', > 'St001843'], > 'included': {'Statistics': {}}} > ********************************************************************** > File "src/sage/databases/findstat.py", line 593, in > sage.databases.findstat.? > Failed example: > _data_from_iterable(l) # > optional -- internet > Expected: > (lazy list [([[]], [0]), ([[(1, 2)]], [0]), ([[(1, 2), (3, 4)], [(1, > 3), (2, 4)], [(1, 4), (2, 3)]], [0, 0, 1]), ...], > a subset of Cc0012: Perfect matchings) > Got: > (lazy list [([[]], [0]), ([[(1, 2)]], [0]), ([[(1, 2), (3, 4)], [(1, > 3), (2, 4)], [(1, 4), (2, 3)]], [0, 0, 1]), ...], > a subset of Cc0009: Set partitions) > ********************************************************************** > File "src/sage/databases/findstat.py", line 968, in > sage.databases.findstat.? > Failed example: > findstat([(m, m.number_of_nestings()) for m in l], depth=0) # > optional -- internet > Expected: > 0: St000041 (quality [100, 100]) > Got: > 0: St000233 (quality [100, 100]) > 1: St000496 (quality [100, 100]) > ********************************************************************** > File "src/sage/databases/findstat.py", line 973, in > sage.databases.findstat.? > Failed example: > findstat({m: m.number_of_nestings() for m in l}, depth=0) # > optional -- internet > Expected: > 0: St000041 (quality [100, 100]) > Got: > 0: St000233 (quality [100, 100]) > 1: St000496 (quality [100, 100]) > ********************************************************************** > File "src/sage/databases/findstat.py", line 984, in > sage.databases.findstat.? > Failed example: > findstat("Perfect Matchings", lambda m: m.number_of_nestings(), > depth=0) # optional -- internet > Expected: > 0: St000041 (quality [20, 100]) > Got: > 0: St000041 (quality [14, 100]) > ********************************************************************** > File "src/sage/databases/findstat.py", line 989, in > sage.databases.findstat.? > Failed example: > PM = PerfectMatchings(10); findstat((PM, [m.number_of_nestings() for m > in PM]), depth=0) # optional -- internet > Expected: > 0: St000042 (quality [100, 100]) > 1: St000041 (quality [9, 100]) > Got: > 0: St000232 (quality [4, 9]) > 1: St000233 (quality [4, 100]) > 2: St000496 (quality [4, 100]) > 3: St000793 (quality [4, 18]) > 4: St000971 (quality [4, 45]) > 5: St001050 (quality [4, 45]) > 6: St001051 (quality [4, 45]) > 7: St001153 (quality [4, 45]) > 8: St001693 (quality [4, 45]) > ********************************************************************** > File "src/sage/databases/findstat.py", line 995, in > sage.databases.findstat.? > Failed example: > findstat(12, distribution=lambda m: m.number_of_nestings(), depth=0) # > optional -- internet > Expected: > 0: St000041 (quality [100, 100]) > 1: St000042 (quality [100, 100]) > Got: > 0: St000042 (quality [100, 100]) > 1: St000041 (quality [11, 100]) > ********************************************************************** > File "src/sage/databases/findstat.py", line 1040, in > sage.databases.findstat.? > Failed example: > findstat([(m, m.number_of_nestings()/1) for m in > PerfectMatchings(10)], depth=0) # optional -- internet > Expected: > 0: St000041 (quality [9, 100]) > Got: > 0: St000233 (quality [4, 100]) > 1: St000496 (quality [4, 100]) > ********************************************************************** > File "src/sage/databases/findstat.py", line 2654, in > sage.databases.findstat.FindStatStatisticQuery.first_terms > Failed example: > r = findstat(l, depth=0); r # > optional -- internet > Expected: > 0: St000041 (quality [99, 100]) > 1: St000042 (quality [99, 100]) > Got: > 0: St000232 (quality [99, 100]) > 1: St000233 (quality [99, 100]) > 2: St000496 (quality [99, 100]) > 3: St000559 (quality [15, 57]) > 4: St000563 (quality [15, 57]) > 5: St001781 (quality [15, 57]) > ********************************************************************** > File "src/sage/databases/findstat.py", line 2672, in > sage.databases.findstat.FindStatStatisticQuery._first_terms_raw > Failed example: > r = findstat(l, depth=0); r # > optional -- internet > Expected: > 0: St000041 (quality [99, 100]) > 1: St000042 (quality [99, 100]) > Got: > 0: St000232 (quality [99, 100]) > 1: St000233 (quality [99, 100]) > 2: St000496 (quality [99, 100]) > 3: St000559 (quality [15, 57]) > 4: St000563 (quality [15, 57]) > 5: St001781 (quality [15, 57]) > ********************************************************************** > File "src/sage/databases/findstat.py", line 2713, in > sage.databases.findstat.FindStatStatisticQuery.__repr__ > Failed example: > findstat(data, depth=1) # > optional -- internet > Expected: > 0: St000042oMp00116 (quality [100, 100]) > 1: St000041 (quality [20, 100]) > ... > Got: > 0: St000233 (quality [16, 100]) > 1: St000496 (quality [16, 100]) > 2: St000233oMp00112 (quality [16, 100]) > 3: St000496oMp00112 (quality [16, 100]) > 4: St000232oMp00115 (quality [12, 70]) > 5: St000233oMp00249 (quality [12, 70]) > 6: St000496oMp00249 (quality [12, 70]) > ********************************************************************** > File "src/sage/databases/findstat.py", line 2731, in > sage.databases.findstat.FindStatStatisticQuery.__getitem__ > Failed example: > r[1] # > optional -- internet > Expected: > St000041 (quality [20, 100]) > Got: > St000496 (quality [16, 100]) > ********************************************************************** > File "src/sage/databases/findstat.py", line 4234, in > sage.databases.findstat.?.levels_with_sizes > Failed example: > cc.levels_with_sizes() # > optional -- internet > Expected: > OrderedDict([(2, 1), (4, 3), (6, 15), (8, 105), (10, 945)]) > Got: > OrderedDict([(10, 945), (2, 1), (4, 3), (6, 15), (8, 105)]) > ********************************************************************** > File "src/sage/databases/findstat.py", line 4315, in > sage.databases.findstat.?.first_terms > Failed example: > c.first_terms(lambda x: 1)[:10].list() # > optional -- internet > Expected: > [([[1, 0], [0]], 1), > ([[1, 0], [1]], 1), > ([[2, 0], [0]], 1), > ([[2, 0], [1]], 1), > ([[2, 0], [2]], 1), > ([[1, 1], [1]], 1), > ([[1, 0, 0], [0, 0], [0]], 1), > ([[1, 0, 0], [1, 0], [0]], 1), > ([[1, 0, 0], [1, 0], [1]], 1), > ([[3, 0], [0]], 1)] > Got: > [([[1, 0], [0]], 1), > ([[1, 0], [1]], 1), > ([[2, 0], [0]], 1), > ([[2, 0], [1]], 1), > ([[2, 0], [2]], 1), > ([[1, 1], [1]], 1), > ([[3, 0], [0]], 1), > ([[3, 0], [1]], 1), > ([[3, 0], [2]], 1), > ([[3, 0], [3]], 1)] > ********************************************************************** > File "src/sage/databases/findstat.py", line 4725, in > sage.databases.findstat.FindStatCollections._element_constructor_ > Failed example: > sorted([FindStatCollection(c.first_terms(lambda x: 0)[0][0]) for c in > FindStatCollections() if c.is_supported()]) # optional -- internet > Expected: > [Cc0001: Permutations, > Cc0002: Integer partitions, > Cc0005: Dyck paths, > Cc0006: Integer compositions, > Cc0007: Standard tableaux, > Cc0009: Set partitions, > Cc0010: Binary trees, > Cc0012: Perfect matchings, > Cc0013: Cores, > Cc0014: Posets, > Cc0014: Posets, > Cc0017: Alternating sign matrices, > Cc0018: Gelfand-Tsetlin patterns, > Cc0019: Semistandard tableaux, > Cc0020: Graphs, > Cc0021: Ordered trees, > Cc0022: Finite Cartan types, > Cc0023: Parking functions, > Cc0024: Binary words, > Cc0025: Plane partitions, > Cc0026: Decorated permutations, > Cc0027: Signed permutations, > Cc0028: Skew partitions] > Got: > [Cc0001: Permutations, > Cc0002: Integer partitions, > Cc0005: Dyck paths, > Cc0006: Integer compositions, > Cc0007: Standard tableaux, > Cc0009: Set partitions, > Cc0009: Set partitions, > Cc0010: Binary trees, > Cc0013: Cores, > Cc0014: Posets, > Cc0014: Posets, > Cc0017: Alternating sign matrices, > Cc0018: Gelfand-Tsetlin patterns, > Cc0019: Semistandard tableaux, > Cc0020: Graphs, > Cc0021: Ordered trees, > Cc0022: Finite Cartan types, > Cc0023: Parking functions, > Cc0024: Binary words, > Cc0025: Plane partitions, > Cc0026: Decorated permutations, > Cc0027: Signed permutations, > Cc0028: Skew partitions] > ********************************************************************** > File "src/sage/databases/findstat.py", line 4756, in > sage.databases.findstat.FindStatCollections._element_constructor_ > Failed example: > FindStatCollection(PerfectMatching([[1,2]])) # > optional -- internet > Expected: > Cc0012: Perfect matchings > Got: > Cc0009: Set partitions > ********************************************************************** > File "src/sage/databases/findstat.py", line 4759, in > sage.databases.findstat.FindStatCollections._element_constructor_ > Failed example: > FindStatCollection(PerfectMatchings(4)) # > optional -- internet > Expected: > a subset of Cc0012: Perfect matchings > Got: > a subset of Cc0009: Set partitions > ********************************************************************** > 11 items had failures: > 6 of 18 in sage.databases.findstat > 7 of 42 in sage.databases.findstat.? > 1 of 4 in sage.databases.findstat.?.first_terms > 1 of 4 in sage.databases.findstat.?.levels_with_sizes > 3 of 12 in > sage.databases.findstat.FindStatCollections._element_constructor_ > 1 of 5 in sage.databases.findstat.FindStatStatisticQuery.__getitem__ > 1 of 4 in sage.databases.findstat.FindStatStatisticQuery.__repr__ > 1 of 5 in > sage.databases.findstat.FindStatStatisticQuery._first_terms_raw > 1 of 5 in sage.databases.findstat.FindStatStatisticQuery.first_terms > 1 of 3 in sage.databases.findstat._get_json > 1 of 3 in sage.databases.findstat._post_json > 11 webbrowser tests not run > 0 tests not run because we ran out of time > [423 tests, 24 failures, 53.77 s] > > > -- You received this message because you are subscribed to the Google Groups "sage-release" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-release+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-release/240599de-be06-463c-9337-c05acc9f6ea1n%40googlegroups.com.