trac 0.12 compatibility

69 views
Skip to first unread message

simpleone

unread,
Jun 18, 2010, 9:38:15 AM6/18/10
to Bitten
Hi all,

I have noticed compatibility notice on bitten main page... but far too
late - I have installed Trac 0.12 (more or less accidentally) few
weeks back - now I need bitten....

Simple question - any estimation on date the milestone 0.7 would be
complete (at least somehow). I'm not really keen to downgrade Trac -
the opposite is true - I can try to help to make bitten working on
0.12 - at least being a test rabbit - and I can send patches as
well ;)

Thanks a lot for all you are doing

Pavel

Grzegorz Sobanski

unread,
Jun 18, 2010, 9:47:16 AM6/18/10
to Bitten
* simpleone <pavel.h...@gmail.com> [2010-06-18 15:38]:

> Simple question - any estimation on date the milestone 0.7 would be
> complete (at least somehow). I'm not really keen to downgrade Trac -
> the opposite is true - I can try to help to make bitten working on
> 0.12 - at least being a test rabbit - and I can send patches as
> well ;)

I have bitten working on 0.12, only a patch from ticket 480 is needed.
(At least it looks like this after a small testing)
It should shortly be commited to both trunk and 0.6


greets
silk

simpleone

unread,
Jun 18, 2010, 10:47:02 AM6/18/10
to Bitten
That's good news, thanks!

In any case I'm still ready to help - my setup consists of Debian
master and one Mac and one Win box. Using Mercurial for source
control. Complexity of build process will be somehow bigger at the end
(build/testing/repackaging....) It may (or may not) reveal more
issues.

Nice day to everyone.

P.

On Jun 18, 3:47 pm, Grzegorz Sobanski <s...@boktor.net> wrote:
> * simpleone <pavel.hlavni...@gmail.com> [2010-06-18 15:38]:

David Healey

unread,
Jun 21, 2010, 5:08:24 PM6/21/10
to bit...@googlegroups.com
I'm still getting the AttributeError: "NoneType" object has no attribute 'get_node'. I've the lastest 12 sources, and attempted both lines, of Bitten, 07.X/trunk and 0.6.x/Branch neither seem to work, any advice ?


David B. Healey
256-444-1020 Home
256-431-9970 Cell
http://www.davidbhealey.com
da...@davidbhealey.com
david....@araneasolutions.com


greets
silk

--
You received this message because you are subscribed to the Google Groups "Bitten" group.
To post to this group, send email to bit...@googlegroups.com.
To unsubscribe from this group, send email to bitten+un...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/bitten?hl=en.


osimons

unread,
Jun 22, 2010, 4:23:28 PM6/22/10
to Bitten


On Jun 21, 11:08 pm, David Healey <dhea...@araneasolutions.com> wrote:
> I'm still getting the AttributeError: "NoneType" object has no attribute 'get_node'.  I've the lastest 12 sources, and attempted both lines, of Bitten, 07.X/trunk and 0.6.x/Branch neither seem to work, any advice ?

Huh? Did you try the latest patch attached to ticket:480 as advised
earlier in the thread? Aplly it to latest trunk source and install.


:::simon

David Healey

unread,
Jun 22, 2010, 4:32:56 PM6/22/10
to bit...@googlegroups.com
I did actually, to no avail I'm afraid.


:::simon

--

Grzegorz Sobanski

unread,
Jun 22, 2010, 5:02:23 PM6/22/10
to bit...@googlegroups.com
* David Healey <dhe...@araneasolutions.com> [2010-06-22 22:33]:

> I did actually, to no avail I'm afraid.

Can you send the full stacktrace?

--
silk

David Healey

unread,
Jun 23, 2010, 12:20:51 AM6/23/10
to bit...@googlegroups.com
Okay happens when I am attempting to create a build configuration after I've entered name, tag, and svn location I get the following :

Oops...
Trac detected an internal error:

AttributeError: 'NoneType' object has no attribute 'get_node'

