History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: JRA-568
Type: New Feature New Feature
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Tim Dawson
Votes: 146
Watchers: 75
Operations

If you were logged in you would be able to see more operations.
JIRA

support for build labels within versions

Created: 15/Jul/02 08:22 AM   Updated: 19/Sep/07 08:43 PM
Component/s: Administration, Issue Fields
Affects Version/s: None
Fix Version/s: None

Time Tracking:
Not Specified

Issue Links:
Blocker
 
Duplicate
 
Reference

Participants: Adam van den Hoven, Anton Mazkovoi [Atlassian], Brett Jackson [Atlassian], Brian Krueger, Chris Gross, Dave Caughey, Denis Lafont, Eric Torreborre, Giles Davidson, itest itest, Jeff Brooks, Jeff Turner [Atlassian], John Walsh, Jon Pither, JP Podur, Kevin Ross, Misha Bergal, Nick Menere [Atlassian], Patrick Coleman, Peter, Peter Björklund, Preston Tollinger, Robin Shine, Scott Farquhar [Atlassian], Thomas Singer, Tim Dawson and Wangjammer 5
Since last comment: 33 weeks, 3 days ago
Labels:


 Description  « Hide
when working towards a release a number of builds occur. QA needs to be able to tell when something is marked as fixed in version 1.3 whether its actually fixed in the version 1.3 that they are using (e.g. 1.3 build 123 vs. 1.3 build 144) this would be too cumbersome to use in the versions screen.

a build number has to be tied to a given release since some projects start the build numbers over for each release.

as for assigning the build number to features, I used to use starteam and it had a cool feature where clicking "resolved" could assign it to the build number of "next", then when the next build number was created/entered, all the existing issues (within that release) with a build number of "next" were assigned to that number.



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Thomas Singer - 13/Aug/02 08:40 PM
Wouldn't versions like "1.3 rc 1" help you?

Tim Dawson - 14/Aug/02 02:35 AM
as I said in the description, it would be too cumbersome - we'd end up with WAY too many versions. in the weeks building up to a release, we tend to do a lot of builds that can't even be rightly called release candidates; but QA still needs early access to them and needs the ability to see if a particular bug is fixed in that build.

Scott Farquhar [Atlassian] - 04/Mar/03 11:29 PM
Does the current setup - archiving and merging versions - suit you for this purpose?

You can add a version, and then when it is released, merge all the QA versions into one?


Tim Dawson - 06/Mar/03 01:20 PM
well, I can't quite tell, I can't figure out how to edit the project versions on 2.0RC3. I read a couple of the notes in the list and I really think the separate notion of a build is helpful - it would allow us to mark a feature as "fixed" in "next build". then when I do a build, it takes all those for that release with "next build" and associates it with the build number.

that would also greatly simplify our workflow. we're currently using fake users, i.e. "_build", "_qa", etc. because we can't simply separate when somethign has been fixed and is awaiting build, from when something is fixed and awaiting QA. plus, QA has a hard time knowing what was fixed in which build, etc.


Tim Dawson - 05/May/03 01:25 PM
glad to see this scheduled. here are my implementation ideas: build numbers would enabled on a per-project basis. if enabled, build numbers would be created by someone with project administration privileges. build numbers would have to be attached to a particular release. when creating a build number, a list of issues where "fixed in release=(the build number's release) && resolution=fixed and buildnum=null" would be displayed, each issue with a checkbox automatically selected. then specific features could be added/removed from the list.

it would also have to be possible when editing the issue to change the build number, and changing the build number would be required when changing the fixed-in release.


Tim Dawson - 05/May/03 01:44 PM
also, I would think this feature would benefit from a new status of "built", for something that had been resolved (which had no build number) and then assigned to a build number.

Tim Dawson - 18/Jun/03 11:33 AM
adding more detail based on a separate conversation with sales@atlassian.com...

For starters, developers need to be able to select a build number when fixing issues...

1) need a new table to contain build numbers, which would be attached to versions. i.e. the build table will have a required foreign key to the version table.
2) when users mark an issue as "resolved/fixed" the user should be required to enter a "fix version" and a "fix build". (and contrary to current workflow, it doesn't really make sense to set a fix version for statuses of "won't fix", "duplicate", "incomplete", and "cannot reproduce") so I'd prefer to make that field disabled if possible. (that'd be some javascript hoops you might not want to jump through)
3) the list for the "fix build" popup would change based on the "fix version" selected (this would also involve some javascript, but I've seen it in several places on the web); the default would always be "next" - basically null, to be populated later. Of course, the most recent build numbers would be first, and you could probably limit it to the most recent 5-10 builds for speed. (we tend to have 40-50 build numbers per release)
4) in order to change the fix build number after the fact its ok to force unresolve/resolve much like you do today to change the fix release.

