Re: Discussion about policy support.
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.
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
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
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
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
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?
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?
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
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.
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?
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.
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?
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 -~--~~~~--~~--~--~---