Edgewall Software

Opened 5 years ago

Closed 4 years ago

Last modified 4 years ago

#12578 closed task (fixed)

Release Trac 1.0.14

Reported by: Ryan J Ollos Owned by: Ryan J Ollos
Priority: normal Milestone: 1.0.14
Component: general Version:
Severity: normal Keywords: release
Cc: Branch:
Release Notes:
API Changes:
Internal Changes:


This ticket is used to coordinate the finalization and testing of the next stable version of Trac, 1.0.14.

Attachments (0)

Change History (24)

comment:1 by Ryan J Ollos, 5 years ago

Owner: set to Ryan J Ollos
Status: newassigned

comment:2 by Ryan J Ollos, 5 years ago

I'm considering whether 1.0.14 should be released soon. Should #12363, #12566 and and #12586 be finished for 1.0.14, or moved forward for 1.2.1? I'd like to finish #12566, but don't have an opinion on the other two.

comment:3 by Ryan J Ollos, 5 years ago

I'll target 26 Nov for the release date.

comment:4 by Ryan J Ollos, 5 years ago

I'm postponing this until early Dec 13th (UTC) since I don't have access to a Windows virtual machine for the next few days.

comment:5 by Ryan J Ollos, 5 years ago

I'll plan to do release on 03/25 or 03/26.

comment:6 by Ryan J Ollos, 5 years ago

I will try to do release today or tomorrow.

comment:7 by Ryan J Ollos, 4 years ago

To further simplify TracDev/ReleaseChecklist, I propose adding requirements-release.txt in the top-level directory with:

# Packages needed to create a release.
setuptools>=0.8  # Min version to ensure PEP-0440 compliant version numbers

We can then simply run:

$ pip install -Ur requirements-release.txt
Last edited 4 years ago by Ryan J Ollos (previous) (diff)

comment:8 by Ryan J Ollos, 4 years ago

It might be useful to add these additional classifiers, for PyPI:

  • setup.py

    commit cb5867a70a3c3cece3b3af02da7e83933d0eca30
    Author: Ryan J Ollos <ryan.j.ollos@gmail.com>
    Date:   Thu Jun 1 10:42:49 2017 -0400
        Add the classifiers
    diff --git a/setup.py b/setup.py
    index f196f5e1a..4a0c2a768 100755
    a b facilities.  
    7575        'License :: OSI Approved :: BSD License',
    7676        'Operating System :: OS Independent',
    7777        'Programming Language :: Python',
     78        'Programming Language :: Python :: 2',
     79        'Programming Language :: Python :: 2.5',
     80        'Programming Language :: Python :: 2.6',
     81        'Programming Language :: Python :: 2.7',
    7882        'Topic :: Software Development :: Bug Tracking',
    7983        'Topic :: Software Development :: Version Control',
    8084    ],

comment:9 by Ryan J Ollos, 4 years ago

comment:7 change committed to 1.0-stable in r15974, merged to 1.2-stable in r15975, merged to trunk in r15976. Edited TracDev/ReleaseChecklist@113.

comment:8 change committed to 1.0-stable in r15971, merged to 1.2-stable in r15972, merged to trunk in r15973.

comment:10 by Ryan J Ollos, 4 years ago

INSTALL.rst doesn't render correctly on GitHub, but will render correctly if we remove the page outline. We could just strip out the page outline:

  • contrib/wiki2rst.py

    diff --git a/contrib/wiki2rst.py b/contrib/wiki2rst.py
    index c475b1e57..f9eae1d9e 100755
    a b class Parser(html2rest.Parser):  
    6262def wiki2rest(env, context, wiki):
    6363    text = re.sub('\r?\n', '\n', wiki.text)
    6464    text = re.sub(r'\[\[TracGuideToc\]\]\r?\n?', '', text)
     65    text = re.sub(r'\[\[PageOutline\([^\)]*\)\]\]\r?\n?', '', text)
    6566    html = format_to_html(env, context, text)
    6667    html = html.replace(u'<span class="icon">\u200b</span>', '')
    6768    html = re.sub(r'<em>\s*([^<]*?)\s*</em>', r'<em>\1</em>', html)

comment:11 by Ryan J Ollos, 4 years ago

comment:10 change committed to 1.0-stable in r15983, merged in r15984, r15985.

comment:12 by Ryan J Ollos, 4 years ago

