|
|
|
[
Permlink
| « Hide
]
David Feldman - 07/Feb/06 09:20 AM
I'd like to go a step further than just a project scheme. We have a project process that is well defined, including the way that most project properties are set up. Beyond this, we need to standardize the use of some components and versions as well, since we are using these for a modified version of RUP. The idea is to put Status information, Requirements and Deliverables in the components, and then have the project phases, Inception, Design, Develop, etc. as the versions. Finally, we have need to put in special log issues that managers use to keep a top-level running commentary on the project. So, if there was a way to copy an entire project, we could set one up as a template and then copy that to each new project that comes along.
We have a similar need to David's. We are using Jira to manage the projects we do for customers. We've got it set up for one customer fairly well, and would like to copy everything from that first project except for the issues themselves. That would include all the version info, components, as well as the screens, etc.
Just changing the description to ensure we attract the most votes and feedback on this issue.
We would find this very useful as well. Even the ability just to copy projects would cut down the amount of admin required to create new projects.
As a temporary workaround, a fairly large amount of this could be achieved by Jelly scripting. We can setup:
Here is a quick one: <?xml version="1.0"?> <!-- Create Users --> <JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.enterprise.JiraTagLib"> <jira:CreateUser username="n.dimas" password="n.dimas" confirm="n.dimas" fullname="Nikolaos Dimas" email="an.email@company.com"/> </JiraJelly> <!-- Create Project --> <JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.enterprise.JiraTagLib" xmlns:j="jelly:core"> <j:set var="name" value="Loyalty Web Service"/> <j:set var="key" value="VASB"/> <j:set var="lead_username" value="g.dioletis"/> <j:set var="lead_username_1" value="s.kladitis"/> <j:set var="lead_username_2" value="n.dimas"/> <jira:CreateProject key="${key}" name="${name}" description="${name}" lead="${lead_username}"> <!-- Default Members for Project Roles will be setup in advance use the following command to create ad-hoc memberships --> <jira:AddActorsToProjectRole projectroleid="10001" actors="s.klaritis,n.dimas,g.dioletis" projectkey="${key}" actortype="atlassian-user-role-actor" /> <!-- Add Process related Components --> <jira:AddComponent name="P-PA" description="Process PA" componentLead="${lead_username}"/> <jira:AddComponent name="P-AD" description="Process AD" componentLead="${lead_username}"/> <jira:AddComponent name="P-NE" description="Process NE" componentLead="${lead_username}"/> <jira:AddComponent name="P-SE" description="Process SE" componentLead="${lead_username}"/> <!-- Select Component Assignee for explicit assignments --> <jira:SelectComponentAssignees project-key="${key}" componentName="P-PA" assigneeType="componentLead"/> <jira:SelectComponentAssignees project-key="${key}" componentName="P-AD" assigneeType="componentLead"/> <jira:SelectComponentAssignees project-key="${key}" componentName="P-NE" assigneeType="componentLead"/> <jira:SelectComponentAssignees project-key="${key}" componentName="P-SE" assigneeType="componentLead"/> <!-- Add Service related Components --> <jira:AddComponent name="C-Documentation" description="Documentation" componentLead="${lead_username_1}"/> <jira:AddComponent name="C-Service-A" description="Service A" componentLead="${lead_username_2}"/> <jira:AddComponent name="C-Service-B" description="Service B" componentLead="${lead_username_2}"/> <!-- Select Component Assignee for explicit assignments --> <jira:SelectComponentAssignees project-key="${key}" componentName="C-Documentation" assigneeType="unassigned"/> <jira:SelectComponentAssignees project-key="${key}" componentName="C-Service-A" assigneeType="projectLead"/> <jira:SelectComponentAssignees project-key="${key}" componentName="C-Service-Β" assigneeType="projectLead"/> <!-- assigneeType values: projectDefault componentLead projectLead unassigned --> <!-- Add Service related Versions --> <jira:AddVersion name="${key}.1.0"/> <!-- Add Phase / Iteration related Versions --> <jira:AddVersion name="INC-1"/> <jira:AddVersion name="ELA-1"/> <jira:AddVersion name="CON-1"/> <jira:AddVersion name="TRA-1"/> <!-- Manage Versions to set milestone (release) dates --> <!-- Create a template WBS --> <jira:CreateIssue assignee="-1" project-key="${key}" summary="Task WBS.1" issueType="Task" fixVersions="INC-1" reporter="admin" issueKeyVar="task1"/> <jira:CreateIssue assignee="-1" project-key="${key}" summary="Task WBS.1.1" issueType="Task" fixVersions="INC-1" reporter="admin" issueKeyVar="task1-1"/> <jira:CreateIssue assignee="-1" project-key="${key}" summary="Task WBS.1.2" issueType="Task" fixVersions="INC-1" reporter="admin" issueKeyVar="task1-2"/> <!-- Create issue links --> <jira:LinkIssue key="${task1}" linkKey="${task1-1}" linkDesc="incorporates"/> <jira:LinkIssue key="${task1}" linkKey="${task1-2}" linkDesc="incorporates"/> <!-- Create issues with custom fields --> <jira:CreateIssue project-key="${key}" summary="Task WBS.2" issueType="Task" fixVersions="ELA-1" issueKeyVar="task2" reporter="admin"> <jira:AddCustomFieldValue id="customfield_10020" value="3"/> <jira:AddCustomFieldValue id="customfield_10021" value="2"/> </jira:CreateIssue> <!-- Create issues with custom fields --> <jira:CreateIssue project-key="${key}" summary="Task WBS.3" issueType="Task" fixVersions="CON-1" issueKeyVar="task3" reporter="admin"> <jira:AddCustomFieldValue id="customfield_10020" value="3"/> <jira:AddCustomFieldValue id="customfield_10021" value="3"/> </jira:CreateIssue> <!-- Create issues with custom fields --> <jira:CreateIssue project-key="${key}" summary="Task WBS.4" issueType="Task" fixVersions="CON-1" components="C-Documentation" issueKeyVar="task4" reporter="admin"> <jira:AddCustomFieldValue id="customfield_10020" value="2"/> <jira:AddCustomFieldValue id="customfield_10021" value="2"/> </jira:CreateIssue> <!-- For Cascading Selects : Note also that the value for cascading selects is the optionId <jira:AddCustomFieldValue id="customfield_10001" value="Parent Option Id" /> <jira:AddCustomFieldValue id="customfield_10001" value="Child Option Id" key="1" /> --> <!-- For Multi Selects <jira:AddCustomFieldValue id="customfield_100002" value="Value 1" /> <jira:AddCustomFieldValue id="customfield_100002" value="Value 2" /> --> </jira:CreateProject> <!-- Modify project schemes --> <jira:SelectProjectScheme projectKey="${key}" permission-scheme="External Support Permission Scheme"/> <jira:SelectProjectScheme projectKey="${key}" issue-scheme="Support Issue Security Scheme"/> <!-- The following schemes should be selected manually Notification Scheme: sets which events trigger email notifications Issue Type Scheme: Field Configuration Scheme: Issue Type Screen Scheme: Workflow Scheme: --> <!-- Select Project Category: VAS Projects manually --> <!-- Mail Configuration, non default sender email address --> </JiraJelly> Waow David... Too many requirements for a initially simple and efficient improvement, I would suggest to create a separate "new feature" request...
Please Mister Developers, just implement what is asked by Anton, would be already great ! A "Project Scheme" would correspond to the association of the following items: PROCESS RATIONALIZATION ! If the existing project setup flexibility should be kept, just give the option to select either a "Project Scheme" or a "personal configuration". Listen to Anton wisdom ! Regards, |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||