Closed Bug 198384 Opened 21 years ago Closed 16 years ago

Multiple target milestones

Categories

(Bugzilla :: Bugzilla-General, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 55970

People

(Reporter: ceder, Unassigned)

References

Details

(Keywords: helpwanted)

Attachments

(2 files, 3 obsolete files)

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) Gecko/20021003
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) Gecko/20021003

I'm working in a project that currently has two stable branches and one
development branch.  A bug sometimes needs to be fixed on all three branches.
I thus have the need to specify multiple target milestones: a certain bug
should maybe be fixed for version 3.1.4, 3.2.2 and 4.0.0.

Reproducible: Always

Steps to Reproduce:
Status: UNCONFIRMED → NEW
Ever confirmed: true
It's the same here, i often have bugs to correct in the old stable brabch and 
in the new one.
Reassigning bugs that I'm not actively working on to the default component owner
in order to try to make some sanity out of my personal buglist.  This doesn't
mean the bug isn't being dealt with, just that I'm not the one doing it.  If you
are dealing with this bug, please assign it to yourself.
Assignee: justdave → general
QA Contact: mattyt-bugzilla → default-qa
*** Bug 342149 has been marked as a duplicate of this bug. ***
I have just completed the attachments. Now a bug can be associated with "n" number of target milestones and the enhancements made enable the user to do so dynamically at any stage of the bug's life span. Also the bug can be tracked at milestone level and this enables, bug fix porting to be done at a single shot.

Do I need to submit a consolidated diff patch??
You don't *need* to but it would be nice to post the diffs if you have them handy.

We can't promise anything about integrating them, but you can request review on them by setting the appropiate review? flag, and we'll take it from there.

Thanks for coding that.
Execute the following command from the directory containing Bugzilla2.20  ( for example : /var/www/html/  )

patch -p1 < FinalPatch.diff

Kindly check if all 32 files are patched successfully.
Attachment #226979 - Flags: review?
Have attached the consolidated diff for my code changes. Please find attached the file - FinalPatch.diff and Kindly review the same
 
The following are the key enhancements made

- Maintain multiple Target releases / Target fixes for a bug.
· Dynamic addition of milestones to a bug at any time.
· Maintain List of fix (es) for a particular bug across all the releases.
· Maintain Activity log for each milestone of a bug.
· Automatically-generated emails should include the target milestone s and status.
· An email notification for a bug state transition should include milestone values to which the change applies.
· Keyword field to be a drop -down list of all defined keywords.

I have also prepared an operation manual which describes in detail the enhancements made. However Iam not able to attach it here. Kindly mail me if you require the same.

Thanks in advance to all for spending time on my effort!!
Kindly note that you need to run checksetup.pl after applying the patch
Comment on attachment 226979 [details] [diff] [review]
Patch file for Multiple target milestone support/enhancement

Hello, thanks for the patch!

I went to apply it, and it failed. Probably because all new features that we want to integrate must be made against the current CVS code ("trunk"), and your patch is against 2.20.

To integrate this upstream we need a patch against the current CVS code.

The conflicts that I've got looked small enough, so probably updating the patch to the tip should be trivial.

If you have 2.20 from a tarball there are CVS instructions that you can run in order to update -- in any case http://www.bugzilla.org/download/#cvs contains more details (the CVS section).

Before uploading patch against trunk, run "perl ./runtests.pl" in the root directory of Bugzilla to see if it passes the testing suite. 

+# Contributor(s): Ashok Rajagopalan<ashok.rajagopalan@wipro.com>

Leave a space between Rajagopalan and "<ashok" in order to be consistent with the format used until now.

   #                 Vaskin Kissoyan <vkissoyan@yahoo.com>
+  #		        Ashok Rajagopalan <ashok.rajagopalan@wipro.com>

This identation error is due to the fact that you have TABs in the source. Usually TABs cause problems since some viewers/editors expand them to 8 spaces and others to 7 spaces or so. runtests.pl complains in general about them and they should be replaced with spaces to keep identation consistent.

Thanks for sharing the code!
Attachment #226979 - Flags: review? → review-
Thanks for your guidance Vlad. All tabs were removed and runtests.pl passed the "no tabs" test.

