I created the PR https://github.com/apache/couchdb/pull/3503
The first set of commits remove and cleanup applications, settings and url handlers. Then, the rest of the commits focus on fixing the functionality to adjust for the removal: updating include paths, switching to use the newer couch_views utility modules, and making sure couch unit tests run. For couch_server, I had started to replace it but, since it's called in quite a few places and the PR was getting quite large, I stopped with just pairing it down to the minimal functionality. I tried to add descriptive commit messages for some issues encountered. The tricker one is probably where couch_views is updated with utility functions from the old couch_mrview and couch_index applications. Thanks, -Nick On Tue, Apr 13, 2021 at 11:03 AM Paul Davis <paul.joseph.da...@gmail.com> wrote: > > Another +1 to removing as much as possible and building back anything > that we feel is appropriate for main. > > On Mon, Apr 12, 2021 at 1:31 PM Robert Newson <rnew...@apache.org> wrote: > > > > +1 to all the proposed cuts. > > > > I’m keen to see couch_server.erl itself go, so its remaining uses need new > > homes (couch_passwords an obvious choice for the hashing referred to, etc). > > > > I’m inferring that neither purge and global_changes work on main anyway, > > but they can still be called and will route to 3.x code. Agree that it’s > > better to stub those out (send a 503 I guess?) in the short term and either > > re-implement on FDB or (as Joan said) vote on their permanent removal. > > (Noting that a much better implementation of purge and global_changes seems > > possible with FDB though less clear if the effort is justified). > > > > So, in brief, remove absolutely all the obsoleted, unreachable code as soon > > as possible, then once the dust has settled we can see if there are obvious > > gaps we should fill in before the 4.0 release. > > > > B. > > > > > On 12 Apr 2021, at 18:51, Nick Vatamaniuc <vatam...@gmail.com> wrote: > > > > > > The current versions of those apps rely on mem3, clustering, adding > > > nodes, etc and they will trail behind the 3.x versions since > > > developers wouldn't think to port those updates to main since they are > > > simply non-functional there. Most of those apps have to be re-written > > > from scratch and it would be better to start from the recent working > > > versions on 3.x. The tests for those apps don't really fail as we get > > > green builds on PR branches to main. We simply don't run them at all > > > and only run a subset of applications (fabric, couch_jobs, couch_views > > > and a few others). > > > > > > Don't think this is about a 4.x release per-se. This is mainly about > > > cleaning up, reducing the cognitive load of anyone jumping in trying > > > to work on main and seeing applications and endpoints calling into > > > non-existing applications. > > > > > > -Nick > > > > > > > > > -Nick > > > > > > On Mon, Apr 12, 2021 at 1:13 PM Joan Touzet <woh...@apache.org> wrote: > > >> > > >> Generally +1 with one major reservation: > > >> > > >> On 12/04/2021 12:25, Nick Vatamaniuc wrote: > > >>> * Some applications we want to have in main, but the way they are > > >>> implemented currently rely completely or mostly on 3.x code: purge > > >>> logic, couch_peruser, global_changes, setup. I am thinking it may be > > >>> better to remove them from main as we'll have them on the 3.x branch > > >>> they'll be recent (working) there. When we're ready to fix them up, we > > >>> can copy that code from there to the main branch. > > >> > > >> If the intent is to release 4.0 with them, then I would suggest keeping > > >> them there and allowing their tests to fail so we know that a "failing > > >> main" means that the product isn't ready to release yet. > > >> > > >> If we are pushing these out past a 4.0 release, then that decision needs > > >> to be made formally. > > >> > > >> Parenthetically, we try to avoid "code owners" here, but usually fixes > > >> to couch_peruser and setup fall to Jan, while purge and global_changes I > > >> *believe* have generally been made by IBM/Cloudant. > > >> > > >> -Joan "not sure main is ready to be called 4.0 yet anyway" Touzet > >