Microgrants/Microgrants 2020/Proposal/Map Maintenance with StreetComplete/Interim Report

From OpenStreetMap Wiki
Jump to navigation Jump to search

Interim Report for Map Maintenace With StreetComplete

type = interim status = submitted

Methods and Activities

On the 23rd of July, I started off with presenting and outlining what is planned for this feature on the tagging mailing list with a request for feedback. I also added links to that thread on the mailing list from GitHub and the microgrant proposal wiki page. Also, I created a wiki page on which everyone can participate to find reasonable re-survey intervals.

I started working on the actual feature on the third of August and pinned a ticket on GitHub on the 5th of August which is used to outline the milestones for the feature, inform about the feature, why and how certain things are implemented and provide updates to the feature to the public.

Since then, I have been posting updates on that ticket.

On the 19th of August, I realized during implementation that it will not be possible to offer a re-survey for an important data point (speed limits) and posted an in-depth explanation of why it cannot be done in the pinned GitHub issue. I also posted this information to both the the slack-us chat and the tagging mailing list, in the hopes that more people are made aware of it as it is essentially just a tagging scheme problem that prevents it from being offered in the app.

Right now, the implementation for the quests are more or less done, the next steps will be:

  1. (~4 days) Implement the remaining re-survey quests, which are for opening hours, cycleways and probably postbox collection times. For the former, there is an almost-done PR.
  1. (variable, min 3 days) Do extensive testing and review any feedback given after reaching out to the community from step 1.
  2. (variable) Release beta
  3. (variable) Review more feedback coming in, and monitoring if there are any bugs
  4. (variable) Final release

Outcome

The outcome is the feature itself of course, which isn't done yet at the time this text is written. Updates to the project are posted on the pinned GitHub ticket.

Detail Report

... of the things done so far:

Target outcome Achieved outcome Explanation
Consider using a parser generator like ANTLR to make planned extensions on the element filter syntax more easy Don't use a parser generator, instead extend existing code Unfortunately, ANTLR or any other parser generator with a fixed first lexer and then parser step are too unflexible for the DSL used for the element filters. Even if the DSL was changed to be less flexible and more verbose to fit into being able to be described fully by an EBNF form, it wouldn't have made the actual implementation of the parser really shorter because the most logic of the parser is in the interpretation of the boolean expression logic, which is a step that happens after the actual parsing
Extend element filter expression to have built-in support for check-date and other date-related checks. Also, add utility functions with the same goal. This step was made in order to make it easier to change current and future StreetComplete quests to support being re-surveyed See this comment in the pinned GitHub issue Success!
Extend all the quests that should be re-surveyable with the necessary code and handle the cases to correctly update existing data in a conservative fashion All done except for Opening Hours, Cycleways and Postbox Collection times which will be done next. Unfortunately, during implementation it turned out that the Speed limits cannot be re-surveyed with StreetComplete.

Details are in this comment in the pinned GitHub issue

Unlike the other quests which will just be asked-again, the quests for recording the Opening Hours, Cycleways and Postbox Collection times are planned to display the currently tagged value first so in case the information didn't change, the users can solve it faster. This requires more effort and will be done last (next). An explanation for why speed limits cannot be resurveyed by StreetComplete users is given here


Learning

  • Just normal and regular maintenance of a project like StreetComplete always eats up a lot of time, answering on feature requests and ideas for quests, reviewing and merging PRs, fixing bugs and release management. The workload of this varies, in August it was more than usual. This held me off from actually working on this project, so I am a bit late. I originally planned to have it all done and released by the end of August. It looks like it will be rather 1st or second week of September now.
  • I underrated the time necessary to reach out and be transparent towards the community in what is implemented. I can't expect that everyone will check out the public progress and FAQ pinned on GitHub as the new implementation may also affect people who are not interested in the topic as such, but don't want other things to break because of it.
  • As such, feedback and responses from the community dripple in over quite some time, probably continuing after the feature has been released. Even though essentially still part of this project, it will add on the general maintenance workload for StreetComplete for some time. So this is something that I didn't include in my initial time estimation but maybe should have.

Grant funds used

Including today, I spent about 11 of the estimated 15 days working on this feature. The implementation is about 75% complete, however the testing phase will be very long. In any case, it doesn't matter that much if I underestimated the time i'll need because I will finish what I intended to do in any case. I no longer consider the opening hours and the cycleway quest optional.