Meanwhile I have some problems in checking out the code from CVS. Can I download the 2.22 stable release tarball instead and then do a merger??.. Also, is release of 2.23 on cards some time this july?? In such a case, a merger with 2.23 should be more appropriate.

Meanwhile there seems to be vast changes between 2.20 and 2.22. File CGI.pl has vanished!!! So I am forced to do lot of changes here..
After merging my code once again with the latest stable release,I am attaching the patch for the mutiple target milestone support-enhancement done over the stable version 2.22. Kindly review the same.

I have also supported dyanamic addition of milestones to an existent bug, at any stage of the bug's life span to permit complete back porting of bugs to earlier milestones with appropriate mail intimations.

Also made, "keywords" to be a drop downlist. 

Copy patch into bugzilla2.22 folder and execute
patch -p1 < My\ Patch.diff
./checksetup.pl

I have also prepared an user manual for the same , kindly mail me if that is required as I was not able to attach it here

Thanks
Attachment #226979 - Attachment is obsolete: true
Attachment #229960 - Flags: review?
Comment on attachment 229960 [details] [diff] [review]
Patch for target milestone enhancement - patch over bugzilla 2.22

Your patch must be against current CVS tip code (currently Bugzilla 2.23.2+). Your patch looks huge for what it tries to do.



>--- bugzilla-2.22/add_milestone.cgi	1970-01-01 05:30:00.000000000 +0530

I don't understand the goal of this script. We have editmilestones.cgi for that.



>--- bugzilla-2.22/Bugzilla/Bug.pm	2006-04-13 04:27:53.000000000 +0530

> sub initBug  {

>+  my ($bug_id, $user_id, $target_milestone) = (@_);

I don't see how a bug could depend on the target milestone.



>--- bugzilla-2.22/checksetup.pl	2006-01-12 12:33:46.000000000 +0530

>+      $sql_stmnt = "ALTER TABLE bugs MODIFY bug_id mediumint(9)";

Do alter the DB this way. Look at checksetup.pl more carefully.


What you try to do here can probably be achieved much more easily with custom fields available in the coming Bugzilla 3.0.
Attachment #229960 - Flags: review? → review-
(In reply to comment #12)
> Do alter the DB this way. Look at checksetup.pl more carefully.

I meant: do *NOT* alter
I think you have misunderstood the enhancement.

This patch deals in allowing the selection of multiple milestones to a specific bug , to allow porting of the same bug to various target milestones.
Example: Bug 5000 with milestones 5.0,5.1,5.2 etc

Kindly see all the comments of this bug to get a better understanding.

Thus a bug can be associated with "n" number of target milestones and the
enhancements made enable the user to do so dynamically at any stage of the
bug's life span. Also the bug can be tracked at milestone level and this
enables, bug fix porting to be done at a single shot.

Various factors like tracking the status, maintaining activity log, sending appropriate mails,etc have to be tracked milestone wise and this required schema changes at database level ,thus the size of the patch.

In most cases a single bug needs to be fixed in multiple/previous releases  and hence the need for these enhancements

Please revert back if you have got any apprehensions.Thank you

Comment on attachment 229960 [details] [diff] [review]
Patch for target milestone enhancement - patch over bugzilla 2.22

Kindly review the same after seeing my comments
Attachment #229960 - Flags: review- → review?(ashokvarda)
Attachment #229960 - Flags: review?(ashokvarda) → review?(LpSolit)
Comment on attachment 229960 [details] [diff] [review]
Patch for target milestone enhancement - patch over bugzilla 2.22

Kindly review my latest patch
Attachment #229960 - Flags: review?(vladd)
Comment on attachment 229960 [details] [diff] [review]
Patch for target milestone enhancement - patch over bugzilla 2.22

The main reason I deny review for your patch is that it's against 2.22. 2.22 is frozen for enhancements. You have to write your patch against current CVS code (2.23.2+) and fix at least my comment about checksetup.pl.

It doesn't make sense to review this code as the code between 2.22 and 2.23.2+ has changed *a lot*.
Attachment #229960 - Flags: review?(LpSolit) → review-
Thanks for that info , but how much time i have-in case,
to do the changes against 2.23.2 , so that release 2.23.2 is not out before i give my diff
We released 2.23.2 a few weeks ago. 2.23.3 should be released in a few weeks. We are doing some big changes in the code, which may make your patch to not apply cleanly pretty quickly. The risk is even higher as your patch is big.
Comment on attachment 229960 [details] [diff] [review]
Patch for target milestone enhancement - patch over bugzilla 2.22

LpSolit already reviewed this so I'm canceling my request.
Attachment #229960 - Flags: review?(vladd)
Attached patch Patch over 2.23.2+ (obsolete) — Splinter Review
Attachment #229960 - Attachment is obsolete: true
Attachment #230754 - Flags: review?
I have generated a patch over the current cvs trunk of 2.23.2+ .
Have also modified the checksetup.pl changes as per your advise.

Kindly review by applying the patch. Thanks for your support. 
Please let me know your comments.
Attachment #230755 - Flags: review?(LpSolit)
Attachment #230754 - Attachment is obsolete: true
Attachment #230754 - Flags: review?
Comment on attachment 230755 [details] [diff] [review]
Patch over 2.23.2+

Hi Ashok. Thanks for the patch! :-)

If you'd like to have this accepted upstream, read the Developer's Guide and re-write the patch to conform to the guidelines in that file:

http://www.bugzilla.org/docs/developer.html
Attachment #230755 - Flags: review?(LpSolit) → review-
Note that:
1. You are not allowed to remove the -T flag when calling perl.
2. All DB schema changes must appear in Bugzilla/DB/Schema.pm.
3. A bug should still be identifed by its ID only. Requiring the target milestone doesn't make sense to me. Better is to clone the bug in this case.
4. The patch must work with MySQL 4, MySQL 5 and PostgreSQL 8.
5. "use vars qw()" has mostly been banned since the removal of globals.pl.
6. Your patch must run on mod_perl.
7. Prototypes have been banned.
8. Use placeholders to prevent SQL injection.
9. SendSQL() no longer exists. Remove these lines instead of marking them as comments.
10. We don't want hardcoded milestones in the code.
11. Prevent XSS, meaning that fields in templates must be filtered.
12 ....
Attached file Snapshots
Thanks for your comments. I shall do the changes as advised by you.

I would like to highlight the differences between the cloning option and the enhancements. 

1)Cloning creates a new bug id for the same issue to be ported to a new milestone and thereby tracking the bugs is difficult, whereas in the enhancements made the same bug id is replicated for the different milestones.
 
