[Maria-developers] Process suggestion for minor issues

2013-06-14 Thread Rasmus Johansson
Hi MariaDB Developers,

This is a suggestion on how to deal with minor or lower priority bugs
and tasks in JIRA, http://mariadb.org/jira .

Currently, the process we use makes a clear differentiation between
major or higher prioirty issues (called majors altogether after this)
and minor or lower priority issues (called minors altogether after
this). The majors are the ones that should be fixed for a release and
the minors are rolling, meaning that they are done when the
corresponding developer has finished his/her majors. This of course
sounds logical, but it also leads to a growing number of minors for
every consecutive release, many of them which never will be fixed but
in the current process will hang around.

Here is a suggested process to handle the ever growing amount of
minors. If a minor issue isn't fixed after two consecutive releases
it's re-reviewed and either priority changed to major (or higher), or
the minor issue is closed with resolution Won't Fix and a comment.
Example of comment can be that this is an edge case where effort and
benefits doesn't correlate. It should also be noted that after
closing an issue in JIRA, it doesn't mean that it disappears. It will
still show up in free text searches and among the issues for the
version where it was closed.

Please provide your thoughts. Do you think it's an OK way to deal with
the minors or do you prefer some other way?

Best regards,
Rasmus

___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Maria-developers] Process suggestion for minor issues

2013-06-14 Thread Elena Stepanova

Hi,

On 6/14/2013 2:27 PM, Rasmus Johansson wrote:

Hi MariaDB Developers,

This is a suggestion on how to deal with minor or lower priority bugs
and tasks in JIRA, http://mariadb.org/jira .

Currently, the process we use makes a clear differentiation between
major or higher prioirty issues (called majors altogether after this)
and minor or lower priority issues (called minors altogether after
this). The majors are the ones that should be fixed for a release and
the minors are rolling, meaning that they are done when the
corresponding developer has finished his/her majors. This of course
sounds logical, but it also leads to a growing number of minors for
every consecutive release, many of them which never will be fixed but
in the current process will hang around.

Here is a suggested process to handle the ever growing amount of
minors. If a minor issue isn't fixed after two consecutive releases
it's re-reviewed and either priority changed to major (or higher), or
the minor issue is closed with resolution Won't Fix and a comment.
Example of comment can be that this is an edge case where effort and
benefits doesn't correlate.


I don't think the algorithm is quite fair. It means that if a really 
minor bug happens to be found during a relatively slow period, it gets 
fixed, but another bug, even considerably more important (but still 
falling into not major = minor category), can be by this time closed 
as not worth fixing just because people had been busy with some other 
stuff and couldn't fix it over two previous releases; while logically, 
if somebody suddenly has time to fix a minor bug, the latter should be 
fixed first.


I'm fine with closing bugs as Won't Fix, but imho it should be based 
on the merits of the bug itself, not on the bad timing of its creation. 
Since all our developers are very senior and can totally make such a 
decision on their own, I suppose anyone who a bug is assigned to can 
take a look at it and either close it as Won't fix with a proper 
explanation, regardless the timing (even right after receiving it), or 
keep it open. If someone isn't sure, he can always seek for colleague's 
advice. If somebody disagrees with closing a bug, she can always scream.


/E


It should also be noted that after
closing an issue in JIRA, it doesn't mean that it disappears. It will
still show up in free text searches and among the issues for the
version where it was closed.

Please provide your thoughts. Do you think it's an OK way to deal with
the minors or do you prefer some other way?

Best regards,
Rasmus

___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp



___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Maria-developers] Review request: mdev-4635

2013-06-14 Thread Alexander Barkov

Hi Sergei,


On 06/14/2013 04:30 PM, Sergei Golubchik wrote:

Hi, Alexander!

On Jun 13, Alexander Barkov wrote:

On 06/13/2013 08:16 PM, Sergei Golubchik wrote:



=== modified file 'mysql-test/r/strict.result'
--- mysql-test/r/strict.result  2011-06-05 02:56:06 +
+++ mysql-test/r/strict.result  2013-06-13 12:15:43 +
@@ -213,11 +213,11 @@ ERROR 22007: Incorrect date value: '2004
   INSERT INTO t1 (col1) VALUES(STR_TO_DATE('0.10.2004 15.30','%d.%m.%Y 
%H.%i'));
   ERROR 22007: Incorrect date value: '2004-10-00 15:30:00' for column 'col1' 
at row 1
   INSERT INTO t1 (col1) VALUES(STR_TO_DATE('31.9.2004 15.30','%d.%m.%Y 
%H.%i'));
-ERROR 22007: Incorrect date value: '2004-09-31 15:30:00' for column 'col1' at 
row 1
+ERROR HY000: Incorrect datetime value: '31.9.2004 15.30' for function 
str_to_date


Hmm, I don't know. I liked the old error message more.
Indeed, datetime value '31.9.2004 15.30' is just fine for a function 
str_to_date().
But '2004-09-31 15:30:00' is not fine for column 'col1' in the strict mode.

Why did that change?


Before the change the warning was generated in
Field_timestamp::store_TIME_with_warning.

Now this warning is generated much earlier,
in Item_func_str_to_date::get_date(),
after check_date() is called.


Which, I think, it wrong. The date is perfectly ok, as far as
STR_TO_DATE is concerted, it's wrong for a field.


The problem was that Item_func_str_to_date:
a. checked TIME_NO_ZERO_DATE
b. did not check TIME_NO_ZERO_IN_DATE (the bug)
c. did not check invalid dates

After the patch it:

a. checks TIME_NO_ZERO_DATE
b. checks TIME_NO_ZERO_IN_DATE
c. checks invalid dates

I thought it would be good to check everything,
for consistency. But a side effect is a different warning.


I agree, it should check everything. But, perhaps, the field should not
pass TIME_NO_ZERO_DATE|TIME_NO_ZERO_IN_DATE down to the arg-get_date() ?


It does not. The above warnings are not about zeros.
They are about wrong dates: for example, there is no September 31,
like in '31.9.2004 15.30'.


The last version of the patch does not change the warnings.
It works as follows:

- str_to_date checks TIME_NO_ZERO_DATE and TIME_NO_ZERO_IN_DATE
with help of check_date(), but only if the caller wants it
(CONVERT_TZ wants, field does not).

- str_to_date suppresses checking of invalid dates inside
check_date() and leaves this responsibility to the caller
(like it was before the patch).


If we want check invalid dates inside check_date() in str_to_date,
then this warning
Incorrect date value: '2004-09-31 15:30:00' for column 'col1' at row 1
won't be possible, because str_to_date does not know the name of
the column it's being inserted into.

But we could try to produce something like this:

Incorrect datetime value: '2004-09-31 15:30:00'

I.e. a better formatted value, but without the column name.




Regards,
Sergei



___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Maria-developers] Process suggestion for minor issues

2013-06-14 Thread Kristian Nielsen
Rasmus Johansson ras...@mariadb.com writes:

 This is a suggestion on how to deal with minor or lower priority bugs
 and tasks in JIRA, http://mariadb.org/jira .

 Please provide your thoughts. Do you think it's an OK way to deal with
 the minors or do you prefer some other way?

The whole Jira thing is a farce. It has been going on for a year or so and it
has ended up exactly as bad as I feared.

It's so broken I don't know where to start. I spent lots of effort early in
MariaDB to get a working release process, now it's totally destroyed, and
every single minor release is taken hostage in an attempt to work around
missing management of developer time. There is 100% focus on completion of
whatever random tasks are in Jira and 0% on ensuring good quality of tasks
actually completed.

I once read an anecdote from a team at Microsoft (could be anywhere). There
was management like this with lists of tasks/bugs to complete and release
deadlines and such. The logical consequence of course was to complete tasks
by pushing empty code - then it was complete, and actually doing the work was
then a new bug.

MariaDB development is not a sausage factory.

When Jira was initially suggested, my first comment was we cannot use
that. I won't bother people anymore with my opinions on this, they have not
changed and are unlikely to do so.

Hope this helps,

 - Kristian.

___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Maria-developers] Process suggestion for minor issues

2013-06-14 Thread Elena Stepanova

Hi Kristian,

On 6/14/2013 5:39 PM, Kristian Nielsen wrote:

Rasmus Johansson ras...@mariadb.com writes:


This is a suggestion on how to deal with minor or lower priority bugs
and tasks in JIRA, http://mariadb.org/jira .



Please provide your thoughts. Do you think it's an OK way to deal with
the minors or do you prefer some other way?


The whole Jira thing is a farce. It has been going on for a year or so and it
has ended up exactly as bad as I feared.

It's so broken I don't know where to start. I spent lots of effort early in
MariaDB to get a working release process, now it's totally destroyed, and
every single minor release is taken hostage in an attempt to work around
missing management of developer time. There is 100% focus on completion of
whatever random tasks are in Jira and 0% on ensuring good quality of tasks
actually completed.


I agree that we don't have any quality assurance process. I've been 
recently trying to gain at least some control over my part, but it's 
going rather slowly and apparently not very successfully. Whatever 
suggestions you have in this regard, please let me know, I'll take them 
into account.


/E




I once read an anecdote from a team at Microsoft (could be anywhere). There
was management like this with lists of tasks/bugs to complete and release
deadlines and such. The logical consequence of course was to complete tasks
by pushing empty code - then it was complete, and actually doing the work was
then a new bug.

MariaDB development is not a sausage factory.

When Jira was initially suggested, my first comment was we cannot use
that. I won't bother people anymore with my opinions on this, they have not
changed and are unlikely to do so.

Hope this helps,

  - Kristian.

___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp



___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Maria-developers] Process suggestion for minor issues

2013-06-14 Thread Roberto Spadim
i like the today jira process, if you want a higher priority, do some job
solving the problem, after that we could have NEW FEATURE in JIRA, like:
send the patch and marke the issue to PLEASE REVIEW I HAVE SENT A
SOLUTION! (i don't remember but when this occur i set the issue to major
(sorry i will not change it))

the automatic won't fix, and the two releases i think it's not nice, i
sent some ideas that in my option will take many time to start a
development, and maybe with this 2 releases idea it will never be done

i think mariadb use jira with the sprint idea, group some issues and work
on it, that's why i think changing issue isn't a good idea, the main idea
is how to put the issue in the sprint

i'm right?
___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Maria-developers] Process suggestion for minor issues