Proposed change so that README.rst is rendered on PyPI, as shown here. Discussed here.

  • setup.py

    diff --git a/setup.py b/setup.py
    index 4a0c2a768..9a7968dd3 100755
    a b except ImportError:  
    5353    # give some context to the warnings we might get when installing Genshi
     56def readme():
     57    with open('README.rst') as f:
     58        return f.read()
    5762    name = 'Trac',
    5863    version = '1.0.14',
    5964    description = 'Integrated SCM, wiki, issue tracker and project environment',
    60     long_description = """
    61 Trac is a minimalistic web-based software project management and bug/issue
    62 tracking system. It provides an interface to the Subversion revision control
    63 systems, an integrated wiki, flexible issue tracking and convenient report
    64 facilities.
    65 """,
     65    long_description = readme(),
    6666    author = 'Edgewall Software',
    6767    author_email = 'trac-dev@googlegroups.com',
    6868    license = 'BSD',

in reply to:  12 ; comment:13 by Jun Omae, 4 years ago

Replying to Ryan J Ollos:

Proposed change so that README.rst is rendered on PyPI, as shown here. Discussed here.

Looks good to me except that from __future__ import with_statement is needed for 1.0-stable.

comment:14 by Ryan J Ollos, 4 years ago

Thanks, I added the compatibility statement and committed to 1.0-stable in [15986,15989], merged in r15987, r15988.

Last edited 4 years ago by Ryan J Ollos (previous) (diff)

comment:15 by Ryan J Ollos, 4 years ago

I've been manually removing uses of #!box processor: TracProject/DefaultWikiPages#sync.

  • contrib/checkwiki.py

    Proposed change:
    1515from __future__ import with_statement
     17import re
    1718import os
    1819import sys
    1920from pkg_resources import resource_listdir, resource_string
    128129    return parser.parse_args()
     132re_box_processor = re.compile(r'{{{#!box[^\}]+}}}\s*\r?\n?')
    131135def download_default_pages(names, prefix):
    132136    from httplib import HTTPSConnection
    133137    host = 'trac.edgewall.org'
    148152            content = response.read()
    149153        if response.status == 200 and content:
    150154            with open('trac/wiki/default-pages/' + name, 'w') as f:
     155                content = re_box_processor.sub('', content)
    151156                lines = content.replace('\r\n', '\n').splitlines(True)
    152157                f.write(''.join(line for line in lines
    153158                                     if line.strip() != '[[TranslatedPages]]'))
Last edited 4 years ago by Ryan J Ollos (previous) (diff)

comment:16 by Ryan J Ollos, 4 years ago

comment:15 change committed to 1.0-stable in r15992, merged to 1.2-stable in r15993, merged to trunk in r15994.

Edited TracProject/DefaultWikiPages@53.

comment:17 by Ryan J Ollos, 4 years ago

Resolution: fixed
Status: assignedclosed

comment:18 by Jun Omae, 4 years ago

Copyright year has been changed in [15999] but copyright text in about.html would be extracted in message catalog and translated.

$ curl -s 'https://trac.edgewall.org/browser/branches/1.0-stable/trac/locale/messages.pot?format=raw' | grep -3 '2003-201[67]'

#: trac/templates/about.html:58
msgid ""
"Copyright © 2003-2016\n"
"        [1:Edgewall Software]"
msgstr ""

