[jira] Updated: (MAVEN-256) attainGoal does not use the global session
[ http://jira.codehaus.org/browse/MAVEN-256?page=all ] Brett Porter updated MAVEN-256: --- Fix Version: (was: 1.1-beta-2) 1.1-rc1 attainGoal does not use the global session Key: MAVEN-256 URL: http://jira.codehaus.org/browse/MAVEN-256 Project: Maven Type: Bug Components: core Versions: 1.0-beta-8 Reporter: Peter Lynch Priority: Critical Fix For: 1.1-rc1 Attachments: 1.0.2.patch, head.patch The problem: Basically there needs to be a way to call a goal from inside another goal and have the called goal use the current session. The result being no new session created and all already attained goals would not be called again by the called goal's prereqs attribute or nested attainGoal tags. The only way to create a new session would be to use the attain tags or set attainGoal newsession=true name=someGoal/ if an attribute is decided to be the way to flag session creation. Alternatively it was suggested a new tag be added called callGoal which would always create a new session, and attainGoal would be reverted to use the current session. Here is the thread from the mailing lists describing the problems and soltuions. - Original Message - From: Colin Sampaleanu [EMAIL PROTECTED] To: Turbine Maven Users List turbine-maven-user@jakarta.apache.org Cc: Turbine Maven Developers List turbine-maven-dev@jakarta.apache.org Sent: Thursday, January 30, 2003 7:27 AM Subject: Re: goals are broken, let's fix it bob mcwhirter wrote: On Thu, 30 Jan 2003, Colin Sampaleanu wrote: I think that there is currently a serious problem in maven and a number of plugins, in that 'attainGoal' is being used in various places (goals, preGoals, and postGoals) with the expectation that the goal being named to be attained will be part of the dependency graph of the main build itself, and will be attained only once. However, due to the way the werkz 'attainGoal' tag is implemented, there is no integration into the main maven dependency session, and each invocation of attainGoal with a specific goal will call that goal again including all its dependencies, becoming more of a subroutine call. At best, I would say it's confusing as hell, since the name 'attainGoal' implies something; certainly there is some code which is using the tag with the expectation that it is integrating into the dependency graph, and there is other code which is using it like a subroutine call. I would also suggest there need to be clearly named, different mechanisms, to handle both usage semantics. Yah, this is a well-understood problem (at least by me, having written werkz). Though, my non-scientific polling has resulted in me thinking that most folks are now taking advantage of the fact that attainGoal doesn't participate in the global session. ie: attainGoal name=clean/ attainGoal name=myproj:something/ attainGoal name=clean/ attainGoal name=myproj:something.else/ Where 'clean' wouldn't fire the 2nd time if we shared in the global session. We noodled around with keeping the current syntax and semantics the same but adding a session=true attribute for folks needing new semantics. Or, since so many other things have changed lately, retaining backwards compatibility is less important, and we could certain make attainGoal behave has expected, and rename the current functionality to callGoal or forceAttainGoal or somesuch. The biggest use-case we must accomodate is folks wanting to 'clean' multple times and not have werkz think everything is still attained. Though, that could maybe be rememdied with something like: goal name=clean !-- normal clean stuff -- resetWerkzSession/ /goal That'd allow us to invalidate the werkz session and allow for rebuilds without confusing werkz. IRC would probably be a glad place to hammer out the details. (still cross-posting, as I think this has big implications for users as well as developers...) How are the IRC sessions typically arranged? i.e. when are you guys normally on?. My main issue with IRC is that unfortunately it is blocked for me during the day due to the firewall at work, although in the worst case I could probably ssh to my home machine and do a text mode client from there. Evenings wouldn't be a problem. My suggestion would be to have very clearly named mechanisms (either separate tags or attributes on the same tag) to attain goals and share the maven session, to attain goals and not share the maven session, and some other mechanism (such as calling a custom tag), that is encouraged as a means of code reuse/macro/subroutine, which some code is currently using attainGoal for today. I would favour making a maven (not
[jira] Updated: (MAVEN-256) attainGoal does not use the global session
[ http://jira.codehaus.org/browse/MAVEN-256?page=all ] Felipe Leme updated MAVEN-256: -- Attachment: 1.0.2.patch I'm providing a patch that creates a HashMap on the JellyContext and makes sure a goal is executed only once (either on attainGoal or as prereqs). This is a quick and dirty hack that is not intended to be included in the Maven code, but could be very useful for people that are facing the issue of goals being running multiple times (sometimes more than 2). attainGoal does not use the global session Key: MAVEN-256 URL: http://jira.codehaus.org/browse/MAVEN-256 Project: maven Type: Bug Components: core Versions: 1.0-beta-8 Reporter: Peter Lynch Priority: Critical Fix For: 1.1-beta-2 Attachments: 1.0.2.patch The problem: Basically there needs to be a way to call a goal from inside another goal and have the called goal use the current session. The result being no new session created and all already attained goals would not be called again by the called goal's prereqs attribute or nested attainGoal tags. The only way to create a new session would be to use the attain tags or set attainGoal newsession=true name=someGoal/ if an attribute is decided to be the way to flag session creation. Alternatively it was suggested a new tag be added called callGoal which would always create a new session, and attainGoal would be reverted to use the current session. Here is the thread from the mailing lists describing the problems and soltuions. - Original Message - From: Colin Sampaleanu [EMAIL PROTECTED] To: Turbine Maven Users List turbine-maven-user@jakarta.apache.org Cc: Turbine Maven Developers List turbine-maven-dev@jakarta.apache.org Sent: Thursday, January 30, 2003 7:27 AM Subject: Re: goals are broken, let's fix it bob mcwhirter wrote: On Thu, 30 Jan 2003, Colin Sampaleanu wrote: I think that there is currently a serious problem in maven and a number of plugins, in that 'attainGoal' is being used in various places (goals, preGoals, and postGoals) with the expectation that the goal being named to be attained will be part of the dependency graph of the main build itself, and will be attained only once. However, due to the way the werkz 'attainGoal' tag is implemented, there is no integration into the main maven dependency session, and each invocation of attainGoal with a specific goal will call that goal again including all its dependencies, becoming more of a subroutine call. At best, I would say it's confusing as hell, since the name 'attainGoal' implies something; certainly there is some code which is using the tag with the expectation that it is integrating into the dependency graph, and there is other code which is using it like a subroutine call. I would also suggest there need to be clearly named, different mechanisms, to handle both usage semantics. Yah, this is a well-understood problem (at least by me, having written werkz). Though, my non-scientific polling has resulted in me thinking that most folks are now taking advantage of the fact that attainGoal doesn't participate in the global session. ie: attainGoal name=clean/ attainGoal name=myproj:something/ attainGoal name=clean/ attainGoal name=myproj:something.else/ Where 'clean' wouldn't fire the 2nd time if we shared in the global session. We noodled around with keeping the current syntax and semantics the same but adding a session=true attribute for folks needing new semantics. Or, since so many other things have changed lately, retaining backwards compatibility is less important, and we could certain make attainGoal behave has expected, and rename the current functionality to callGoal or forceAttainGoal or somesuch. The biggest use-case we must accomodate is folks wanting to 'clean' multple times and not have werkz think everything is still attained. Though, that could maybe be rememdied with something like: goal name=clean !-- normal clean stuff -- resetWerkzSession/ /goal That'd allow us to invalidate the werkz session and allow for rebuilds without confusing werkz. IRC would probably be a glad place to hammer out the details. (still cross-posting, as I think this has big implications for users as well as developers...) How are the IRC sessions typically arranged? i.e. when are you guys normally on?. My main issue with IRC is that unfortunately it is blocked for me during the day due to the firewall at work, although in the worst case I could probably ssh to my home machine and do a text mode client from there. Evenings wouldn't be a problem. My suggestion would be to have very clearly named mechanisms (either separate tags or attributes on the same tag) to
[jira] Updated: (MAVEN-256) attainGoal does not use the global session
[ http://jira.codehaus.org/browse/MAVEN-256?page=all ] Felipe Leme updated MAVEN-256: -- Attachment: head.patch Patch similar to the previous one, but this time diffed against the HEAD branch. attainGoal does not use the global session Key: MAVEN-256 URL: http://jira.codehaus.org/browse/MAVEN-256 Project: maven Type: Bug Components: core Versions: 1.0-beta-8 Reporter: Peter Lynch Priority: Critical Fix For: 1.1-beta-2 Attachments: 1.0.2.patch, head.patch The problem: Basically there needs to be a way to call a goal from inside another goal and have the called goal use the current session. The result being no new session created and all already attained goals would not be called again by the called goal's prereqs attribute or nested attainGoal tags. The only way to create a new session would be to use the attain tags or set attainGoal newsession=true name=someGoal/ if an attribute is decided to be the way to flag session creation. Alternatively it was suggested a new tag be added called callGoal which would always create a new session, and attainGoal would be reverted to use the current session. Here is the thread from the mailing lists describing the problems and soltuions. - Original Message - From: Colin Sampaleanu [EMAIL PROTECTED] To: Turbine Maven Users List turbine-maven-user@jakarta.apache.org Cc: Turbine Maven Developers List turbine-maven-dev@jakarta.apache.org Sent: Thursday, January 30, 2003 7:27 AM Subject: Re: goals are broken, let's fix it bob mcwhirter wrote: On Thu, 30 Jan 2003, Colin Sampaleanu wrote: I think that there is currently a serious problem in maven and a number of plugins, in that 'attainGoal' is being used in various places (goals, preGoals, and postGoals) with the expectation that the goal being named to be attained will be part of the dependency graph of the main build itself, and will be attained only once. However, due to the way the werkz 'attainGoal' tag is implemented, there is no integration into the main maven dependency session, and each invocation of attainGoal with a specific goal will call that goal again including all its dependencies, becoming more of a subroutine call. At best, I would say it's confusing as hell, since the name 'attainGoal' implies something; certainly there is some code which is using the tag with the expectation that it is integrating into the dependency graph, and there is other code which is using it like a subroutine call. I would also suggest there need to be clearly named, different mechanisms, to handle both usage semantics. Yah, this is a well-understood problem (at least by me, having written werkz). Though, my non-scientific polling has resulted in me thinking that most folks are now taking advantage of the fact that attainGoal doesn't participate in the global session. ie: attainGoal name=clean/ attainGoal name=myproj:something/ attainGoal name=clean/ attainGoal name=myproj:something.else/ Where 'clean' wouldn't fire the 2nd time if we shared in the global session. We noodled around with keeping the current syntax and semantics the same but adding a session=true attribute for folks needing new semantics. Or, since so many other things have changed lately, retaining backwards compatibility is less important, and we could certain make attainGoal behave has expected, and rename the current functionality to callGoal or forceAttainGoal or somesuch. The biggest use-case we must accomodate is folks wanting to 'clean' multple times and not have werkz think everything is still attained. Though, that could maybe be rememdied with something like: goal name=clean !-- normal clean stuff -- resetWerkzSession/ /goal That'd allow us to invalidate the werkz session and allow for rebuilds without confusing werkz. IRC would probably be a glad place to hammer out the details. (still cross-posting, as I think this has big implications for users as well as developers...) How are the IRC sessions typically arranged? i.e. when are you guys normally on?. My main issue with IRC is that unfortunately it is blocked for me during the day due to the firewall at work, although in the worst case I could probably ssh to my home machine and do a text mode client from there. Evenings wouldn't be a problem. My suggestion would be to have very clearly named mechanisms (either separate tags or attributes on the same tag) to attain goals and share the maven session, to attain goals and not share the maven session, and some other mechanism (such as calling a custom tag), that is encouraged as a means of code reuse/macro/subroutine, which some code is currently using attainGoal
[jira] Updated: (MAVEN-256) attainGoal does not use the global session
[ http://jira.codehaus.org/browse/MAVEN-256?page=all ] Brett Porter updated MAVEN-256: --- Fix Version: (was: 1.1-beta-1) 1.1-beta-2 attainGoal does not use the global session Key: MAVEN-256 URL: http://jira.codehaus.org/browse/MAVEN-256 Project: maven Type: Bug Components: core Versions: 1.0-beta-8 Reporter: Peter Lynch Priority: Critical Fix For: 1.1-beta-2 The problem: Basically there needs to be a way to call a goal from inside another goal and have the called goal use the current session. The result being no new session created and all already attained goals would not be called again by the called goal's prereqs attribute or nested attainGoal tags. The only way to create a new session would be to use the attain tags or set attainGoal newsession=true name=someGoal/ if an attribute is decided to be the way to flag session creation. Alternatively it was suggested a new tag be added called callGoal which would always create a new session, and attainGoal would be reverted to use the current session. Here is the thread from the mailing lists describing the problems and soltuions. - Original Message - From: Colin Sampaleanu [EMAIL PROTECTED] To: Turbine Maven Users List turbine-maven-user@jakarta.apache.org Cc: Turbine Maven Developers List turbine-maven-dev@jakarta.apache.org Sent: Thursday, January 30, 2003 7:27 AM Subject: Re: goals are broken, let's fix it bob mcwhirter wrote: On Thu, 30 Jan 2003, Colin Sampaleanu wrote: I think that there is currently a serious problem in maven and a number of plugins, in that 'attainGoal' is being used in various places (goals, preGoals, and postGoals) with the expectation that the goal being named to be attained will be part of the dependency graph of the main build itself, and will be attained only once. However, due to the way the werkz 'attainGoal' tag is implemented, there is no integration into the main maven dependency session, and each invocation of attainGoal with a specific goal will call that goal again including all its dependencies, becoming more of a subroutine call. At best, I would say it's confusing as hell, since the name 'attainGoal' implies something; certainly there is some code which is using the tag with the expectation that it is integrating into the dependency graph, and there is other code which is using it like a subroutine call. I would also suggest there need to be clearly named, different mechanisms, to handle both usage semantics. Yah, this is a well-understood problem (at least by me, having written werkz). Though, my non-scientific polling has resulted in me thinking that most folks are now taking advantage of the fact that attainGoal doesn't participate in the global session. ie: attainGoal name=clean/ attainGoal name=myproj:something/ attainGoal name=clean/ attainGoal name=myproj:something.else/ Where 'clean' wouldn't fire the 2nd time if we shared in the global session. We noodled around with keeping the current syntax and semantics the same but adding a session=true attribute for folks needing new semantics. Or, since so many other things have changed lately, retaining backwards compatibility is less important, and we could certain make attainGoal behave has expected, and rename the current functionality to callGoal or forceAttainGoal or somesuch. The biggest use-case we must accomodate is folks wanting to 'clean' multple times and not have werkz think everything is still attained. Though, that could maybe be rememdied with something like: goal name=clean !-- normal clean stuff -- resetWerkzSession/ /goal That'd allow us to invalidate the werkz session and allow for rebuilds without confusing werkz. IRC would probably be a glad place to hammer out the details. (still cross-posting, as I think this has big implications for users as well as developers...) How are the IRC sessions typically arranged? i.e. when are you guys normally on?. My main issue with IRC is that unfortunately it is blocked for me during the day due to the firewall at work, although in the worst case I could probably ssh to my home machine and do a text mode client from there. Evenings wouldn't be a problem. My suggestion would be to have very clearly named mechanisms (either separate tags or attributes on the same tag) to attain goals and share the maven session, to attain goals and not share the maven session, and some other mechanism (such as calling a custom tag), that is encouraged as a means of code reuse/macro/subroutine, which some code is currently using attainGoal for today. I would favour making a maven (not necessarilly werkz) attainGoal
[jira] Updated: (MAVEN-256) attainGoal does not use the global session
The following issue has been updated: Updater: Brett Porter (mailto:[EMAIL PROTECTED]) Date: Wed, 2 Mar 2005 9:51 PM Changes: Fix Version changed from 1.1 Fix Version changed to 1.1-beta-1 Component changed from core - For a full history of the issue, see: http://jira.codehaus.org/browse/MAVEN-256?page=history - View the issue: http://jira.codehaus.org/browse/MAVEN-256 Here is an overview of the issue: - Key: MAVEN-256 Summary: attainGoal does not use the global session Type: Bug Status: Unassigned Priority: Critical Original Estimate: Unknown Time Spent: Unknown Remaining: Unknown Project: maven Fix Fors: 1.1-beta-1 Versions: 1.0-beta-8 Assignee: Reporter: Peter Lynch Created: Thu, 6 Feb 2003 4:00 AM Updated: Wed, 2 Mar 2005 9:51 PM Description: The problem: Basically there needs to be a way to call a goal from inside another goal and have the called goal use the current session. The result being no new session created and all already attained goals would not be called again by the called goal's prereqs attribute or nested attainGoal tags. The only way to create a new session would be to use the attain tags or set attainGoal newsession=true name=someGoal/ if an attribute is decided to be the way to flag session creation. Alternatively it was suggested a new tag be added called callGoal which would always create a new session, and attainGoal would be reverted to use the current session. Here is the thread from the mailing lists describing the problems and soltuions. - Original Message - From: Colin Sampaleanu [EMAIL PROTECTED] To: Turbine Maven Users List turbine-maven-user@jakarta.apache.org Cc: Turbine Maven Developers List turbine-maven-dev@jakarta.apache.org Sent: Thursday, January 30, 2003 7:27 AM Subject: Re: goals are broken, let's fix it bob mcwhirter wrote: On Thu, 30 Jan 2003, Colin Sampaleanu wrote: I think that there is currently a serious problem in maven and a number of plugins, in that 'attainGoal' is being used in various places (goals, preGoals, and postGoals) with the expectation that the goal being named to be attained will be part of the dependency graph of the main build itself, and will be attained only once. However, due to the way the werkz 'attainGoal' tag is implemented, there is no integration into the main maven dependency session, and each invocation of attainGoal with a specific goal will call that goal again including all its dependencies, becoming more of a subroutine call. At best, I would say it's confusing as hell, since the name 'attainGoal' implies something; certainly there is some code which is using the tag with the expectation that it is integrating into the dependency graph, and there is other code which is using it like a subroutine call. I would also suggest there need to be clearly named, different mechanisms, to handle both usage semantics. Yah, this is a well-understood problem (at least by me, having written werkz). Though, my non-scientific polling has resulted in me thinking that most folks are now taking advantage of the fact that attainGoal doesn't participate in the global session. ie: attainGoal name=clean/ attainGoal name=myproj:something/ attainGoal name=clean/ attainGoal name=myproj:something.else/ Where 'clean' wouldn't fire the 2nd time if we shared in the global session. We noodled around with keeping the current syntax and semantics the same but adding a session=true attribute for folks needing new semantics. Or, since so many other things have changed lately, retaining backwards compatibility is less important, and we could certain make attainGoal behave has expected, and rename the current functionality to callGoal or forceAttainGoal or somesuch. The biggest use-case we must accomodate is folks wanting to 'clean' multple times and not have werkz think everything is still attained. Though, that could maybe be rememdied with something like: goal name=clean !-- normal clean stuff -- resetWerkzSession/ /goal That'd allow us to invalidate the werkz session and allow for rebuilds without confusing werkz. IRC would probably be a glad place to hammer out the details. (still cross-posting, as I think this has big implications for users as well as developers...) How are the IRC sessions typically arranged? i.e. when are you guys normally on?. My main issue with IRC is that unfortunately it is blocked for me during the day due to the firewall at work, although in the worst case I could probably ssh to my home machine and do a text mode client from there.
[jira] Updated: (MAVEN-256) attainGoal does not use the global session
The following issue has been updated: Updater: Brett Porter (mailto:[EMAIL PROTECTED]) Date: Tue, 21 Sep 2004 8:16 AM Comment: will look at this in 1.1 Changes: assignee changed from bob mcwhirter to Brett Porter environment changed to Fix Version changed to 1.1 - For a full history of the issue, see: http://jira.codehaus.org/browse/MAVEN-256?page=history - View the issue: http://jira.codehaus.org/browse/MAVEN-256 Here is an overview of the issue: - Key: MAVEN-256 Summary: attainGoal does not use the global session Type: Bug Status: Open Priority: Critical Original Estimate: Unknown Time Spent: Unknown Remaining: Unknown Project: maven Components: core Fix Fors: 1.1 Versions: 1.0-beta-8 Assignee: Brett Porter Reporter: Peter Lynch Created: Thu, 6 Feb 2003 4:00 AM Updated: Tue, 21 Sep 2004 8:16 AM Description: The problem: Basically there needs to be a way to call a goal from inside another goal and have the called goal use the current session. The result being no new session created and all already attained goals would not be called again by the called goal's prereqs attribute or nested attainGoal tags. The only way to create a new session would be to use the attain tags or set attainGoal newsession=true name=someGoal/ if an attribute is decided to be the way to flag session creation. Alternatively it was suggested a new tag be added called callGoal which would always create a new session, and attainGoal would be reverted to use the current session. Here is the thread from the mailing lists describing the problems and soltuions. - Original Message - From: Colin Sampaleanu [EMAIL PROTECTED] To: Turbine Maven Users List [EMAIL PROTECTED] Cc: Turbine Maven Developers List [EMAIL PROTECTED] Sent: Thursday, January 30, 2003 7:27 AM Subject: Re: goals are broken, let's fix it bob mcwhirter wrote: On Thu, 30 Jan 2003, Colin Sampaleanu wrote: I think that there is currently a serious problem in maven and a number of plugins, in that 'attainGoal' is being used in various places (goals, preGoals, and postGoals) with the expectation that the goal being named to be attained will be part of the dependency graph of the main build itself, and will be attained only once. However, due to the way the werkz 'attainGoal' tag is implemented, there is no integration into the main maven dependency session, and each invocation of attainGoal with a specific goal will call that goal again including all its dependencies, becoming more of a subroutine call. At best, I would say it's confusing as hell, since the name 'attainGoal' implies something; certainly there is some code which is using the tag with the expectation that it is integrating into the dependency graph, and there is other code which is using it like a subroutine call. I would also suggest there need to be clearly named, different mechanisms, to handle both usage semantics. Yah, this is a well-understood problem (at least by me, having written werkz). Though, my non-scientific polling has resulted in me thinking that most folks are now taking advantage of the fact that attainGoal doesn't participate in the global session. ie: attainGoal name=clean/ attainGoal name=myproj:something/ attainGoal name=clean/ attainGoal name=myproj:something.else/ Where 'clean' wouldn't fire the 2nd time if we shared in the global session. We noodled around with keeping the current syntax and semantics the same but adding a session=true attribute for folks needing new semantics. Or, since so many other things have changed lately, retaining backwards compatibility is less important, and we could certain make attainGoal behave has expected, and rename the current functionality to callGoal or forceAttainGoal or somesuch. The biggest use-case we must accomodate is folks wanting to 'clean' multple times and not have werkz think everything is still attained. Though, that could maybe be rememdied with something like: goal name=clean !-- normal clean stuff -- resetWerkzSession/ /goal That'd allow us to invalidate the werkz session and allow for rebuilds without confusing werkz. IRC would probably be a glad place to hammer out the details. (still cross-posting, as I think this has big implications for users as well as developers...) How are the IRC sessions typically arranged? i.e. when are you guys normally on?. My main issue with IRC is that unfortunately it is blocked for me during the day due to the firewall at work, although in the worst case I could probably ssh to my home machine and
[jira] Updated: (MAVEN-256) attainGoal does not use the global session
The following issue has been updated: Updater: dion gillard (mailto:[EMAIL PROTECTED]) Date: Mon, 1 Sep 2003 11:05 AM Changes: Fix Version changed to 1.1 Fix Version changed from 1.0-final - For a full history of the issue, see: http://jira.codehaus.org/secure/ViewIssue.jspa?key=MAVEN-256page=history - View the issue: http://jira.codehaus.org/secure/ViewIssue.jspa?key=MAVEN-256 Here is an overview of the issue: - Key: MAVEN-256 Summary: attainGoal does not use the global session Type: Bug Status: Assigned Priority: Critical Time Spent: Unknown Remaining: Unknown Project: maven Components: core Fix Fors: 1.1 Versions: 1.0-beta-8 Assignee: bob mcwhirter Reporter: Peter Lynch Created: Thu, 6 Feb 2003 4:00 AM Updated: Mon, 1 Sep 2003 11:05 AM Description: The problem: Basically there needs to be a way to call a goal from inside another goal and have the called goal use the current session. The result being no new session created and all already attained goals would not be called again by the called goal's prereqs attribute or nested attainGoal tags. The only way to create a new session would be to use the attain tags or set attainGoal newsession=true name=someGoal/ if an attribute is decided to be the way to flag session creation. Alternatively it was suggested a new tag be added called callGoal which would always create a new session, and attainGoal would be reverted to use the current session. Here is the thread from the mailing lists describing the problems and soltuions. - Original Message - From: Colin Sampaleanu [EMAIL PROTECTED] To: Turbine Maven Users List [EMAIL PROTECTED] Cc: Turbine Maven Developers List [EMAIL PROTECTED] Sent: Thursday, January 30, 2003 7:27 AM Subject: Re: goals are broken, let's fix it bob mcwhirter wrote: On Thu, 30 Jan 2003, Colin Sampaleanu wrote: I think that there is currently a serious problem in maven and a number of plugins, in that 'attainGoal' is being used in various places (goals, preGoals, and postGoals) with the expectation that the goal being named to be attained will be part of the dependency graph of the main build itself, and will be attained only once. However, due to the way the werkz 'attainGoal' tag is implemented, there is no integration into the main maven dependency session, and each invocation of attainGoal with a specific goal will call that goal again including all its dependencies, becoming more of a subroutine call. At best, I would say it's confusing as hell, since the name 'attainGoal' implies something; certainly there is some code which is using the tag with the expectation that it is integrating into the dependency graph, and there is other code which is using it like a subroutine call. I would also suggest there need to be clearly named, different mechanisms, to handle both usage semantics. Yah, this is a well-understood problem (at least by me, having written werkz). Though, my non-scientific polling has resulted in me thinking that most folks are now taking advantage of the fact that attainGoal doesn't participate in the global session. ie: attainGoal name=clean/ attainGoal name=myproj:something/ attainGoal name=clean/ attainGoal name=myproj:something.else/ Where 'clean' wouldn't fire the 2nd time if we shared in the global session. We noodled around with keeping the current syntax and semantics the same but adding a session=true attribute for folks needing new semantics. Or, since so many other things have changed lately, retaining backwards compatibility is less important, and we could certain make attainGoal behave has expected, and rename the current functionality to callGoal or forceAttainGoal or somesuch. The biggest use-case we must accomodate is folks wanting to 'clean' multple times and not have werkz think everything is still attained. Though, that could maybe be rememdied with something like: goal name=clean !-- normal clean stuff -- resetWerkzSession/ /goal That'd allow us to invalidate the werkz session and allow for rebuilds without confusing werkz. IRC would probably be a glad place to hammer out the details. (still cross-posting, as I think this has big implications for users as well as developers...) How are the IRC sessions typically arranged? i.e. when are you guys normally on?. My main issue with IRC is that unfortunately it is blocked for me during the day due to the firewall at work, although in the worst case I could probably ssh to my home machine and do a text mode client from there. Evenings wouldn't be a problem. My
[jira] Updated: (MAVEN-256) attainGoal does not use the global session
The following issue has been updated: Updater: dion gillard (mailto:[EMAIL PROTECTED]) Date: Sun, 3 Aug 2003 11:55 PM Comment: Is this still the case post beta 10? Changes: environment changed to timeoriginalestimate changed from 0 timeestimate changed from 0 minutes Fix Version changed to 1.0-final - For a full history of the issue, see: http://jira.codehaus.org/secure/ViewIssue.jspa?key=MAVEN-256page=history - View the issue: http://jira.codehaus.org/secure/ViewIssue.jspa?key=MAVEN-256 Here is an overview of the issue: - Key: MAVEN-256 Summary: attainGoal does not use the global session Type: Bug Status: Assigned Priority: Critical Time Spent: Unknown Remaining: Unknown Project: maven Components: core Fix Fors: 1.0-final Versions: 1.0-beta-8 Assignee: bob mcwhirter Reporter: Peter Lynch Created: Thu, 6 Feb 2003 4:00 AM Updated: Sun, 3 Aug 2003 11:55 PM Description: The problem: Basically there needs to be a way to call a goal from inside another goal and have the called goal use the current session. The result being no new session created and all already attained goals would not be called again by the called goal's prereqs attribute or nested attainGoal tags. The only way to create a new session would be to use the attain tags or set attainGoal newsession=true name=someGoal/ if an attribute is decided to be the way to flag session creation. Alternatively it was suggested a new tag be added called callGoal which would always create a new session, and attainGoal would be reverted to use the current session. Here is the thread from the mailing lists describing the problems and soltuions. - Original Message - From: Colin Sampaleanu [EMAIL PROTECTED] To: Turbine Maven Users List [EMAIL PROTECTED] Cc: Turbine Maven Developers List [EMAIL PROTECTED] Sent: Thursday, January 30, 2003 7:27 AM Subject: Re: goals are broken, let's fix it bob mcwhirter wrote: On Thu, 30 Jan 2003, Colin Sampaleanu wrote: I think that there is currently a serious problem in maven and a number of plugins, in that 'attainGoal' is being used in various places (goals, preGoals, and postGoals) with the expectation that the goal being named to be attained will be part of the dependency graph of the main build itself, and will be attained only once. However, due to the way the werkz 'attainGoal' tag is implemented, there is no integration into the main maven dependency session, and each invocation of attainGoal with a specific goal will call that goal again including all its dependencies, becoming more of a subroutine call. At best, I would say it's confusing as hell, since the name 'attainGoal' implies something; certainly there is some code which is using the tag with the expectation that it is integrating into the dependency graph, and there is other code which is using it like a subroutine call. I would also suggest there need to be clearly named, different mechanisms, to handle both usage semantics. Yah, this is a well-understood problem (at least by me, having written werkz). Though, my non-scientific polling has resulted in me thinking that most folks are now taking advantage of the fact that attainGoal doesn't participate in the global session. ie: attainGoal name=clean/ attainGoal name=myproj:something/ attainGoal name=clean/ attainGoal name=myproj:something.else/ Where 'clean' wouldn't fire the 2nd time if we shared in the global session. We noodled around with keeping the current syntax and semantics the same but adding a session=true attribute for folks needing new semantics. Or, since so many other things have changed lately, retaining backwards compatibility is less important, and we could certain make attainGoal behave has expected, and rename the current functionality to callGoal or forceAttainGoal or somesuch. The biggest use-case we must accomodate is folks wanting to 'clean' multple times and not have werkz think everything is still attained. Though, that could maybe be rememdied with something like: goal name=clean !-- normal clean stuff -- resetWerkzSession/ /goal That'd allow us to invalidate the werkz session and allow for rebuilds without confusing werkz. IRC would probably be a glad place to hammer out the details. (still cross-posting, as I think this has big implications for users as well as developers...) How are the IRC sessions typically arranged? i.e. when are you guys normally on?. My main issue with IRC is that unfortunately it is blocked for me during the day due to the firewall at work,