2013-06-14 Thread Roberto Spadim
about quality assurance process, what should be done? unit tests? test team?

___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Maria-developers] Process suggestion for minor issues

2013-06-14 Thread Elena Stepanova

(warning: it's a long one)

Hi Sergei,

On 6/14/2013 6:26 PM, Sergei Golubchik wrote:

Hi, Elena!

On Jun 14, Elena Stepanova wrote:

On 6/14/2013 2:27 PM, Rasmus Johansson wrote:

Here is a suggested process to handle the ever growing amount of
minors. If a minor issue isn't fixed after two consecutive releases
it's re-reviewed and either priority changed to major (or higher),
or the minor issue is closed with resolution Won't Fix and a
comment.  Example of comment can be that this is an edge case where
effort and benefits doesn't correlate.


I don't think the algorithm is quite fair. It means that if a really
minor bug happens to be found during a relatively slow period, it gets
fixed, but another bug, even considerably more important (but still
falling into not major = minor category), can be by this time closed
as not worth fixing just because people had been busy with some other
stuff and couldn't fix it over two previous releases; while logically,
if somebody suddenly has time to fix a minor bug, the latter should be
fixed first.


This algorithm has a re-reviewed and either priority changed to
major... step, so it's not just the timing. Not like automatic closing
of old bugs.


Yes, I got that part; but it doesn't change the potential faulty result.

Lets say we have imaginary priorities 1-5 which are all minor, 1 being 
the lowest.


For a while you had had a bug of priority 4. After 2 releases the 
reviewing force reviewed it, decided it was minor (rightly so), and 
closed it.

A few days later you got a bug of priority 1.
A few more days later you suddenly have time to fix a bug -- you are 
stuck at your main task and need a distraction, or you've got a headache 
and can't work on anything serious, or you only have half an hour before 
you need to go pick up kids... whatever. Naturally, you go to the list 
of your open bugs, take a quick look and pick whatever fits. If you 
still had the bug of priority 4, you'd fix it now, but instead you fix 
the bug of priority 1.


I don't know about others, but I do keep a bunch of open low-priority 
tasks, and while rarely, sometimes it happens that I can do something 
about a minor one. And then I look at them and pick by importance and 
suitability for the moment, not by the creation time.





I'm fine with closing bugs as Won't Fix, but imho it should be based
on the merits of the bug itself, not on the bad timing of its
creation.  Since all our developers are very senior and can totally
make such a decision on their own, I suppose anyone who a bug is
assigned to can take a look at it and either close it as Won't fix
with a proper explanation, regardless the timing (even right after
receiving it), or keep it open.


The main issue I didn't like - what that algorithm is making an attempt
of solving - is a growing pile of minor bugs that we aren't going to
fix.


I agree, there is no point at keeping those that we are really not going 
to fix. But I don't see anything critically bad at preserving those that 
we *want* to fix, just currently don't have time to -- as long as we 
don't schedule them for the closest release, thus lying to users and to 
ourselves (more on that later).


I also think it's two essentially different categories. Later here you 
are saying that a closed bug can always be reopened later and fixed. 
If we put the don't have resources to fix bugs into the same trash bin 
as we currently use for really won't fix bugs, re-opening will never 
happen. Who will go through the whole bunch of Won't fix bugs, review 
them *again* and see if they are really not worth fixing, or if we had 
to close them because we didn't have resources? Certainly you can't do 
it when you just have little time to fix one-two small bugs, you'll 
spend more time searching.




A bug is real, so it's difficult to say won't fix, it's much easier,
psychologically, to say, okay, I'll fix it, *when I have time*. But
really, for minor bugs this might never happen.


But sooner or later somebody who's reviewing them will dare close it 
anyway?..


Okay, I agree that psychologically it is easier to reject a bug 
*together with somebody* than make such a decision on your own, group 
mentality and all that, I get it and have it myself; so if it's all 
about having some kind of committee for closing such bugs, let it be.


(I don't really know who could this committee consist of. Generally, I'm 
a big supporter of a triage team, it makes the process less personal. 
But in a company where everyone is pretty much unique in his area, it's 
a bit strange, because at the end only the expert can bring in an 
educated verdict -- and this would normally be the person the bug is 
already assigned to anyway; others will just be there to hold his hand.)



And de-facto this leads to wrong expectations (users believe the bug
will be fixed in a specific version, but it isn't) and us lying to our
users.


True, but I think the new approach will mess up more than it will fix.

Now we 

Re: [Maria-developers] Process suggestion for minor issues

2013-06-14 Thread Jean Weisbuch
In my opinion many of the new features of MariaDB lacks some proper 
documentation/benchmarks and sometimes even testing, there are many 
features and new variables that could be used but almost nobody knows 
about these or the possible usecases/downsides are not clear and users 
will just keep it safe and not try these unless they are sure of what 
they are playing with.
It might be better for the end-user to have less new features but more 
knowledge/clarity about what he can do with the already available ones.


In that matter, creating tasks on Jira to follow up features/tools that 
has been added/modified and putting milestones on the task such as 
Create KB page on this, Do a benchmark for this on this case or 
Document the possible downsides and usecases of that feature might be 
a good idea as you can follow up the advancement and other peoples might 
contribute as well.
It might also avoid certain questions on the KB which is IMO poorly 
designed in that aspect (answers are put in comments).


A very short list of examples of these features/options that would 
benefit from a better documentation/visibility :
- The optimize_join_buffer_size optimizer switch is not documented 
at all and is disabled by default, what is its purpose and why isnt it 
activated by default (lack of testing of downsides?).
- Its not clear on what these variables do and which engine they 
apply to (there is a bug about that 
https://mariadb.atlassian.net/browse/MDEV-4395) : 
deadlock_search_depth_long, deadlock_search_depth_short, 
deadlock_timeout_long, deadlock_timeout_short.
- The default value of aria_repair_threads is 1, are there any 
downsides if an higher value is set, benchmarks might also come in 
interest if this value can make great performance differences.
- What is the use/action (if any) of the thread_cache_size variable 
when the threadpool is activated.
- More thorough benchmarks on Aria, especially with TRANSACTIONAL = 
0  1 compaired to MyISAM and InnoDB.
- Document how to define a correct value for the segmented key 
cache of MyISAM (knowing that it is not working like the innodb buffer 
pool instances) and is there any possible downside on its usage as its 
deactivated by default (except for some critical bug on it such as 
MDEV-4409).



Le 14/06/2013 17:30, Roberto Spadim a écrit :
about quality assurance process, what should be done? unit tests? test 
team?


___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Maria-developers] Process suggestion for minor issues

2013-06-14 Thread Patryk Pomykalski
Dnia 14-06-2013 o 12:27:22 Rasmus Johansson ras...@mariadb.com  
napisał(a):



Hi MariaDB Developers,

This is a suggestion on how to deal with minor or lower priority bugs
and tasks in JIRA, http://mariadb.org/jira .




Please provide your thoughts. Do you think it's an OK way to deal with
the minors or do you prefer some other way?



I agree with Elena that closing bugs which are worth fixing is a bad idea.
Even when the devs don't have time to bother with minor bugs there's  
always a chance that someone else will look at it and try to fix it. When  
I have some free time I look at the bug list and try to debug/fix  
something.


I also agree there's a bit to much drive for new features.

--
Patryk Pomykalski

___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp