mapbox / mapbox/mapbox-gl-js

What is the motivation behind featuresets? understanding tradeoffs

Open
#13,593 5 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

auto-triaged docs :scroll:
Dominant language
TypeScript
Stars
12.4k
Forks
2.4k
PR merge metrics
No merged PRs in 30d

Description

This question is a bit of a follow up to my feature request: #13592.

Let me start by stating I find featuresets very elegant and developer friendly. I can imagine a ton of use-cases becoming easier to implement because style creators have made them part of the style's design. Like I said in the other issue:

The new Featureset concept is pretty clean as a way to curate an API for imported styles. But of course, it comes with the tradeoff that developers can't just mess with whatever they want anymore, and so it limits the things we can build.

I wanted to open this question to try and understand the choices made around featuresets. In particular, why is it now the only way to interact with imported styles? Would it have been better to make it an additional layer for extension, instead of a replacement? Because we now have to open feature requests for thing we could do ourselves before Standard.

I am very much open here by the way, it is not a complain. I'm curious if there is a cost to supporting a full access to the layers like there was before? Maybe it makes it harder to improve core features implementation because it could cause breaking changes? I'd love to understand the choices that were made better, and I think it would allow other devs like me to accept the tradeoffs more easily.

Thank you for any attention this may get.
✌️

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the linked feature request #13592 and this issue's discussion about featuresets, imported styles, and API tradeoffs. No file, entry point, or test is identified; done would require an agreed rationale or documentation explaining why featuresets replace direct layer access and what tradeoffs that creates.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, developer-experience
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.