Skip to content

Commit cbadbba

Browse files
authored
Add process documentation on removing/deprecating features. NFC (emscripten-core#25602)
1 parent 1efa02f commit cbadbba

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

docs/process.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,46 @@ To update our libraries to a newer musl release:
291291
[`update_musl.py`][update_musl_emscripten] for that.
292292

293293

294+
## Deprecating settings and features
295+
296+
Emscripten has a lot of settings and features which makes combinatorial testing
297+
practically unfeasible. In order to manage the complexity and reduce
298+
technical debt we constantly strive to deprecate and remove settings and features
299+
that are no longer in use.
300+
301+
In order to manage these deprecations in a way that minimizes user impact and
302+
unintended consequences we have designed the following process. A primary
303+
purpose of this process is to engage with the user community in order to assess
304+
the impact of removing a given feature. At any point in the process we could
305+
decide collectively to abandon the deprecation, or to delay it.
306+
307+
1. Create an "Intent to deprecate" bug for the setting or feature.
308+
309+
2. Send a message to the emscripten-discuss mailing with the title `[PSA] Indent
310+
to deprecate XXX` where `XXX` is the name of the feature or setting in
311+
question. Please include a link to the bug created above.
312+
313+
3. If possible, update emscripten such that it will generate a `deprecated`
314+
warning when the feature is used. For settings this is normally as simple
315+
as adding it to `DEPRECATED_SETTINGS` in `settings.py`.
316+
317+
4. Perform a global search of public github repositories for usage of the
318+
feature. If you work for a company with a large internal codebase (e.g.
319+
Google) please also search globally there.
320+
321+
5. Feedback from steps (2), (3) and (4) should be summarized in the bug where
322+
discussions about the impact of deprecation can then proceed.
323+
324+
6. After at least 4 emscripten releases, or 2 months (whichever is shorter) a
325+
final decision on the deprecation may be agreed upon. The final decision
326+
will be made by the Emscripten maintainers.
327+
328+
7. If the decision is to proceed the feature can then be removed. If the
329+
decision goes the other way the deprecation warning should be removed. When
330+
the feature is removed, it should, where possible, continue to be detected
331+
by the code so that users of the old feature see an actionable message. An
332+
entry in `ChangeLog.md` should also be added.
333+
294334
[site_repo]: https://github.com/kripken/emscripten-site
295335
[releases_repo]: https://chromium.googlesource.com/emscripten-releases
296336
[waterfall]: https://ci.chromium.org/p/emscripten-releases/g/main/console

0 commit comments

Comments
 (0)