More MapLibre, smoother experience, a bunch of fixes
It’s that time again, when we highlight the work made by contributors to the OSM Website. Here they are!
Towards MapLibre
We continue a careful transition to use MapLibre in all instances of the slippy map. Still some way to go; here is how it went this month:
- We fixed some issues with the map controls, including visual styling fixes and making sure they are visible on the map for user diary entries. (@CommanderStorm, @pablobm)
- In the layer selection sidebar, the minimaps now use MapLibre to render, and their code runs only when necessary. (@CommanderStorm)
- Plus small tweaks like improving how the zoom snaps to the correct levels, disabling unnecessary features, and refactors to avoid code duplication. (@CommanderStorm, @hlfan)
User experience and accessibility
- The iD editor was updated to version 2.38! Check out the changelog to see what’s new. (@tyr_asd)
- When in the iD editor, the “Edit” in the navigation looks more “active”, giving a better hint of where the user is currently. (@hlfan)
- We removed the “tabindexes” from the HTML. This is as per current best practices to improve keyboard navigation. (@Andy_Allan)
- We added alt text to the logos of authentication providers. (@hlfan)
- We changed the tag labeling, in order to differentiate
leisure=trackfrom motorsport-orientedhighway=track. (Oivo35’s first contribution!) - We fixed an issue in small screens, where it was not possible to close the welcome banner. (@hlfan)
- We tweaked the sign up form, adding a further layer of validation to ensure people don’t forget entering their password (@stillhart’s first contribution!)
- And finally, we added a most beautiful and useful button to the navigation: an invitation to Donate to the OSMF! This required massaging some translation keys to not confuse translatewiki. (@Minh_Nguyen)
Data
- We added some encouragement for anonymous users to log in before adding too many notes. (@TrickyFoxy)
- The API now exposes enhanced changeset stats, on par with those on the website. (@user10)
Small code fixes
- We cleaned up some HTML templates, adding missing closing tags, standardising on double quotes for attributes, and bringing other details up to best practices. (@hlfan)
- We continue tweaking the text formatter to better detect and render links in comments and diary entries, as well as to improve its maintainability. (@hlfan)
- We addressed a deprecation warning ahead of upgrading to a new version of the Dalli gem, which we use to interface with memcached. (@TomH)
- We refactored the items in the navigation menu to reduce code duplication. (@hlfan)
- You may have seen the navigation bar reverting to English for a bit. That hiccup was due to a synchronisation issue between making a change to translations and translatewiki providing the new strings. Fortunately our system fixed the problem automatically after a few days.
Developers
- One of the changes above involved an API endpoint previously handled by cgimap. As part of the change it is now handled by the Rails app instead. We decided that cgimap wasn’t necessary any more for this specific case and made development trickier. (@pablobm)
- As part of our efforts to attract new contributors, we have made some improvements to our documentation, tidying it as well as clarifying the different roles within the project. (@pablobm, @Andy_Allan)
- We continue to improve the reliability of the Dev Container setup. (@pablobm).
- Tweaks to our CI included a check for changes to vendored files, removing unnecessary code, and ensuring a consistent version of the underlying OS. (@TomH, @Andy_Allan)
- We added Herb as a linter for our HTML templates, and enabled some new rules. (@hlfan)
- We also have a new linter called database_consistency which… does exactly what it says on the tin. We put it to work immediately, using it to identify and fix DB consistency issues (@Andy_Allan, @TomH)
- We had code that logged too much information of dubious utility. We changed it to avoid polluting the logs and obscuring more important information. (@pablobm)
- Finally, we added a new script to help developers create a couple of users for local testing, and documented it (@pablobm)