@@ -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