As a community member and minor contributor this sounds good. I had a few 
questions.

- Is there only ever a single patch version supported at a time?
- Will there be a regular cadence of merging "main" into "next" so actively 
developed work is up-to-date? Would this be done by core team members or would 
community members be involved?
- With "next" being a single branch would it be all-or-nothing to merge into 
"main", or would changes be cherry-picked for the next up-coming version?


> 2.0.0:
> * Backward-compatible, binary variation of Guacamole protocol (assuming 
> browsers are now capable of handling this efficiently, I have a rough sketch 
> of how this might look and how it might improve on the processing required)

Is there a JIRA issue for this? I have some thoughts and experimentation around 
switching to binary web socket frames, assuming that is what this refers to.


- Christopher Speck


> On Feb 22, 2024, at 3:44 AM, Michael Jumper <mjum...@apache.org> wrote:
> 
> (This is particularly relevant to the Angular and X.Org changes.)
> 
> We have a ton of changes in flight of all sizes, both from Guacamole 
> committers and from contributors. The larger changes tend to get stuck 
> because ... they're large. The smaller changes tend to get stuck because of 
> basic issues with style which, while important, also serve as a roadblock 
> that makes things difficult for contributors and reviewers alike (there's 
> lots of back-and-forth, and lack of time leads to PRs eventually getting 
> ignored/forgotten).
> 
> I think we should adopt some changes to our branching and code review methods 
> to allow things to move forward more efficiently and without risking breaking 
> mainline.
> 
> To be clear, I'm not proposing that we alter the scope of review. Instead, I 
> think we should make it significantly easier for contributors to abide by the 
> style guidelines by providing some sort of script within the guacamole-client 
> and guacamole-server source that allows contributors to automatically 
> check/correct their own changes. Review on our side can then be streamlined 
> to just:
> 
> 1) Verifying that script reports everything is clean.
> 2) Verifying the pure technical merit of the proposed changes.
> 
> With respect to avoiding changes getting stuck due to sheer size, I propose 
> we adopt a different branching strategy that builds off the patch release 
> procedures we recently adopted. Instead of a single "master" branch, I 
> suggest a set of 3 primary development branches:
> 
> (1) "patch" - Receives any changes that are bugfixes or minor improvements 
> that do not affect documentation. This is essentially equivalent to what 
> we've been doing with the staging branches for patch releases, except that 
> there would no longer be any need to create those staging branches until the 
> release process is actually underway. The base branch for any changes that 
> qualify would always consistently and simply be "patch".
> 
> (2) "main" - Replaces current "master", receives all changes that are not 
> huge changes that would warrant a full major version bump. Changes merged to 
> "patch" get manually merged back to "main".
> 
> (3) "next" - Receives any changes that are so huge that they would warrant a 
> full major version bump. Changes merged to "main" get manually merged to 
> "next". In some cases, changes made against "main" may need to be 
> reimplemented against "next".
> 
> Now on to the...
> 
> ----- PROPOSED ROADMAP -----
> 
> 1.5.5:
> 
> * Remaining items already listed in JIRA
> * Any bugfixes that have already been merged to master but are missing from 
> previous patch releases
> 
> 1.5.6+:
> 
> * Any issues identified in 1.5.5
> * Any changes related to automated style checks
> * Duo v4 (if possible)
> * Basic improvements/fixes for known issues with the terminal emulator
> 
> 1.6.0:
> 
> * Remaining items already listed in JIRA
> * The (experimental) X.org driver
> * Finalize the migration to guacamole-common-js' improved event system
> * Add remaining events for guacamole-ext's improved event system
> * Generalize the Docker image to no longer require manually mapping variables 
> to properties (to avoid any future issues with unmapped or incorrectly mapped 
> properties)
> * Support FreeRDP 3.0
> * Improvements to the speed and efficiency guac_common_surface (and moving 
> the surface to libguac) <- I have an automatic scroll detection algorithm 
> that seems to work pretty well
> 
> 1.7.0+:
> 
> * Support for WebAuthn
> * Ability to automatically apply/update the database schema.
> 
> 2.0.0:
> 
> * The AngularJS -> Angular migration.
> * Migrate from javax.* to jakarta.*, thus supporting Tomcat 10 while dropping 
> support for Tomcat 9 and older.
> * Backward-compatible, binary variation of Guacamole protocol (assuming 
> browsers are now capable of handling this efficiently, I have a rough sketch 
> of how this might look and how it might improve on the processing required)
> 
> 2.1.0+:
> 
> * Improve admin UX regarding management of objects (relegate some parameters 
> to an "advanced" tab/view, add tooltips and links to help).
> * Load balancing / HA support for the webapp itself
> 
> Thoughts?
> 
> - Mike

Reply via email to