xml:lang="en" and i18n:msg attributes are conflicted in message extraction. That changes are introduced in [9603#file5].

  • trac/templates/about.html

    5555      </a>
    5656      <p i18n:msg="">Please visit the Trac open source project:
    5757        <a href="http://trac.edgewall.org/">http://trac.edgewall.org/</a></p>
    58       <p class="copyright" xml:lang="en" i18n:msg="">Copyright &copy; 2003-2017
     58      <p class="copyright" xml:lang="en">Copyright &copy; 2003-2017
    5959        <a href="http://www.edgewall.org/">Edgewall Software</a>
    6060      </p>

Ideally, it might be good to make those years parameters of message.

  • trac/admin/console.py

    133133        self.interactive = True
    134134        printout(_("""Welcome to trac-admin %(version)s
    135135Interactive Trac administration console.
    136 Copyright (C) 2003-2013 Edgewall Software
     136Copyright (C) %(start)d-%(end)d Edgewall Software
    138138Type:  '?' or 'help' for help on commands.
    139         """, version=TRAC_VERSION))
     139        """, version=TRAC_VERSION, start=2003, end=2017))
    140140        self.cmdloop()
    142142    ##

comment:19 by Ryan J Ollos, 4 years ago

Adding parameters sounds good. Do you want to push the change?

comment:20 by Jun Omae, 4 years ago

Yeah. Proposed changes in [fa89e948a/jomae.git] (jomae.git@t12578-copyright-year).

Verified years of copyright in localized messages.

$ python setup.py compile_catalog -f
$ for i in trac/locale/{??,??_??}; do echo -n "$i: "; LANGUAGE=${i##*/} make start-admin env=$HOME/var/trac/1.0-sqlite </dev/null | grep 2003-2017 || break; done
trac/locale/ca: Copyright © 2003-2017 Edgewall Software
trac/locale/cs: Autorská práva (C) 2003-2017 Edgewall Software
trac/locale/da: Copyright (C) 2003-2017 Edgewall Software
trac/locale/de: Copyright (c) 2003-2017 Edgewall Software
trac/locale/el: Copyright (C) 2003-2017 Edgewall Software
trac/locale/eo: Kopirajto (c) 2003-2017 Edgewall Software
trac/locale/es: Copyright (C) 2003-2017 Edgewall Software
trac/locale/et: Copyright (C) 2003-2017 Edgewall Software
trac/locale/fa: Copyright (C) 2003-2017 Edgewall Software
trac/locale/fi: Copyright (c) 2003-2017 Edgewall Software
trac/locale/fr: Copyright (c) 2003-2017 Edgewall Software
trac/locale/gl: Copyright (c) 2003-2017 Edgewall Software
trac/locale/he: כל הזכויות שמורות (c) 2003-2017 Edgewall Software
trac/locale/hu: Copyright (C) 2003-2017 Edgewall Software
trac/locale/hy: Copyright (c) 2003-2017 Edgewall Software
trac/locale/it: Copyright (c) 2003-2017 Edgewall Software
trac/locale/ja: Copyright (C) 2003-2017 Edgewall Software
trac/locale/ko: Copyright (c) 2003-2017 Edgewall Software
trac/locale/nb: Copyright (c) 2003-2017 Edgewall Software
trac/locale/nl: Copyright (c) 2003-2017 Edgewall Software
trac/locale/pl: Copyright (c) 2003-2017 Edgewall Software
trac/locale/pt: Copyright (C) 2003-2017 Edgewall Software
trac/locale/ro: Drepturi de autor pe 2003-2017 Edgewall Software
trac/locale/ru: Авторские права (c) 2003-2017 Edgewall Software
trac/locale/sl: Pravice pridržane (c) 2003-2017 Edgewall Software
trac/locale/sv: Copyright (c) 2003-2017 Edgewall Software
trac/locale/tr: Copyright (C) 2003-2017 Edgewall Software
trac/locale/uk: Copyright (C) 2003-2017 Edgewall Software
trac/locale/vi: Copyright (C) 2003-2017 Edgewall Software
trac/locale/en_GB: Copyright (C) 2003-2017 Edgewall Software
trac/locale/en_US: Copyright (C) 2003-2017 Edgewall Software
trac/locale/es_AR: Copyright (c) 2003-2017 Edgewall Software
trac/locale/es_MX: Copyright (C) 2003-2017 Edgewall Software
trac/locale/pt_BR: Copyright (C) 2003-2017 Edgewall Software
trac/locale/zh_CN: Copyright (C) 2003-2017 Edgewall Software
trac/locale/zh_TW: 版權所有 (C) 2003-2017 Edgewall Software
$ for i in trac/locale/{??,??_??}; do echo -n "$i: "; curl -s -H "Accept-Language: ${i##*/}" '' | grep 2003-2017 || break; done
trac/locale/ca:       <p class="copyright">Copyright © 2003-2017
trac/locale/cs:       <p class="copyright">Autorská práva © 2003-2017
trac/locale/da:       <p class="copyright">Copyright © 2003-2017
trac/locale/de:       <p class="copyright">Copyright © 2003-2017
trac/locale/el:       <p class="copyright">Copyright © 2003-2017
trac/locale/eo:       <p class="copyright">Kopirajto © 2003-2017
trac/locale/es:       <p class="copyright">Copyright © 2003-2017
trac/locale/et:       <p class="copyright">Copyright © 2003-2017
trac/locale/fa:       <p class="copyright">Copyright © 2003-2017
trac/locale/fi:       <p class="copyright">Copyright © 2003-2017
trac/locale/fr:       <p class="copyright">Copyright © 2003-2017
trac/locale/gl:       <p class="copyright">Copyright © 2003-2017
trac/locale/he:       <p class="copyright">כל הזכויות שמורות © 2003-2017
trac/locale/hu:       <p class="copyright">Copyright © 2003-2017
trac/locale/hy:       <p class="copyright">Copyright © 2003-2017
trac/locale/it:       <p class="copyright">Copyright © 2003-2017
trac/locale/ja:       <p class="copyright">Copyright © 2003-2017 <a href="http://www.edgewall.org/">Edgewall Software</a></p>
trac/locale/ko:       <p class="copyright">저작권 © 2003-2017 <a href="http://www.edgewall.org/">Edgewall Software</a></p>
trac/locale/nb:       <p class="copyright">Copyright © 2003-2017
trac/locale/nl:       <p class="copyright">Copyright © 2003-2017
trac/locale/pl:       <p class="copyright">Copyright © 2003-2017
trac/locale/pt:       <p class="copyright">Copyright © 2003-2017
trac/locale/ro:       <p class="copyright">Copyright © 2003-2017
trac/locale/ru:       <p class="copyright">Авторские права © 2003-2017
trac/locale/sl:       <p class="copyright">Pravice pridržane © 2003-2017
trac/locale/sv:       <p class="copyright">Copyright © 2003-2017 <a href="http://www.edgewall.org/">Edgewall Software</a></p>
trac/locale/tr:       <p class="copyright">Copyright © 2003-2017
trac/locale/uk:       <p class="copyright">Copyright © 2003-2017
trac/locale/vi:       <p class="copyright">Copyright © 2003-2017
trac/locale/en_GB:       <p class="copyright">Copyright © 2003-2017
trac/locale/en_US:       <p class="copyright">Copyright © 2003-2017
trac/locale/es_AR:       <p class="copyright">Copyright © 2003-2017
trac/locale/es_MX:       <p class="copyright">Copyright © 2003-2017
trac/locale/pt_BR:       <p class="copyright">Copyright © 2003-2017
trac/locale/zh_CN:       <p class="copyright">Copyright © 2003-2017
trac/locale/zh_TW:       <p class="copyright">版權所有 © 2003-2017

in reply to:  13 comment:21 by Ryan J Ollos, 4 years ago

Replying to Jun Omae:

Replying to Ryan J Ollos:

Proposed change so that README.rst is rendered on PyPI, as shown here. Discussed here.

Looks good to me except that from __future__ import with_statement is needed for 1.0-stable.

I haven't tested yet, but gmessage:trac-users:1jWj-iig19U/6ZZVfSCYCAAJ shows unexpected behavior. For an install into Python 2.4 or 2.5 with Trac 1.2.x I'd expect setup.py to exit with code 1, and message Trac requires Python 2.6 or later. However, the traceback shows:

  File "/usr/lib/python2.4/site-packages/setuptools-0.6c11-py2.4.egg/setuptools/sandbox.py", line 64, in <lambda>
   {'__file__':setup_script, '__name__':'__main__'}
  File "setup.py", line 44
   with open('README.rst') as f:
SyntaxError: invalid syntax

It looks like the function body is being parsed, but I wouldn't expect that to happen until the function is called.

comment:22 by Ryan J Ollos, 4 years ago

I've reproduced the issue with Python 2.5, installing Trac 1.2.2.

 python setup.py bdist_egg
  File "setup.py", line 44
    f = open('README.rst'):
SyntaxError: invalid syntax

I suppose we could just avoid using the context manager:

  • setup.py

    4343def readme():
    44     with open('README.rst') as f:
    45         return f.read()
     44    f = open('README.rst')
     45    content = f.read()
     46    f.close()
     47    return content
Last edited 4 years ago by Ryan J Ollos (previous) (diff)

comment:23 by Ryan J Ollos, 4 years ago

comment:22 change committed to 1.0-stable in [16350:16351], merged to 1.2-stable in [16352,16354], merged to trunk in [16353,16355].

in reply to:  22 comment:24 by Ryan J Ollos, 4 years ago

Replying to Ryan J Ollos:

I've reproduced the issue with Python 2.5, installing Trac 1.2.2.

 python setup.py bdist_egg
  File "setup.py", line 44
    f = open('README.rst'):
SyntaxError: invalid syntax

Setuptools 30.3 supports metadata in setup.cfg, which allows for long_description = file: README.rst.

Modify Ticket

Change Properties
Set your email in Preferences
as closed The owner will remain Ryan J Ollos.
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from Ryan J Ollos to the specified user.

Add Comment

E-mail address and name can be saved in the Preferences .
Note: See TracTickets for help on using tickets.