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
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
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.
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
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
and also allowed for integration with our main database, which makes the
Our issues were migrated to GitHub during this time, so they all received new numbers.
- Create and edit screen issue: #1318 (formerly 1003), code sample
- Django 1.5 code upgrade: #1345 (formerly 1030), code sample
- Fix public
inplaceeditpermissions: #1335 (formerly 1020), code sample
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.
- Asynchronous page updates: #1336 (formerly 1021), code sample
- Update main view with contextual information: #1360, code sample
Figure 2: Edit links for authenticated users, such as testuser
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
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.
- Code clean-up, addressing feedback in this review
- Migration to django
ModelForms away from our home-baked implementation
- Real-time removal of bugs that have been removed from the bug set via the edit interface
- Filtering by status (unclaimed, claims, needs-review, resolved)
- We currently pull some metadata from the main OpenHatch bug database to
AnnotatedBugobjects. It would be nice to be able to refresh this metadata, perhaps by clicking a button.
- Field testing
- User guide and additional documentation