Why not end the semester the same way we started it? Today we had another regular OpenHatch sprint!

End of Term Sprint

At today's sprint, we cleaned up a number of loose ends: all of my outstanding pull requests were merged and I polished up our deliverables in order to "put a bow on" our final product. I completed the usual chores of reviewing and merging others' pull requests.

I also had the pleasure of mentoring a new friend and colleague, Kristina Foster, who I met at a Women Who Code meetup! Kristina is generally awesome, and works as a designer for a local company. We spent some time getting her Windows laptop set up with the oh-mainline code, learned a bit of git, and by the end of the day, I helped walk her through making her first contribution to an open source project! I'm so happy that I was able to help her achieve this. She did so well!



Figure 1: Kristina's contribution

Development

As we reached the end of the development period, Asheesh and I worked on the most advanced features of the project and wrapped up our final deliverables. I think I speak for both of us when I say I am very pleased with the final product!

You can try it out any time at the OpenHatch website—it's been deployed to production. You'll need an OpenHatch account to create a bug set, but anyone can view them.

gsoc14.13 and gsoc14.14 deliverables

I worked on a number of different features for these two weeks. I finished up the create and edit screens, upgraded my code to be compatible with django 1.5, and fixed the django-inplaceedit permissions

that now allow any public user to modify AnnotatedBug objects, while denying access to the rest of the database. I also paywalled the create and edit screens, and added a creation process for AnnotatedBugs through django forms, which resulted in a bit of an accidental reinvention of the ModelForm wheel, and also allowed for integration with our main database, which makes the process "smart."

Our issues were migrated to GitHub during this time, so they all received new numbers.

gsoc14.15 deliverables

I spent this milestone working on the most advanced feature of the project: real-time updates for the list view screen. This involved writing some javascript that asynchronously updated all the editable fields on the page, such that if another user edits, the current user will be able to view their edit in near real-time. Thus, a number of users all viewing the same bugset will be able to concurrently view and edit it without confusion.

I also updated the main view with edit links when logged in, and a notice to log in order to create and edit sets when not logged in.



Figure 2: Edit links for authenticated users, such as testuser

Obstacles

Over the last blog post period, I've encountered new and exciting obstacles to conquer. The primary issues have been the django upgrade, final exams, and the GitHub issue migration.

Some time in the past month, we decided to upgrade django out of the stone ages, and thus, the django 1.5 migration was born. However, this broke a number of my tests and dependencies, and generally confused me. But with the support of my mentor, and a south upgrade, we were able to smoothly sail through these treacherous waters.

I also had final exams over the past week, which was the usual stressful fiasco that is. My marks come out tonight. I can't say I'm anticipating them with great joy. Of course, my CS 499R mark is great :)

The last obstacle was the GitHub issues migration. I had some objections to the migration, both functional and ideological, but I don't have a better solution so I've accepted this outcome. I had a difficult time finding my new, renumbered issues and reassigning them, navigating the (imho) overly minimal tracker model, and generally getting used to the new system.

In the end, all was overcome. The project must go on. And so it has.

Extending the project

As this is my final blog post, I wanted to document the outstanding issues with my newly developed application, as well as some areas for future extension. It is likely that I will have a chance to work on these things in the near future, though they are not in the scope of my Google Summer of Code project.

Remaining issues

Code clean-up, addressing feedback in this review

Migration to django ModelForm s away from our home-baked implementation

s away from our home-baked implementation Real-time removal of bugs that have been removed from the bug set via the edit interface

Future extensions/to-dos