When the build engineer creates a build, he/she goes into an admin screen for that project, selects an unreleased version, types in a build number and clicks "create", which brings up a screen showing all fixed issues with null build numbers - in reverse order of resolved date. Each line would have a checkbox (default checked) that would allow the build engineer to specifically exclude any issue (such as a late-comer that had been fixed after the build was actually done). This last part can be optional if it’s a ton of work - we could work around the situation if something snuck in.

As I think about it, we probably don't need a new status – we can add a search based on "resolved issues where build number != next".

Of course, it would be extremely helpful to make this visible from the browse project screen, by adding links under the versions for the most recent build number (if any) and "next" (if any), in other words (using our own release codewords for an example):


VERSIONS

Aim 0
Build 045 (4)

Ajax 40
Next Build (10), Build 034 (5)

Akron 14

Alias 4

Where clicking on aim, ajax, akron, or alias would work just like today, showing a list of all open issues for that version. Clicking on "build 045" would show the items fixed in that build of aim and clicking on "next build" would show the items fixed but not yet built in ajax. Alternately, a "BUILDS" section would be useful rather than mixing it in with versions, and you'd only show the most recent build (and "next") for non-released versions.

Obviously for people who don't need all this, you'd want an admin screen to toggle this feature off just like you do for time tracking.


Chris Gross - 10/Jul/03 10:42 AM
Just to throw my two cents in. I need very similar functionality. The only difference is that I use an automated build process but otherwise I'm need the same stuff as Tim. That is, I need a seperate build number for each "Fix for Version". And I really would need a status of "Fixed,Checked-In, Awaiting Build" or something like that. So when an item is returned to the reporter/QA, they know they do not have a build in which to test the fix.

Tim talked about a way for a build engineer to mark item's "Fix Build". I need a way for an automated process to do that. We have builds scheduled everynight. Right now, with our old bug system (DevTrack), we handle this through some quick and dirty programs we wrote that connect to the bug database and update a custom field that we use as the build number.

The ultimately awesome solution (for me anyway) would be a SOAP/WebService thingy that allowed me to pass in a version id or number and a build number and the process would mark all items with the status of "Fixed,Checked-In, Awaiting Build" for that passed in version, with that build number.


Tim Dawson - 11/Jul/03 09:49 AM
we do auto builds too, but only for tests; our QA builds are manual, but that's a great idea.

an alternative to a web-services implementation (unless that's easy with the most recent version) would be to the REST approach - simply publish the specs on the HTTP POST that the web browser would send to create a new build number and assign all resolved-but-unbuilt issues to it. then any script or java class could easily be configured to make the post.


Adam van den Hoven - 12/Nov/03 02:00 PM
I agree that handling builds is an important. Here are some of the things that come to my mind:

1) If the build engineer doesn't add issue X to the build, then Issue Y, which is dependant on issue X, cannot be added. Same if Issue X isn't ready for QA.

2) We would like to have a hierarchy of builds. We do an internal QA build and an External QA Build. The external QA only contains issues that have passed internal QA.

3) Any aggregating needs to take into account that Issue V will probably occur in build 5 and 7 and 12 since it keeps getting failed.


Adam van den Hoven - 12/Nov/03 02:46 PM
Also, it would be good to allow builds to be accessible only to specific group.

Peter - 10/Nov/04 08:48 PM
Could someone add a recent status of this issue? The comments above talk about this being addressed in 3.0, but I see no reference to builds in the 3.0 manual...

Jeff Turner [Atlassian] - 10/Nov/04 10:28 PM
This feature wasn't done in 3.0, and is still in the to-do basket. The cascading select list in 3.0 might meet this need for some people, but wouldn't be integrated into the reports.

Kevin Ross - 13/Jan/05 05:29 PM
I have to add a version for each build that goes to QA. I have to do this with somewhat of a naming standard, but this becomes a real pain when reviewing the change log as only 3 'versions' are shown without showing them all. We may have 6 builds go to QA for version 1.31.0.

