Archive

Author Archive

Meeting Minutes for April 7th, 2012

April 7, 2012 Leave a comment

Not Present: Curtis

Admin:

  • This was the last official meeting.
  • Students are encouraged to continue contributing to the Review Board community.
  • Optional post-mortem meeting scheduled for next week same time (Sat, April 14th – 5pm EST)

Meeting:

  • Anthony needs his outstanding requests reviewed.
  • Dave discovered selectstart for inline editor didn’t work in webkit.
  • Steve needs reviews on extension doc (r/2950) and Web Hooks (r/2855). Mike thinks Web Hooks should be Ship It!
  • Steve wants to discuss Review Bot, but it can be post UCOSP.
  • Wilson was having problems with the datagrid.
  • Mike suggested Wilson check out best-way-to-do-an-a-z-list-in-django
  • Jim needs someone to take a look at r/2966. His patch also had problems, but syncing with master should fix
  • Jim needs a ship it for r/3033
  • Mike will be ‘peeling’ into reviews today, including r/3033
  • Yazan’s issue summary table change has taken extra time due to lack of response on review requests.
  • Yazan’s incremental expansion had to be pushed back a bit, update will be posted tonight/tomorrow.
  • Weilul’s r/2891 patch has bitrotted, he’s going to fix this up.
  • Steering committee requires evaluations on the 12th, soft pencils down date is the 10th/11th.

In Closing:

  • Students should start thinking now about what can be improved for future students, and bring it up in post-mortem.
  • Big group hug, students and mentors were thanked.

Tracking Down the Origin of a Bug

March 31, 2012 Leave a comment

When something breaks, or you find a bug, it can be helpful to identify the commit which introduced the faulty code. Git comes with the ‘bisect’ command, which makes searching for that commit efficient.

Bisect helps automate a binary search through a series of commits, to find the earliest one which exhibits the problematic behaviour. After providing an initial ‘good’ commit without the bug, and a ‘bad’ commit which contains it, bisect will iteratively guess a commit and automatically check it out for you. After you test this checkout and identify if it is ‘good’ or ‘bad’, Git will guess the next commit, until it has identified the first ‘bad’ commit.

Here is an example of how to use bisect:

$ git bisect start
$ git bisect good [commit] # [commit] is the sha1/branch of a 'good' commit
$ git bisect bad  [commit] # [commit] is the sha1/branch of a 'bad' commit

Git will then checkout its guess, and output the commit information. You should then test the code, and indicate to Git if the commit contains the fault using:

$ git bisect good # OR
$ git bisect bad

After a number of iterations Git will output information on the offending commit, ex:

b047b02ea83310a70fd603dc8cd7a6cd13d15c04 is first bad commit
commit b047b02ea83310a70fd603dc8cd7a6cd13d15c04
Author: PJ Hyett
Date:   Tue Jan 27 14:48:32 2009 -0800

    secure this thing

:040000 040000 40ee3e7821b895e52c1695092db9bdc4c61d1730
f24d3c6ebcfc639b1a3814550e62d60b8e68a8e4 M  config

You should then run the following command to restore your repository to its state before you ran git bisect:

$ git bisect reset

This post is based off of the following:
http://book.git-scm.com/5_finding_issues_-_git_bisect.html
http://progit.org/book/ch6-5.html

Categories: Developer Tips and Tricks Tags: , , , ,

UCOSP Blog Post

March 26, 2012 1 comment

My experience with UCOSP has been very fulfilling thus far. I’ve met a lot of great people, and have enjoyed working on the Review Board project more than I ever would have expected. One of my favourite aspects of the program is the feeling that your contributions are significant; The code you write is distributed to and executed by real users. This is in stark contrast to the usual work which is done in university.

UCOSP gives you the chance to work on some really interesting projects, and I’d like to give on overview of what I’ve been working on thus far.

Review Bot:

The main project I’ve taken on for UCOSP is something I’ve dubbed “Review Bot”. The goal of Review Bot is to automatically execute static analysis tools on code that has been posted for review on Review Board. Basically, it will review code using external programs, and then post any issues it finds to Review Board.

Thinking through the design, and receiving feedback from the community looking to automate static analysis using Review Board, I came up with a plan of attack. My initial aspirations for Review Bot are illustrated below:

Review Bot of my dreams

How Review Bot was envisioned - Warning: Imagination Required

Yeah, that’s a code reviewing, go-go-gadget armed robot with a jet-pack. It reviews code written in any language, and can solve the halting problem. I considered allowing it to review its own code, but the risk of it becoming sentient and enslaving the human race was too great. But in all seriousness, I planned to make a highly versatile code reviewing bot, which other developers could extend to support the static analysis tools of their liking.

However, it can be hard to properly scope a project when dealing with an unfamiliar code base. I quickly realised this as I ventured deeper into Review Board’s API and extension support. Once I’d begun working through the implementation of Review Bot, it became apparent that my project was going to be a lot of work! Review Board lacked some of the features necessary to support the Review Bot I had envisioned. My first order of business was to fix this; I set out to extend the Web API and expand the feature set of the extension system.

Review Board’s extension system is powerful, young, and light in the documentation department. The lack of online documentation was a little worrisome at first, but prior developers had commented their code very well. Combine this with some very knowledgeable and helpful mentors, and hacking on extensions proved to be a blast. Even though Review Board is a mature code base, I was able to work on something fresh and exciting; you don’t have to worry about backwards compatibility when the feature isn’t in use yet. My time spent with the extension system has given me the expertise needed to document it, and my beginner’s guide for future developers is nearing completion.

All this related development has kept Review Bot on the back-burner for a lot of the term. To give you an idea of Review Bot’s current state, here is an artists rendering of the progress I’ve made:

What Review Bot can accomplish at the moment

What Review Bot can accomplish at the moment

All right, I might be selling myself a little short with that picture. While it is true that Review Bot can’t actually analyse any code yet, progress should be quick now that Review Board has the features needed to support it. By the end of the term Review Bot should be automatically analysing Python code with the pep8 style checker. Some features, such as allowing tools to analyse the entire code base and not just the modified files, had to be dropped – but I’m still happy with how the final product will look.

In Closing:

I really can’t stress how happy I am to be participating in this program, and I recommend it to any students given the opportunity to participate. I’d like to thank the UCOSP steering committee for organizing everything.  Also, a very big thank you to the Review Board mentors: Christian Hammond, David Trowbridge, and Mike Conley. These guys have made this experience awesome, and I really appreciate all the time and effort they have committed to the program.

Thanks for bearing with my artistic “ability”,

Steven MacLeod

Meeting Minutes – March 3, 2012

March 3, 2012 Leave a comment

All students and mentors present.

Minutes:

 

Admin:

  • Many had busy weeks, and didn’t accomplish much.
  • Static media change has landed, if things break on update see ChipX86.
    • if you use MEDIA_URL at all, you need to switch to STATIC_URL or {% static “path” %} in templates.

Round Robin:

  • ammok has no issues/blockers.
    • He hasn’t had a chance to consider the full-file review project yet.
  • Curtis has no issues/blockers.
  • happyface ran his ideas for the capabilities in rbtools by ChipX86.
    • Everything sounds good, ChipX86 wants to see the API he comes up with to make sure it’s future-proof.
  • purple_cow arrived to meeting.
  • jimrrchen hasn’t made much progress with rendering, wants more help from ChipX86.
    • Where code should be written was discussed.
    • jimrrchen will create a new template tag to render the diff.
    • jimrrchen will look at template tag examples in reviews/templatetags/reviewtags.py.
  • smacleod needs reviews on extension modifications (specifically r2907).
    • ChipX86 completed a review during meeting.
  • m_conley will be reviewing this week.
    • He insisted this be placed in the minutes.
  • weilul wanted to discuss purple_cow’s comment on review request r2891.
    • There is an issue when two drafts are made concurrently.
    • To avoid dealing with conflict resolution, the first draft published “wins”.
    • This will be ignored for now, and dealt with separately since the issue already exists.
  • H20 wanted discussion on options for his project (Issue 829)
    • Filtering by start character was suggested. There might be shortcomings with large user databases.
    • H20 will prototype and provide feedback / screenshots.
    • Django’s admin stuff might have some clever things H20 could copy.
  • medanat’s r2881 was on hold for changes which have gone in now, ChipX86 is looking in to it.

