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.
- Create and edit screen issue: #1318 (formerly 1003), code sample
- Django 1.5 code upgrade: #1345 (formerly 1030), code sample
- Fix public
inplaceedit
permissions: #1335 (formerly 1020), code sample
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.
- 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
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 - Real-time removal of bugs that have been removed from the bug set via the edit interface
Future extensions/to-dos
- Filtering by status (unclaimed, claims, needs-review, resolved)
- We currently pull some metadata from the main OpenHatch bug database to
create
AnnotatedBug
objects. It would be nice to be able to refresh this metadata, perhaps by clicking a button. - Field testing
- User guide and additional documentation
Comments
You are invited to send your comments or feedback to the project mailing list!