Hey Adam, > When it comes to deprecating and/or removing functionality, I feel like I > don’t know exactly where we stand today. We have occasionally described some > of the CouchApp functionality as already being deprecated, but I’m having > trouble finding any official record of that in our documentation. Thanks for re-opening the deprecation discussion. I've reviewed [1] and provide the following summary tables (Markdown format).
**NOTE**: This is /not/ the vote for deprecation, nor a formal announcement of such. This is a starting point for discussion. A vote still needs to happen for this to move forward. Anything already deprecated in 2.0 can be removed in 3.0 without a formal vote, but it'd be nice if it got mentioned on the dev@ list before the PR lands on master, please. As I'm going to be travelling for most of the rest of September, I'd prefer if someone else (like Adam or Deni) can help drive this discussion. Once there is consensus from the community on these lists, we should close #1534 and split it into 3 new tickets based on the tables below (excepting the features already removed in 2.x). > I guess let’s start with: does anyone believe we are in a position to be > eliminating previously-deprecated functionality in 3.0? Yes, for the items in the 2nd table below, absolutely. -Joan "turning the tables" Touzet -------- # Recently removed features in 2.x **Feature/Endpoint** | **Links** ------------------------------------|------------ update_notifications | [10] ini-file based query servers | [11] ini-file based HTTP global handlers | [11] OS daemons | [11],[12] vhost redirects/global handlers | [11],[12] couch_httpd_proxy | [11],[12] *NOTE*: Some of these still have lingering bits in the documentation that need a final cleanup pass before 3.0 should be released. -------- # Already deprecated items, to be removed in 3.0 **Feature/Endpoint** | **Links** ------------------------------------|------------ some duplicate dbinfo size fields | [2],[3] delayed_commits | [4] port 5986 | [5],[6] `/{db}/_external/*` | [7],[8] view-based changes (code remnants) | [17],[18],[19],[20] -------- # Proposed deprecations for 3.0, not rebuilt/removed in 4.0 **Feature/Endpoint** | **Replaced by** | **Links** --------------------------|----------------------|----------- `/{db}/{ddoc}/_show/*` | App server/rev proxy | † `/{db}/{ddoc}/_list/*` | App server/rev proxy | † virtual hosts [24] | haproxy, multitenant | [25] `/{db}/{ddoc}/_rewrite/*` | App server/rev proxy | [26] †: getRow() makes embedding a new, efficient JS engine impossible since getRow() does not give up thread execution control; an entirely new approach would need to be constructed, breaking backward compatibility at the very least. (There are additional challenges.) -------- # Likely will remain unchanged through 4.0 **Feature/Endpoint** | **Improved by** ---------------------------------|---------------------- VDU (validatefun()) [13] | [14],[15] update handlers (updatefun) [16] | [14],[15] JS engine [21] | [22],[23] system DB special handling | [27] *NOTE*: The last table may grow as limitations imposed by FDB are better understood. -------- # References [1]: https://github.com/apache/couchdb/issues/1534 [2]: https://docs.couchdb.org/en/stable/api/database/common.html?highlight=disk-size#get--db [3]: https://github.com/apache/couchdb/pull/2163 [4]: https://github.com/apache/couchdb/blob/103a0624f309ea0d796176a55eb5faea68f26047/test/javascript/tests/delayed_commits.js#L16 [5]: https://github.com/apache/couchdb/issues/1523 [6]: https://github.com/apache/couchdb/pull/2092 [7]: https://github.com/apache/couchdb/pull/1330 [8]: https://docs.couchdb.org/en/stable/whatsnew/2.2.html [10]: https://github.com/apache/couchdb/pull/1476 [11]: https://docs.couchdb.org/en/stable/whatsnew/2.3.html [12]: https://github.com/apache/couchdb/pull/1602 [13]: https://docs.couchdb.org/en/stable/ddocs/ddocs.html#vdufun [14]: https://github.com/apache/couchdb/issues/1554 [15]: https://github.com/apache/couchdb/pull/1898 [16]: https://docs.couchdb.org/en/stable/ddocs/ddocs.html#update-functions [17]: https://github.com/apache/couchdb/issues/592 [18]: https://github.com/apache/couchdb/issues/831 [19]: https://lists.apache.org/thread.html/516793df0c1913c045441d0ff78339f307e2aff517d9223da44edd9e@%3Cdev.couchdb.apache.org%3E [20]: http://docs.couchdb.org/en/stable/api/database/changes.html?highlight=selector#selector [21]: https://github.com/apache/couchdb/issues/1513 [22]: https://github.com/apache/couchdb/issues/1875 [23]: https://github.com/apache/couchdb/issues/1884 [24]: https://docs.couchdb.org/en/stable/config/http.html#virtual-hosts [25]: https://github.com/apache/couchdb/issues/1539 [26]: https://docs.couchdb.org/en/stable/api/ddoc/rewrites.html#api-ddoc-rewrite [27]: https://github.com/apache/couchdb/issues/1534