Post Meeting:

  • If you get ’Storage module “pipeline.storage” does not define a “PipelineCachedStorage” class.’ django_pipeline needs to be upgraded
    • run ‘python setup.py develop’ to fix this (or just upgrade django_pipeline).
Categories: Meeting Minutes Tags:

Status Reports – Feb 25, 2012

February 25, 2012 Leave a comment

Anthony

Status:

  • Addressed database optimization issues with issue tracker integration.

Next:

  • Submit local changes to the extension generator for code review.
  • Choose another project.

Roadblocks:

  • Addressed database optimization issues with issue tracker integration.

Curtis

Status:

  • Posted work in progress for social extension. r2900
  • Quite sick this past week.

Next Steps:

  • Continue working on extension.
  • Fix last comment from Christian in r2810.

Roadblocks:

  • Anthony – What was the command/commands to install an extension to a reviewboard instance again? I have used it once and have since forgotten. I will add it to the extension docs once I know it again for next time.
  • Is there a way to use a template hook to call a view instead of just rendering a template?

Dave

Status:

  • Posted review request for the better moved files project
  • Fixed issues brought up in reviews

Next Steps:

  • Look into other SCMs

Roadblocks:

  • None

Jim

Status:

  • ran into vm problems (corrupted vmdk file), luckily I recovered most of my files
  • not sure about how to render the diff’s, hence unable to put up screenshots, really need Christian/Daivd’s help

Next step:

  • speed up things quickly since I am quite behind in my progress because of the vm problem

Roadblocks:

  • need Christian/Daivd’s help with diff rendering

Steven

Status:

Next Steps:

  • Close off extension system upgrades
  • Update WebHooks and post a “final” review request
  • Put ReviewBot up for review

Roadblocks:

  • Extension admin sites is blocked on django bug (If someone could triage, that would be great) / redesign of recent actions log
  • WebHooks extensions is blocked on extension upgrades

Wei Lu

Status:

  • finished most of “tracking user changes” project; updated r/2891

Next step:

  • follow up with more comments incoming
  • choose another project

Roadblocks:

  • currently, none

Wilson

Status:

  • recovering from hospital visit

Next Steps:

  • look for a new project
  • possibly looking for a “ship it” designation on previous project

Roadblocks:

  • help finding a new project

Yazan

Status:

  • Upgrading to Django 1.4b
  • Started working on incremental expansion
  • Waiting on reviews for r2881, r889

Next Steps:

  • Submit moved summary table for feedback (after Django update)
  • Submit incremental expansion for review

Roadblocks:

  • None
Categories: Status Reports Tags:

Code Sprint and the future

January 25, 2012 Leave a comment

The code sprint was pretty awesome, I met a lot of great people and had a lot of fun. I’m really excited to be working on reviewboard.

Right away I started by fixing a small bug (Issue 2439), and then moved on to start work on the static analysis extension. Initially learning about the extension system, Anthony and I found and fixed another small bug (Review 2812). I’ve submitted another issue to the tracker which would require more work and design to fix (Issue 2462). This issue has been closed by purple_cow but I believe it might have been due to a misunderstanding, I will need to review this with him.

Currently I’m diving in to the design of the static analysis extension (which I’ve dubbed ReviewBot), and would like to have something up for review soon.

Categories: Uncategorized
Follow

Get every new post delivered to your Inbox.