2)In the enhancements made a bug’s status can be tracked at one shot for all the milestones, using the new option “View Milestone Status”. No such view is possible if we clone the bug.
 
3)Dynamic additions of the milestone for the same bug id not possible and one needs to clone a bug ‘n’ no. of times to make it applicable to ‘n’ milestones, but enhancements made enable you to select any no of milestones at a single shot.
 
The basic criterion which is required for these enhancements is to associate a bug with both bug id and milestone (using the composite key).

Please clarify if this is still possible, so that I can go about in doing the remaining changes and send you the diffs.

Kindly have a look at the snapshots attached for a preview of enhancements
Attachment #231402 - Flags: review?(LpSolit)
Ashok Rajagopalan:
Don't force reviewers to download and unzip :-(
We are having some discussion in developers@bugzilla.org about how to manage branches. And no good solution has been found so far. You can see a part of the discussion here:

http://groups.google.com/group/mozilla.dev.planning/browse_thread/thread/3755e3e35178fb38/98459778c95e2589#98459778c95e2589

As long as this solution hasn't been found, it doesn't make sense to review anything. Better would be that you subscribe to this mailing list:

http://bugzilla.org/cgi-bin/mj_wwwusr?func=lists-long-full&extra=developers

This way you could access the archives and read the thread named "Branch Intelligence in Bugzilla".


Note that my main complain so far is that a bug should be identified by its ID *only*. In other words, I definitely don't like the identification involving these two (bug ID, bug milestone) fields.

Also, I don't see how you would manage bugs with the same ID when changing several bugs at once. Or when using the "Format for printing".

Of course we like the idea of being able to manage different branches separately and easily, but I don't think it worths such a DB schema change.
Keywords: helpwanted
Comment on attachment 231402 [details]
Snapshots

I review patches, not screenshots. :)
Attachment #231402 - Flags: review?(LpSolit)
The way we are going to handle multiple versions/milestones/branches is covered by bug 55970.
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: