Skip to content

Latest commit

 

History

History
155 lines (148 loc) · 8.68 KB

CHANGES.md

File metadata and controls

155 lines (148 loc) · 8.68 KB

Changes

Last update: 2024-03-17

General

  • Precompress static assets with Brotli and ZStandard on deployment
  • Add proxy for Gravatar and S3 files for improved privacy and performance
  • Smarter and more efficient avatar image optimization
  • Add email deliverability check during registration
  • Add support for zstd compressed HTTP responses
  • Update languages list
  • Better handling of tag formatting (wiki links, phone numbers, etc.)
  • Support for ';' as a separator in tag values
  • Make the application easier to extend and customize
  • Refactor the codebase for better maintainability and simplicity
  • Start using nix for development environment management
  • Configure mailpit for email testing
  • Integrate spamassassin for email spam analysis
  • Automatically transpile locale to i18n JSON and GNU GetText formats
  • Support for i18next JSON v4 translation format
  • Configure supervisord for permission-less process management (instead of Docker)
  • Completely remove Docker dependency
  • Automatically watch JavaScript, SCSS, and locale files for changes and rebuild on save
  • Automatically configure and migrate database on startup
  • Add script for fast preloading of database with real-world data
  • Remove MaxMind proprietary database dependency, determine user's country from timezone
  • Add script for updating list of tags with wiki pages
  • Test environment now includes preregistered users for quicker testing, there is an UI too
  • Update http links to https
  • Support addr:place in feature names
  • Trace have now simpler and more consistent URLs
  • Element view supports pagination and icons for part of, members, and nodes
  • Replace markdown formatter with CommonMark-compliant implementation
  • Search query now uses commonly used q parameter instead of query
  • Where-is-this will now remember zoom level in the URL (affects the result)
  • Where-is-this supports refreshing with "search this area" button
  • Improved search experience

Frontend

  • Add Rapid web editor
  • Serve iD and Rapid from separate domains for improved security
  • Slightly redesign about page
  • Redesign welcome page
  • Redesign user settings page
  • Redesign how edit profile/settings/preferences work
  • Make it easier to change preferred editor and application language
  • Slightly redesign export sidebar
  • Center title text when used with an illustration
  • Improve support for website title prefixes
  • Improve efficiency of user terms loading
  • Slightly redesign terms page
  • Automatically detect user's country on terms page and display the correct document
  • Add soft frost glass effect behind layer names on layers sidebar
  • Improve efficiency of map key/legend rendering
  • Redesign leaflet share sidebar
  • Add support for client-side map export (more efficient, more formats, export any map layer)
  • Redesign routing sidebar
  • Remove "Internal" title text from whereami search
  • Add "Click here to activate your account" link text to registration confirmation email
  • Automatically opt-out of tracking when user has Do Not Track or Global Privacy Control enabled
  • Update OpenSearch configuration
  • Replace SVG files with raster images for improved render performance
  • Update feature icons and remove deprecated tagging schemes
  • Add icons for common types of relations
  • Remove dead code from the frontend scripts and styles
  • Remove lots of duplicated code from the frontend, streamline map state management
  • Improve performance of ways/relations rendering
  • Reduce assets size by including only partial Bootstrap features
  • Update Leaflet usage
  • Add auto pan support on marker drag
  • Use browser-native URLSearchParams for query string encoding/decoding
  • Remove multiple seconds delay on failed remote edit request
  • Start using Bun JavaScript toolkit (instead of NodeJS)
  • Configure Biome for JavaScript formatting and linting
  • Configure Babel for automatic JavaScript transpilation
  • Remove jQuery dependency, and many other JavaScript libraries
  • Make it easier to move frontend code to a separate codebase and framework
  • Early geolocation on welcome page if permission is already granted
  • Add JSDoc documentation strings to public methods
  • Fix frontend script crashes on some invalid strings
  • Fix bug with go to home location adding more and more markers
  • Fixed login referrer not updating on router navigation
  • Auto-enable notes layer during adding a new note to prevent duplicates
  • Remember notes/data enabled state when zooming out and in
  • Manual selection of area is now easier to use
  • Fix visual bug when crossing 180th meridian
  • Centered application logo
  • Location filter is now easier to use
  • Elements pagination does not require a sidebar reload (now client-sided)
  • Elements pagination is now easier to navigate, min width is 2 characters
  • New about page map image, featuring only free styles
  • Client-side, efficient, and high quality trace preview image generation (SVGs)
  • Display 30 traces per page instead of 20
  • Filter file types during trace upload
  • Edit trace name is no longer limited to API 0.6
  • Added deleted element icon
  • Node location navigation will now only increase zoom if zoomed out far enough
  • Node location click no longer closes the sidebar
  • Ensure changeset bounds are not too small on changeset view

Backend

  • Migrate from Ruby and C++ to just Python
  • Compile Python code using cython for improved performance
  • Begin writing API 0.7 specification
  • Add support for multiple API versions existing at the same time, preserving backwards compatibility
  • Automatically generate OpenAPI documentation for API 0.7
  • Automatically append build date to application version
  • Add X-Version response header
  • More robust extend query parameters method
  • Add official limit for the supported url length
  • More predictable rate limiting behavior (token bucket algorithm)
  • Add support for RateLimit and RateLimit-Policy headers
  • Update robots.txt
  • Redesign database schema for improved performance and maintainability
  • Secure storage for authentication tokens (instead of plain text)
  • Improved security of email reply address
  • Add guards during GPX file extraction to prevent abuse
  • Fix string comparison timing attack vulnerability
  • Fix downgrade from OAuth 1.0a to OAuth 1.0 as a result of convoluted application logic
  • Add user token purpose for improved security
  • Use high quality random number generator for token generation
  • Improve performance of email sending
  • Add zstd-compressed file cache
  • Improve performance of basic auth
  • Add optimistic changeset diff processing
  • Reduce trace files disk usage (regenerate trace files from database, auto-compress, on-demand trace images)
  • Use stronger password hashes for moderator and administrator accounts
  • Update to latest nominatim and routing engines API
  • Add support for zstd-compressed trace files
  • Add support for zstd and brotli compressed HTTP requests
  • Simplify shortlink algorithm
  • Return errors during trace upload instead of sending emails to user
  • Replace memcached with Valkey (BSD-licensed Redis) for in-memory caching
  • Start using Poetry for Python package management
  • Configure ruff for Python formatting and linting
  • Configure FastAPI as a web framework with full async support
  • Configure feedgen for seamless RSS and Atom feed generation
  • Rewrite legal documents from YAML to Markdown and remove redundant HTML templates
  • Configure MessagePack for fast small data serialization (tokens, cache, cursors, etc.)
  • Automatically discover web server routes (instead of manually defining them)
  • Configure pyinstrument for easy Python profiling
  • Add more granularity to the configuration and limits
  • Make it easier to implement new future limits
  • Automatically generate OAuth configuration for system apps (iD, Rapid).
  • Improve mail development experience, remove dependency on external mail server
  • Display mail HTML compatibility and spam scores
  • Prefer static translation strings to automatically detect unused translations
  • Configure Postgis for geospatial database support
  • Rename mapnik to standard layer internally
  • More robust handling of 180th meridian
  • Sudo permissions are no longer required to develop the application
  • Reduce location filter library size