This is probably a local installation issue.
Found a bug in Trac?
If you think this should work and you can reproduce the problem, you should consider creating a bug report.
Before you do that, though, please first try searching for similar issues, as it is quite likely that this problem has been reported before. For questions about installation and configuration of Trac or its plugins, please try the mailing list instead of creating a ticket.
Otherwise, please a new bug report describing the problem and explain how to reproduce it.
Python Traceback
Most recent call last:
Line
508 try:
509 if not env and env_error:
510 raise HTTPInternalError(env_error)
511 try:
512 dispatcher = RequestDispatcher(env)
513 dispatcher.dispatch(req)
514 except RequestDone:
515 pass
516 resp = req._response or []
517
518 except HTTPException, e:
Name Value
dispatcher <trac.web.main.RequestDispatcher object at 0x7fdd0e22a2d0>
e AttributeError("'NoneType' object has no attribute 'get_node'",)
env <trac.env.Environment object at 0x7fdd0dab4990>
env_error None
req <Request "POST '/admin/bitten/configs'">
resp []
Line
230 msg = _('Do you have cookies enabled?')
231 raise HTTPBadRequest(_('Missing or invalid form token.'
232 ' %(msg)s', msg=msg))
233
234 # Process the request and render the template
235 resp = chosen_handler.process_request(req)
236 if resp:
237 if len(resp) == 2: # Clearsilver
238 chrome.populate_hdf(req)
239 template, content_type = \
240 self._post_process_request(req, *resp)
Name Value
chosen_handler <trac.admin.web_ui.AdminModule object at 0x7fdd0e22a250>
chrome <trac.web.chrome.Chrome object at 0x7fdd0e1bad50>
ctype 'application/x-www-form-urlencoded'
err (<type 'exceptions.AttributeError'>, AttributeError("'NoneType' object has ...
handler <trac.admin.web_ui.AdminModule object at 0x7fdd0e22a250>
options {}
req <Request "POST '/admin/bitten/configs'">
self <trac.web.main.RequestDispatcher object at 0x7fdd0e22a2d0>
Line
111 if not provider:
112 raise HTTPNotFound(_('Unknown administration panel'))
113
114 if hasattr(provider, 'render_admin_panel'):
115 template, data = provider.render_admin_panel(req, cat_id, panel_id,
116 path_info)
117
118 else: # support for legacy WebAdmin panels
119 data = {}
120 cstmpl, ct = provider.process_admin_request(req, cat_id, panel_id,
121 path_info)
Name Value
_panel_order <function _panel_order at 0x7fdd0e3e1ed8>
cat_id u'bitten'
panel_id u'configs'
panels [('general', u'General', 'basics', u'Basic Settings'), ('general', ...
path_info None
provider <bitten.admin.BuildConfigurationsAdminPageProvider object at ...
providers {('tracini', 'inherit'): <iniadmin.iniadmin.IniAdminPlugin object at ...
req <Request "POST '/admin/bitten/configs'">
self <trac.admin.web_ui.AdminModule object at 0x7fdd0e22a250>
Line
190 }
191
192 else: # At the top level build config list
193 if req.method == 'POST':
194 if 'add' in req.args: # Add build config
195 config = self._create_config(req)
196 req.redirect(req.abs_href.admin(cat, page, config.name))
197
198 elif 'remove' in req.args: # Remove selected build configs
199 self._remove_configs(req)
200
Name Value
cat u'bitten'
config_name None
data {}
page u'configs'
path_info None
platform_id None
req <Request "POST '/admin/bitten/configs'">
self <bitten.admin.BuildConfigurationsAdminPageProvider object at ...
Line
235
236 def _create_config(self, req):
237 req.perm.assert_permission('BUILD_CREATE')
238
239 config = BuildConfig(self.env)
240 warnings = self._update_config(req, config)
241 if warnings:
242 if len(warnings) == 1:
243 raise TracError(warnings[0], 'Add Configuration')
244 else:
245 raise TracError('Errors: %s' % ' '.join(warnings),
Name Value
config <BuildConfig None>
req <Request "POST '/admin/bitten/configs'">
self <bitten.admin.BuildConfigurationsAdminPageProvider object at ...
Line
275
276 path = req.args.get('path', '')
277 repos = self.env.get_repository(req.authname)
278 max_rev = req.args.get('max_rev') or None
279 try:
280 node = repos.get_node(path, max_rev)
281 assert node.isdir, '%s is not a directory' % node.path
282 except (AssertionError, TracError), e:
283 warnings.append('Invalid Repository Path "%s".' % path)
284 if req.args.get('min_rev'):
285 try:
Name Value
config <BuildConfig None>
max_rev None
name u'Website'
path u'/Personal Web & Trac Development/PersonaWebDevelopment/trunk'
repos None
req <Request "POST '/admin/bitten/configs'">
self <bitten.admin.BuildConfigurationsAdminPageProvider object at ...
warnings []
File "build/bdist.linux-x86_64/egg/trac/web/main.py", line 513, in _dispatch_request
dispatcher.dispatch(req)
File "build/bdist.linux-x86_64/egg/trac/web/main.py", line 235, in dispatch
resp = chosen_handler.process_request(req)
File "build/bdist.linux-x86_64/egg/trac/admin/web_ui.py", line 116, in process_request
path_info)
File "/usr/lib/python2.6/site-packages/Bitten-0.6dev_r881-py2.6.egg/bitten/admin.py", line 195, in render_admin_panel
config = self._create_config(req)
File "/usr/lib/python2.6/site-packages/Bitten-0.6dev_r881-py2.6.egg/bitten/admin.py", line 240, in _create_config
warnings = self._update_config(req, config)
File "/usr/lib/python2.6/site-packages/Bitten-0.6dev_r881-py2.6.egg/bitten/admin.py", line 280, in _update_config
node = repos.get_node(path, max_rev)
System Information:
User Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729)
Trac 0.12.1dev-r9909
Babel 0.9.5
Bitten 0.6dev-r881
CustomFieldAdmin 0.2.2
Genshi 0.6
mod_wsgi 3.1 (WSGIProcessGroup WSGIApplicationGroup tractest.davidbhealey.local|/tractest)
MySQL server: "5.1.47", client: "5.1.47", thread-safe: 0
MySQLdb 1.2.3c1
Pygments 1.3.1
Python 2.6.2 (r262:71600, Jan 25 2010, 18:46:47) [GCC 4.4.2 20091222 (Red Hat 4.4.2-20)]
setuptools 0.6c9
Subversion 1.6.9 (r901367)
jQuery 1.4.2
Enabled Plugins:
Bitten
0.6dev-r881 /usr/lib/python2.6/site-packages/Bitten-0.6dev_r881-py2.6.egg
EstimationTools
0.4 /opt/trac/Master/plugins/EstimationTools-0.4-py2.6.egg
IniAdmin
0.2 /opt/trac/Master/plugins/IniAdmin-0.2-py2.6.egg
PlannedMilestones
Rev /opt/trac/Master/plugins/PlannedMilestones.pyc
SchedulingTools
0.1 /opt/trac/Master/plugins/SchedulingTools-0.1-py2.6.egg
testManagementPlugin
0.11.3 /opt/trac/Master/plugins/testManagementPlugin-0.11.3-py2.6.egg
TracAccountManager
0.2.1dev-r7737 /opt/trac/Master/plugins/TracAccountManager-0.2.1dev_r7737-py2.6.egg
TracCustomFieldAdmin
0.2.2 /opt/trac/Master/plugins/TracCustomFieldAdmin-0.2.2-py2.6.egg
TracDiscussion
0.7 /opt/trac/Master/plugins/TracDiscussion-0.7-py2.6.egg
TracDownloads
0.3 /opt/trac/Master/plugins/TracDownloads-0.3-py2.6.egg
TracGuide - The Trac User and Administration Guide

--
silk

--

Grzegorz Sobanski

unread,
Jun 23, 2010, 7:45:11 AM6/23/10
to bit...@googlegroups.com
* David Healey <dhe...@araneasolutions.com> [2010-06-23 06:21]:

> self <bitten.admin.BuildConfigurationsAdminPageProvider object at ...
> Line
> 275
> 276 path = req.args.get('path', '')
> 277 repos = self.env.get_repository(req.authname)
^^^^^^^^^^^^

You have not applied the latest patch from #480
(t480-get_repository-r880-2.patch).


greets
silk

David Healey

unread,
Jun 23, 2010, 10:33:40 AM6/23/10
to bit...@googlegroups.com
Ah !!!! was certain I had, will apply it when I get to the office and see what I get, thank you :)


-----Original Message-----
From: bit...@googlegroups.com [mailto:bit...@googlegroups.com] On Behalf Of Grzegorz Sobanski
Sent: Wednesday, June 23, 2010 6:45 AM
To: bit...@googlegroups.com
Subject: Re: [Bitten] Re: trac 0.12 compatibility


greets
silk

--

simpleone

unread,
Jun 23, 2010, 10:55:57 AM6/23/10
to Bitten
Hi,

still seeing: AttributeError: 'NoneType' object has no attribute
'get_node'. Seems be obviously related to the fact I have NO default
repository but mutliple repos defined in database (using admin web).
If I add any default repo to trac.ini I can create new configuraton.

problematic line is 280: node = repos.get_node(path, max_rev)

HTH

I'm quite sure I have

- Trac 0.12
- bitten trunk svn co
- latest patch (copy'n'paste from my dir: t480-get_repository-
r880-2.patch)
- patch applied as 'patch -p1 < t480-get_repository-r880-2.patch
- created egg: ./setup.py bdist_egg
- installed egg

when I try to add new build configuration I see

Python Traceback
Most recent call last:

* File "build/bdist.linux-i686/egg/trac/web/main.py", line 513, in
_dispatch_request
Code fragment:
Line
508 try:
509 if not env and env_error:
510 raise HTTPInternalError(env_error)
511 try:
512 dispatcher = RequestDispatcher(env)
513 dispatcher.dispatch(req)
514 except RequestDone:
515 pass
516 resp = req._response or []
517
518 except HTTPException, e:
Local variables:
Name Value
dispatcher <trac.web.main.RequestDispatcher object at
0x8d65a8c>
e AttributeError("'NoneType' object has no attribute
'get_node'",)
env <trac.env.Environment object at 0x87b84ac>
env_error None
req <Request "POST '/admin/bitten/configs'">
resp []
* File "build/bdist.linux-i686/egg/trac/web/main.py", line 235, in
dispatch
Code fragment:
Line
230 msg = _('Do you have cookies enabled?')
231 raise HTTPBadRequest(_('Missing or invalid form token.'
232 ' %(msg)s', msg=msg))
233
234 # Process the request and render the template
235 resp = chosen_handler.process_request(req)
236 if resp:
237 if len(resp) == 2: # Clearsilver
238 chrome.populate_hdf(req)
239 template, content_type = \
240 self._post_process_request(req, *resp)
Local variables:
Name Value
chosen_handler <trac.admin.web_ui.AdminModule object at
0x8d651ec>
chrome <trac.web.chrome.Chrome object at 0x8d6584c>
ctype 'application/x-www-form-urlencoded'
err (<type 'exceptions.AttributeError'>,
AttributeError("'NoneType' object has ...
handler <trac.admin.web_ui.AdminModule object at 0x8d651ec>
options {}
req <Request "POST '/admin/bitten/configs'">
self <trac.web.main.RequestDispatcher object at 0x8d65a8c>
* File "build/bdist.linux-i686/egg/trac/admin/web_ui.py", line
116, in process_request
Code fragment:
Line
111 if not provider:
112 raise HTTPNotFound(_('Unknown administration panel'))
113
114 if hasattr(provider, 'render_admin_panel'):
115 template, data = provider.render_admin_panel(req, cat_id,
panel_id,
116 path_info)
117
118 else: # support for legacy WebAdmin panels
119 data = {}
120 cstmpl, ct = provider.process_admin_request(req, cat_id,
panel_id,
121 path_info)
Local variables:
Name Value
_panel_order <function _panel_order at 0x8d6348c>
cat_id u'bitten'
panel_id u'configs'
panels [('general', 'General', 'basics', 'Basic Settings'),
('general', ...
path_info None
provider <bitten.admin.BuildConfigurationsAdminPageProvider
object at 0x8d65f2c>
providers {('bitten', 'configs'):
<bitten.admin.BuildConfigurationsAdminPageProvider ...
req <Request "POST '/admin/bitten/configs'">
self <trac.admin.web_ui.AdminModule object at 0x8d651ec>
* File "build/bdist.linux-i686/egg/bitten/admin.py", line 195, in
render_admin_panel
Code fragment:
Line
190 }
191
192 else: # At the top level build config list
193 if req.method == 'POST':
194 if 'add' in req.args: # Add build config
195 config = self._create_config(req)
196 req.redirect(req.abs_href.admin(cat, page, config.name))
197
198 elif 'remove' in req.args: # Remove selected build configs
199 self._remove_configs(req)
200
Local variables:
Name Value
cat u'bitten'
config_name None
data {}
page u'configs'
path_info None
platform_id None
req <Request "POST '/admin/bitten/configs'">
self <bitten.admin.BuildConfigurationsAdminPageProvider object
at 0x8d65f2c>
* File "build/bdist.linux-i686/egg/bitten/admin.py", line 240, in
_create_config
Code fragment:
Line
235
236 def _create_config(self, req):
237 req.perm.assert_permission('BUILD_CREATE')
238
239 config = BuildConfig(self.env)
240 warnings = self._update_config(req, config)
241 if warnings:
242 if len(warnings) == 1:
243 raise TracError(warnings[0], 'Add Configuration')
244 else:
245 raise TracError('Errors: %s' % ' '.join(warnings),
Local variables:
Name Value
config <BuildConfig None>
req <Request "POST '/admin/bitten/configs'">
self <bitten.admin.BuildConfigurationsAdminPageProvider object
at 0x8d65f2c>
* File "build/bdist.linux-i686/egg/bitten/admin.py", line 280, in
_update_config
Code fragment:
Line
275
276 path = req.args.get('path', '')
277 repos = self.env.get_repository(authname=req.authname)
278 max_rev = req.args.get('max_rev') or None
279 try:
280 node = repos.get_node(path, max_rev)
281 assert node.isdir, '%s is not a directory' % node.path
282 except (AssertionError, TracError), e:
283 warnings.append('Invalid Repository Path "%s".' % path)
284 if req.args.get('min_rev'):
285 try:
>
> greets
> silk

Grzegorz Sobanski

unread,
Jun 23, 2010, 11:35:29 AM6/23/10
to Bitten
* simpleone <pavel.h...@gmail.com> [2010-06-23 16:56]:

> still seeing: AttributeError: 'NoneType' object has no attribute
> 'get_node'. Seems be obviously related to the fact I have NO default
> repository but mutliple repos defined in database (using admin web).
> If I add any default repo to trac.ini I can create new configuraton.

Yes, bitten will not work for such setup without a major change.

For now our target was to get it working at all in 0.12 for the
default repo. So anyone using trac 0.11 with bitten could migrate
the same configuration to trac 0.12.

You don't have to defina a default repo in trac.ini.
You can add an alias without a name (default) to one of the repos
and check the "do not show in repositories index". Then bitten
can do builds on this repository and it won't show two times in the
repository browser.
If you would like to have bitten working for multirepos it is not
possible at the present time (patches welcome ;) )

greets
silk

osimons

unread,
Jun 23, 2010, 5:17:26 PM6/23/10
to Bitten
On Jun 23, 5:35 pm, Grzegorz Sobanski <s...@boktor.net> wrote:
> * simpleone <pavel.hlavni...@gmail.com> [2010-06-23 16:56]:
Yeah, just tested and it is indeed the fact that repos == None. This
actually causes an error situation in 0.11 too, although message is
different (and somewhat wrong).

We need a better error here, but I'm wondering if we instead should
take a more radical approach such as either disabling parts of Bitten
and logging the error, or perhaps leaving much as-is and just
displaying permanent warning within the module ui & admin.

What would be the most useful and intuitive?

Feedback at ticket:480 preferred, and we'll continue the details on
implementation there.

:::simon

David Healey

unread,
Jun 23, 2010, 5:40:16 PM6/23/10
to bit...@googlegroups.com
Appearently I am missing something, I've attempted not only applying the patch, but manually modified both web_ui and admin.py respectively with the appropriate changes from the patch and still have the exact same results.
Mind terribly giving me a step buy step on how your applying the patch please, and thanks.
*sigh*


-----Original Message-----
From: bit...@googlegroups.com [mailto:bit...@googlegroups.com] On Behalf Of Grzegorz Sobanski

Sent: Wednesday, June 23, 2010 6:45 AM

To: bit...@googlegroups.com
Subject: Re: [Bitten] Re: trac 0.12 compatibility


greets
silk

--

simpleone

unread,
Jun 24, 2010, 3:17:03 AM6/24/10
to Bitten
Don't you have the same problem as I had (see above) do you have
default source repository defined? (see simons comments above)

On Jun 23, 11:40 pm, David Healey <dhea...@araneasolutions.com> wrote:
> Appearently I am missing something, I've attempted not only applying the patch, but manually modified both web_ui and admin.py respectively with the appropriate changes from the patch and still have the exact same results.  
> Mind terribly giving me a step buy step on how your applying the patch please, and thanks.
> *sigh*
>
>
>
> -----Original Message-----
> From: bit...@googlegroups.com [mailto:bit...@googlegroups.com] On Behalf Of Grzegorz Sobanski
> Sent: Wednesday, June 23, 2010 6:45 AM
> To: bit...@googlegroups.com
> Subject: Re: [Bitten] Re: trac 0.12 compatibility
>
> * David Healey <dhea...@araneasolutions.com> [2010-06-23 06:21]:

simpleone

unread,
Jun 24, 2010, 3:25:11 AM6/24/10
to Bitten
From my perspective it would be ideal to remove dependency on the repo
at all. The logic for build triggering can be more complex then
changes in the repo. Ideally user would have more options how to
trigger a build - selecting a repo and path in it would be just one of
options.

The current approach is a bit too much SVN cenetric, Mercurial users
(understand - me;) have a problem and more repositories bring issues
as well.

In my case the best solution would be - my mercurial post commit hook
touches a file and the build is triggered by it.

I fully understand that this can not be done easily - but I would
recommend to think in this way before hacking more repos support.

Perhaps there could be some common denominator - create generic
trigger (files in some folder accessible by trac) and convert the
problem how to trigger builds by changes in repository to touching
files in such folder. This would keep user experience and bring more
flexibility. Just thinking loud - do not consider this as a real
proposal.

HTH

Pavel

Simon Cross

unread,
Jun 24, 2010, 3:41:48 AM6/24/10
to bit...@googlegroups.com
On Thu, Jun 24, 2010 at 9:25 AM, simpleone <pavel.h...@gmail.com> wrote:
> Perhaps there could be some common denominator - create generic
> trigger (files in some folder accessible by trac) and convert the
> problem how to trigger builds by changes in repository to touching
> files in such folder. This would keep user experience and bring more
> flexibility. Just thinking loud - do not consider this as a real
> proposal.

What if instead Bitten gained a web API that post commit hooks and
other tools could contact to trigger builds? E.g.
http://trac/buildapi/add?config=confname&rev=revid would trigger a
build of revision revid for build configuration confname. Perhaps the
API could be supported by an external script supplied as part of
Bitten so that commit hook writers don't have to all write their own
clients. Then a post commit script might look like:

if DO_BUILD
then
bitten-api.py add --config=confname --rev=revid
fi

Schiavo
Simon

simpleone

unread,
Jun 24, 2010, 5:08:06 AM6/24/10
to Bitten
+1

can we have this tomorrow, guys? ;)

Pavel

On Jun 24, 9:41 am, Simon Cross <hodges...@gmail.com> wrote:
> On Thu, Jun 24, 2010 at 9:25 AM, simpleone <pavel.hlavni...@gmail.com> wrote:
> > Perhaps there could be some common denominator - create generic
> > trigger (files in some folder accessible by trac) and convert the
> > problem how to trigger builds by changes in repository to touching
> > files in such folder. This would keep user experience and bring more
> > flexibility. Just thinking loud - do not consider this as a real
> > proposal.
>
> What if instead Bitten gained a web API that post commit hooks and
> other tools could contact to trigger builds? E.g.http://trac/buildapi/add?config=confname&rev=revidwould trigger a

simpleone

unread,
Jun 24, 2010, 5:28:20 AM6/24/10
to Bitten
One more (important?) comment on this. Having API like this would
allow to have a build master machine detached from the repository - I
find this very important from more complex setups. If you want to have
CI in complex environment - it does not even have to be related to
single repository (or any repository). CI can include data imports and
functional test on top of new data sets etc.

Bitten claims is designed to execute CI in heterogeneous environment
and collect and analyze data in a central hub. To remove any
dependency on central source code repository seems be logical.

On the other hand I fully agree and understand that giving a straight
and elegant option to configure with central repository once you have
it is a must have.

Pavel

On Jun 24, 9:41 am, Simon Cross <hodges...@gmail.com> wrote:
> On Thu, Jun 24, 2010 at 9:25 AM, simpleone <pavel.hlavni...@gmail.com> wrote:
> > Perhaps there could be some common denominator - create generic
> > trigger (files in some folder accessible by trac) and convert the
> > problem how to trigger builds by changes in repository to touching
> > files in such folder. This would keep user experience and bring more
> > flexibility. Just thinking loud - do not consider this as a real
> > proposal.
>
> What if instead Bitten gained a web API that post commit hooks and
> other tools could contact to trigger builds? E.g.http://trac/buildapi/add?config=confname&rev=revidwould trigger a

anatoly techtonik

unread,
Jun 24, 2010, 5:32:49 AM6/24/10
to bitten

For me the showstopper is http://bitten.edgewall.org/ticket/550 -
although it is for 0.6 branch - I'd like to exclude any chance of
database damage/wedging when upgrading Bitten. If it is not properly
investigated - the same problem may impact existing 0.7 installations
and upgrades even worse.

--
anatoly t.

Olaf Meeuwissen

unread,
Jun 24, 2010, 6:33:50 AM6/24/10
to bit...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Why even limit this to revisions in a repository? What if you want to
have the output of a successful build serve as input for another kind of
build?

This scenario comes up at work where we only track original files with a
VCS. The project relies heavily on autotools and uses doxygen to create
its API documentation so there are scores of files that are added to the
source tarball. During the source tarball build we also religiously run
the test harness.

Once that completes successfully, the resulting source tarball serves as
input for binary package builds for several architectures, platforms and
packaging formats. These builds can also run the test harness so we can
catch architecture dependent bugs. The resulting binary packages should
serve as input to "builds" that make sure that the packaged software can
be installed, upgraded and uninstalled as well as run integration tests.

Summarizing, we would like to do a kind of "cascading" builds:
1. VCS code to (single) source distributable
2. source distributable to (multiple) binary distributables
3. functionality testing of binary distributables
Too bad that Bitten does not support this yet.

Just another use case. Thought I'd mention it.
- --
Olaf Meeuwissen FSF Associate Member #1962
Support Free Software, Join the FSF as an Associate Member
<http://www.fsf.org/register_form?referrer=1962>

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkwjNI4ACgkQibC6uoJLbxhYhQCdExsRcp8yFwjYcAbqJEpABznS
pq0AoJUMtOf9lfnf0lGa2HChF3l56NJ6
=06k/
-----END PGP SIGNATURE-----

Simon Cross

unread,
Jun 24, 2010, 6:54:32 AM6/24/10
to bit...@googlegroups.com
On Thu, Jun 24, 2010 at 12:33 PM, Olaf Meeuwissen <ol...@member.fsf.org> wrote:
> Why even limit this to revisions in a repository?  What if you want to
> have the output of a successful build serve as input for another kind of
> build?

Thanks for piping up. This is a good time to hear peoples' use-cases
so if anyone else has specific needs for such an API that they'd like
supported, please mention them. :)

The proposed scheme isn't limited in the way you describe (if I'm
understanding you correctly). It should be perfectly possible to
cascade builds by having the last step in the build call the proposed
build adding API to trigger some other build. The config and rev
attributes in the example simply specify what to build.

Schiavo
Simon

simpleone

unread,
Jun 24, 2010, 7:32:06 AM6/24/10
to Bitten
Agree on everything.

The "revision number" should be perhaps removed from bitten
vocabulary. Each build should have a unique (serial?) label/name. For
repository triggered builds it would be coincidently equal to the
revision :)

Perhaps the build should be triggered with unique id given (next
attempts w/ same id ignored or failing) and set of tags you could use
in build configurations, or at least a set of configurations you want
to rebuild.

Cascading build would be very very powerful and could enhance build
systems where it is difficult to maintain dependencies on succes when
building/testing/packaging.

P.

On Jun 24, 12:33 pm, Olaf Meeuwissen <o...@member.fsf.org> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
>
>
>
>
> Simon Cross wrote:
> > On Thu, Jun 24, 2010 at 9:25 AM, simpleone <pavel.hlavni...@gmail.com> wrote:
> >> Perhaps there could be some common denominator - create generic
> >> trigger (files in some folder accessible by trac) and convert the
> >> problem how to trigger builds by changes in repository to touching
> >> files in such folder. This would keep user experience and bring more
> >> flexibility. Just thinking loud - do not consider this as a real
> >> proposal.
>
> > What if instead Bitten gained a web API that post commit hooks and
> > other tools could contact to trigger builds? E.g.
> >http://trac/buildapi/add?config=confname&rev=revidwould trigger a
> Comment: Using GnuPG with Mozilla -http://enigmail.mozdev.org

Simon Cross

unread,
Jun 24, 2010, 7:57:28 AM6/24/10
to bit...@googlegroups.com
On Thu, Jun 24, 2010 at 1:32 PM, simpleone <pavel.h...@gmail.com> wrote:
> The "revision number" should be perhaps removed from bitten
> vocabulary. Each build should have a unique (serial?) label/name. For
> repository triggered builds it would be coincidently equal to the
> revision :)

Each build already has a unique build id. Each build also needs to
have an associated repository URL and repository revision so that it's
clear what is being built.

At the moment the primary constraint related to revision numbers is
that there is assumed to be at most one build for each configuration
platform and revision.

Schiavo
Simon

simpleone

unread,
Jun 24, 2010, 8:52:03 AM6/24/10
to Bitten
Not easy for me to express myself... sorry for this. What I mean is
that the "revision" does not have to be bound to source (and
repository path). Would be nice to have this dimension not dependent
on the repository (but the semantics of repository builds would be the
same as is). The uniqueness of platform/configuration/revision is
perfect as well as the unique number for build.

Mind that if you are using Mercurial the meaning of path in the repo
is quite different as you do not maintain branches and tags using path
as in SVN but it's some arbitrary logic inside Hg. If you recognize a
change set coming into the repository you have to first recognize the
branch it's belonging to and then perform build of this branch. The
revision number is sufficient but I could perhaps describe scenario
when it would not be enough. Next you have "local" (numbers) and
"global" (long string ids) revision numbers.... What I want to say is
that having a free-form "revision" which would be passed into the
build trigger would give more freedom to more complex builds. Plain
revisions would be used for vanilla repository based builds.

Makes better sense now?

P.

On Jun 24, 1:57 pm, Simon Cross <hodges...@gmail.com> wrote:

David Healey

unread,
Jun 24, 2010, 1:00:06 PM6/24/10
to bit...@googlegroups.com
My default repository is defined, and although there are similar problems, mine seems to be isolated to that pesky patch.
Although, after reading the following comments, and concerns, my build conditions rather unique as well.

True when changes are submitted to the trunk path of the repository, a build is automatically kicked off, however in addition, when builds are formally requested, via email submission script I've created, a build is kicked off. And finally, at release time, I manually create and kick off a build.

Keep in mind, that this is all working just fine in the 0.11/0.6 trac/bitten build environment. However because of the changes in the interface and usability of trac itself, I've been asked to work on getting the whole system running on the 0.12 platform.

Ultimately, after looking at the logs and the output of the error, it is literally exactly the same as prior to the assumed patch, which leads me to believe that I must simply be missing something, since after following the advice of silk, I've attempted several times to "patch" the bitten sources to I assume no avail.

David Healey

unread,
Jun 24, 2010, 3:29:22 PM6/24/10
to bit...@googlegroups.com
Here is the latest stack trace. I'm seeing the correct codeline I believe but soemthing is definitely a miss.


Oops...
Trac detected an internal error:

AttributeError: 'NoneType' object has no attribute 'get_node'

This is probably a local installation issue.
Found a bug in Trac?

If you think this should work and you can reproduce the problem, you should consider creating a bug report.

Note that the Bitten plugin seems to be involved. Please report this issue to the plugin maintainer.

Before you do that, though, please first try searching for similar issues, as it is quite likely that this problem has been reported before. For questions about installation and configuration of Trac or its plugins, please try the mailing list instead of creating a ticket.

Otherwise, please ==== How to Reproduce ==== While doing a POST operation on `/admin/bitten/configs`, Trac issued an internal error. ''(please provide additional details here)'' Request parameters: {{{ {'__FORM_TOKEN': u'e1b7b09a89fe2b01ce21adb0', 'add': u'Add', 'cat_id': u'bitten', 'label': u'PersonalWeb_1', 'name': u'Website', 'panel_id': u'configs', 'path': u'/Personal Web & Trac Development/PersonaWebDevelopment/trunk', 'path_info': None} }}} User agent: `Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4 ( .NET CLR 3.5.30729)` ==== System Information ==== || '''`Trac`''' || `0.12.1dev-r9909` || || '''`Babel`''' || `0.9.5` || || '''`Bitten`''' || `0.6dev-r881` || || '''`CustomFieldAdmin`''' || `0.2.2` || || '''`Genshi`''' || `0.6` || || '''`mod_wsgi`''' || `3.1 (WSGIProcessGroup WSGIApplicationGroup tractest.davidbhealey.local|/tractest)` || || '''`MySQL`''' || `server: "5.1.47", client: "5.1.47", thread-safe: 0` || || '''`MySQLdb`''' || `1.2.3c1` || || '''`Pygments`''' || `1.3.1` || || '''`Python`''' || `2.6.2 (r262:71600, Jan 25 2010, 18:46:47) ` [[br]] `[GCC 4.4.2 20091222 (Red Hat 4.4.2-20)]` || || '''`setuptools`''' || `0.6c9` || || '''`Subversion`''' || `1.6.9 (r901367)` || || '''`jQuery`''' || `1.4.2` || ==== Enabled Plugins ==== || '''`Bitten`''' || `0.6dev-r881` || || '''`EstimationTools`''' || `0.4` || || '''`IniAdmin`''' || `0.2` || || '''`PlannedMilestones`''' || `Rev` || || '''`SchedulingTools`''' || `0.1` || || '''`testManagementPlugin`''' || `0.11.3` || || '''`TracAccountManager`''' || `0.2.1dev-r7737` || || '''`TracCustomFieldAdmin`''' || `0.2.2` || || '''`TracDiscussion`''' || `0.7` || || '''`TracDownloads`''' || `0.3` || ==== Python Traceback ==== {{{ Traceback (most recent call last): File "build/bdist.linux-x86_64/egg/trac/web/main.py", line 513, in _dispatch_request dispatcher.dispatch(req) File "build/bdist.linux-x86_64/egg/trac/web/main.py", line 235, in dispatch resp = chosen_handler.process_request(req) File "build/bdist.linux-x86_64/egg/trac/admin/web_ui.py", line 116, in process_request path_info) File "build/bdist.linux-x86_64/egg/bitten/admin.py", line 195, in render_admin_panel config = self._create_config(req) File "build/bdist.linux-x86_64/egg/bitten/admin.py", line 240, in _create_config warnings = self._update_config(req, config) File "build/bdist.linux-x86_64/egg/bitten/admin.py", line 280, in _update_config node = repos.get_node(path, max_rev) AttributeError: 'NoneType' object has no attribute 'get_node' }}} a new bug report describing the problem and explain how to reproduce it.


Python Traceback
Most recent call last:

* File "build/bdist.linux-x86_64/egg/trac/web/main.py", line 513, in _dispatch_request
Code fragment:


Line
508 try:
509 if not env and env_error:
510 raise HTTPInternalError(env_error)
511 try:
512 dispatcher = RequestDispatcher(env)
513 dispatcher.dispatch(req)
514 except RequestDone:
515 pass
516 resp = req._response or []
517
518 except HTTPException, e:

Local variables:
Name Value
dispatcher <trac.web.main.RequestDispatcher object at 0x7faced324d50>


e AttributeError("'NoneType' object has no attribute 'get_node'",)

env <trac.env.Environment object at 0x7facecb7a950>


env_error None
req <Request "POST '/admin/bitten/configs'">
resp []

* File "build/bdist.linux-x86_64/egg/trac/web/main.py", line 235, in dispatch
Code fragment:


Line
230 msg = _('Do you have cookies enabled?')
231 raise HTTPBadRequest(_('Missing or invalid form token.'
232 ' %(msg)s', msg=msg))
233
234 # Process the request and render the template
235 resp = chosen_handler.process_request(req)
236 if resp:
237 if len(resp) == 2: # Clearsilver
238 chrome.populate_hdf(req)
239 template, content_type = \
240 self._post_process_request(req, *resp)

Local variables:
Name Value
chosen_handler <trac.admin.web_ui.AdminModule object at 0x7faced2078d0>
chrome <trac.web.chrome.Chrome object at 0x7faced324590>


ctype 'application/x-www-form-urlencoded'
err (<type 'exceptions.AttributeError'>, AttributeError("'NoneType' object has ...

handler <trac.admin.web_ui.AdminModule object at 0x7faced2078d0>


options {}
req <Request "POST '/admin/bitten/configs'">

self <trac.web.main.RequestDispatcher object at 0x7faced324d50>
* File "build/bdist.linux-x86_64/egg/trac/admin/web_ui.py", line 116, in process_request
Code fragment:


Line
111 if not provider:
112 raise HTTPNotFound(_('Unknown administration panel'))
113
114 if hasattr(provider, 'render_admin_panel'):
115 template, data = provider.render_admin_panel(req, cat_id, panel_id,
116 path_info)
117
118 else: # support for legacy WebAdmin panels
119 data = {}
120 cstmpl, ct = provider.process_admin_request(req, cat_id, panel_id,
121 path_info)

Local variables:
Name Value
_panel_order <function _panel_order at 0x7faced3c1488>


cat_id u'bitten'
panel_id u'configs'
panels [('general', u'General', 'basics', u'Basic Settings'), ('general', ...
path_info None
provider <bitten.admin.BuildConfigurationsAdminPageProvider object at ...
providers {('tracini', 'inherit'): <iniadmin.iniadmin.IniAdminPlugin object at ...
req <Request "POST '/admin/bitten/configs'">

self <trac.admin.web_ui.AdminModule object at 0x7faced2078d0>
* File "build/bdist.linux-x86_64/egg/bitten/admin.py", line 195, in render_admin_panel
Code fragment:


Line
190 }
191
192 else: # At the top level build config list
193 if req.method == 'POST':
194 if 'add' in req.args: # Add build config
195 config = self._create_config(req)
196 req.redirect(req.abs_href.admin(cat, page, config.name))
197
198 elif 'remove' in req.args: # Remove selected build configs
199 self._remove_configs(req)
200

Local variables:


Name Value
cat u'bitten'
config_name None
data {}
page u'configs'
path_info None
platform_id None
req <Request "POST '/admin/bitten/configs'">

self <bitten.admin.BuildConfigurationsAdminPageProvider object at ...

* File "build/bdist.linux-x86_64/egg/bitten/admin.py", line 240, in _create_config
Code fragment:


Line
235
236 def _create_config(self, req):
237 req.perm.assert_permission('BUILD_CREATE')
238
239 config = BuildConfig(self.env)
240 warnings = self._update_config(req, config)
241 if warnings:
242 if len(warnings) == 1:
243 raise TracError(warnings[0], 'Add Configuration')
244 else:
245 raise TracError('Errors: %s' % ' '.join(warnings),

Local variables:


Name Value
config <BuildConfig None>
req <Request "POST '/admin/bitten/configs'">

self <bitten.admin.BuildConfigurationsAdminPageProvider object at ...

* File "build/bdist.linux-x86_64/egg/bitten/admin.py", line 280, in _update_config
Code fragment:


Line
275
276 path = req.args.get('path', '')

277 repos = self.env.get_repository(authname=req.authname)


278 max_rev = req.args.get('max_rev') or None
279 try:
280 node = repos.get_node(path, max_rev)
281 assert node.isdir, '%s is not a directory' % node.path
282 except (AssertionError, TracError), e:
283 warnings.append('Invalid Repository Path "%s".' % path)
284 if req.args.get('min_rev'):
285 try:

Local variables:


Name Value
config <BuildConfig None>
max_rev None
name u'Website'
path u'/Personal Web & Trac Development/PersonaWebDevelopment/trunk'
repos None
req <Request "POST '/admin/bitten/configs'">

self <bitten.admin.BuildConfigurationsAdminPageProvider object at ...

warnings []

File "build/bdist.linux-x86_64/egg/trac/web/main.py", line 513, in _dispatch_request
dispatcher.dispatch(req)
File "build/bdist.linux-x86_64/egg/trac/web/main.py", line 235, in dispatch
resp = chosen_handler.process_request(req)
File "build/bdist.linux-x86_64/egg/trac/admin/web_ui.py", line 116, in process_request
path_info)

File "build/bdist.linux-x86_64/egg/bitten/admin.py", line 195, in render_admin_panel
config = self._create_config(req)
File "build/bdist.linux-x86_64/egg/bitten/admin.py", line 240, in _create_config
warnings = self._update_config(req, config)
File "build/bdist.linux-x86_64/egg/bitten/admin.py", line 280, in _update_config
node = repos.get_node(path, max_rev)

System Information:

User Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4 ( .NET CLR 3.5.30729)


Trac 0.12.1dev-r9909
Babel 0.9.5
Bitten 0.6dev-r881
CustomFieldAdmin 0.2.2
Genshi 0.6
mod_wsgi 3.1 (WSGIProcessGroup WSGIApplicationGroup tractest.davidbhealey.local|/tractest)
MySQL server: "5.1.47", client: "5.1.47", thread-safe: 0
MySQLdb 1.2.3c1
Pygments 1.3.1
Python 2.6.2 (r262:71600, Jan 25 2010, 18:46:47) [GCC 4.4.2 20091222 (Red Hat 4.4.2-20)]
setuptools 0.6c9
Subversion 1.6.9 (r901367)
jQuery 1.4.2
Enabled Plugins:

Bitten 0.6dev-r881 /opt/trac/Master/plugins/Bitten-0.6dev_r881-py2.6.egg

osimons

unread,
Jun 24, 2010, 3:37:34 PM6/24/10
to Bitten
On Jun 24, 7:00 pm, David Healey <dhea...@araneasolutions.com> wrote:
> Ultimately, after looking at the logs and the output of the error, it is literally exactly the same as prior to the assumed patch, which leads me to believe that I must simply be missing something, since after following the advice of silk, I've attempted several times to "patch" the bitten sources to I assume no avail.  

Do this:

1) Find your Bitten .egg and just remove it - delete the .egg file or
folder. If you don't know where it is, use something like this to
figure it out:
$ python -c "import bitten; print bitten.__file__"

2) Do a checkout of the Bitten source, get the patch and apply it:
$ cd /tmp # or somewhere if you want to save it
$ svn co http://svn.edgewall.org/repos/bitten/trunk bitten-trunk
$ cd bitten-trunk
$ wget http://bitten.edgewall.org/raw-attachment/ticket/480/t480-get_repository-r880-2.patch
$ patch -p1 < t480-get_repository-r880-2.patch

We run patch with "-p1" argument as the patch is a typical Merurial
patch that adds a/ and b/ elements to the paths inside the patch, and
we then want patch to ignore 1 segment on the paths inside.

If you now run "svn diff" you should see that your working copy is
changed, and the output should be identical to your patch.

3) Install Bitten again:
$ python setup.py install

4) You can now make further changes to the source if you like - for
instance in web_ui or admin adding a logging statement to make sure
that it actually runs your code. If you see a new traceback, try to
add something like this a line or two before the error occurs:
self.log.debug("Running the patched code...")

If you later make useful changes and additions to the patch, you can
do "svn diff" again and store the output in a new .patch file and
submit it to a ticket.

5) You can reset your working copy if you want, and be ready to apply
fresh new patches:
$ svn revert -R .

