Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
125 changes: 125 additions & 0 deletions .github/ISSUE_TEMPLATE/BUG_REPORT.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
name: 🐛 Bug Report
description: Something in the map renders or behaves incorrectly at runtime
labels: [bug]
body:
- type: textarea
attributes:
label: What happened?
description: Explain what you were trying to do and what happened instead. Be as precise as possible — an issue that cannot be understood cannot be fixed.
placeholder: I rendered a MapView with 2000 markers and the `onMarkerPress` callback fired with the wrong marker id after clustering kicked in.
validations:
required: true
- type: textarea
attributes:
label: Reproduceable code
description: >
Share a small reproduceable snippet — ideally the whole component.
Include the `MapView` props you set, the marker/overlay data shape, and any imperative `MapViewRef` calls.

**Redact secrets first.** Replace Google Maps API keys, tokens and any private configuration with placeholders — this issue is public.
render: tsx
placeholder: |
<MapView
provider="google"
markers={markers}
clusteringEnabled
onMarkerPress={(id) => console.log(id)}
/>
validations:
required: true
- type: textarea
attributes:
label: Relevant log output
description: >
Paste any relevant **native log output** here. This is automatically formatted as code, so no backticks are needed.

* For iOS, run the app from Xcode and copy the console output.

* For Android, use the Android Studio Logcat window or run `adb logcat` in a terminal.

