RhodeCode 6 Week Report

Published on June 10, 2015, by Brian


The last 6 weeks have been extremely hectic here at RhodeCode. We have shipped 7 releases of RhodeCode Enterprise and 3 release of RhodeCode Control. So, lets recap on what has been accomplished.

Pull Requests

The pull request feature of RhodeCode Enterprise has been revamped to increase its usability and flexibility. As we use pull requests for all repository contributions in-house we complain and open tickets for anything that bugs us about the process. As a result, the following changes have been made:

  • The review status is reset after after a pull request is updated.
  • A number of hooks have been added to enable automated testing of pull requests before they end up on a reviewers screen.
  • Inline comments have been thoroughly revamped for better user experience, and if you wish you can invalidate all inline comments after an update.
  • Warning messages have been added for missing commits in the source repository.
  • Information messages have been added for the target repository, successful updates, and newly added reviewers will get a notification.
  • A shortcut has been added to repository pages to take you to its pull request page. To try it out, hold gp on a repository page.
  • On the backend, logging has been expanded during an update.
  • It is now possible to edit the title and description.

All in all, that is a lot of updates around one single feature. But as it is one of the most heavily used, almost all of our users will see the benefits. Have a look:

RhodeCode Automated Testing

VCS Server

The VCS Server does the talking between RhodeCode Enterprise and its repositories. As can be expected, this is a heavily used backend feature where big performance gains can be made. While the end user may not see much difference, your server will.

  • The VCS Server's handling of push and pull operations when restarted is now much more robust.
  • Support has been added for a configuration file to enable greater control.
  • The memory cache configuration has been optimized to keep it from getting out of hand.

API

The API also got some attention. After the security fixes in March it has been continually refactored, and some additional calls have been added. This is so that the API continues to grow as a solid base on which to build future functionality.

  • Password and boolean value handling has been improved for the create_user, create_repo, and update_repo_group calls.
  • The strip API call is now more robust.
  • The ability to make a pull request using the API has been added, check the create_pull_request documentation.

RhodeCode Control

On this front, the 100% test coverage and solid nature of the 1st product that has been built from scratch in-house means that what RhodeCode Control delivers is the focus, rather than on the tool itself. These are the visible user experience improvements:

  • Fixed scenarios where the installer was unable to detect the user's shell.
  • Improved the handling of problems during logging initialization.
  • Fixed the database validator to allow implicit user and password.
  • Improved rccontrol self-destroy to sort and display items to be deleted.
  • Fixed VCS Server upgrading so that it keeps the same port.

The major gains though are in packaging and delivering builds. The biggest one has been getting RhodeCode Enterprise working on Windows through Cygwin. Decreasing the time needed to deliver a new version of RhodeCode Enterprise, and dropping hot-from-the-repository builds on to the testing, beta, and public channels.

Security

A number of the releases have been security fixes, and as this is an area which gets high priority, when security bugs come in they go to the top of the queue. The main security fixes have been covered in the
[RhodeCode Enterprise 3.3.2 blog post(https://rhodecode.com/blog/rhodecode-enterprise-3-3-2-security-release) and the API fixes mentioned above.

Conclusion

Over the last 6 weeks it never felt like so much was getting delivered, it is only when you take a moment to step back and write a 'pat on the back' blog about these things that you see what the team is accomplishing.

Looking forward, the plan for the next 6 weeks is more of the same. Pick up the tickets, deliver more features, and keep improving little by little.