I think the following proposal makes sense:
1) Work for the next few days on the stable branch until a release
is ready, in whatever state it is in within the next few days.
The outstanding big bugs are in the GUI, and we've agreed that
we'll just release with those bugs and the warnings that jwe has
put in.
2) Create a new gui-release branch based off current default
3) Merge classdef into default. Close classdef branch.
4) New experimental features and development go into the default
branch. This will either be a 4.2 or 5.x release.
5) Merging order goes like this: stable -> gui-release -> default
6) After the 3.8 release, we work hard on the gui-release branch
and release 4.0 from gui-release. Final merge of gui-release
into default and close gui-release. Hopefully we can do this
within a few months, say, no more than 4.
7) Try to focus all efforts on gui-release to the extent that a
3.8.1 release won't even be necessary, but as usual, critical
bugs in the 3.8 release get patched on stable and forward-merged
into release-gui and default, just in case we really do need to
do 3.8.1
So, basically, replace the classdef branch by putting it into default
and adding an intermediate gui-release branch between stable and
default.
Sounds good?