Hope that helps.



:::simon

https://www.coderesort.com
http://www.ohloh.net/accounts/osimons

osimons

unread,
Jun 24, 2010, 3:44:51 PM6/24/10
to Bitten
On Jun 24, 9:29 pm, David Healey <dhea...@araneasolutions.com> wrote:
> Here is the latest stack trace.  I'm seeing the correct codeline I believe but soemthing is definitely a miss.
>
> Oops...
> Trac detected an internal error:
>
> AttributeError: 'NoneType' object has no attribute 'get_node'
>

We posted across each other - ignore my patch message if you want, as
it looks like you got things patched OK. The error is the
configuration of the default repository as mentioned. I don't have the
configured values in my testing. In trac.ini I just have the values as
they were when I upgraded my environment - something like:

[trac]
repository_dir = /path/to/svn/myrepos
repository_type = svn

I have no other section or option in the config regarding repository,
nor have I configured anything in webadmin.

If you change paths, you likely need to run a resync - something like:
$ trac-admin /path/to/env resync

I really do not know much about the new MultiRepos support yet. Quite
shameful....


:::simon

David Healey

unread,
Jun 24, 2010, 4:01:24 PM6/24/10
to bit...@googlegroups.com
Awesome okay, Thanks and Thanks for the details. I was unsure but as directed in your patch email I had done as you'd detailed and still to no avail...

