RhodeCode 4.11 Release: Code Review, Scheduler and speed improvements.

Published on February 27, 2018, by Marcin Kuzminski


The newest release of RhodeCode is out, we're excited to bring out 4.11 release line. This is a scheduled release that adds improvements on code-review rules,
speed enhancements for authentication/svn and added a new Scheduler functionality into the core.

This release highlights are:

  • Code review group voting rules EE only.
  • New Scheduler functionality EE only.
  • Integration enhancements.
  • Authentication and SVN speed improvements.

Take a few minutes to update your RhodeCode instance:
rccontrol self-update && rccontrol upgrade '*'

New to RhodeCode? Download the latest RhodeCode 4.11 Series from our website.
Keep reading for full release details.

Code Review rules

Starting from 4.11 series, it's now possible to define a source and target branch match rules to pick the default reviewers.
This allows more flexible workflows for doing code reviews.

Another great feature we added to this release is the possibility to define additional voting rules for a group of reviewers.
For example, for a user group called "Security-reviewers" which have 5 members, we can define that minimum of 2 votes from this group is required for approval.
This can speed up review process significantly for larger organizations because it could reduce the time for review to be completed.
It's often enough to have one or two experienced members approval from a pool of people instead of waiting for all members to approve.

Here's an example of our open-source review rules we have on RhodeCode CE repository.

RhodeCode review rules example

As you can see we have now two new rules that defined that for any .html file or .less file we request approval from the design group.
However just one member Is required to approve it.

Performance

We worked closely with larger organizations on improvements for HTTP protocol, especially speed of SVN operations on that protocol.
In cases of the initial checkout of code we could observe up to 6x checkout speed improvements in certain conditions.

We also worked on stabilizing GIT HTTP protocol on flaky, unstable connections.
Now in case of large clones over connections that have high latency or significant pockets drop the result will be more stable and predictable.

Scheduler EE (beta)

The 4.11 series bring an exciting new core feature which will lay a groundwork for different automation tasks.
The RhodeCode scheduler is based on the new celery beat available in Celery 4.X series (which RhodeCode 4.11 uses)
Basically Scheduler allows executing a periodic scheduled task in a repetitive way. This feature is enabled in the core
of 4.11 EE edition series as an admin interface which allows now defining certain tasks for example repository pull, or maintenance.

However, the full power of this function will be used in 4.12 release which will have another feature called RhodeCode automation enabled.
At start this will allow:

  • Automatic repository maintenance, git GC, HG filesystem checks etc.
  • Automatic repository push/pull to/from remote locations. This allows easy creation of local read-only replicas or automatic pushing to Github or other systems. For automatic mirroring
  • Automation of user session cleanups

This is, of course, just a start, there are many more possibilities in this, such as automatic pull request merging,
automatic monitoring of resources, or even in future executing some automatic code checks/code analytics that we plan to implement which is in our plans for a shift-left
approach. Stay tuned for the next release which we'll enable a one-click interface to perform automation of various tasks.

Integrations

Our main integration logic now properly handles empty branch/tag creation for Git repositories and exposes new refs data with that information, making the integration framework more complete.
This covers the case for email/webhook integrations

In our Slack integration, we also expose the FULL message instead of title, to let Slack trim logic be used.

upgrade notes

RhodeCode 4.11 uses latest Celery 4.X series. This means that there’s a new way to run the celery workers.
In case you use celery now or want to enable it, simply run rccontrol enable-module celery <instance-id> to enable or convert the currently running celery setup.

Please note that this release is first in series that drops completely pylons dependency.
This means that certain paster commands are no longer available.

Commands changed after dropping pylons compatibility layer:
- paster upgrade-db /path/ini_file => rc-upgrade-db /path/ini_file - paster setup-app /path/ini_file => rc-setup-app /path/ini_file - paster ishell /path/ini_file => rc-ishell /path/ini_file - paster celeryd /path/ini_file => celery worker --app rhodecode.lib.celerylib.loader /path/ini_file

Other notable changes

  • Files browser: allow making a range selection of code lines with shift-click from line numbers.
  • Pull requests: allow opening PR from changelog based on selected refs for git as well as hg.
  • A ssh clone uri was added to summary view for easier SSH clone.

Summary

See the full list of changes in the release notes.

As usual, the update process is a simple one-liner type:
rccontrol self-update && rccontrol upgrade '*'
in the command line interface. Done!

Sincerely yours,
The RhodeCode team.