That's my story, I don't have the innovative solution


Brian Krueger - 18/Jan/05 02:23 PM
If the build numbers could be auto-generated, that would be very useful.

itest itest - 25/Jan/05 12:28 PM
We need this feature badly, please plan to fix it in the nearest release.

Misha Bergal - 06/Mar/05 07:35 PM
Not having a build as a recognized entity in the system, including:
  • Issue found in build xxx, fixed in build yyy
  • In addition to issues fixed in the release notes, the build release notes (i.e. "QA - apply patch 43 to database")
  • Ability for the developer to mark the issue status as fixed in the next build, and the ability for the eveloper releasing the build the easily set the status of thos to fixed in build xxx

is a major problem for our adoption of Jira as a min issue tracker tool.

Please don't hesitate to contact me if you have any questions about our use cases.


Anton Mazkovoi [Atlassian] - 17/Mar/05 01:47 AM
Unfortunately we will not have time to address this issue for JIRA 3.2 as it is not straight forward to implement. There are quite a few major improvements in JIRA 3.2, such as configurable screens per workflow transition, tabs on field screen, multi-project/issue type custom field, etc.

We will return to this issue when we draft out the implementation details.


Tim Dawson - 17/Mar/05 07:54 AM
some of the comments above have added features beyond my original request (now 2 1/2 years ago!) but with all the workflow and plugins added, I think what I originally requested could be easily implemented today:

1) a workflow transition that assigned the build number to "next" when an issue is resolved/fixed.

  • this could be done with the generic "Update Issue Field" post-function.
  • it would be nice if we could have conditional post-functions
    e.g. if (resolution code = "fixed")

2) an XMLRPC plugin that executes a search for all issues with a given version and a build number of "next" and for each issue sets the build number to the provided value

  • come to think of it, this could be implemeted with a generic "Bulk Search/Replace" RPC call

Tim Dawson - 17/Mar/05 07:56 AM
one further comment - obviously this would mean decoupling build numbers from versions. that would be nice of course, but isn't as much of a requirement for what I need.

Anton Mazkovoi [Atlassian] - 18/Mar/05 01:36 AM
Tim,

Thank you for the comments. It is not possible to update the fix version with the current update issue field post function as the issue's versions are not stored in the issue db table. However, of course, it is possible to write a post function that does this.