Alright so I've updated the latest 0.12 sources, cleaned rebuilt, redeployed, updated the bitten sources, repatched and redeployed (I build the egg and just place it in the plugins dir of my trac env. Makes clean up so much easier.) and am not going to rebuild and resync a new repository containing only one source line. I am thinking there's got to be something with the svn repos I have here as well as the trac config. So hopefully I'll get it working.
Thanks again for the details and I'll let ya know what I get as soon as I get it completed.


:::simon

--

David Healey

unread,
Jun 24, 2010, 4:40:11 PM6/24/10
to bit...@googlegroups.com
Okay, Now we're talking. Finally !!! WooHoo !!!

So, basically here's the deal, multiple repositories works, but and this is a major but, if you've configured them via the webinterface, or have in some other way then the below information configured your repositories it will simply not work.
Remove the [svn] and any other information from the configuration including the trunk,/branchs/*, tags/* portion as well as this too will cause the exact same failure.

Now I've not actually built yet, nor have I completed a build configuration, I was much too excited to do so, and simply had to get this email out :)

Guys/Gals/Others, Thanks for the extremely detailed assistance I do appreciate it :)
I've gotta get a few things setup, tested, and see what I can get going from here, and will update as information changes on whether or not it completely works correctly, but thus far things look good.


-----Original Message-----
From: bit...@googlegroups.com [mailto:bit...@googlegroups.com] On Behalf Of osimons
Sent: Thursday, June 24, 2010 2:45 PM
To: Bitten


:::simon

--

Ed - 0x1b, Inc.

unread,
Jul 15, 2010, 4:44:40 AM7/15/10
to bit...@googlegroups.com

pardon the dated response -

Can this be packaged with the DOAP semantic scheme?

Simon Cross

unread,
Jul 15, 2010, 5:13:23 AM7/15/10
to bit...@googlegroups.com
On Thu, Jul 15, 2010 at 10:44 AM, Ed - 0x1b, Inc. <tr...@0x1b.com> wrote:
> pardon the dated response -
>
> Can this be packaged with the DOAP semantic scheme?

What does "this" refer to here? I'm struggling to fit make sense of
the question in the context of either the quoted text or the Trac 0.12
compatibility discussion in general.

Schiavo
Simon

David Healey

unread,
Jul 19, 2010, 2:22:46 PM7/19/10
to bit...@googlegroups.com
I've been having this interesting error message,
Although bitten is now working and builds are running normally, It is not in the menu nav bar, and when you simply type the url/builds I get the following message :
"Only POST allowed for build creation."

I've not been able to find any issues around this and wondered if anyone else was having the same issue?

-----Original Message-----
From: bit...@googlegroups.com [mailto:bit...@googlegroups.com] On Behalf Of Simon Cross
Sent: Thursday, July 15, 2010 4:13 AM
To: bit...@googlegroups.com

Schiavo
Simon

--

Simon Cross

unread,
Jul 19, 2010, 2:33:57 PM7/19/10
to bit...@googlegroups.com
On Mon, Jul 19, 2010 at 8:22 PM, David Healey
<dhe...@araneasolutions.com> wrote:
> I've been having this interesting error message,
> Although bitten is now working and builds are running normally, It is not in the
> menu nav bar, and when you simply type the url/builds I get the following
> message :

If it's not in the menu bar the user you're viewing Trac with probably
doesn't have permission to view it.

>        "Only POST allowed for build creation."

I think you want to go to /build not /builds. /builds is what slaves
uses -- and as the message says slaves need to use POST.

Schiavo
Simon

David Healey

unread,
Jul 19, 2010, 2:39:41 PM7/19/10
to bit...@googlegroups.com
Yeah, that's what I had originally thought as well, My 0.11 instance is working perfectly, with Build Status in the main nav bar, but when adding /build to the URL it simply throughs me out completely to a search engine. Is very strange to be honest.
Thought maybe I just needed to manually add the Build Status option to the nav bar, but that didn't do any more than just typing build at the end of the url.

Thanks though ... :)


-----Original Message-----
From: bit...@googlegroups.com [mailto:bit...@googlegroups.com] On Behalf Of Simon Cross
Sent: Monday, July 19, 2010 1:34 PM
To: bit...@googlegroups.com

Schiavo
Simon

--

Simon Cross

unread,
Jul 19, 2010, 2:56:19 PM7/19/10
to bit...@googlegroups.com
On Mon, Jul 19, 2010 at 8:39 PM, David Healey
<dhe...@araneasolutions.com> wrote:
> Yeah, that's what I had originally thought as well, My 0.11 instance is working
> perfectly, with Build Status in the main nav bar, but when adding /build to the
> URL it simply throughs me out completely to a search engine.  Is very strange to
> be honest.

Ah, you're using Trac 0.12. Since you top posted to an apparently
unrelated message I didn't realise the subject line was relevant.

Bitten doesn't officially support Trac 0.12 yet although we're getting
there. Feedback on Trac 0.12 issues appreciated. If you find out any
more, please let us know. I'm personally not that up to speed on what
the current issues with running Bitten under Trac 0.12 are so
hopefully someone else can comment on whether this particular issue is
expected.

Schiavo
Simon

David Healey

unread,
Jul 19, 2010, 3:00:23 PM7/19/10
to bit...@googlegroups.com
Ah, my bad.

Well, hopefully someone might have seen this :) Ah well.

Thanks any way :)


-----Original Message-----
From: bit...@googlegroups.com [mailto:bit...@googlegroups.com] On Behalf Of Simon Cross
Sent: Monday, July 19, 2010 1:56 PM
To: bit...@googlegroups.com
Subject: Re: [Bitten] Re: trac 0.12 compatibility Interesting error message...

Schiavo
Simon

--

Grzegorz Sobanski

unread,
Jul 20, 2010, 8:36:51 AM7/20/10
to bit...@googlegroups.com
* David Healey <dhe...@araneasolutions.com> [2010-07-19 20:39]:

> Yeah, that's what I had originally thought as well, My 0.11 instance is working perfectly, with Build Status in the main nav bar, but when adding /build to the URL it simply throughs me out completely to a search engine. Is very strange to be honest.
> Thought maybe I just needed to manually add the Build Status option to the nav bar, but that didn't do any more than just typing build at the end of the url.

Well, the build status "works for me" in 0.12.
Can you look into the logs of trac for some info?

How do you have your repos configured? Maybe there are no permissions
for your user to access the default repository that bitten uses?


greets
silk

David Healey

unread,
Jul 20, 2010, 12:35:54 PM7/20/10
to bit...@googlegroups.com
Yeah kinda of figured it would LOL, *sigh* always the way, "works for Me" doesn't ever seem to work for me LOL..

Okay svn repository setup as follows :
trac.ini snippit

[trac]
...
repository_dir = /opt/svnroot/Projects
repository_sync_per_request = (default)
repository_type = svn
...

Perms on the repository are working, and everyone including bitten and trac have access without issue.

Trac/bitten logs :

I got nothing at all, when using the url http://tracserver/trac/build I get redirected immediately to google, no logging whatsoever.
When going to http://tracserver/trac/builds well get the original error I started this whole chain for...

That's about it, any other info I can get ya ?


-----Original Message-----
From: bit...@googlegroups.com [mailto:bit...@googlegroups.com] On Behalf Of Grzegorz Sobanski
Sent: Tuesday, July 20, 2010 7:37 AM
To: bit...@googlegroups.com
Subject: Re: [Bitten] Re: trac 0.12 compatibility Interesting error message...


greets
silk

--

Simon Cross

unread,
Jul 20, 2010, 12:45:42 PM7/20/10
to bit...@googlegroups.com
On Tue, Jul 20, 2010 at 6:35 PM, David Healey
<dhe...@araneasolutions.com> wrote:
>        I got nothing at all, when using the url http://tracserver/trac/build I get redirected immediately to google, no logging whatsoever.

This sounds like a problem completely external to your Trac or Bitten
configuration. Maybe try wget http://tracserver/trac/build?

Schiavo
Simon

David Healey

unread,
Jul 20, 2010, 1:22:10 PM7/20/10
to bit...@googlegroups.com
Nope same ... just redirects to google.. But I think your on to something, it does sound completely external since I am getting no log entries whatsoever.
Think I'm going to check a few of the /etc/httpd/conf.d/... files and see what I can come up with.

Thanks again for the debug help guys :)


-----Original Message-----
From: bit...@googlegroups.com [mailto:bit...@googlegroups.com] On Behalf Of Simon Cross
Sent: Tuesday, July 20, 2010 11:46 AM
To: bit...@googlegroups.com
Subject: Re: [Bitten] Re: trac 0.12 compatibility Interesting error message...

Schiavo
Simon

--

David Healey

unread,
Jul 20, 2010, 1:39:17 PM7/20/10
to bit...@googlegroups.com
Okay /etc/httpd/logs/error_log reports :
File does not exist: /var/www/html/build
Hence the redirect.

The 0.11 install does not report this, and I assume shouldn't. since I am linking to /trac/build which should use the wsgi interpreter which is the same as the 0.12 install, but for some reason 0.12 isn't using it.
I've at least got a direction to go now, I'll let ya know what I find.

Again, thanks for the debug help all ;)


-----Original Message-----
From: bit...@googlegroups.com [mailto:bit...@googlegroups.com] On Behalf Of Simon Cross
Sent: Tuesday, July 20, 2010 11:46 AM
To: bit...@googlegroups.com
Subject: Re: [Bitten] Re: trac 0.12 compatibility Interesting error message...

Schiavo
Simon

--

David Healey

unread,
Jul 20, 2010, 4:54:57 PM7/20/10
to bit...@googlegroups.com
Finally some information, still no go but at least some intel now.

2010-07-20 15:47:45,561 Trac[main] DEBUG: Dispatching <Request "GET '/build'">
2010-07-20 15:47:45,605 Trac[svn_fs] DEBUG: Subversion bindings imported
2010-07-20 15:47:45,611 Trac[api] INFO: Synchronized '' repository in 0.04 seconds
2010-07-20 15:47:45,613 Trac[session] DEBUG: Retrieving session for ID u'dhealey'
2010-07-20 15:47:45,615 Trac[main] WARNING: HTTPNotFound: 404 Not Found (No handler matched request to /build)
2010-07-20 15:47:45,654 Trac[chrome] DEBUG: Prepare chrome data for request
2010-07-20 15:47:45,658 Trac[api] DEBUG: action controllers for ticket workflow: ['ConfigurableTicketWorkflow']


-----Original Message-----
From: bit...@googlegroups.com [mailto:bit...@googlegroups.com] On Behalf Of Simon Cross
Sent: Tuesday, July 20, 2010 11:46 AM
To: bit...@googlegroups.com
Subject: Re: [Bitten] Re: trac 0.12 compatibility Interesting error message...

Schiavo
Simon

--

Grzegorz Sobanski

unread,
Jul 20, 2010, 5:44:41 PM7/20/10
to bit...@googlegroups.com
* David Healey <dhe...@araneasolutions.com> [2010-07-20 22:55]:

> Finally some information, still no go but at least some intel now.
>
> 2010-07-20 15:47:45,561 Trac[main] DEBUG: Dispatching <Request "GET '/build'">
> 2010-07-20 15:47:45,605 Trac[svn_fs] DEBUG: Subversion bindings imported
> 2010-07-20 15:47:45,611 Trac[api] INFO: Synchronized '' repository in 0.04 seconds
> 2010-07-20 15:47:45,613 Trac[session] DEBUG: Retrieving session for ID u'dhealey'
> 2010-07-20 15:47:45,615 Trac[main] WARNING: HTTPNotFound: 404 Not Found (No handler matched request to /build)
> 2010-07-20 15:47:45,654 Trac[chrome] DEBUG: Prepare chrome data for request
> 2010-07-20 15:47:45,658 Trac[api] DEBUG: action controllers for ticket workflow: ['ConfigurableTicketWorkflow']

Look in the administration panel if all modules of bitten are enabled.
If yes, look eariler in the log, when trac is starting and loading all
modules (restart apache) if maybe something crashes at that moment.

--
greets
silk

David Healey

unread,
Jul 20, 2010, 7:13:37 PM7/20/10
to bit...@googlegroups.com
Will do, thanks for the intel.


-----Original Message-----
From: bit...@googlegroups.com [mailto:bit...@googlegroups.com] On Behalf Of Grzegorz Sobanski
Sent: Tuesday, July 20, 2010 4:45 PM
To: bit...@googlegroups.com
Subject: Re: [Bitten] Re: trac 0.12 compatibility Interesting error message...

--
greets
silk

--

David Healey

unread,
Jul 21, 2010, 12:35:27 PM7/21/10
to bit...@googlegroups.com
Finally... Hmm interestingly enough, after removing bitten yet again, and patching again, reinstall, Poof working normally. Haven't the foggiest what the problem was but seems like Daniel was on to something. So figured I'd just give it one last shot. Magic it worked... Cool cool all.

David

David Healey (Contractor)

unread,
Jul 29, 2010, 8:24:48 PM7/29/10
to bit...@googlegroups.com
Does anyone have an example on the attach feature of bitten ? thanks again for any and all assistance.

David Healey (Contractor)

unread,
Jul 29, 2010, 11:18:28 PM7/29/10
to bit...@googlegroups.com
It was just taking an awefully long time to attaché and I'd thought I'd mistakenly added the recipe tag line.
It's working and awesome in both 0.11 and 0.12 Just as an fyi.

Simon Cross

unread,
Jul 30, 2010, 3:48:33 AM7/30/10
to bit...@googlegroups.com
On Fri, Jul 30, 2010 at 5:18 AM, David Healey (Contractor)
<dhe...@araneasolutions.com> wrote:
> It was just taking an awefully long time to attaché and I'd thought I'd mistakenly added the recipe tag line.
> It's working and awesome in both 0.11 and 0.12 Just as an fyi.

The attachment uploading process is known to be rather (extremely?)
slow for largish files. Probably something someone needs to look at
before the 0.7 release.

Schiavo
Simon

David Healey (Contractor)

unread,
Jul 30, 2010, 12:07:21 PM7/30/10
to bit...@googlegroups.com
Yes I noticed that. But it does work so it's all good I suppose for now anyway...


-----Original Message-----
From: bit...@googlegroups.com [mailto:bit...@googlegroups.com] On Behalf Of Simon Cross
Sent: Friday, July 30, 2010 2:49 AM
To: bit...@googlegroups.com

Schiavo
Simon

--

potter

unread,
Aug 2, 2010, 3:54:04 PM8/2/10
to Bitten
I found that while these slow attachments are taking place, the Trac
installation is locked up for any other use until the attach is
finished. For this reason I changed to using the XmlRpcPlugin's
wiki.putAttachmentEx function. Not only faster (e.g. 30 seconds verse
14.5 minutes), but did not lock up the Trac server while the attach
was taking place. I later changed to simply copying the results file
to a shared directory where the http server would allow browsing and
downloading of the results.

References:
* http://groups.google.com/group/bitten/browse_thread/thread/95057dd0a57bf0dd/7755c846352b37da
* http://groups.google.com/group/bitten/browse_thread/thread/10e634db2a0d6f25/7a2f825929b0d2cc
* http://trac-hacks.org/wiki/XmlRpcPlugin

On Jul 30, 12:07 pm, "David Healey (Contractor)"
<dhea...@araneasolutions.com> wrote:
> Yes I noticed that.  But it does work so it's all good I suppose for now anyway...
>
> David B. Healey
> 256-444-1020 Home
> 256-431-9970 Cellhttp://www.davidbhealey.com
> da...@davidbhealey.com
> david.hea...@araneasolutions.com

David Healey (Contractor)

unread,
Aug 3, 2010, 12:00:54 AM8/3/10
to bit...@googlegroups.com
Hmmm good information, I'd not looked to see if other users where locked out while an upload took place.
I'll have some of my engineers checkin code tomorrow so that I can test it out. Thanks.

Good call.


David B. Healey
256-444-1020 Home


-----Original Message-----
From: bit...@googlegroups.com [mailto:bit...@googlegroups.com] On Behalf Of potter
Sent: Monday, August 02, 2010 2:54 PM
To: Bitten

Ed - 0x1b, Inc.

unread,
Aug 11, 2010, 4:55:34 AM8/11/10
to bit...@googlegroups.com

This refers to the info on "Each build" of Bitten. Since DOAP* is an
XML/RDF scheme for describing projects & builds, it might be useful if
a DOAP file could be generated on each build of Bitten**. The level of
integration would then be to include Bitten's builds in the Semantic
Web - this enables the generation of compatibility matrix(s) that
specifies which builds of various projects (like Trac and Bitten) are
compatible with which. If Bitten were to generate and publish DOAP
files, other projects - or third parties - would be able to post
compatibility data using DOAP as the standardized build-build
descriptors. Picking functional constellations from multiple
independent projects would be much easier if DOAP files for the
various builds could be accessed. DOAP makes referring to all these
things easier and more precise - dependencies, plug-ins, personal
experiences, tool chains...

* http://usefulinc.com/ns/doap#
** or with each build done by Bitten, but that's a bit OT. but really nice

again - sorry about the late reply - Ed

Dav

unread,
Aug 23, 2010, 3:51:54 AM8/23/10
to Bitten
same here, latest bitten + latest trac (via easy_install)

If the user isn't admin in trac
BuildController AttributeError: 'NoneType' object has no attribute
'authz'

osimons

unread,
Aug 27, 2010, 5:11:43 AM8/27/10
to Bitten
I've committed the latest patch on #480 to 0.6 and trunk, so this
should now work with Trac 0.12:

$ easy_intall http://svn.edgewall.org/repos/bitten/branches/0.6.x

As noted in the ticket, this is not full multi-repository support but
a support for a 0.11-style single, default repository for the latest
version of Trac.

Testing welcome, and we'll try to get out a new official beta soon to
make this easier.


:::simon

osimons

unread,
Aug 27, 2010, 5:16:08 AM8/27/10
to Bitten
On Aug 23, 9:51 am, Dav <fatsl...@gmail.com> wrote:

Dav

unread,
Aug 27, 2010, 11:10:27 AM8/27/10
to Bitten
simon, awesome! works niiicely now. have a good weekend
Message has been deleted

Jim Myers

unread,
Sep 5, 2010, 5:33:21 PM9/5/10
to Bitten
I install TRAC 0.12 and Bitten 0.6.x yesterday and all is well except
for an error sending build notification email (build was successful
and shows up fine on build status page).

Here's the traceback from trac.log:

2010-09-05 15:52:13,615 Trac[main] DEBUG: Dispatching <Request "POST '/
builds/699/steps/'">
2010-09-05 15:52:13,648 Trac[svn_fs] DEBUG: Subversion bindings
imported
2010-09-05 15:52:13,652 Trac[api] INFO: Synchronized '' repository in
0.03 seconds
2010-09-05 15:52:13,655 Trac[session] DEBUG: Retrieving session for ID
u'james.myers'
2010-09-05 15:52:13,659 Trac[api] DEBUG: action controllers for ticket
workflow: ['ConfigurableTicketWorkflow']
2010-09-05 15:52:13,715 Trac[master] DEBUG: Slave web86 (build 699)
completed step 3 (test teardown) with status success
2010-09-05 15:52:13,719 Trac[master] INFO: Slave web86 completed build
699 ("portal_86" as of [1436])
2010-09-05 15:52:13,736 Trac[notify] DEBUG: Initializing BittenNotify
plugin
2010-09-05 15:52:13,736 Trac[notify] INFO: BittenNotify invoked for
build <Build 699>
2010-09-05 15:52:13,736 Trac[notify] DEBUG: build status: S
2010-09-05 15:52:13,737 Trac[notify] INFO: Sending notification for
build <Build 699>
2010-09-05 15:52:13,844 Trac[notify] ERROR: Failure sending
notification for build 699: "step" not defined
Traceback (most recent call last):
File "/home/dhat/lib/python2.4/Bitten-0.7dev_r888-py2.4.egg/bitten/
notify.py", line 40, in notify
email.notify(build)
File "/home/dhat/lib/python2.4/Bitten-0.7dev_r888-py2.4.egg/bitten/
notify.py", line 101, in notify
NotifyEmail.notify(self, self.build.id, subject)
File "/home/dhat/webapps/trac/lib/python2.4/Trac-0.12-py2.4.egg/trac/
notification.py", line 324, in notify
Notify.notify(self, resid)
File "/home/dhat/webapps/trac/lib/python2.4/Trac-0.12-py2.4.egg/trac/
notification.py", line 226, in notify
self.send(torcpts, ccrcpts)
File "/home/dhat/lib/python2.4/Bitten-0.7dev_r888-py2.4.egg/bitten/
notify.py", line 113, in send
NotifyEmail.send(self, torcpts, ccrcpts, mime_headers)
File "/home/dhat/webapps/trac/lib/python2.4/Trac-0.12-py2.4.egg/trac/
notification.py", line 402, in send
body = stream.render('text')
File "/home/dhat/webapps/trac/lib/python2.4/Genshi-0.6-py2.4.egg/
genshi/core.py", line 183, in render
return encode(generator, method=method, encoding=encoding,
out=out)
File "/home/dhat/webapps/trac/lib/python2.4/Genshi-0.6-py2.4.egg/
genshi/output.py", line 57, in encode
return _encode(''.join(list(iterator)))
File "/home/dhat/webapps/trac/lib/python2.4/Genshi-0.6-py2.4.egg/
genshi/output.py", line 569, in __call__
for event in stream:
File "/home/dhat/webapps/trac/lib/python2.4/Genshi-0.6-py2.4.egg/
genshi/core.py", line 288, in _ensure
for event in stream:
File "/home/dhat/webapps/trac/lib/python2.4/Genshi-0.6-py2.4.egg/
genshi/template/base.py", line 605, in _include
for event in stream:
File "/home/dhat/webapps/trac/lib/python2.4/Genshi-0.6-py2.4.egg/
genshi/template/base.py", line 565, in _flatten
result = _eval_expr(data, ctxt, vars)
File "/home/dhat/webapps/trac/lib/python2.4/Genshi-0.6-py2.4.egg/
genshi/template/base.py", line 277, in _eval_expr
retval = expr.evaluate(ctxt)
File "/home/dhat/webapps/trac/lib/python2.4/Genshi-0.6-py2.4.egg/
genshi/template/eval.py", line 178, in evaluate
return eval(self.code, _globals, {'__data__': data})
File "/home/dhat/lib/python2.4/Bitten-0.7dev_r888-py2.4.egg/bitten/
templates/bitten_notify_email.txt", line 14, in <Expression
u'step.name'>
Step: $step.name
File "/home/dhat/webapps/trac/lib/python2.4/Genshi-0.6-py2.4.egg/
genshi/template/eval.py", line 316, in lookup_attr
val = getattr(obj, key)
File "/home/dhat/webapps/trac/lib/python2.4/Genshi-0.6-py2.4.egg/
genshi/template/eval.py", line 277, in _die
raise UndefinedError(self._name, self._owner)
UndefinedError: "step" not defined

osimons

unread,
Sep 17, 2010, 6:01:09 AM9/17/10
to Bitten


On Sep 5, 11:33 pm, Jim Myers <myer...@gmail.com> wrote:
> I install TRAC 0.12 and Bitten 0.6.x yesterday and all is well except
> for an error sending build notification email (build was successful
> and shows up fine on build status page).
>
> Here's the traceback from trac.log:
>
> ....
>   File "/home/dhat/lib/python2.4/Bitten-0.7dev_r888-py2.4.egg/bitten/
> templates/bitten_notify_email.txt", line 14, in <Expression
> u'step.name'>
> ....

Thanks for the report. I fixed this notification issue yesterday [1],
so please update to use latest 0.6 development version and all should
be working [2]. I hope :-)

[1] http://bitten.edgewall.org/changeset/902
[2] http://bitten.edgewall.org/wiki/Download

:::simon

https://www.coderesort.com
http://www.ohloh.net/accounts/osimons


Reply all
Reply to author
Forward
0 new messages