Re: Discussion about policy support.

2009-08-11 Thread Helder Ribeiro

What kind of logic do you need? From the examples (screenshots) you
gave, I think simple prepositional logic would be enough. In that
case, I think the language could be a subset of Python, so you don't
need to come up with your own. All you would need are regular Python
logic operators and a mapping between the predicates you make
available on the web interface and boolean python functions. I'm
assuming predicates would be treated atomically and handled by your
code (check if name/arguments are right, so as not to allow arbitrary
functions to be called, and sanitization can be done inside the
function). Then you would need a propositional logic parser to make
sure the input is a valid (python boolean) expression, and eval it
from the database as needed. Would handle the use cases you have in
mind?

On Tue, Aug 11, 2009 at 6:01 PM, Eduardo
Felipe wrote:
> Hi there!
>
> I'm Eduardo and I'm working on Reviewboard for Google Summer of Code.
> My proposal included policy support, and as I was discussing it with
> Christian on IRC when he asked me to open up the discussion to the
> entire community.
>
> So, to quote (parts of) my proposal:
>
> 
>
> During the deployment of ReviewBoard in my last employer we've had to
> establish that no code is good until it was reviewed by at least three
> programmers, two being senior. Since currently there is no way to
> specify this in ReviewBoard reviews sometimes ended Close as submitted
> without the minimum reviews rule. Talking to everyone about it solved
> the problem, but in a large organization there should be a way to
> prevent users from breaking the rules.
>
> As such I propose, based on the suggestion on the Wiki, to create an
> admin module to allow arbitrary policies for common actions. In this
> way a rule could be created for anything, from reviewing, to updating
> a diff, to marking it "Ship it!" or allowing it to be closed, deleted
> or submitted, viewing a review request, reviewing it, joining a group,
> etc. covering all the aspects needed for policy support.
>
> A suggested implementation would be based on filters, AKA predicates,
> used to allow or disallow an specific action.
>
> The priority should be what users want the most, and the interface can
> be done in the regular way or providing a Domain Specific Language, a
> very reduced subset of python, much similar to Django's template
> engine.
>
> Optionally the access to repository could be based on user's
> permission, instead of a global repository permission, by using the
> user's own credential to the repository, adding an extra level of
> protection.
>
> 
>
> Now, to get to the good stuff:
>
> I think it is necessary to have a way of defining arbitrary rules
> based on the attributes of objects involved in an action.
> For instance, the objects involved in the action of "Close as
> submitted" is the user who is performing the action and the review he
> is performing it to.
>
> Now one could want to, for instance, create a rule such as "Review
> requests can only be closed as submitted if they have at least two
> ship-its". In order to express that in a neat way, I'm thinking about
> implementing what is called a "Predicate Editor" or "Expression
> Builder". I've attached a couple of examples so you can get a grip of
> what I'm thinking of doing.
>
> This predicate editor can test any aspect of pretty much any attribute
> of the objects involved in the action. So you can check things like
> "User belongs to group Foo" or even the negation as "User does not
> belong to group Foo", strings attributes such as "Review title
> contains BAR", date attributes "Review updated in the last 3 days",
> etc.
>
> By now you can imagine this is a complex feature. Indeed is so complex
> that having a Domain Specific Language for dealing with those
> predicates is NOT an overkill. The idea behind having a DSL is that we
> can store the predicates as text in the database, allowing them to be
> shared and migrate, but this DSL is not Python code, nor it should be,
> and as such it needs to be compiled down to python, evaluated and
> stored into memory, so they can be used to test actions later on.
>
> There is a limit of how far a regex based parser can go. If the DSL
> turns out to be a Context free language, regex simply won't be able to
> parse it. Now we can have two approaches for this problem:
> 1 - Create the DSL as an XML-type language, and use a XML parser + a
> custom DOM walker to generate the python code.
> 2 - Create a DSL thats more human friendly than XML, and use a
> compiler generator tool, like ANTRL, to generate a compiler that will
> in turn yield the python code.
>
> The advantage of approach 1 is that it won't need any external
> library, as python already have XML parsing libs included. The
> disadvantage of this approach is that I think it will be harder to
> build a parser for the web interface that also manipulates it. I could
> be wrong, but I've been burned before by XML in a browser,

Re: Discussion about policy support.

2009-08-11 Thread Tom Sakkos
I'm not exactly familiar with it, but from a quick Google search, I found a
ANTLR python runtime library...

http://www.antlr.org/download/Python

-Tom


On Tue, Aug 11, 2009 at 4:01 PM, Eduardo Felipe
wrote:

> Hi there!
>
> I'm Eduardo and I'm working on Reviewboard for Google Summer of Code.
> My proposal included policy support, and as I was discussing it with
> Christian on IRC when he asked me to open up the discussion to the
> entire community.
>
> So, to quote (parts of) my proposal:
>
> 
>
> During the deployment of ReviewBoard in my last employer we've had to
> establish that no code is good until it was reviewed by at least three
> programmers, two being senior. Since currently there is no way to
> specify this in ReviewBoard reviews sometimes ended Close as submitted
> without the minimum reviews rule. Talking to everyone about it solved
> the problem, but in a large organization there should be a way to
> prevent users from breaking the rules.
>
> As such I propose, based on the suggestion on the Wiki, to create an
> admin module to allow arbitrary policies for common actions. In this
> way a rule could be created for anything, from reviewing, to updating
> a diff, to marking it "Ship it!" or allowing it to be closed, deleted
> or submitted, viewing a review request, reviewing it, joining a group,
> etc. covering all the aspects needed for policy support.
>
> A suggested implementation would be based on filters, AKA predicates,
> used to allow or disallow an specific action.
>
> The priority should be what users want the most, and the interface can
> be done in the regular way or providing a Domain Specific Language, a
> very reduced subset of python, much similar to Django's template
> engine.
>
> Optionally the access to repository could be based on user's
> permission, instead of a global repository permission, by using the
> user's own credential to the repository, adding an extra level of
> protection.
>
> 
>
> Now, to get to the good stuff:
>
> I think it is necessary to have a way of defining arbitrary rules
> based on the attributes of objects involved in an action.
> For instance, the objects involved in the action of "Close as
> submitted" is the user who is performing the action and the review he
> is performing it to.
>
> Now one could want to, for instance, create a rule such as "Review
> requests can only be closed as submitted if they have at least two
> ship-its". In order to express that in a neat way, I'm thinking about
> implementing what is called a "Predicate Editor" or "Expression
> Builder". I've attached a couple of examples so you can get a grip of
> what I'm thinking of doing.
>
> This predicate editor can test any aspect of pretty much any attribute
> of the objects involved in the action. So you can check things like
> "User belongs to group Foo" or even the negation as "User does not
> belong to group Foo", strings attributes such as "Review title
> contains BAR", date attributes "Review updated in the last 3 days",
> etc.
>
> By now you can imagine this is a complex feature. Indeed is so complex
> that having a Domain Specific Language for dealing with those
> predicates is NOT an overkill. The idea behind having a DSL is that we
> can store the predicates as text in the database, allowing them to be
> shared and migrate, but this DSL is not Python code, nor it should be,
> and as such it needs to be compiled down to python, evaluated and
> stored into memory, so they can be used to test actions later on.
>
> There is a limit of how far a regex based parser can go. If the DSL
> turns out to be a Context free language, regex simply won't be able to
> parse it. Now we can have two approaches for this problem:
> 1 - Create the DSL as an XML-type language, and use a XML parser + a
> custom DOM walker to generate the python code.
> 2 - Create a DSL thats more human friendly than XML, and use a
> compiler generator tool, like ANTRL, to generate a compiler that will
> in turn yield the python code.
>
> The advantage of approach 1 is that it won't need any external
> library, as python already have XML parsing libs included. The
> disadvantage of this approach is that I think it will be harder to
> build a parser for the web interface that also manipulates it. I could
> be wrong, but I've been burned before by XML in a browser, and I
> started using JSON, which is more "javascript friendly".
>
> Using the second approach is easier to build a small, readable,
> parseable language, but in order to compile it down to python we would
> need to include an external resource, such as a runtime lib for ANTRL,
> and that could have a great onus for the developers (the install of
> ANTLR is kinda of a PITA).
>
> This is a hard decision, so I would very much appreciate you input on
> it. If there is a policy wanted that a predicate engine would not be
> able to check, please let me know so we can figure something else out.
>
> Thanks a lot.
>
> Eduardo.
>
> >
>

--~--~-~--~-

Re: Sourcegear Vault

2009-08-11 Thread Christian Hammond
Hi,

Path is the path to the file in the repository. If the path in the diff is
always going to be absolute, then you can completely ignore base_path and
just use path. We use base_path for Subversion, where the filenames in the
diff are relative to the current directory rather than the root of the
repository. We then append path to base_path to generate that absolute path.

Christian

-- 
Christian Hammond - chip...@chipx86.com
Review Board - http://www.review-board.org
VMware, Inc. - http://www.vmware.com


On Tue, Aug 11, 2009 at 10:54 AM, schuijo  wrote:

>
> Christian,
>
> Ok...I think I've severely bitten off more than I can chew, but I'm
> trying to forge my way through this.  I've been modifying post-review
> to add Vault support, and appear to have it working to the point where
> it seems to be attempting to contact the Vault server while uploading
> the diff.  The point I'm a little lost/confused on is how to represent
> Vault in the RepositoryInfo class.  What exactly are path and
> base_path and how are they used?  (hopefully this will help me to
> determine what need to be populated in there for Vault)
>
> Thanks!
>
>
> On Jul 28, 4:05 pm, Christian Hammond  wrote:
> > There are some threads on the mailing list about doing this, but they're
> not
> > exactly step-by-step tutorials. The best reference right now is the
> > scmtools/*.py files.
> >
> > Basically, you'll create a subclass of SCMTool that does the following:
> >
> > 1) Grabs a file from a repository, given a file path and revision.
> > 2) Provide a DiffParser subclass that handles pulling out filenames and
> > revisions and any other necessary data from a diff (most of the code for
> all
> > this is common, so you just hook into things -- see the other files for
> > examples).
> > 3) If Vault has a concept of server-side changesets (you register a
> > changeset with a description, and other data, and the server always knows
> > what you have checked out on the client) then you'll need to implement
> > get_changeset().
> >
> > So the general model is that this code will have three classes:
> >
> > 1) VaultTool
> > 2) VaultDiffParser
> > 3) VaultClient
> >
> > VaultTool will be a subclass of SCMTool and will be what Review Board
> talks
> > to.
> >
> > VaultDiffParser will be a subclass of DiffParser and will override
> functions
> > to parse revision info out of a diff.
> >
> > VaultClient will be a wrapper around the command line tool, which
> > VaultClient will talk to.
> >
> > Now, let's talk diffs. Many revision control systems provide tools that
> > generate diffs unsuitable for Review Board, and sometimes we have to work
> > around them. If vault's tool generates a diff containing revision
> > information for a file that can be used to pull data from the repository,
> > then we're good. If not, you'll need to implement this in post-review.
> > Basically, generate a custom diff, or post-process the generated diff, to
> > stuff revision information in. Then VaultDiffParser will parse that out.
> > You'll see this done for Perforce and many others in post-review.
> >
> > Christian
> >
> > --
> > Christian Hammond - chip...@chipx86.com
> > Review Board -http://www.review-board.org
> > VMware, Inc. -http://www.vmware.com
> >
> >
> >
> > On Tue, Jul 28, 2009 at 1:42 PM, schuijo  wrote:
> >
> > > I couldn't locate a Python API for Vault, but they do have a command
> > > line tool.  Is there a document or thread detailing how to implement
> > > the interface?
> >
> > > Thanks!
> >
> > > On Jul 28, 3:00 pm, Christian Hammond  wrote:
> > > > Not to my knowledge. Some have talked about wanting it, but I don't
> know
> > > if
> > > > anyone's working on it. If you'd like to work on it, we'll provide
> > > guidance.
> >
> > > > The only real requirement is that there's a command line tool or
> Python
> > > API
> > > > for grabbing a file from a remote server. Everything else can be done
> by
> > > us.
> > > > It does help, though, if the tool/API can generate a suitable diff,
> or at
> > > > least one we can post-process.
> >
> > > > Christian
> >
> > > > --
> > > > Christian Hammond - chip...@chipx86.com
> > > > Review Board -http://www.review-board.org
> > > > VMware, Inc. -http://www.vmware.com
> >
> > > > On Tue, Jul 28, 2009 at 12:12 PM, schuijo  wrote:
> >
> > > > > Is anyone working on support for Sourcegear's Vault?
> >
> > > > > Thanks!
> >
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To post to this group, send email to reviewboard@googlegroups.com
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: Something broke! (Error 500) after adding new Git repository

2009-08-11 Thread Scott Ferguson

Just an FYI, I discovered when poking through the debug info that the
same ImportError exception is thrown when Git is not configured in
your path (I'm running Review-Board on Windows).  All is working for
me now.

On Aug 10, 9:55 am, Scott Ferguson  wrote:
> I'm also having this same issue.  Could you please elaborate on the
> fix?
>
> On Jul 14, 5:57 pm, wezyde  wrote:
>
>
>
> > Looks like it was an error in the paths.  I had to enter some
> > additional information in the mirror and also create anewlocal
> > clone.
>
> > Working now though.
>
> > Thanks for the help.
>
> > On Jul 14, 3:26 pm, wezyde  wrote:
>
> > > I just ran...
> > > "git --git-dir=/var/git/repositories/k2.git config
> > > core.repositoryformatversion"
>
> > > and it responded with...
> > > 0
>
> > > I'm not a python expert, but hopefully that is the command.
>
> > > In my repository setup I have
> > > /var/git/repositories/k2.git
>
> > > Thanks.
>
> > > On Jul 14, 3:03 pm, Christian Hammond  wrote:
>
> > > > Actually, it looks like it had trouble with the repository it was 
> > > > configured
> > > > with.
>
> > > > The relevant code is:
>
> > > >     def __init__(self, path):
> > > >         self.path = path
> > > >         p = subprocess.Popen(
> > > >             ['git', '--git-dir=%s' % self.path, 'config',
> > > >                  'core.repositoryformatversion'],
> > > >             stderr=subprocess.PIPE,
> > > >             stdout=subprocess.PIPE,
> > > >             close_fds=(os.name != 'nt')
> > > >         )
> > > >         contents = p.stdout.read()
> > > >         errmsg = p.stderr.read()
> > > >         failure = p.wait()
>
> > > >         if failure:
> > > >             raise ImportError
>
> > > > So maybe try executing that same command and making sure it works on the
> > > > exact path specified in your repository info.
>
> > > > Christian
>
> > > > --
> > > > Christian Hammond - chip...@chipx86.com
> > > >ReviewBoard -http://www.review-board.org
> > > > VMware, Inc. -http://www.vmware.com
>
> > > > On Tue, Jul 14, 2009 at 3:02 PM, wezyde  wrote:
>
> > > > > I definitely have Git on the server.  I'm using it for many projects.
> > > > > Is is possible that there is an issue with permissions for the apache
> > > > > user?
>
> > > > > On Jul 14, 2:41 pm, Christian Hammond  wrote:
> > > > > > Looks like git isn't installed on that server.
>
> > > > > > We're going to put in better error messages for such failure cases 
> > > > > > in
> > > > > 1.1,
> > > > > > but for now, make sure git is installed and in the path.
>
> > > > > > Christian
>
> > > > > > --
> > > > > > Christian Hammond - chip...@chipx86.com
> > > > > >ReviewBoard -http://www.review-board.org
> > > > > > VMware, Inc. -http://www.vmware.com
>
> > > > > > On Tue, Jul 14, 2009 at 2:38 PM, wezyde  
> > > > > > wrote:
>
> > > > > > > I just installed reviewboard on a Ubuntu box and things were 
> > > > > > > running
> > > > > > > well.  Once I add anewgit repository and click on "NewReview
> > > > > > > Request" I get theSomethingBroke! page.
>
> > > > > > > Can anyone help with this?
>
> > > > > > > Thanks.
>
> > > > > > > Traceback (most recent call last):
>
> > > > > > >  File "/usr/local/lib/python2.6/dist-packages/Django-1.0.2_final-
> > > > > > > py2.6.egg/django/core/handlers/base.py", line 86, in get_response
> > > > > > >    response = callback(request, *callback_args, **callback_kwargs)
>
> > > > > > >  File 
> > > > > > > "/usr/local/lib/python2.6/dist-packages/Djblets-0.5-py2.6.egg/
> > > > > > > djblets/auth/util.py", line 45, in _checklogin
> > > > > > >    return view_func(request, *args, **kwargs)
>
> > > > > > >  File "/usr/local/lib/python2.6/dist-packages/ReviewBoard-1.0-
> > > > > > > py2.6.egg/reviewboard/reviews/views.py", line 84, in
> > > > > > > new_review_request
> > > > > > >    fields[repo.id] = repo.get_scmtool().get_fields()
>
> > > > > > >  File "/usr/local/lib/python2.6/dist-packages/ReviewBoard-1.0-
> > > > > > > py2.6.egg/reviewboard/scmtools/models.py", line 40, in get_scmtool
> > > > > > >    return cls(self)
>
> > > > > > >  File "/usr/local/lib/python2.6/dist-packages/ReviewBoard-1.0-
> > > > > > > py2.6.egg/reviewboard/scmtools/git.py", line 18, in __init__
> > > > > > >    self.client = GitClient(repository.path)
>
> > > > > > >  File "/usr/local/lib/python2.6/dist-packages/ReviewBoard-1.0-
> > > > > > > py2.6.egg/reviewboard/scmtools/git.py", line 170, in __init__
> > > > > > >    raise ImportError
>
> > > > > > > ImportError
>
> > > > > > >  > > > > > > path:/r/new/,
> > > > > > > GET:,
> > > > > > > POST:,
> > > > > > > COOKIES:{'rbsessionid': 'a343a2ba1857c6035cfdd714e3e473c8'},
> > > > > > > META:{'AUTH_TYPE': None,
> > > > > > >  'CONTENT_LENGTH': 0L,
> > > > > > >  'CONTENT_TYPE': None,
> > > > > > >  'GATEWAY_INTERFACE': 'CGI/1.1',
> > > > > > >  'HTTP_ACCEPT': 'application/xml,application/xhtml+xml,text/
> > > > > > > html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',
> > > > > > >  'HTTP_ACCEPT_CHARSET': 'ISO-8

Re: Sourcegear Vault

2009-08-11 Thread schuijo

Christian,

Ok...I think I've severely bitten off more than I can chew, but I'm
trying to forge my way through this.  I've been modifying post-review
to add Vault support, and appear to have it working to the point where
it seems to be attempting to contact the Vault server while uploading
the diff.  The point I'm a little lost/confused on is how to represent
Vault in the RepositoryInfo class.  What exactly are path and
base_path and how are they used?  (hopefully this will help me to
determine what need to be populated in there for Vault)

Thanks!


On Jul 28, 4:05 pm, Christian Hammond  wrote:
> There are some threads on the mailing list about doing this, but they're not
> exactly step-by-step tutorials. The best reference right now is the
> scmtools/*.py files.
>
> Basically, you'll create a subclass of SCMTool that does the following:
>
> 1) Grabs a file from a repository, given a file path and revision.
> 2) Provide a DiffParser subclass that handles pulling out filenames and
> revisions and any other necessary data from a diff (most of the code for all
> this is common, so you just hook into things -- see the other files for
> examples).
> 3) If Vault has a concept of server-side changesets (you register a
> changeset with a description, and other data, and the server always knows
> what you have checked out on the client) then you'll need to implement
> get_changeset().
>
> So the general model is that this code will have three classes:
>
> 1) VaultTool
> 2) VaultDiffParser
> 3) VaultClient
>
> VaultTool will be a subclass of SCMTool and will be what Review Board talks
> to.
>
> VaultDiffParser will be a subclass of DiffParser and will override functions
> to parse revision info out of a diff.
>
> VaultClient will be a wrapper around the command line tool, which
> VaultClient will talk to.
>
> Now, let's talk diffs. Many revision control systems provide tools that
> generate diffs unsuitable for Review Board, and sometimes we have to work
> around them. If vault's tool generates a diff containing revision
> information for a file that can be used to pull data from the repository,
> then we're good. If not, you'll need to implement this in post-review.
> Basically, generate a custom diff, or post-process the generated diff, to
> stuff revision information in. Then VaultDiffParser will parse that out.
> You'll see this done for Perforce and many others in post-review.
>
> Christian
>
> --
> Christian Hammond - chip...@chipx86.com
> Review Board -http://www.review-board.org
> VMware, Inc. -http://www.vmware.com
>
>
>
> On Tue, Jul 28, 2009 at 1:42 PM, schuijo  wrote:
>
> > I couldn't locate a Python API for Vault, but they do have a command
> > line tool.  Is there a document or thread detailing how to implement
> > the interface?
>
> > Thanks!
>
> > On Jul 28, 3:00 pm, Christian Hammond  wrote:
> > > Not to my knowledge. Some have talked about wanting it, but I don't know
> > if
> > > anyone's working on it. If you'd like to work on it, we'll provide
> > guidance.
>
> > > The only real requirement is that there's a command line tool or Python
> > API
> > > for grabbing a file from a remote server. Everything else can be done by
> > us.
> > > It does help, though, if the tool/API can generate a suitable diff, or at
> > > least one we can post-process.
>
> > > Christian
>
> > > --
> > > Christian Hammond - chip...@chipx86.com
> > > Review Board -http://www.review-board.org
> > > VMware, Inc. -http://www.vmware.com
>
> > > On Tue, Jul 28, 2009 at 12:12 PM, schuijo  wrote:
>
> > > > Is anyone working on support for Sourcegear's Vault?
>
> > > > Thanks!
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To post to this group, send email to reviewboard@googlegroups.com
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: X.509 Certificate Authentication

2009-08-11 Thread Thilo-Alexander Ginkel

On Mon, Aug 3, 2009 at 06:44, Nathan Heijermans  wrote:
>> This basically sound like what I intend to implement. Would you mind sharing
>> some patches?
>
> I just uploaded my patch to http://reviews.review-board.org/r/938/.

Thanks! I will try your changes once I have updated my RB installation
to a current version.

Regards,
Thilo

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To post to this group, send email to reviewboard@googlegroups.com
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: How to connect comments and changes?

2009-08-11 Thread Scott Quesnelle
Hey Philipp,

When you post a comment, instead of clicking on a single line, you can click
and drag over a group of lines, and then that whole set of lines shows up
for extra context.

We have found its useful to have that functionality since it allows the user
to tailor the amount of context necessary for the comments.

Scott

On Tue, Aug 11, 2009 at 10:42 AM, Philipp Henkel
wrote:

>
> Hi Christian,
>
> Thanks for pointing out that the diff viewer is not the right place
> for tracking changes and discussions.
> I understand that tracking comments across revisions is difficult.
> However, I was asking because some of the commercial review tools
> provide such functionality.
> If it is recommended to use mainly the review request page I have
> another first-time user question: Would it be possible to show more
> code context on this page? One line of code is fairly small in the
> context of a big review session.
>
> Best regards,
> Philipp
>
> On Aug 7, 10:37 pm, Christian Hammond  wrote:
> > Hi Philipp,
> >
> > All the discussion on a series of changes takes place on the review
> > request's page. You shouldn't really use the diff viewer for this.
> Migrating
> > comments across revisions of a diff is incredibly hard and impossible to
> do
> > successfully, consistently. You can't guarantee the lines will match up
> in
> > any way, and you could end up dropping comments or moving them onto the
> > wrong lines. They also might just be irrelevant.
> >
> > We don't have any plans at all to even attempt something like this, as
> > that's really what the review request page is for. You can see a timeline
> of
> > all the reviews, the affected code, and you can always click on the
> header
> > for the block of code to jump to the right place in the diff.
> >
> > Christian
> >
> > --
> > Christian Hammond - chip...@chipx86.com
> > Review Board -http://www.review-board.org
> > VMware, Inc. -http://www.vmware.com
> >
> > On Fri, Aug 7, 2009 at 6:29 AM, Philipp Henkel  >wrote:
> >
> >
> >
> > > Hello,
> >
> > > I'm new to Review Board and I would like to use it in combination with
> > > Perforce and post-review.
> >
> > > There seems to be no strong connection of comments and code changes.
> > > In Diff View comments seem to be bound to single diffs. When you add a
> > > new diff it is difficult to match old comments and new changes because
> > > you don't see the previous comments. Questions like "Is every issue
> > > addressed?" or "What is the reason for that change?" cannot be
> > > answered immediately. You always have to go back to one of the
> > > previous diffs and search for the discussion.
> >
> > > Our current review work flow is like this:
> > > 1. Create new request: add a large diff using post-review (might be a
> > > complete new feature)
> > > 2. Reviewer and Coder add comments to this diff
> > > 3. Coder applies changes and adds an updated diff using post-review
> > > 4. Reviewer is satisfied -> go to 5   or  next iteration is started ->
> > > go to 2.
> > > 5. Review done
> >
> > > I know that RB is optimized for pre-commits and I assume that those
> > > pre-commits reviews tend to be much smaller than post-commits ones.
> > > However, perhaps there is a simple solution to my problem if I
> > > slightly change the work flow. Did I overlook something? Is it
> > > possible to show older comments in the latest diff? Would this be a
> > > nice feature?
> >
> > > Best regards,
> > > Philipp
> >
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To post to this group, send email to reviewboard@googlegroups.com
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: How to connect comments and changes?

2009-08-11 Thread Philipp Henkel

Hi Christian,

Thanks for pointing out that the diff viewer is not the right place
for tracking changes and discussions.
I understand that tracking comments across revisions is difficult.
However, I was asking because some of the commercial review tools
provide such functionality.
If it is recommended to use mainly the review request page I have
another first-time user question: Would it be possible to show more
code context on this page? One line of code is fairly small in the
context of a big review session.

Best regards,
Philipp

On Aug 7, 10:37 pm, Christian Hammond  wrote:
> Hi Philipp,
>
> All the discussion on a series of changes takes place on the review
> request's page. You shouldn't really use the diff viewer for this. Migrating
> comments across revisions of a diff is incredibly hard and impossible to do
> successfully, consistently. You can't guarantee the lines will match up in
> any way, and you could end up dropping comments or moving them onto the
> wrong lines. They also might just be irrelevant.
>
> We don't have any plans at all to even attempt something like this, as
> that's really what the review request page is for. You can see a timeline of
> all the reviews, the affected code, and you can always click on the header
> for the block of code to jump to the right place in the diff.
>
> Christian
>
> --
> Christian Hammond - chip...@chipx86.com
> Review Board -http://www.review-board.org
> VMware, Inc. -http://www.vmware.com
>
> On Fri, Aug 7, 2009 at 6:29 AM, Philipp Henkel 
> wrote:
>
>
>
> > Hello,
>
> > I'm new to Review Board and I would like to use it in combination with
> > Perforce and post-review.
>
> > There seems to be no strong connection of comments and code changes.
> > In Diff View comments seem to be bound to single diffs. When you add a
> > new diff it is difficult to match old comments and new changes because
> > you don't see the previous comments. Questions like "Is every issue
> > addressed?" or "What is the reason for that change?" cannot be
> > answered immediately. You always have to go back to one of the
> > previous diffs and search for the discussion.
>
> > Our current review work flow is like this:
> > 1. Create new request: add a large diff using post-review (might be a
> > complete new feature)
> > 2. Reviewer and Coder add comments to this diff
> > 3. Coder applies changes and adds an updated diff using post-review
> > 4. Reviewer is satisfied -> go to 5   or  next iteration is started ->
> > go to 2.
> > 5. Review done
>
> > I know that RB is optimized for pre-commits and I assume that those
> > pre-commits reviews tend to be much smaller than post-commits ones.
> > However, perhaps there is a simple solution to my problem if I
> > slightly change the work flow. Did I overlook something? Is it
> > possible to show older comments in the latest diff? Would this be a
> > nice feature?
>
> > Best regards,
> > Philipp
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To post to this group, send email to reviewboard@googlegroups.com
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: View Diff shows blank screen

2009-08-11 Thread Christian Hammond
Almost sounds like PySVN is crashing or something. Otherwise, some exception
would be shown, and you'd see *something* on the screen.

Which distro is this, and what method did you use for installing both libsvn
and pysvn?

Are you using http, https, svn://, or svn+ssh:// for the SVN repository?

One thing to try is to open up a python console and type the following:

import pysvn
client = pysvn.Client()

# If you have a username and password configured, specify the lines
below. Otherwise, don't type them.
client.set_default_username("YOUR_REPO_USERNAME")
client.set_default_password("YOUR_REPO_PASSWORD")

# Specify the full path to the file below, with the repository path
included.
data = client.cat("YOUR_FILE_PATH_WITH_REPO", "REVISION_TO_FETCH")
print data

If this crashes, you'll see some sort of useful error. Ideally, you should
use the same data you're giving to Review Board.

Christian

-- 
Christian Hammond - chip...@chipx86.com
Review Board - http://www.review-board.org
VMware, Inc. - http://www.vmware.com


On Mon, Aug 10, 2009 at 4:34 AM, Geetanjali  wrote:

>
> After some debugging I found that the execution does not continue
> after the following line in scmtools/svn.py -
>
> data = self.client.cat(normpath, normrev)
>
> The variables normpath and normrev contain correct values and if the
> same values are used in a test program to get the data using pysvn, I
> get the output on screen. I am not sure what the issue is when using
> pysvn with reviewboard.
>
> Regards,
> Geetanjali
>
> On Aug 10, 11:13 am, Geetanjali  wrote:
> > Hi Christian,
> >
> > Thanks for the response.
> > I am using firefox with firebug plugin. There is no error displayed on
> > the page. Also, the HTML source is blank.
> > I guess there is some exception occurring at the Server and the HTML
> > is not getting generated. However, I am not able to debug any further.
> > Where can I see the logs ? Do I need to change any settings to see the
> > logs ?
> >
> > Thanks,
> > Geetanjali.
> >
> > On Aug 8, 2:53 am, Christian Hammond  wrote:
> >
> > > Does the JavaScript console show any errors for the page?
> >
> > > Is this with Firefox? Installing the Firebug plugin may provide some
> more
> > > useful information.
> >
> > > Also, is there any content on the page at all? If you view the source,
> is it
> > > empty?
> >
> > > Christian
> >
> > > --
> > > Christian Hammond - chip...@chipx86.com
> > > Review Board -http://www.review-board.org
> > > VMware, Inc. -http://www.vmware.com
> >
> > > On Thu, Aug 6, 2009 at 4:58 AM, Geetanjali 
> wrote:
> >
> > > > Hi,
> >
> > > > I have installed RB on linux for a project using subversion.
> > > > After creating a review request, on clicking View Diff, I get a blank
> > > > screen. The URL points to - http:///r/5/diff/
> > > > #index_header
> >
> > > > There are no error messages in the logs. I have installed pysvn 1.6.3
> > > > Can you please suggest any pointers to solve this issue.
> >
> > > > Thanks a lot.
> >
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To post to this group, send email to reviewboard@googlegroups.com
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: Can't create tunnel: The system cannot find the file specified.

2009-08-11 Thread Pate

We need .Net in our dev project so linux is not an option as only
server, and running two virtual servers seems quite redundant.
I'll report back here if I found the solution.

Thanks for your time.

- Pate

On Aug 11, 10:11 am, Christian Hammond  wrote:
> Yeah, the logging defaults need fixing.
>
> Oh, so the error message you're seeing is on the form then, by the field.
>
> I haven't seen this issue before and don't have any immediate advice. Sorry
> to say but you'll probably have to do most of the investigatory work on this
> one :/
>
> Have you considered installing in a Linux VM instead?
>
> Christian
>
> --
> Christian Hammond - chip...@chipx86.com
> Review Board -http://www.review-board.org
> VMware, Inc. -http://www.vmware.com
>
> On Mon, Aug 10, 2009 at 11:49 PM, Pate  wrote:
>
> > I haven't been able to find any error log for this error. Apaches
> > access.log shows that the requests return code 200. I have set the
> > debug=True for the site and this has worked for some other issues
> > (namely the pysvn-problem), and I have set the logging enabled from
> > the admin dashboard but nothing is generated to the /
> > logs.
>
> > Any ideas how the logging should be enabled? it seems quite strange to
> > me that the dashboard requests a explixit logging path but still there
> > is the "logs"-folder under the site by default.
>
> > - Pate
>
> > On Aug 11, 9:40 am, Christian Hammond  wrote:
> > > Hi Pate,
>
> > > Can you show us the entire error log?
>
> > > I haven't seen this problem yet.
>
> > > Christian
>
> > > --
> > > Christian Hammond - chip...@chipx86.com
> > > Review Board -http://www.review-board.org
> > > VMware, Inc. -http://www.vmware.com
>
> > > On Mon, Aug 10, 2009 at 10:49 PM, Pate  wrote:
>
> > > > Hi,
>
> > > > I have a problem when trying to create a new review request. Review
> > > > Board is installed in a XP virtual machine using MySQL, Apache and
> > > > memcached. Source control method is Subversion. I followed the
> > > > instructions concerning windows installation in the Administration
> > > > Guide (1) and then did some additional steps from (2) to get it
> > > > working. The whole process seems erratic as I wasn't able to find all
> > > > pre-requirements for review board (sych as modpython etc) until I
> > > > manually checked apache logs etc.
>
> > > > The actual problem I have is that whenever I try to create a new
> > > > review request, after filling the three details and clicking "Create
> > > > Review Request", the same page displays again with the error message:
> > > > "Can't create tunnel: The system cannot find the file specified." I
> > > > tried enablling logging for review board but couldn't find the log
> > > > files anywhere. When I googled the error, it seems to be ssh-issue
> > > > related to svn. Something about ssh.exe missing or something, but
> > > > tried several suggested fixes and none of them worked. When adding
> > > > "review  board" to the query, there weren't any results.
>
> > > > Any ideas what might be wrong?
>
> > > > - Pate
>
> > > > 1)
> >http://www.review-board.org/docs/manual/dev/admin/installation/windows/
> > > > 2)
> > > >http://waveydavey.wordpress.com/home/computing/installing-review-boar.
> > ..
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To post to this group, send email to reviewboard@googlegroups.com
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: Extension API?

2009-08-11 Thread Christian Hammond
Oh, another thing that could be relevant to this work.

One of our Summer of Code students, Helder Ribeiro, is working on webhook
support that will basically allow you to configure a URL that Review Board
will POST to on new review requests, updates, reviews, etc. Your script can
take this info and then do something, such as grab the latest diff from
Review Board and feed it to buildbot. This will probably work perfectly fine
for buildbot. The code checking guidelines would require use of the JSON API
to post the reviews, but that's also doable.

Christian

-- 
Christian Hammond - chip...@chipx86.com
Review Board - http://www.review-board.org
VMware, Inc. - http://www.vmware.com


On Mon, Aug 10, 2009 at 7:47 PM, Sebastien Douche  wrote:

>
> Hi there,
>  I want to know the state of extension project. I need to work on 2
> extensions:
>
> - checking code (guidelines...)
> - integration with buildbot
>
> --
> Sebastien Douche 
> Twitter: http://bit.ly/afkrK (agile, python, open source)
>
> >
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To post to this group, send email to reviewboard@googlegroups.com
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: Can't create tunnel: The system cannot find the file specified.

2009-08-11 Thread Christian Hammond
Yeah, the logging defaults need fixing.

Oh, so the error message you're seeing is on the form then, by the field.

I haven't seen this issue before and don't have any immediate advice. Sorry
to say but you'll probably have to do most of the investigatory work on this
one :/

Have you considered installing in a Linux VM instead?

Christian

-- 
Christian Hammond - chip...@chipx86.com
Review Board - http://www.review-board.org
VMware, Inc. - http://www.vmware.com


On Mon, Aug 10, 2009 at 11:49 PM, Pate  wrote:

>
> I haven't been able to find any error log for this error. Apaches
> access.log shows that the requests return code 200. I have set the
> debug=True for the site and this has worked for some other issues
> (namely the pysvn-problem), and I have set the logging enabled from
> the admin dashboard but nothing is generated to the /
> logs.
>
> Any ideas how the logging should be enabled? it seems quite strange to
> me that the dashboard requests a explixit logging path but still there
> is the "logs"-folder under the site by default.
>
> - Pate
>
> On Aug 11, 9:40 am, Christian Hammond  wrote:
> > Hi Pate,
> >
> > Can you show us the entire error log?
> >
> > I haven't seen this problem yet.
> >
> > Christian
> >
> > --
> > Christian Hammond - chip...@chipx86.com
> > Review Board -http://www.review-board.org
> > VMware, Inc. -http://www.vmware.com
> >
> > On Mon, Aug 10, 2009 at 10:49 PM, Pate  wrote:
> >
> > > Hi,
> >
> > > I have a problem when trying to create a new review request. Review
> > > Board is installed in a XP virtual machine using MySQL, Apache and
> > > memcached. Source control method is Subversion. I followed the
> > > instructions concerning windows installation in the Administration
> > > Guide (1) and then did some additional steps from (2) to get it
> > > working. The whole process seems erratic as I wasn't able to find all
> > > pre-requirements for review board (sych as modpython etc) until I
> > > manually checked apache logs etc.
> >
> > > The actual problem I have is that whenever I try to create a new
> > > review request, after filling the three details and clicking "Create
> > > Review Request", the same page displays again with the error message:
> > > "Can't create tunnel: The system cannot find the file specified." I
> > > tried enablling logging for review board but couldn't find the log
> > > files anywhere. When I googled the error, it seems to be ssh-issue
> > > related to svn. Something about ssh.exe missing or something, but
> > > tried several suggested fixes and none of them worked. When adding
> > > "review  board" to the query, there weren't any results.
> >
> > > Any ideas what might be wrong?
> >
> > > - Pate
> >
> > > 1)
> http://www.review-board.org/docs/manual/dev/admin/installation/windows/
> > > 2)
> > >http://waveydavey.wordpress.com/home/computing/installing-review-boar.
> ..
> >
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To post to this group, send email to reviewboard@googlegroups.com
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: Extension API?

2009-08-11 Thread Christian Hammond
Hi Sebastien,

The plan is to put it into either a 1.5 or 2.0 release (depending on some
other factors).

Right now, we're working on 1.1, which has a couple more features going into
it before we begin the alpha/beta/rc/release cycle. There will probably be a
1.2 after that, which would be a mostly short release. I believe the
following would end up being 1.5/2.0.

The extension code exists as a private branch on git.review-board.org right
now. We can make it public, but there are a few important things to note:

1) This is not updated for Review Board 1.0.1 or SVN. It won't track HEAD
very often (though, using Git, you're free to merge and resolve conflicts in
your tree).
2) Absolutely nothing in the current extension API is set in stone, and is
definitely subject to change without notice.
3) A lot of functionality simply does not exist yet. Many things will, but
it's likely that you'll need to add new hooks into Review Board for the
things you need.
4) We can't actually support anything on this branch. If stuff horribly
breaks, we'll accept patches for fixes, but it's not going to be a priority
for us yet.

Now, all that being said, if you're fine with dealing with all that, we
wouldn't mind having someone begin work and figure out what will be needed
in the extension API. It should just be considered *highly* experimental,
and mostly broken.

I'm actually technically on vacation this week, so I won't be able to make
this public this week, but let me know.

Christian

-- 
Christian Hammond - chip...@chipx86.com
Review Board - http://www.review-board.org
VMware, Inc. - http://www.vmware.com


On Mon, Aug 10, 2009 at 7:47 PM, Sebastien Douche  wrote:

>
> Hi there,
>  I want to know the state of extension project. I need to work on 2
> extensions:
>
> - checking code (guidelines...)
> - integration with buildbot
>
> --
> Sebastien Douche 
> Twitter: http://bit.ly/afkrK (agile, python, open source)
>
> >
>

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To post to this group, send email to reviewboard@googlegroups.com
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
-~--~~~~--~~--~--~---