I have found a bug in midPoint. I want it fixed. What should I do?
The answer to this question depends on whether you have midPoint subscription or not. But first let me explain the basic principle of midPoint development.
MidPoint development process is designed to be efficient and very flexible. We do most of the development directly on
master branch. This gives us immediate feedback about the effect of every source code change. You can think of it as a way of natural and constant integration. It is one of the most efficient development techniques that we know about. Of course, this only works in small professional teams that consists of self-disciplined developers. We are very lucky to have such a team.
We really need this kind of efficiency. MidPoint is a substantial product. MidPoint is pushing the envelope of what IDM technology can do. But traditionally IDM systems were (very) expensive. MidPoint is much more cost efficient. And the cost efficiency of midPoint is based mostly in the efficient development and maintenance of midPoint source code.
To maintain this efficiency there are several concepts that we follow quite strictly:
- We try to replicate every bug using an automated test case, so we do not need to re-test is again and again. MidPoint is designed for this from day one.
- The bugs are replicated and fixed on
- We keep overhead ("paperwork") to the very minimum.
Especially the last point needs some explanation. E.g. we do not care about clean source code history. We are usually not re-basing or editing commits. We are not using gitflow. We do not track every single minor bug in jira. And so on. We prefer working system over all the ceremonies around it. We prefer readable source code over readable development history. We prefer good tests over review of all source code changes. We are pragmatic. We care about the result, not so much about the method how we got that result.
Reporting a bug
The first step to fix a big is to diagnose and report it. Please follow this guide: Creating a Bug Report
This step is the same for all midPoint users. Even users without subscription can (and are encouraged to) create a bug report. The difference is how and when the bug gets fixed.
Fixing a bug
All the bugs are replicated and fixed on
master branch if possible. Which means that the bug will be fixed in the next midPoint release. We will not fix a bug in the latest stable or any other midPoint version unless:
- This is a severe security issue.
- MidPoint subscriber asks for a backport.
We decide when to fix the bug. Bug fixes for midPoint subscribers take precedence. While we try to fix all the bugs that we know about in each midPoint release, there may be bugs that will not be fixed. These are bugs reported by users without a subscription that do not affect majority of midPoint users. E.g. bugs that cause problems only in some environments, bugs triggered by exotic configurations, etc. We have a tight development schedule and we choose to prefer fixing bugs that affect majority of users over exotic issues. So some bugs are usually moved out before a release.
As a rule, all the bugs reported by midPoint subscribers are always fixed before midPoint release. These cannot be moved out.
Pay Per Fix Discontinued
Evolveum used to offer a pay-per-fix service. The customers had option to pay for fix of particular bug even without active subscription. Pay-per-fix service is now discontinued. The only reliable option how to get bugs fixes is to obtain midPoint subscription. We have discontinued this service because it was difficult to plan, manage and there was a huge administrative overhead.