From 9e97193bf22a5374ee40ac2114f9a13d81b4e06f Mon Sep 17 00:00:00 2001 From: Bart Louwers Date: Sat, 14 Sep 2024 23:14:09 +0200 Subject: [PATCH] Release MapLibre iOS 6.6.0 (#2831) --- platform/ios/CHANGELOG.md | 19 ++++++++++++++++ platform/ios/VERSION | 2 +- scripts/generate-changelog.mjs | 40 +++++++++++++++++++++++++++++++++- 3 files changed, 59 insertions(+), 2 deletions(-) diff --git a/platform/ios/CHANGELOG.md b/platform/ios/CHANGELOG.md index e60b0d65e1c..6a0fe1641d3 100644 --- a/platform/ios/CHANGELOG.md +++ b/platform/ios/CHANGELOG.md @@ -4,6 +4,25 @@ MapLibre welcomes participation and contributions from everyone. Please read [`C ## main +## 6.6.0 + +- Add `textFitWidth` and `textFitHeight` properties to sprites ([#2780](https://github.com/maplibre/maplibre-native/pull/2780)). + More information can be found in the [MapLibre Style Spec](https://maplibre.org/maplibre-style-spec/sprite/#text-fit-properties). +- Toggle tile cache final API ([#2723](https://github.com/maplibre/maplibre-native/pull/2723)). + Using this API can reduce memory usage at the cost of having to parse tile data again when the zoom level changes. +- Fixed annotation delay in demo app for 120Hz devices ([#2775](https://github.com/maplibre/maplibre-native/pull/2775)). + Some users reported synchronization issues when panning the map. The issue is only present on devices with ProMotion (120Hz) displays and can be fixed by updating the Info.plist for your app (see [Apple documentation](https://developer.apple.com/documentation/quartzcore/optimizing_promotion_refresh_rates_for_iphone_13_pro_and_ipad_pro?language=objc)). +- Use timestamps for attribute updates ([#2629](https://github.com/maplibre/maplibre-native/pull/2629)). +- Reuse prefetched tiles to avoid empty screen ([#2668](https://github.com/maplibre/maplibre-native/pull/2668)). +- Cleanup mbgl/actor/mailbox* implementation for repetition in ensuring valid weakScheduler exists before usage ([#2733](https://github.com/maplibre/maplibre-native/pull/2733)). +- Fix raster masking bug ([#2798](https://github.com/maplibre/maplibre-native/pull/2798)). +- Ensure that all depth values are rendered before any color values ([#2811](https://github.com/maplibre/maplibre-native/pull/2811)). +- Move UBO updates from render layers to tweakers ([#2703](https://github.com/maplibre/maplibre-native/pull/2703)). +- Fix update time not being set when only drawable indexes are set ([#2743](https://github.com/maplibre/maplibre-native/pull/2743)). +- Add guard blocks and checks to `SymbolInstance` ([#2744](https://github.com/maplibre/maplibre-native/pull/2744)). +- Fix accidental regression conditional layer evaluation ([#2705](https://github.com/maplibre/maplibre-native/pull/2705)). +- Use C++20 ([#2659](https://github.com/maplibre/maplibre-native/pull/2659)). + ## 6.5.4 - Fix crash when feature contains invalid UTF-8 data ([#2693](https://github.com/maplibre/maplibre-native/pull/2693)). diff --git a/platform/ios/VERSION b/platform/ios/VERSION index 54358db763f..826f5ce030e 100644 --- a/platform/ios/VERSION +++ b/platform/ios/VERSION @@ -1 +1 @@ -6.5.4 +6.6.0 diff --git a/scripts/generate-changelog.mjs b/scripts/generate-changelog.mjs index 7deaddfb134..0ec48a95916 100755 --- a/scripts/generate-changelog.mjs +++ b/scripts/generate-changelog.mjs @@ -2,6 +2,7 @@ import { simpleGit } from "simple-git"; import * as fs from "node:fs"; +import { Octokit } from "@octokit/rest"; /** * @returns {never} @@ -27,6 +28,9 @@ function getTagLastVersion() { const tagLastVersion = getTagLastVersion(); const git = simpleGit(); +const octokit = new Octokit({ + auth: process.env.GITHUB_ACCESS_TOKEN +}); /** * @@ -65,7 +69,41 @@ function formatMessageToMarkdownLink(message) { const commitLastVersion = await getCommit(tagLastVersion); +// Load all closed pull requests +const pulls = await octokit.paginate(octokit.pulls.list, { + owner: "maplibre", + repo: "maplibre-native", + state: "closed", + per_page: 100, +}); + +/** + * @type {Map}[] }>} + */ +const pullRequestsMap = new Map(); +pulls.forEach(pr => { + if (pr.merge_commit_sha) { + pullRequestsMap.set(pr.merge_commit_sha, pr); + } +}); + const logs = await git.log({ from: commitLastVersion }); + for await (const logEntry of logs.all.toReversed()) { - console.log(`- ${formatMessageToMarkdownLink(logEntry.message)}.`); + const pr = pullRequestsMap.get(logEntry.hash); + + const log = () => console.log(`- ${formatMessageToMarkdownLink(logEntry.message)}.`); + + + if (!pr) { + log(); + continue; + } + + // only log changelog entry when PR has corresponding platform label (or none) + const hasLabel = (/** @type {string} **/ label) => pr.labels.some(({name}) => name === label); + + if (!hasLabel("ios") && !hasLabel("android") && !hasLabel("node")) log(); + else if (platform === "android" && hasLabel("android")) log(); + else if (platform === "ios" && hasLabel("ios")) log(); }