RhodeCode Enterprise 3.4.0

Published on July 14, 2015, by Brian


RhodeCode Enterprise 3.4.0 is out today, as well as RhodeCode Control 1.1.9. Both of these releases contain a number of fixes, new and improved features, as well as some developer and tester tears. So let’s take a look inside.

Overview

  • The API was given some attention and a number of improvements were made.
  • Pull requests continue to get better, with many tweaks revolving around making workflows smoother and getting the software to behave as expected.
  • The styling of the interface is also an ongoing project, and as with all releases some extra prettiness is shipped with this one.
  • The VCS Server performance has been tweaked with some improvements, and better out of the box default values.

Download & Upgrade information

To download or upgrade RhodeCode Control and RhodeCode Enterprise, get the latest versions from our download portal and see the installation or upgrade documentation.

API Updates

The API improvements centred around the create_repo and update_repo calls. For both of these the error handling has been improved, and the update_repo call now takes a new parameter: fork_of. A new addition is the create_pull_request call, and it does exactly that, allowing you to create pull requests using the API.

We also have our first deprecated call, changeset_comment. This has been replaced with comment_commit to adhere to the naming convention. The old call will be supported for the next few releases but will eventually be sunset.

Pull Requests

A pull request has a number of parts that can change throughout its different phases. In this release the inline comments have been fixed to stick with the line to which they are attached originally, or be hidden should that line be removed. Also the merge status of a pull request is now always displayed throughout its lifecycle.

The biggest change though has been allowing the user to change the title and description of a pull request. This is proving very handy, as often they take on a life of their own and outgrow their initial scope.

Dependency Bumps

RhodeCode Enterprise come with a lot of dependencies, and during this 3 sprint block a big push was made to update those to more recent versions. As you can imagine this required tonnes of testing, fixing broken dependencies, and adding new dependency for dependencies!

Once this big jigsaw was finally packaged in our Nix build then is took a while to get through all the required testing. This is what it looks like in practice using Git 2.0.5 as an example.

git = {
  "2.0.5" = rcnixpkgs.lib.overrideDerivation
      (rcnixpkgs.gitAndTools.git.override { withManual = false; }) (old: rec {
    version = "2.0.5";
    name = "git-${version}";
      src = rcnixpkgs.fetchurl {
      url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
      sha256 = "18ccmx3y1c27c0f4xqjgc9vszwj8vx3bpnnhfq30vwf7fd83z9pm";
    };
  });

Performance Gains

At scale, performances become an important concern and is something that is always tweaked during each development phase. For this release connection handling to the VCS Server has been improved in thread based scenarios.

Additional pre-push and pre-pull hooks have been added to RhodeCode Extensions to enable users to trigger certain actions, for example forbidding changes to certain files.

RhodeCode Control

The latest version of RhodeCode Control gives a smoother user experience through better reporting of permission issues during install and upgrade scenarios. The offline installation has also been improved by reducing the number of steps the user needs to take, and the update function now gracefully handles CTRL-C prompts.

Looking Forward

With 3.4.0 now out the door, we will just sit back and enjoy the Tour de France on TV. Of course, the planned Subversion improvements, SSH extension, adding greater permission flexibility, and more functionality to the interface will have to wait!