Bug 110180 - [IDE] Select working set in clean dialog
Summary: [IDE] Select working set in clean dialog
Status: RESOLVED WORKSFORME
Alias: None
Product: Platform
Classification: Eclipse Project
Component: IDE (show other bugs)
Version: 3.1.1   Edit
Hardware: PC Windows XP
: P5 enhancement (vote)
Target Milestone: ---   Edit
Assignee: Platform UI Triaged CLA
QA Contact: Paul Webster CLA
URL:
Whiteboard:
Keywords: helpwanted
Depends on:
Blocks:
 
Reported: 2005-09-21 10:27 EDT by Mazen Faraj CLA
Modified: 2009-07-15 12:48 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mazen Faraj CLA 2005-09-21 10:27:19 EDT
features:
1) with "Build Automatically" selected, select any project and go to Project 
menu. The "Build Project" action is disabled. It should be enabled as "re-
build project". Right now, you have two extra steps: you have to 
select "clean..." and the "clean projects selected below" and then ok. 


2) with "Build Automatically" selected, select any working set and go to 
Project menu. The "Build working set" action has disabled children. Rebuild 
wroking set would be great. Or as a quicker solution, select "clean..." and 
then "clean projects selected below". If you do that then by default all 
projects belonging to the working set should be preselected.
Comment 1 Kim Horne CLA 2005-09-21 11:01:22 EDT
I believe these changes were intentional... MvM?
Comment 2 Michael Van Meekeren CLA 2005-09-21 15:17:48 EDT
For #1, it seems like you just have to select clean... and hit enter as the
selected project is already selected in the list (so long as you do not use
working sets in the Package explorer.  I suppose we could have a Clean Project
option that was enabled based on selection which would kick off a clean and then
a build.

#2 Agree when you are running a working set perhaps it should be selected in the
clean dialog however, this makes the Working set options kind of useless.
Comment 3 Mazen Faraj CLA 2005-09-21 15:43:56 EDT
re: "I suppose we could have a Clean Project option that was enabled based on 
selection which would kick off a clean and then a build." 
yes, that will just add happiness to my life. :) 


re: "Agree when you are running a working set perhaps it should be selected in 
the clean dialog" 
so if a working set is selected and then I select "clean... " all the projects 
that belong to the working set should be selected. 


re: "however, this makes the Working set options kind of useless. "

here is a shot at what a Project menu could look like: 

Re-build All  (short cut to cleaning all projects)

Re-build project (short cut to cleaning selected project. Disabled if working 
set is the current selection)

Re-build working set (short cut to cleaning selected working set. If project 
is the current selection, clean the working set the holds this project.)

Re-build working set -> (same as 3.1) 

Clean...  (same as 3.1) 

Build Automatically   (when selected, causes all menu options above to have 
the wording re-build, instead of build. Rebuild means a clean and then a build)

Comment 4 John Arthorne CLA 2005-09-21 16:39:34 EDT
I strongly disagree with introducing the term "rebuild" again.  This was removed
because it was very confusing. What is the difference between the terms "build"
and "rebuild"?  To most users, "rebuild" just implies that the thing being built
has been built before.  The term does not imply throwing away all existing
state, which is what it actually did.

Also note that the decision to make the "clean" commands less accessible was
also deliberate (by moving to a dialog instead of top-level commands).  In an
environment with properly behaving incremental builders, clean should never be
necessary.  Essentially, its main purpose is for when builders screw up and get
into a bad state.  Here is the document from 3.0 that describes some of the
motivation for these changes:

http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-core-home/documents/scoped_builds.html

I agree that we need to think about the impact of the "build working set"
command in the context of workbench page working sets.  Maybe there should be an
extra command in the "Build Working Set" sub-menu called "Current Working Set"
that would use the workbench page working set.
Comment 5 Mazen Faraj CLA 2005-09-21 21:49:49 EDT
re: "What is the difference between the terms "build"
and "rebuild"?  To most users, "rebuild" just implies that the thing being 
built has been built before.... "  

and so great, they know that it is a rebuild of a thing that has been built 
before, which us exactly what is happening and what is requested. 
Having said that, I wont open up a can of worms if this is the community has 
decided that rebuild does not make sense. My concern was that reality is that 
if you modify target workspaces a lot and change configurations a lot, you 
will end up with a false negative compile error where you do need a clean 
action. Making that scenario simple and clear to use is goodness. 
All the build actions that I have in the previous comment can be 
called "build" instead of "rebuild" and they will still make sense. "Build" 
can still be enabled when auto build is on, and it will still make sense. 
Think of it this way: refresh action is always enabled. Why does it make sense 
to refresh a project that I have just refreshed two seconds ago (menu is 
always enabled), but it does not make sense to build a project just because 
auto build is on? I feel like building my project? thank you for auto-building 
it, but I want to build it now.  no? 

For working sets, an extra menu option "build working set" or pre-selecting 
all the projects belonging to the working set will make the menu actiosn more 
usable. 

     

 



 
Comment 6 John Arthorne CLA 2005-09-22 11:01:00 EDT
If changing your target workspace or configuration is not causing autobuild to
work correctly, then I suggest logging a bug against PDE. If the user has to do
a manual build while autobuild is on, it's almost always a bug.  We shouldn't
change the UI to support a workflow introduced by an incorrectly behaving
builder.  When autobuild is turned on, then the workspace should always be in a
fully built state. Thus, no explicit "build" command is needed, and would be
confusing.  The user would click it and nothing would ever happen.

I think the refresh case is slightly different.  In the case of builds, we are
able to compute whether a build is required.  With refresh, we can never know if
the file system has been modified by some external tool. If you click refresh
two seconds ago, but one second ago some other application touched the file,
then another refresh may be needed.
Comment 7 John Arthorne CLA 2005-09-22 11:04:45 EDT
I should further clarify the PDE builder comment, since it may not be a bug in
the builder itself.  There are some times when a build is needed, but the
workspace has not changed - for example a builder preference has changed, or a
dynamic classpath variable has changed.  In these cases, the recommended
approach is to call IProject.touch() on the affected project, which will cause
the autobuild kick in.  I haven't seen this problem myself, but it sounds like a
touch of affected projects is needed when the configuration or target platform
has changed.
Comment 8 Mazen Faraj CLA 2005-09-22 11:46:35 EDT
agreed %100 that the UI should not be changed just to hide potential bugs. 
  
(side comment: Im not saying I actually have a valid bug against build or pde 
component. Im guilty of seeing a red X and not thinking twice about why it is 
there. I do a quick build and Im done. Its gone. Typically the workbench gets 
into a bad state if you kill eclipse, or you hybernate your machine for too 
long and windows reboots on startup killing eclpise without a proper shut 
down. ) 

With that said, if you compile java code from a command line, you can call 
javac as many times as you want on the same untouched java file. Bytecode is 
thrown away and regenerated each time. It's the developers call. Why is the ui 
not providing this support easily? Disabling the build menu when autobuild is 
on takes away from the ease of that scenario. Yes, the solution is clean and 
then auto build will kick in, but the "clean" is a concept introduced by IDEs, 
not java. People understand it easily, and Im sure they will understand that a 
user initiated build will do the same as a javac. no?   

To not loose track of the initial features in this defect, I guess no one 
objects that:
1) if you select a working set, having all projects of the working set be pre-
selected in the clean... dialog is a valid feature request. correct? 

whether or not it makes sense to enable a "user initiated builds" is what is 
being debated. 
I would recommend that the UI team, if they see fit, poll the community for 
feedback on percentage of people that like to do manual builds every once in a 
while. But I leave that up to you guys. 



 

 



Comment 9 John Arthorne CLA 2007-06-25 14:49:39 EDT
Updating the title because it was vague: Here is the summary of what this bug is about:

If you select a working set, having all projects of the working set be pre-
selected in the clean dialog...
Comment 10 Remy Suen CLA 2007-09-01 22:54:29 EDT
(In reply to comment #8)
> 1) if you select a working set, having all projects of the working set be pre-
> selected in the clean... dialog is a valid feature request. correct?

Is this still an issue? I can confirm that the clean dialog is preselecting projects properly in 3.3.0.
Comment 11 Susan McCourt CLA 2009-07-15 12:06:51 EDT
"As per http://wiki.eclipse.org/Platform_UI/Bug_Triage_Change_2009"
Comment 12 John Arthorne CLA 2009-07-15 12:48:15 EDT
>Is this still an issue? I can confirm that the clean dialog is preselecting
>projects properly in 3.3.0.

Yes, this seems to work for me. For example if the Package Explorer has working sets as roots, if you select a working set the clean dialog is correctly populated with the contents of that working set. In other views, if you select a bunch of projects, then the clean dialog is initialized with that selection. This does mean there are two clicks Project > Clean, Ok, but I think this is better than adding clutter to the top level menu. Please reopen if you still see a problem.