Release notes for version: 11.0
Upgrading to version 11 from older versions is optional (even on cloud) for the coming months. You will have enough time decide when to upgrade. Please use it to carefully examine the important changes.
This section is important for Server solution. Cloud users need not worry about any of this.
In addition to previous versions' release notes, where we merely specified Ruby version, from now on we will be providing you with a more comprehensive listing of fully supported technological stack. By sticking to these specifications, you will avoid any obscure difficult issues caused by vast possible combinations of all components.
- OS: Debian 10 or 11
- Redmine: 5.0.0.easy
As we were very eager to start using Rails 6.1, which provides great possibilities for perfomance improvement, we decided to create our own little fork of Redmine. This doesn't change the fact that Easy remains Redmine compatible, including in data migration from Redmine to Easy.
- Ruby: 2.6.3
Versions 2.7.x, 3.x support coming soon.
- Bundler: 2.2.x
- Database: Percona/MySQL 5.7+
One of the hardest decisions we ever had to make was to drop support of PostgreSQL in version 11. Maintaining two databases unfortunately meant ineffective code and stability of the application suffered because of it. By focusing our attention on one database we can locate and remove bottlenecks, optimize slow queries and build scalability solutions. Also, Percona itself is focused on performance. Dropping Postgres support is the main reason why we will keep version 10 in LTS mode until mid 2022, in case it is problematic for you to migrate to Percona.
We analyzed and tested various tools for DB conversion, here are our results and tips. We hope you will find them useful.
- redis-server: 5+
- NodeJS: 14.16 (LTS)
End of sub-uri
Based on feedback from hundreds of users in several previous years, we have ultimately decided to dramatically overhaul the look of Easy Redmine. Starting with the color scheme and layout change, down to minor tweaks, such as adding a general New button in the bottom right corner, or calendar with next meeting on the upper bar.
We also felt the need for a more soothing login page.
Quite refreshing, wouldn't you say?
Let us guide you through a few specific design changes.
The main menu has shifted from top to the left bar, which is collapsible. Contents of the main menu and the submenus remain untouched.
Located as previously (top right corner), the change is in the inside contents.
The sections are divided based on the new product structure of Easy Redmine from version 11.* For admins and partial admins, we added item to manage Users.
Submenus have been removed, but they are easily replacable in case you used them often (for example by custom main menu items).
We use this for the right panel with the tools such as To do list or Activity feed.
The bar itself, as well as the each item it contains was modernized and even some minor functional tweaks have been done.
One search field
You may have previously used two search fields one for full text search, the other called Jump to project. The second field has been removed due to its obsolence: a) By typing "p:" you can search projects in the first field; b) It was a custom input that required unnecessarily too much attention for maintenance.
Just a reminder, settings of the search field is in Administration >> Settings >> General
Email notifications (look and subject)
Email notifications have seen a significant beautification. They are more mobile friendly and eye-catching.
But perhaps the more important change is in the subject of the emails:
- New task: [task subject], project: [project name]
- New task for you: [task subject], project: [project name]
- Task updated: [task subject], project: [project name]
- Your task has been updated: [task subject], project: [project name]
These email subjects on task notifications provide you the option to set a mail filter for own tasks (you are assignee) vs other tasks, as well as set filters or tags for specific projects.
How is it with custom branding, you ask? Custom design that we previously made you for version 10 (or older) will probably have to be adjusted. Which is why before production upgrade or migration to version 11, you should do a test run. If the design breaks, just contact support, or your account manager, who will take care of the readjustment.
One of the absolute gamechangers in Easy Redmine for the years to come. Filtering of all entitites will become more interactive and intuitive.
Dynamic filters are added into version 11 as an optional component for the 3 most used entities: tasks, projects and time entries in the form of a page module.
You can also switch to the dynamic view from the regular task, project, or spent time list.
While currently there are certain limitations to this view as oposed to existing filters 1.0 (such as lack of chart output), we are going to gradually close the gap, until the dynamic filters eventually completely replace filters 1.0.
If you find that dynamic filters already fulfil your needs, you can switch to them by default using setting in Administration >> Settings >> General.
Switching back to filters 1.0 is possible via ellipses menu
Upgrade to CKEditor 5 is another step towards smoother and quicker UX, especially on mobile.
Previous CKEditor in Easy Redmine was customly patched and modified, which resulted in noticable performance impairment (loading was slow and glitchy). CKEditor 5 is in standard mode. This step means that we had to remove the HTML toolbar settings (basic, advanced, full). Along with them, some features had to go as well. Especially problematic - color selection - needed to be removed as well due to incompatibility of custom selected colors between dark and light theme of the application. Example: User with dark theme set custom text color to white, but that text is not readable for users with light theme that has white background.
One of the noticable changes is that you can paste images directly into the text using CRTL+V, which was not available in the last few versions.
Just please keep in mind that images are saved as attachments, which means that you can paste images into places, where attachments can be uploaded, for example a task comment. To paste images into other places, like noticeboard on a dashboard, please use the Insert image feature. This is the current standard for security and database optimization.
In order to be able to focus on usability of text editing further, we dropped support of plain, markdown and textile editors. Supporting 4 text modes became too strong distraction from reaching usability excelence of our application altogether.
Important: If you were previously using textile or markdown editor, after upgrade/migration to version 11, you have to run migration. In case of cloud solution, we will run it.
bundle exec rake easyproject:textile:migrate_all source_formatting=textile bundle exec rake easyproject:textile:migrate_all source_formatting=markdown
based on your previous formatting. Make sure to run the command in your installation directory.
change the formatting to HTML
rails r "puts Setting.text_formatting = 'HTML'"
bundle exec rake easyproject:markdown:migrate_all source_formatting
Introducing a new project module to keep track of concerned persons of your project - stakeholders. While in previous versions you needed a full featured plugin Contacts for this purpose, in version 11 we are adding Stakeholders into the very core of the application.
How it works
It is a regular project module - enable it in project settings >> modules.
On the stakeholders list on the project you can see buttons
- Add stalekolder - search for a stakeholder in your database (already in other projects) and add to this project
- New stakeholder - create a new stakeholder, who will be automatically linked to this project (and who can later be linked to other projects)
When linking stakeholder to a project you can describe their role in the project. This description is saved only in that particular project. The same person may act in a different role in a different project.
Permissions are in Global section:
- View stakeholders - user can see stakeholders module in visible projects
- Manage stakeholders - user can add, create, edit, delete stakeholders
- Anonymize - user can anonymize visible stakeholders (GDPR feature)
Stakeholders allow custom fields, although the existing native fields are enough for most cases.
Easy Redmine supports two major SSO technologies. SSO configuration is available on page /easy_sso. Any configurations may be made only by administrators that have access to the other side of the authentication chain.
This protocol is used by Azure Active Directory => Easy Redmine 11 is compatible with Azure AD!
Configuration is done by clicking on EDIT at SAML Service provider and requires to enter information available only to Azure AD admins.
In addition, OAuth 2.0 protocol is used by hundreds of well-known services, such as Google, Facebook and many many others.
Easy Redmine may act as
- identity provider (e.g. log in to Easy Redmine by Google credentials), or
- identity service (log in to other applications using credentials from Easy Redmine)
Other SSO setting?
Some admins probably noticed another setting in Administration >> Settings >> Authentication - section Single Sign On.
This setting relates to Kerberos, which was introduced a couple of years ago and is described in detail here. This setting has nothing to do with the aforementioned protocols.
Project owner, project manager
Based on feedback and general use, we added two fields on projects as native:
- Project manager
- Project owner
You will find these fields in project creation of editing, next to other native fields. The selection allows to choose all non-external users from application, even those that are not explicitely added as members of the project.
This effort is intended to standardize a use case that was previously handled by custom fields by 99 % of our clients. In general, custom fields have a negative impact on application's performance, and now you can get rid of two of them.
How to migrate data from existing custom fields?
Simple, go to https://[application_url]/easy_cf_migrator >> click MIGRATE on the respective field >> select the old custom field >> confirm. Only the contents of project custom fields of User/Lookup types can be migrated. No other custom field formats (e.g. text) are supported by the CF migrator.
To tackle performance impact of large data exports, we went with asynchronous (background) solution. Some users may have experience with exporting monthly, quarterly or even yearly reports, which may practically paralyze the application for a couple of minutes, not only for the author, but for other users as well. This is no longer an issue in version 11!
From the user perspective, it works quite simply.
- Go to Administration >> Settings >> General, enable the setting and set a reasonable limit. Exports of smaller lists below this limit will work like in previous versions.
- Export a list via buttons on bottom right
- You will be redirected to page /easy_async_exports where you can see a list of your recent exports.
- You can refresh the page to see the status change to done, at which time the download link will appear.
- You will also receive and email notification when the export is ready, so you don't need to wait, especially for the gigantic lists.
Advanced imports that are configured on-demand by our consultants also have the ability to work asynchronously. Previously, import problems appeared in large datasets due to server timeout before it was able to parse the whole file. This, as well, will not be an issue anymore.
Optimized task notifications
We received a lot of feedback about overflooding by email notifications. While there are settings in the application to reduce them (disable some types of events), they may not always apply, because those events may be imporant.
The solution is gathering events and sending notifications periodically (every 15 minutes) => all changes on one task done within the same 15 minute interval will be sent by one email. Previously, every saved change would generate a separate email. This is especially the case when working with Quick task editor and/or WBS, Agile board, Gantt etc.
How it works
- it applies only to tasks
- comments - all comments are put into the email
- attribute changes - unique attribute changes are all put into the email; if the same attribute was changed more times, only the most recent change is put into the email
- mentions (@username) are still send indepentently and immediately, as they are a different type of notification
Now, this is not a completely new feature. Many of you already may have used it without ever realizing it - it was an optional feature and for a few months it has been enabled by default. From version 11, however, this becomes the only task notification method.
Page customization optimized
One of the strongest features in Easy Redmine - customizable pages - also received some attention in performance and usability.
Page modules list shortened
Due to increasing number of entities (lists) in the application, we felt it is no longer sustainable to continue adding modules type [something] from filter into the list of available modules. Since there have already been generic modules (list, charts, report) available, the modules from filter became irrelevant and we removed them from the selection.
No need to panic :)
Your existing page configurations, including the most used tasks from filter will still remain active as they are. They will just not be available to add newly.
Also, during page editing, users will see a message prompting to replace these modules by the generic ones.
If you are asking when will these modules be removed from the application ultimately - They will remain in the application for the whole duration of version 11 (and its minor releases). Version 12 is the one where they will no longer exist.
List of removed modules:
- * from filter
- New task
- Knowledge posts
- Tasks reported by me
- Task watched by me
- Planned expenses
- Planned incomes
- Portfolio overview
- Real expenses
- Real incomes
- Travel costs
- Travel expenses
- Attendance by users (on Attendance dashboard)
Asynchronous page loading
You guessed right, it is again about performance improvement. In previous versions, the whole dashboard loaded only after every module was loaded. This meant that one single "slow" page module caused the user to wait for the whole page.
In version 11, the page modules are loaded individually => the dashboard is loaded without delay, each page module is loaded on its own.
Project overview - project controls / project description
A small change compared to the previous ones, but it needs to be mentioned to avoid possible confusion. Based on user feedback, it was clear that some modules needed reorganisation in a more logical way compared to their previous contents.
Changes on specific modules for Project overview:
- previously you could select to show description of the project, or project custom fields
- now it only shows project description
- previously it was a hardcoded module showing basic info about project (spent time ratio, %done, indicator, etc.), tags, and buttons for project operations (close, new subprojects, etc.)
now it serves to show native and/or custom fields on the project
now shows basic info about project (spent time ratio, %done, indicator, etc.), tags, and buttons for project operations (close, new subprojects, etc.)
(in other words, it is just renamed module Project information from version 10)
- now shows basic info about project (spent time ratio, %done, indicator, etc.), tags, and buttons for project operations (close, new subprojects, etc.)
Important: If you previously used the module Project description to show project custom fields, you will need to reset the page and add module Project information and select which fields to show.
Upgraded meeting calendar
By this step, we are putting an end to a calendar duality. We had a Meeting manager, as part of core Easy Redmine. Additionally, there was a premium plugin Scheduler which contained more advanced capabilities including integration with Resource management (task allocations).
The old Meeting manager has now been removed and is completely replaced by Scheduler (detailed documentation here).
What has changed:
- Meeting calendar in the More menu now points to a full page view of Scheduler
- A more compact version is available on the top left corner
- Homepage module Meeting calendar has been permanently removed. By upgrading to version 11, users who previously had this module on their homepage will lose it. If necessary, they can add the module Scheduler on the homepage, but, as written above, there is already an ever-present calendar, sufficient for most use cases.
Since freeing up our hands by removing an excessive component, we were able to start working on closer integrations with some widely used calendar tools (even MS Exchange Server).
One-click Git(Lab) integration
As software developers ourselves, we felt it important to improve the connection between Git and Easy Redmine. For the moment, we are focused on GitLab. However, our solution is extendable to other repository clients.
We designed a plugin that shows relevant data from GitLab (repositories, commits, merge requests, test runs) directly in Easy Redmine for reporting purposes to managers and other non-development staff. While connection between tasks (logging time, changing status etc) and code changes (merge requests, commits) remains a useful feature for developers. The connection of Easy Redmine to GitLab is configured simply by filling URL and GitLab token. Everything following configuration is done automatically, including webhooks for immediate changes propagation on both sides.
Throttling API requests
Something for the server admins. Version 11 introduces rate limits for API requests into the application using rack-attack gem. This is a prevention from bombing an application by outside requests.
If you have some REST API integration, please properly review it based on changes made in version 11.
- Default limits
- get API = 100 / 1 minute
- write API = 10 / 1 minute
- In case of exceeded limits - status 429
- Configuration - on own risk in
Unnecessary settings cleanup
Some call it "checkbox land". The administration is full of useful configurations, but over time some became irrelevant, even obsolete. Here is a list of removed settings from administration.
Administration >> Settings >> General
- Maximum results shown in autocomplete - the setting will be hardcoded to 25, which is the best practice used globally
- Search results per page - did not bring any relevant value, will be hardcoded to 10 results
- Objects per page - only the first number had some effect, but was often misused. The setting will be hardcoded to 25, which is the best practice used globally
Administration >> Settings >> Display
Show personal statement in menu - Personal statement can be found under More >> Time reports
Show log time in menu - logging time available via NEW "+" button
- Show resource booking in menu - deprecated feature
Administration >> Settings >> Authentication
- Allow OpenID login and registration - deprecated in this form, fully replaced by aforementioned SSO (OAuth 2.0) functionality
Administration >> Settings >> Email notifications
- Style of email subject of task notification - as explained in a previous chapter, email notifications have been refactored and the subjects have changed
Resource management improvements
Extended resource report
A popular feature from version 10.6 (Autumn edition) Resource reports has been extended to show users on X axis for a new kind of report.
We recommend setting filters reasonably, not to show too many users for a long period, which would make the chart unreadable. Also, all user groups are shown by default. To hide them, simply set the filter for groups - none
Permissions for reservations
The reservations feature is now has its own permission, under Resource management section.
Help desk improvements
OAuth2 for Gmail
Due to GSuite's tightening security, we implemented OAuth authentication so that Help desk can safely reach your support mailboxes hosted by Google.
It is harder to configure than just regular login/password, but there are hints next to each field. Of course, you will need to generate some data in your Google account.
Email templates to more statuses
Another little time and data saver. One email template can now be linked to more statuses at once.
Use CRTL+click to highlight more statuses.
Change SLA based on project
This one came from feedback of our users and is generally usable. Moving ticket to different project will change SLA of that ticket according to the settings of the target project. Previously, it was required to change tracker or priority in order to update the SLA. Now it is not needed anymore, and project change itself is enough.
View Help desk permission
Previously, there was only one permission - Manage Help desk, which meant that user could access the Help desk page, but also change all settings. By adding View help desk permission you can give access to the help desk dashboard and its data without giving access to make configuration changes.
Kanban - Limit WIP
We adopted the standard of keeping a Kanban stage limited. Just go to Kanban settings on the project and set the right limit per each stage.
This neat visualization tool deserved some usability tweaks. Some other changes were forced.
- Removed from text editor - as mentioned above, the text editor is now in standard form, which meant that button Diagrams needed to also go away
- New diagram from task - Creating diagrams is possible only from task, via task more menu
- Save vs Exit - during diagram editing, you can Save it as many times as you need, without leaving the diagram, like it was previously. When you are done, click exit and you will be taken to the last page
- After creation, diagram is linked to the task
- You can the copy the embed link and paste it anywhere as you are used to
- The global list of diagrams remains as it was on page /diagrams
Gantt and WBS export
Export/Print of Gantt or WBS is no longer managed via export templates, which were not fully suitable for this purpose. Instead, the print is managed via web browser, which is built and optimized for such tasks.
After user feedback and deeper research, we made changes to the product structure, which are clear from our website. A part of the restructure is removal of certain functionality with high maintenance and low added value.
- Chat - there are numerous specialized chatting tools far superior to our in-app chat. Furthermore, the technological solution caused heavy performance degradation.
- Cash-flow - Cash flow is not a whole plugin, but just part of Budgets plugin. Unfortunately, it was a part with serious performance impact. Its technological premise came down to a conflict between performance and functionality. We previously chose functionality, but at a very high cost of performance (especially with a larger number of projects). This part of our Budget system proved unsustainable. However, cashflow and other advanced project budgeting capabilities are a part of a solution for Easy Redmine built by our partner and will soon be introduced.
- Project calculation - plugin that had little added value and high maintenance. There are various ways to substitute majority of its features by other parts of Easy Redmine.
- CRM & Contacts - CRM and Contacts are discontinued in version 11. Contacts are substituted by Stakeholders at the moment. A whole full featured B2B CRM plugin (including a complex contacts management) will be introduced later this year. This will be a successor of the discontinued CRM, with data migration possible as an individually tailored project.
- Jenkins integration - plugin with little general use. Any integration you desire can be delivered as a custom solution according to your needs, without the need of this plugin.
- Requirements management - the plugin needed much more care than we were able to provide it. Functionality of Requirements can be substituted by existing ER functionality, or possibly integrated with a specialized application.