**Redact secrets first.** Strip API keys, tokens and credentials from the logs before pasting.
If the log shows this library itself leaking a key — into a log line, a request, a crash payload — do not post it here: report it privately through a [security advisory](https://github.com/gmi-software/react-native-better-maps/security/advisories/new).
render: shell
validations:
required: false
Comment thread
coderabbitai[bot] marked this conversation as resolved.
- type: dropdown
attributes:
label: Map provider
description: Which provider does this happen with? Select every provider you reproduced it on.
multiple: true
options:
- apple
- google
validations:
required: true
- type: dropdown
attributes:
label: Platforms
description: Select every platform you reproduced this on.
multiple: true
options:
- iOS
- Android
validations:
required: true
- type: input
attributes:
label: Device
description: >
Which device shows the problem? Give the full name plus the OS version, and say whether it is a simulator/emulator or a physical device.
If you tested several, list them comma separated.
placeholder: ex. iPhone 15 Pro (iOS 18.2, simulator), Pixel 7 (Android 15, physical)
validations:
required: true
- type: input
attributes:
label: react-native-better-maps version
placeholder: ex. 1.1.0
validations:
required: true
- type: input
attributes:
label: React Native version
description: The library requires 0.78+ with the New Architecture enabled.
placeholder: ex. 0.81.4
validations:
required: true
- type: input
attributes:
label: react-native-nitro-modules version
placeholder: ex. 0.35.10
validations:
required: true
- type: input
attributes:
label: Expo SDK version
description: Leave empty if this is a bare React Native app.
placeholder: ex. 57.0.0
validations:
required: false
- type: dropdown
attributes:
label: Can you reproduce this in the example app?
description: >
Run the example app (`example/`, see [Example app](https://github.com/gmi-software/react-native-better-maps#example-app)) and check whether the problem shows up there too.
**Note:** an issue that does not reproduce in the example app and ships no reproduction is much harder to act on.
options:
- I didn't try (⚠️ your issue may take much longer to get looked at)
- Yes, I can reproduce it in the example app
- 'No, the example app works fine'
default: 0
validations:
required: true
- type: checkboxes
attributes:
label: Additional information
description: Please check all the boxes that apply
options:
- label: I am using Expo with a development build
- label: I am using clustering
- label: I am using GeoJSON overlays
- label: I have the New Architecture enabled
- label: I checked [Common problems](https://github.com/gmi-software/react-native-better-maps#common-problems) and my issue is not listed there.
required: true
- label: I searched for [similar issues in this repository](https://github.com/gmi-software/react-native-better-maps/issues) and found none.
required: true
121 changes: 121 additions & 0 deletions .github/ISSUE_TEMPLATE/BUILD_ERROR.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
name: 🔧 Build Error
description: The native app fails to build, prebuild, or install pods
labels: [build/setup]
body:
- type: textarea
attributes:
label: How were you trying to build the app?
description: Explain how you built — Xcode, `expo run:ios`, `pod install`, a Gradle task, EAS Build, CI, or something else. Be as precise as possible.
placeholder: I added react-native-better-maps to an Expo SDK 57 app, ran `expo prebuild --clean` and then `expo run:ios`, and the build failed while compiling the Google adapter files.
validations:
required: true
- type: textarea
attributes:
label: Full build logs
description: >
Share the full build output, from the first command to the last line.
Do not paste only the final few lines — the real cause is usually much earlier.

**Redact secrets first.** Build logs can echo `googleMapsApiKey`, `GoogleMapsIosApiKey` and `com.google.android.geo.API_KEY` — replace them with placeholders before pasting.
render: shell
validations:
required: true
- type: textarea
attributes:
label: Project dependencies
description: Share the `dependencies` block from your app's `package.json`, so conflicting libraries are visible.
render: json
placeholder: |
"dependencies": {
"expo": "~57.0.0",
"react-native": "0.81.4",
"react-native-better-maps": "^1.1.0",
"react-native-nitro-modules": "^0.35.10"
}
validations:
required: true
- type: textarea
attributes:
label: Expo config plugin setup
description: >
If you use the config plugin, share the `react-native-better-maps` entry from your `app.json` / `app.config.js`.
For a bare app, share the relevant parts of `Info.plist`, `AndroidManifest.xml` and `Podfile.properties.json` instead.
See [Expo setup](https://github.com/gmi-software/react-native-better-maps/blob/main/docs/expo-setup.md).
Comment thread
coderabbitai[bot] marked this conversation as resolved.

**Redact secrets first.** Replace the actual API key values with placeholders such as `<redacted>` — this issue is public.
render: json
validations:
required: false
- type: dropdown
attributes:
label: Target platforms
description: Select every platform the build fails on.
multiple: true
options:
- iOS
- Android
validations:
required: true
- type: dropdown
attributes:
label: Operating system
description: Select the operating system you are building on.
multiple: true
options:
- macOS
- Windows
- Linux
validations:
required: true
- type: input
attributes:
label: react-native-better-maps version
placeholder: ex. 1.1.0
validations:
required: true
- type: input
attributes:
label: React Native version
description: The library requires 0.78+ with the New Architecture enabled.
placeholder: ex. 0.81.4
validations:
required: true
- type: input
attributes:
label: react-native-nitro-modules version
placeholder: ex. 0.35.10
validations:
required: true
- type: input
attributes:
label: Expo SDK version
description: Leave empty if this is a bare React Native app.
placeholder: ex. 57.0.0
validations:
required: false
- type: dropdown
attributes:
label: Can you build the example app?
description: >
Try to build the example app (`example/`, see [Example app](https://github.com/gmi-software/react-native-better-maps#example-app)).
**Note:** this separates a problem in the library from a problem in your app's native setup, and is the single most useful thing you can report here.
options:
- I didn't try (⚠️ your issue may take much longer to get looked at)
- Yes, the example app builds fine
- 'No, the example app fails to build too'
default: 0
validations:
required: true
- type: checkboxes
attributes:
label: Additional information
description: Please check all the boxes that apply
options:
- label: I am using Expo with a development build
- label: I am using the Expo config plugin
- label: I am using Google Maps on iOS (`betterMaps.iosGoogleProvider`)
- label: I retried after a clean build (`expo prebuild --clean`, deleted `ios/Pods` and `android/build`)
- label: I checked [Common problems](https://github.com/gmi-software/react-native-better-maps#common-problems) and my issue is not listed there.
required: true
- label: I searched for [similar issues in this repository](https://github.com/gmi-software/react-native-better-maps/issues) and found none.
required: true
42 changes: 42 additions & 0 deletions .github/ISSUE_TEMPLATE/ENHANCEMENT.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: ✨ Enhancement
description: Request a feature or an enhancement to react-native-better-maps
labels: [enhancement]
body:
- type: textarea
attributes:
label: Feature request / enhancement
description: Describe the feature in detail, and explain the motivation that led you to open this issue — what are you building, and what is blocked without it?
placeholder: I need heatmap overlays so I can show density of my delivery data. react-native-maps has this, and both MapKit and the Google Maps SDK support it natively.
validations:
required: true
- type: dropdown
attributes:
label: Which providers should this cover?
description: >
Providers differ in what their native SDKs support, so a feature may land on one before the other.
See the [capability matrix](https://github.com/gmi-software/react-native-better-maps#capability-matrix).
multiple: true
options:
- apple (iOS)
- google (iOS)
- google (Android)
validations:
required: true
- type: textarea
attributes:
label: Are there any existing workarounds?
description: List anything you do today to work around the missing feature, so others reading this issue are not blocked by it.
placeholder: I render an absolutely positioned overlay on top of the map and sync it with `onRegionChangeComplete`, but it drifts during the gesture.
validations:
required: false
- type: checkboxes
attributes:
label: Additional information
description: Please check all the boxes that apply
options:
- label: I checked the [README](https://github.com/gmi-software/react-native-better-maps#readme) and the [docs](https://github.com/gmi-software/react-native-better-maps/tree/main/docs) and this feature does not exist yet.
required: true
- label: I checked the [roadmap](https://github.com/gmi-software/react-native-better-maps/blob/main/docs/roadmap.md) and it is not already planned there.
- label: I can open a pull request to implement this. (See [Contributing](https://github.com/gmi-software/react-native-better-maps/blob/main/CONTRIBUTING.md))
- label: I searched for [similar issues in this repository](https://github.com/gmi-software/react-native-better-maps/issues) and found none.
required: true
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: 💬 Question or usage help
url: https://github.com/gmi-software/react-native-better-maps/discussions
about: Ask how to do something, or float an idea before opening an enhancement.
- name: 📖 Documentation
url: https://github.com/gmi-software/react-native-better-maps#readme
about: Installation, providers, clustering, GeoJSON, Google Maps keys and the capability matrix.
- name: 🔐 Report a security vulnerability
url: https://github.com/gmi-software/react-native-better-maps/security/advisories/new
about: Do not open a public issue. Report it privately through a GitHub security advisory.
24 changes: 24 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
## What does this change?

<!-- What the change does, and why. Link the issue it closes: "Closes #123". -->

## How was it verified?

<!--
Say what you actually ran — "builds" is not verification.
For native changes, name the provider, platform and device you tested on.
-->

## Scope

- **Providers:** <!-- apple / google / both / not provider specific -->
- **Platforms:** <!-- iOS / Android / both / JS only -->

## Checklist

- [ ] `bun run lint`, `bun run typecheck` and `bun run build` pass
- [ ] Tests pass, and new behavior is covered by a test
- [ ] Nitro specs changed? `bun run nitrogen` was re-run and the generated code is committed
- [ ] Public API changed? The README and the capability matrix are updated
- [ ] Commits follow [Conventional Commits](https://www.conventionalcommits.org/)
- [ ] Behavior changed without a type change? Say so explicitly above — it breaks consumers whose code still compiles
43 changes: 43 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
version: 2

updates:
# The workflows pin every action by commit SHA, which never resolves to a newer
# release on its own. Without this, those pins silently rot.
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
groups:
github-actions:
patterns:
- '*'
# Keep the subject conventional — the commitlint job runs on every pull
# request, Dependabot's included.
commit-message:
prefix: chore

# Bun is its own Dependabot ecosystem, not part of `npm`: it reads `bun.lock`.
# Version updates are supported; security updates are not, so Dependabot
# security alerts for these dependencies have to be acted on by hand.
- package-ecosystem: bun
directories:
- /
- /package
- /example
schedule:
interval: weekly
groups:
dev-dependencies:
dependency-type: development
patterns:
- '*'
# React Native, React and Nitro are peer dependencies with native
# counterparts; upgrading them is a deliberate, tested change, never an
# automated bump.
ignore:
- dependency-name: react
- dependency-name: react-native
- dependency-name: react-native-nitro-modules
- dependency-name: nitrogen
commit-message:
prefix: chore
11 changes: 1 addition & 10 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
- 'v[0-9]+.[0-9]+.[0-9]+'
- 'v[0-9]+.[0-9]+.[0-9]+-*'
# Rehearsal against the current branch. Always a dry run: it validates the
# version, changelog and full gate without tagging or publishing anything.
# version and the full gate without tagging or publishing anything.
workflow_dispatch:

concurrency:
Expand Down Expand Up @@ -81,15 +81,6 @@ jobs:
exit 1
fi

- name: Verify CHANGELOG entry exists
env:
VERSION: ${{ steps.version.outputs.version }}
run: |
if ! grep -qE "^## +${VERSION//./\\.}( |$)" CHANGELOG.md; then
echo "::error::CHANGELOG.md has no '## $VERSION' section. Add the release notes before publishing."
exit 1
fi

- name: Verify version is not already published
env:
VERSION: ${{ steps.version.outputs.version }}
Expand Down
Loading
Loading