Note
This release can be considered the last beta of the v1.0 release.
We have locked down key parts of the architecture.
We will republish this release as v1.0 in roghly a week, unless we see any bugs in this release.
A big thank you to everyone who contributed to this release - through code, reviews, testing, and feedback.
Your work and discussions continue to make Martin faster, more reliable, and more welcoming for new users.
We couldn’t have done it without you ❤️
A better, more configurable cache
In previous versions, the cache was a single monolithic cache.
We have split this up into different parts and you can now specify how much sprites, fonts, pmtiles directories and tiles martin is allowed in the cache.
Tip
We also now support caching sprites and fonts - speeding up the rendering of vector maps.
See our documentation here for further context.
Done in #2295 #2304 #2303, #2297
Pmtiles support for Google Cloud, Azure and much more options
The good news first:
- greatly expanded options for AWS and HTTP backends
- New support for Google Cloud and Azure object storage
- Local files remain unaffected
How did we do this?
We replaced our entire pmtiles backend with the object_storage crate.
Most of the options are cleanly migratable, but we deprecated the following:
- AWS specific environment variable usages are deprecated.
pmtiles.allow_httpbeing unset is currently defaulting totrue.
In v2.0, we will change this to befalseby default for better security defaults.
The deprecated items will be removed in v2.0 at the earliest.
Tip
Each of the deprecations also has its own warning in the log, so you don't have to guess if you are affected 😉
AWS_PROFILE presented a challenge and we had to drop this environment variable.
We asked for community feedback on Slack (see here), and it seems this may not be a necessary feature.
If you depend on AWS_PROFILE, we opened the following issue to discuss details:
For further details on the now avaliable options, please see our documentation.
Done in #2251
unstable style rendering support
We added an experimental option for server-side style rendering, allowing you to convert your configured styles into images on the server side instead of the client.
See our documentation here for further context.
Done in #2306
rename cog feature to unstable-cog
The cog feature was renamed to unstable-cog and thus removed from the features active by default.
If you compile martin from source with this feature enabled, experimentation is still possible.
This change signals that the feature is still evolving and allows us to iterate more freely as we add the missing functionality.
Currently, our COG support does not support certain projection aspects required for good usability.
Done in #2285
Removal of deprecated functionality
We removed the long-deprecated --watch CLI option, which previously only displayed a deprecation warning in the log.
Done in #2294
Fix
- Make mbtiles dependency properly optional again (#2292)
Other
- (core) enable overriding of the automatic hashing for source traits (#2293)
- (pg) Add benchmark for source discovery timing (#2263)
- (admin) move functionality into better modules (#2315)
- move config files to new folders (#2298)
- (core) add a
_tilesfeature to simplify our feature configuration (#2296) - (config) refactor the livecycle hooks to be cleaner and better documented (#2282)
- (lints) applly tighter clippy lints like
clippy::panic_in_result_fn,clippy::todoor similar [#2284](#2284 #2283, #2288, #2287 - (mbtiles) Generate mbtiles dynamically from SQL files to increase debuggability, transparency and supply chain trust/security (#1868)
- A number of dependency updates #2277, #2308