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

Key: JRA-7020
Type: Improvement Improvement
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: Anton Mazkovoi [Atlassian]
Votes: 42
Watchers: 19
Operations

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

Allow support for project schemes or templates

Created: 15/Jun/05 07:49 PM   Updated: 26/May/08 06:04 AM
Component/s: Web interface, Workflow, Administration, Permissions Security
Affects Version/s: None
Fix Version/s: None

Time Tracking:
Not Specified

Issue Links:
Duplicate
 
Part
 
Reference
 

Participants: Aggelos Paraskevopoulos, Anton Mazkovoi [Atlassian], Benjamin Naftzger [Atlassian], Caplin Systems, David Feldman, Ludovic Lambert and Philip Soffer
Since last comment: 22 weeks, 2 days ago
Support reference count: 5
Labels:


 Description  « Hide
This will allow admins to have a project template that can be copied each time a new project is selected. This will save the admins time from associating new projects with schemes after creation.

One way to implement this would be to create 'project schemes'.



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
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.

Philip Soffer - 20/Feb/06 08:37 PM
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.

Benjamin Naftzger [Atlassian] - 30/Apr/06 10:40 PM
Just changing the description to ensure we attract the most votes and feedback on this issue.

Caplin Systems - 21/Aug/06 07:49 AM
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.

Aggelos Paraskevopoulos - 21/Feb/07 10:41 AM
As a temporary workaround, a fairly large amount of this could be achieved by Jelly scripting. We can setup:
  • Components -> Artifacts
  • Versions -> Phases / Iterations
  • Issues for creating an initial WBS
  • Some of the project schemes, roles, default assignees etc.

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>

Ludovic Lambert - 14/Feb/08 04:22 PM
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:
Issue Type Scheme
Issue Type Screen Scheme
Issue Security Scheme
Field Configuration Scheme
Permission Scheme
Notification Scheme
Workflow Scheme

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,
Ludovic