Re: about the submission policy
Thanks, Chris. This makes much sense to me. On Wed, Oct 19, 2011 at 2:50 AM, Christian Hammond wrote: > It's a cultural policy. We can't prevent people from committing code, as > Review Board isn't able to intercept commits like that. There's nothing to > change in Review Board itself. > > Now, some companies have written pre-commit hooks for their repositories > using our API, which will determine whether the code is allowed to be > committed. This is specific to a compant's policies and type of repository. > > Christian > > > > On Tuesday, October 18, 2011, tsinghai wrote: > > Hi Folks, > > > > I did not know review board until yesterday, so I am not sure whether > > this is the right box I should sent my questions to. > > > > Anyway, in the document, it says: Review Board doesn't enforce that > > the people listed must review the change before it can be submitted. > > This is a policy that is left up to each organization. > > My question is that if I want to have this policy, what should I do? > > Should I change source code? or is there any configuration file I > > could change for this? > > > > Thanks > > Bruce > > > > -- > > Want to help the Review Board project? Donate today at > http://www.reviewboard.org/donate/ > > Happy user? Let us know at http://www.reviewboard.org/users/ > > -~--~~~~--~~--~--~--- > > To unsubscribe from this group, send email to > reviewboard+unsubscr...@googlegroups.com > > For more options, visit this group at > http://groups.google.com/group/reviewboard?hl=en > > -- > -- > Christian Hammond - chip...@chipx86.com > Review Board - http://www.reviewboard.org > VMware, Inc. - http://www.vmware.com > > -- > Want to help the Review Board project? Donate today at > http://www.reviewboard.org/donate/ > Happy user? Let us know at http://www.reviewboard.org/users/ > -~--~~~~--~~--~--~--- > To unsubscribe from this group, send email to > reviewboard+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/reviewboard?hl=en -- Want to help the Review Board project? Donate today at http://www.reviewboard.org/donate/ Happy user? Let us know at http://www.reviewboard.org/users/ -~--~~~~--~~--~--~--- To unsubscribe from this group, send email to reviewboard+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/reviewboard?hl=en
Re: Intermittent SCMError
On Tue, Oct 18, 2011 at 11:55 AM, Christian Hammond wrote: > Hi Joe, > > For the git configuration, are you using a clone that Review Board can > access, or the raw URL configuration? > I'm not sure I understand entirely, but the git repository is on the local filesystem of the ReviewBoard host. The path is set to: /home/public/burnttoast.git > I assume you weren't running Python 2.7 before? I'm pretty sure that before the upgrade, the default interpreter was 2.7.1. Python 2.6.6 was also installed, but I think it was not default. After the upgrade, I am running 2.7.2. > If that's new, and you're using the raw URL access, it may be possible > you're hitting some regressions in their urllib2 support (we recently found > other issues there). That's just an initial guess though. We'd need more > information to figure it out. > > Christian -- Want to help the Review Board project? Donate today at http://www.reviewboard.org/donate/ Happy user? Let us know at http://www.reviewboard.org/users/ -~--~~~~--~~--~--~--- To unsubscribe from this group, send email to reviewboard+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/reviewboard?hl=en
Re: Intermittent SCMError
Hi Joe, For the git configuration, are you using a clone that Review Board can access, or the raw URL configuration? I assume you weren't running Python 2.7 before? If that's new, and you're using the raw URL access, it may be possible you're hitting some regressions in their urllib2 support (we recently found other issues there). That's just an initial guess though. We'd need more information to figure it out. Christian On Tuesday, October 18, 2011, Joe Mou wrote: > Hi, I have intermittent failures from ReviewBoard. These failures pop up in various interactions (reading reviews, post-review, publishing comments), but all seem to be related to accessing my git repository. From what I've gathered while researching this, it's usually a fatal condition (e.g., the repository has the wrong permissions). Not only have I double checked the permissions, but the weird part is that retrying the action or refreshing the web page usually works fine. Roughly 1 out of 10 actions result in an error though. > Last week, everything was working fine. The onset of the errors coincides with an update of the hosting machine from Ubuntu 10.04 to 10.10. So obviously a lot has changed that could be contributing to the error, but I can't narrow it down. > Does anyone have any ideas on what might be wrong, or how I might diagnose this? > Below is an error e-mail that ReviewBoard sent. > Thanks, > Joe > > > [Review Board] ERROR (EXTERNAL IP): Internal Server Error: /r/52/ > Traceback (most recent call last): > File "/home/jmou/src/reviewboard/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response >response = callback(request, *callback_args, **callback_kwargs) > File "/home/jmou/src/reviewboard/lib/python2.7/site-packages/reviewboard/accounts/decorators.py", line 21, in _check >return view_func(*args, **kwargs) > File "/home/jmou/src/reviewboard/lib/python2.7/site-packages/reviewboard/reviews/views.py", line 461, in review_detail >'PRE_CREATION': PRE_CREATION, > File "/home/jmou/src/reviewboard/lib/python2.7/site-packages/reviewboard/reviews/views.py", line 109, in _make_review_request_context >upload_diff_form = UploadDiffForm(review_request) > File "/home/jmou/src/reviewboard/lib/python2.7/site-packages/reviewboard/reviews/forms.py", line 266, in __init__ >data, *args, **kwargs) > File "/home/jmou/src/reviewboard/lib/python2.7/site-packages/reviewboard/diffviewer/forms.py", line 44, in __init__ >if self.repository.get_scmtool().get_diffs_use_absolute_paths(): > File "/home/jmou/src/reviewboard/lib/python2.7/site-packages/reviewboard/scmtools/models.py", line 122, in get_scmtool >return cls(self) > File "/home/jmou/src/reviewboard/lib/python2.7/site-packages/reviewboard/scmtools/git.py", line 70, in __init__ >local_site_name) > File "/home/jmou/src/reviewboard/lib/python2.7/site-packages/reviewboard/scmtools/git.py", line 316, in __init__ >raise SCMError(_('Unable to retrieve information from ' > SCMError: > > GET:, > POST:, > COOKIES:{'collapsediffs': 'True', > 'csrftoken': '580b2766fe12c70c23a58cca755a00f5', > 'rbsessionid': '940bf1a27bf8477126b7a90e7e0c4293'}, > META:{'DOCUMENT_ROOT': '/var/www/reviews.burnttoast.local/htdocs', > 'GATEWAY_INTERFACE': 'CGI/1.1', > 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', > 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3', > 'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch', > 'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.8', > 'HTTP_CONNECTION': 'keep-alive', > 'HTTP_COOKIE': 'csrftoken=580b2766fe12c70c23a58cca755a00f5; rbsessionid=940bf1a27bf8477126b7a90e7e0c4293; collapsediffs=True', > 'HTTP_HOST': 'reviews.burnttoast.local', > 'HTTP_IF_NONE_MATCH': 'jmou:2011-10-18 04:06:15.963042::0:0:1317097313', > 'HTTP_REFERER': 'http://reviews.burnttoast.local/r/52/', > 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1', > 'PATH_INFO': u'/r/52/', > 'PATH_TRANSLATED': '/var/www/reviews.burnttoast.local/htdocs/reviewboard.wsgi/r/52/', > 'QUERY_STRING': '', > 'REMOTE_ADDR': '192.168.1.111', > 'REMOTE_PORT': '48526', > 'REQUEST_METHOD': 'GET', > 'REQUEST_URI': '/r/52/', > 'SCRIPT_FILENAME': '/var/www/reviews.burnttoast.local/htdocs/reviewboard.wsgi', > 'SCRIPT_NAME': u'', > 'SERVER_ADDR': '192.168.1.108', > 'SERVER_ADMIN': '[no address given]', > 'SERVER_NAME': 'reviews.burnttoast.local', > 'SERVER_PORT': '80', > 'SERVER_PROTOCOL': 'HTTP/1.1', > 'SERVER_SIGNATURE': 'Apache/2.2.20 (Ubuntu) Server at reviews.burnttoast.local Port 80\n', > 'SERVER_SOFTWARE': 'Apache/2.2.20 (Ubuntu)', > 'mod_wsgi.application_group': 'reviews.burnttoast.local|', > 'mod_wsgi.callable_object': 'application', > 'mod_wsgi.handler_script': '', > 'mod_wsgi.input_chunked': '0', > 'mod_wsgi.listener_host': '', > 'mod_wsgi.listener_port': '80', > 'mod_wsgi.process_group': '', > 'mod_wsgi.request_handler': 'wsgi-scrip
Re: about the submission policy
It's a cultural policy. We can't prevent people from committing code, as Review Board isn't able to intercept commits like that. There's nothing to change in Review Board itself. Now, some companies have written pre-commit hooks for their repositories using our API, which will determine whether the code is allowed to be committed. This is specific to a compant's policies and type of repository. Christian On Tuesday, October 18, 2011, tsinghai wrote: > Hi Folks, > > I did not know review board until yesterday, so I am not sure whether > this is the right box I should sent my questions to. > > Anyway, in the document, it says: Review Board doesn't enforce that > the people listed must review the change before it can be submitted. > This is a policy that is left up to each organization. > My question is that if I want to have this policy, what should I do? > Should I change source code? or is there any configuration file I > could change for this? > > Thanks > Bruce > > -- > Want to help the Review Board project? Donate today at http://www.reviewboard.org/donate/ > Happy user? Let us know at http://www.reviewboard.org/users/ > -~--~~~~--~~--~--~--- > To unsubscribe from this group, send email to reviewboard+unsubscr...@googlegroups.com > For more options, visit this group at http://groups.google.com/group/reviewboard?hl=en -- -- Christian Hammond - chip...@chipx86.com Review Board - http://www.reviewboard.org VMware, Inc. - http://www.vmware.com -- Want to help the Review Board project? Donate today at http://www.reviewboard.org/donate/ Happy user? Let us know at http://www.reviewboard.org/users/ -~--~~~~--~~--~--~--- To unsubscribe from this group, send email to reviewboard+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/reviewboard?hl=en
about the submission policy
Hi Folks, I did not know review board until yesterday, so I am not sure whether this is the right box I should sent my questions to. Anyway, in the document, it says: Review Board doesn't enforce that the people listed must review the change before it can be submitted. This is a policy that is left up to each organization. My question is that if I want to have this policy, what should I do? Should I change source code? or is there any configuration file I could change for this? Thanks Bruce -- Want to help the Review Board project? Donate today at http://www.reviewboard.org/donate/ Happy user? Let us know at http://www.reviewboard.org/users/ -~--~~~~--~~--~--~--- To unsubscribe from this group, send email to reviewboard+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/reviewboard?hl=en
Intermittent SCMError
Hi, I have intermittent failures from ReviewBoard. These failures pop up in various interactions (reading reviews, post-review, publishing comments), but all seem to be related to accessing my git repository. From what I've gathered while researching this, it's usually a fatal condition (e.g., the repository has the wrong permissions). Not only have I double checked the permissions, but the weird part is that retrying the action or refreshing the web page usually works fine. Roughly 1 out of 10 actions result in an error though. Last week, everything was working fine. The onset of the errors coincides with an update of the hosting machine from Ubuntu 10.04 to 10.10. So obviously a lot has changed that could be contributing to the error, but I can't narrow it down. Does anyone have any ideas on what might be wrong, or how I might diagnose this? Below is an error e-mail that ReviewBoard sent. Thanks, Joe [Review Board] ERROR (EXTERNAL IP): Internal Server Error: /r/52/ Traceback (most recent call last): File "/home/jmou/src/reviewboard/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response response = callback(request, *callback_args, **callback_kwargs) File "/home/jmou/src/reviewboard/lib/python2.7/site-packages/reviewboard/accounts/decorators.py", line 21, in _check return view_func(*args, **kwargs) File "/home/jmou/src/reviewboard/lib/python2.7/site-packages/reviewboard/reviews/views.py", line 461, in review_detail 'PRE_CREATION': PRE_CREATION, File "/home/jmou/src/reviewboard/lib/python2.7/site-packages/reviewboard/reviews/views.py", line 109, in _make_review_request_context upload_diff_form = UploadDiffForm(review_request) File "/home/jmou/src/reviewboard/lib/python2.7/site-packages/reviewboard/reviews/forms.py", line 266, in __init__ data, *args, **kwargs) File "/home/jmou/src/reviewboard/lib/python2.7/site-packages/reviewboard/diffviewer/forms.py", line 44, in __init__ if self.repository.get_scmtool().get_diffs_use_absolute_paths(): File "/home/jmou/src/reviewboard/lib/python2.7/site-packages/reviewboard/scmtools/models.py", line 122, in get_scmtool return cls(self) File "/home/jmou/src/reviewboard/lib/python2.7/site-packages/reviewboard/scmtools/git.py", line 70, in __init__ local_site_name) File "/home/jmou/src/reviewboard/lib/python2.7/site-packages/reviewboard/scmtools/git.py", line 316, in __init__ raise SCMError(_('Unable to retrieve information from ' SCMError: , POST:, COOKIES:{'collapsediffs': 'True', 'csrftoken': '580b2766fe12c70c23a58cca755a00f5', 'rbsessionid': '940bf1a27bf8477126b7a90e7e0c4293'}, META:{'DOCUMENT_ROOT': '/var/www/reviews.burnttoast.local/htdocs', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3', 'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch', 'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.8', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_COOKIE': 'csrftoken=580b2766fe12c70c23a58cca755a00f5; rbsessionid=940bf1a27bf8477126b7a90e7e0c4293; collapsediffs=True', 'HTTP_HOST': 'reviews.burnttoast.local', 'HTTP_IF_NONE_MATCH': 'jmou:2011-10-18 04:06:15.963042::0:0:1317097313', 'HTTP_REFERER': 'http://reviews.burnttoast.local/r/52/', 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1', 'PATH_INFO': u'/r/52/', 'PATH_TRANSLATED': '/var/www/reviews.burnttoast.local/htdocs/reviewboard.wsgi/r/52/', 'QUERY_STRING': '', 'REMOTE_ADDR': '192.168.1.111', 'REMOTE_PORT': '48526', 'REQUEST_METHOD': 'GET', 'REQUEST_URI': '/r/52/', 'SCRIPT_FILENAME': '/var/www/reviews.burnttoast.local/htdocs/reviewboard.wsgi', 'SCRIPT_NAME': u'', 'SERVER_ADDR': '192.168.1.108', 'SERVER_ADMIN': '[no address given]', 'SERVER_NAME': 'reviews.burnttoast.local', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.1', 'SERVER_SIGNATURE': 'Apache/2.2.20 (Ubuntu) Server at reviews.burnttoast.local Port 80\n', 'SERVER_SOFTWARE': 'Apache/2.2.20 (Ubuntu)', 'mod_wsgi.application_group': 'reviews.burnttoast.local|', 'mod_wsgi.callable_object': 'application', 'mod_wsgi.handler_script': '', 'mod_wsgi.input_chunked': '0', 'mod_wsgi.listener_host': '', 'mod_wsgi.listener_port': '80', 'mod_wsgi.process_group': '', 'mod_wsgi.request_handler': 'wsgi-script', 'mod_wsgi.script_reloading': '1', 'mod_wsgi.version': (3, 3), 'wsgi.errors': , 'wsgi.file_wrapper': , 'wsgi.input': , 'wsgi.multiprocess': True, 'wsgi.multithread': True, 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, 1)}> -- Want to help the Review Board project? Donate today at http://www.reviewboard.org/donate/ Happy user? Let us know at http://www.reviewboard.org/users/ -~--~~~~--~~--~--~--- To unsubscribe from this group, send email to reviewboard+unsubscr...@googlegroups.com For more options, visit this group at http
Re: reviewboard 1.6.1 with wsgi
I changed SITE_ROOT = '/' to SITE_ROOT = '/reviewboard/' in /var/www/reviewboard/conf/settings_local.py Then changed WSGIScriptAlias "/reviewboard/" "/var/www/reviewboard/htdocs/ reviewboard.wsgi" to WSGIScriptAlias /reviewboard /var/www/reviewboard/htdocs/ reviewboard.wsgi/reviewboard It started working. Thanks, Rohini On Oct 15, 2:10 am, יונתן קינן wrote: > I got it to work in my personal laptop, > I should note that you also need to change the settings file. > /var/www/reviewboard/conf/settings_local.py > You need to change SITE_ROOT from '/' to '/review/'(depends on the chosen > sub directory) > > I also added reverse proxying so it could work with Bugzilla. > If anyone knows of a way to use ServerPath instead of the reverse proxying > then please let me know... > > 2011/10/12 Stephen Gallagher > > > On Wed, 2011-10-12 at 00:59 -0700, Rohini Kumar Tharigonda wrote: > > > I do not want to install it as root. > > > I installed it in a sub directory. > > > it works fine only if make the follwing > > > WSGIScriptAlias "/" "/var/www/reviewboard/htdocs/ > > > reviewboard.wsgi" > > > instead of > > > > #WSGIScriptAlias "/reviewboard/" "/var/www/reviewboard/htdocs/ > > > reviewboard.wsgi" > > > Try using the following: > > > WSGIScriptAlias /reviewboard > > /srv/reviewboard/conf/reviewboard.wsgi/reviewboard > > > (note specifically the lack of parentheses and trailing forward > > slashes). This works for me with apache+mod_wsgi and handles > > subdirectory install just fine. > > > (For the record, this is the config for > >https://fedorahosted.org/reviewboard) > > > -- > > Want to help the Review Board project? Donate today at > >http://www.reviewboard.org/donate/ > > Happy user? Let us know athttp://www.reviewboard.org/users/ > > -~--~~~~--~~--~--~--- > > To unsubscribe from this group, send email to > > reviewboard+unsubscr...@googlegroups.com > > For more options, visit this group at > >http://groups.google.com/group/reviewboard?hl=en -- Want to help the Review Board project? Donate today at http://www.reviewboard.org/donate/ Happy user? Let us know at http://www.reviewboard.org/users/ -~--~~~~--~~--~--~--- To unsubscribe from this group, send email to reviewboard+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/reviewboard?hl=en
Re: problem upgrading 1.5.6 to 1.6.1
I did it on my Virtual box. No issues until now On Oct 15, 4:05 am, Christian Hammond wrote: > Hmm hard to say. Sounds like a very round-about way of doing things. I > believe there were some transformations we made during evolution time to the > data in 1.6. Have you hit any problems yet? > > Christian > > -- > Christian Hammond - chip...@chipx86.com > Review Board -http://www.reviewboard.org > VMware, Inc. -http://www.vmware.com > > On Tue, Oct 11, 2011 at 3:06 AM, Rohini Kumar Tharigonda > wrote: > > > I did the following . > > exported only data from my existing 1.5.6 and changed 1.6 in > > siteconfig_siteconfiguration table to 1.6.1 > > exported only schema from a fresh installation of 1.6.1. > > > Then I made database of 1.6.1 fresh installation to empty. > > imported only schema (1.6.1) into database. > > imported only data of my 1.5.6 to schema of 1.6.1 > > > It started working . > > > Will it cause any problem in future. > > > On Sep 15, 11:10 am, Rohini Kumar Tharigonda wrote: > > > [root@localhostrohini]# rb-site manage /var/www/reviewboard/ evolve > > > -- --hint > > > #- Evolution for accounts > > > from django_evolution.mutations import * > > > from django.db import models > > > > MUTATIONS = [ > > > AddField('Profile', 'is_private', models.BooleanField, > > > initial=False) > > > ] > > > #-- > > > #- Evolution for reviews > > > from django_evolution.mutations import * > > > from django.db import models > > > > MUTATIONS = [ > > > AddField('Comment', 'issue_opened', models.BooleanField, > > > initial=False), > > > AddField('Comment', 'issue_status', models.CharField, > > > max_length=1, null=True, db_index=True), > > > AddField('Group', 'local_site', models.ForeignKey, null=True, > > > related_model='site.LocalSite'), > > > AddField('Group', 'incoming_request_count', models.CounterField, > > > null=True), > > > AddField('Group', 'visible', models.BooleanField, initial=True), > > > AddField('Group', 'invite_only', models.BooleanField, > > > initial=False), > > > ChangeField('Group', 'name', initial=None, unique=False), > > > AddField('Review', 'file_attachment_comments', > > > models.ManyToManyField, > > > related_model='reviews.FileAttachmentComment'), > > > AddField('ReviewRequestDraft', 'inactive_file_attachments', > > > models.ManyToManyField, related_model='attachments.FileAttachment'), > > > AddField('ReviewRequestDraft', 'file_attachments', > > > models.ManyToManyField, related_model='attachments.FileAttachment'), > > > AddField('ReviewRequest', 'inactive_file_attachments', > > > models.ManyToManyField, related_model='attachments.FileAttachment'), > > > AddField('ReviewRequest', 'local_site', models.ForeignKey, > > > null=True, related_model='site.LocalSite'), > > > AddField('ReviewRequest', 'local_id', models.IntegerField, > > > null=True), > > > AddField('ReviewRequest', 'file_attachments', > > > models.ManyToManyField, related_model='attachments.FileAttachment'), > > > AddField('DefaultReviewer', 'local_site', models.ForeignKey, > > > null=True, related_model='site.LocalSite'), > > > AddField('ScreenshotComment', 'issue_opened', models.BooleanField, > > > initial=False), > > > AddField('ScreenshotComment', 'issue_status', models.CharField, > > > max_length=1, null=True, db_index=True) > > > ] > > > #-- > > > #- Evolution for scmtools > > > from django_evolution.mutations import * > > > from django.db import models > > > > MUTATIONS = [ > > > AddField('Repository', 'review_groups', models.ManyToManyField, > > > related_model='reviews.Group'), > > > AddField('Repository', 'local_site', models.ForeignKey, null=True, > > > related_model='site.LocalSite'), > > > AddField('Repository', 'public', models.BooleanField, > > > initial=True), > > > AddField('Repository', 'users', models.ManyToManyField, > > > related_model='auth.User'), > > > ChangeField('Repository', 'path', initial=None, unique=False), > > > ChangeField('Repository', 'name', initial=None, unique=False) > > > ] > > > #-- > > > Trial evolution successful. > > > Run './manage.py evolve --hint --execute' to apply evolution. > > > [root@localhostrohini]# > > > > On Sep 14, 11:41 am, Christian Hammond wrote: > > > > > What error? The one you pasted here? > > > > > Going back to 1.6 won't solve anything. Your database is in an > > inconsistent > > > > state now. Please run: > > > > > rb-site manage /path/to/site evolve -- --hint > > > > > And paste the output. > > > > > Christian > > > > > -- > > > > Christian Hammond - chip...@chipx86.com > > > > Review Board -http://www.reviewboard.org > > > > VMware, Inc. -http://www.vmware.com > > > > > On Tue, Sep 13, 2011 at 8:54 PM,RohiniKumarTharigonda > > > > wrote: > > > > > > I tried upgrading it to 1.5.6 to 1.6. > > > > > It gave error. Then came 1.6.1 immediately. > > > > > How can upgrade RB to 1.6 instead of 1.6