【Monthly Update】Preview of the New Features in Pre-release Redmine! Introducing commits related to performance improvements.(January 2025 Commit Highlights)
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.
- Optimize TimeEntryActivity#default_activity_id method to reduce SQL queries
- Optimize IssuesController#show method to reduce SQL queries
- Refactor Member#role_ids= method for improved clarity and efficiency
- Optimize Version#wiki_page method to reduce SQL queries
- Optimize Activity view to improve performance
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.
- Expected version: Redmine 6.1.0
- Official site issue: Feature #42150: Optimize TimeEntryActivity#defaultactivityid method by introducing early returns to reduce SQL queries
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.
- Expected version: Redmine 6.1.0
- Official site issue: Feature #42144: Optimize IssuesController#show by skipping time tracking queries when disabled
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.
- Expected version: Redmine 6.1.0
- Official site issue: Patch #42124: Refactor
Member#role_ids=
method for improved clarity and effficiency in removing obsolete member roles
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.
- Expected version: Redmine 6.1.0
- Official site issue: Feature #42121: Optimize Version#wiki_page method
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.
- Expected version: Redmine 6.1.0
- Official site issue: Feature #42077: Optimize activity view performance through association preloading for journals
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/