【Monthly Update】Preview of the New Features in Pre-release Redmine! Introducing commits related to performance improvements.(January 2025 Commit Highlights)

2025-02-19  •  Tags: ,  •  KUROTANI Akihiro

I introduce the new features that have been committed in the official Redmine repository and will be included in the upcoming release. Let's preview the upcoming features that will make Redmine even more useful.

This month, I'll highlight five issues about performance improvements committed in January 2025.


What is Redmine?
Redmine is an open source project management software. It can be freely installed on self-hosted servers or used via cloud services. For more information about Redmine, visit official site.

Optimize TimeEntryActivity#default_activity_id method to reduce SQL queries

The TimeEntryActivity#default_activity_id method determines the default value for activity in time tracking. This method is also called when displaying a single issue.

It is designed to consider multiple conditions, such as the user roles and the global default value. For example, if a default value is set for a role, the method can determine the value accordingly. However, even if a value is found early, the method is structured to check all conditions before making a final decision. As a result, unnecessary SQL queries are executed.

In the next version, this method will be modified to terminate immediately once the default activity is determined. This change will prevent unnecessary SQL queries from being executed, leading to improved performance.

Optimize IssuesController#show method to reduce SQL queries

The IssuesController#show method is designed to load database records and related data for time tracking, even when the "Time tracking" module is disabled.

In the next version, this method will be improved to execute SQL queries related to time tracking only when the "Time tracking" module is enabled. This change will prevent unnecessary SQL queries from being executed, leading to improved performance.

Refactor Member#role_ids= method for improved clarity and efficiency

In the next version, the Member#role_ids= method will be refactored to improve readability and efficiency by simplifying the identification and removal of unnecessary MemberRole records.

Optimize Version#wiki_page method to reduce SQL queries

The Version#wiki_page method is designed to evaluate project.wiki even when wiki_page_title is blank. As a result, unnecessary SQL queries may be executed against the wikis table.

In the next version, this method will be improved to evaluate project.wiki only when wiki_page_title is present. This change will prevent unnecessary SQL queries from being executed, leading to improved performance.

Optimize Activity view to improve performance

In the Activity view, multiple SQL queries are generated for each journal, which may cause performance issues.

In the next version, the Journal#journalized method and the :scope parameter of acts_as_activity_provider will be modified. This will prevent unnecessary SQL queries from being executed, leading to improved performance.

Get Early Access to New Redmine Features with RedMica

"RedMica" is yet another version of Redmine provided by Far End Technologies. It quickly integrates the latest Redmine features, allowing you to use these new features ahead of others.

My Redmine: Use RedMica Right Away

My Redmine offers you "RedMica,": Far End Technologies version of Redmine. It allows My Redmine customers to experience new features before release next version of Redmine.

My Redmine Global Edition web site: https://www.redminecloud.net/

My Redmine Global Edition Free Trial: https://free-trial.redminecloud.net/

Created: 2025-02-19  •  Tags: ,