Conditional post functions can be created as well, using conditional results in OSWorkflow (http://www.opensymphony.com/osworkflow/), however the current JIRA Workflow Editor does not allow to create conditional results. You can export the workflow in XML modify it and then reimport. Of course, hard coding the post-function to test the resolution will also work.

If you do not mind we will keep this issue to represent adding functionality for separating build numbers from versions.

Thanks,
Anton


Tim Dawson - 18/Mar/05 06:58 AM
by all means keep it as-is... if you make it a first-tier part of the product that's way better; I was just suggesting a wokraround for people who need it now (this one keeps getting scheduled and then pushed back)

Chris Gross - 18/Mar/05 08:49 AM
My 2 cents, I am really dissapointed that this issue seems to have become the red-headed step child of issues. It seems this issue is constantly scheduled for the next release, only to be rescheduled to the next next release when work begins on a new version.

This is the only feature that I need in JIRA. I have not upgraded my 2.6 installation of JIRA because most of the changes made don't make much of a difference to me.

The lack of build numbers for issues means that JIRA doesn't mesh with my build system. My QA department can't ever be sure when an issue is included in a build. My support department can't tell if a particular customer has a build that fixes a particular issue.


Scott Farquhar [Atlassian] - 18/Mar/05 07:10 PM
Chris,

Which build system are you using? We have integrate JIRA with DamageControl, which uses the CVS commit integration to tell you which build a particular cvs commit was built in, and by extrapolation, which JIRA issues have been fixed.

Is it possible to do something like this? This is an automated process, and would not require and human intervention.


Brian Krueger - 18/Mar/05 07:22 PM
WOAH!
I cannot imagine that the 40 people who voted for this issue will go and find 40 different solutions to the problem based on their build systems. This needs to be handled by JIRA.

Simple example:
You have versions scheduled, and tasks/new features scheduled.
You release a build before the next version is released
QA reports bugs.
Which version are the bugs in?
You do a new build, QA reports more bugs.
Later, rinse repeat.

Please stop trying to address the problem with workarounds.


Scott Farquhar [Atlassian] - 19/Mar/05 03:13 AM
Brian,

We will implement this feature, however we are trying to help our customers with immediate workarounds if possible. However, as we have 1176 open feature requests, we can not implement every feature in every release.

We do not try to address problems with workarounds, but we do try to inform our customers of all the options available to them.

Cheers,
Scott


Jon Pither - 29/Mar/05 05:08 AM
I'm bummed this is no longer going to be in 3.2, hopefully it will be in 3.3?

Jeff Brooks - 06/Apr/05 11:09 AM
I just realized that this was descoped for 3.2. This is the biggest issue we have right now, and causes confusion with tech folks and users on a weekly basis. Call it "build numbers", call it families, call it grouping. Something really needs to be supported in Jira that doesn't require customization. The problem is that we need to keep this all at the Fix Version level. To do that with customization would require extensive changes to the guts of jira, and I think all of us try to avoid that much coupling for fear of future upgrade problems.

Brian Krueger - 31/May/05 04:56 PM
So this was planned for 3.2 before, but it is now not even planned for 3.3?
It's in the top 15 unscheduled issues. How high up the list does an issue have to get to become important enough to schedule? For that matter, most of the top 10 seem pretty important as well.

I don't want to be a big whiner or anything, but what are the criteria?


Jeff Turner [Atlassian] - 02/Jun/05 04:12 AM
Scheduling an issue used to mean "we should really look at this for version X", but we discovered everyone else interprets as "I can tell my manager this will be done in version X". So we are setting the fix-for version more sparingly these days. It doesn't mean popular issues like this are off the radar - just that we haven't yet done 3.3 planning. Criteria are the usual mix of architectural, popularity and 'strategic direction' considerations.

Giles Davidson - 30/Sep/05 10:22 AM
We have a target release which is the release a developer is shooting for - the actual rease/build might be different and needs to be recorded. But We probably need to sort out some terminology .

The release in which an is found is different to the target -release which may differ from the actual release.

How about:
Release - a line of developement.
Build - snapshot of the the release that is built, will be QAed and may be released.
Cut - an iteration of the build - critical errors may be fixed and the build redone - other less critical changes are not (neccessarily) included in a recut.

We don't bother to record that a fix was included in a recut, only that it went into a build.

An issue is not complete until it reaches a termination status. - for example tested_ok, duplicate, withdrawn, rejected etc. For us if an issue is tested OK then we known what build it is in, and by extension when it became available to a customer.

Prior to release of a new release to a customer we do a number of beta builds, b1, b2 etc. After GA release we treat each hotfix and patch release as a build.
The simplified workflow is

open->open for coding -> code complete -> built ->tested failed

however bad stuff happens so the fix is reopend, fixed again and the build recut:

open -> open for coding -> code complete -> built -> test failed (reopend for coding) -> code complete ->built -> tested ok

Note: Once an uissue reaches code complete it cannot be changed by the developer unless it is reopened. This corresponds to Chris Grosses 'ready to build'. 'built' implies ready for QA etc.

We currently record release and build so aggregation would not be a problem. To find all fixes in a release - search by release. To find all fixes in cluded in hotfixes based on, say, v5.2.1 (v5.2.1.1/2/3....), search by builds i.e V5.2.1*.
Actually hotfixes create a problem because they may be on the release main-line or because of there is already code for the next patch release affecting the modules concerned the code may need to be branched. Usually a hot fix will be included in the nex patch release. In either case the code is build in a different context if it is in a hotfix or a patch, so the work flow post build needs to be followed for both the hotfix and the patch.

It has been suggested that we use sub-issues for this - very definitiely a workaround and I suspect rather cumbersome. In my current system we have a table with issue, release, build and status columns this is joined with the issue table and as builds are added the issue effectively forks. Very simple.

Ref Adam van den Hoven comments: We identify issues to be included by reference to the previous code baseline and the development tip using a script.. We can identify the dependencies he is worried about using another script (this will also identify orphan issues) and then determine how we are going to handle them. We (almost) never take work in progress and code freezes are consequently short, typically the time to branch the code. Trying to work out the depnedencies from the issue tracker is difficult, probably impossible even to do it reliably.


Nick Menere [Atlassian] - 03/Oct/05 08:58 PM
Please see comments on: JRA-7886.

Also,
There is an open feature request regarding searching on linked issues which may help (once implemented) regarding working out dependencies.
This could even be implemented as a custom feild.

Cheers,
Nick