CBD-6 #8

  • //
  • spec/
  • job/
  • CBD-6
  • View
  • Commits
  • Open Download .zip Download (4 KB)
# The form data below was edited by tom_tyler
# Perforce Workshop Jobs
#
#  Job:           The job name. 'new' generates a sequenced job number.
#
#  Status:        Job status; required field.  There is no enforced or
#                 promoted workflow for transition of jobs from one
#                 status to another, just a set of job status values
#                 for users to apply as they see fit.  Possible values:
#
#                 open - Issue is available to be worked on.
#
#                 inprogress - Active development is in progress.
#
#                 blocked - Issue cannot be implemented for some reason.
#
#                 fixed - Fixed, optional status to use before closed.
#                 
#                 closed - Issue has been dealt with definitively.
#
#                 punted - Decision made not to address the issue,
#                    possibly not ever.
#
#                 suspended - Decision made not to address the issue
#                    in the immediate future, but noting that it may
#                    have some merit and may be revisited later.
#
#                 duplicate - Duplicate of another issue that.
#
#                 obsolete - The need behind the request has become
#                    overcome by events.
#
#  Project:       The project this job is for. Required.
#
#  Severity:      [A/B/C] (A is highest)  Required.
#
#  ReportedBy     The user who created the job. Can be changed.
#
#  ReportedDate:  The date the job was created.  Automatic.
#
#  ModifiedBy:    The user who last modified this job. Automatic.
#
#  ModifiedDate:  The date this job was last modified. Automatic.
#
#  OwnedBy:       The owner, responsible for doing the job. Optional.
#
#  Description:   Description of the job.  Required.
#
#  DevNotes:      Developer's comments.  Optional.  Can be used to
#                 explain a status, e.g. for blocked, punted,
#                 obsolete or duplicate jobs.
#
# Component:      Larger projects may use this optional field to
#                 indicate which component of the project a given
#                 job is associated with.
#
#  Type:	  Type of job [Bug/Feature].  Required.

Job:	CBD-6

Status:	punted

Project:	perforce-software-cbd

Severity:	C

ReportedBy:	tom_tyler

ReportedDate:	2017/05/17 12:18:40

ModifiedBy:	tom_tyler

ModifiedDate:	2017/06/06 06:08:27

OwnedBy:	tom_tyler

Description:
	Complete implementation of CBD for Classic (i.e. non-Streams).

DevNotes:
	Status: This job has been punted as there is no immediate plan to
	implement it.  It had been the initial intent to support Classic, but
	every would-be team doing CBD automation (and there have been several)
	have gone with Streams.
	
	Getting CBD to work with Classic means implementing for Classic some
	functionality that is built-in to p4d, mainly the workspace management
	aspect.  So with CBD for Classic, updating user client specs based on
	update of a template is needed, to give the moral equivalent of
	stream workspaces associated with a stream being updated when the
	stream spec gets upated.  Workspace naming conventions and restricting
	the View of client spec to a single branch, a good best practice,
	becomes required.  Also, since Classic has no equivalent of the
	StreamAtChange feature, so a Classic-based CBDs solution can never be
	as complete or full-featured as a Streams-based one.
	
	There is another reason to avoid implementing for Classic, which is
	the goal of simplifying the eventual transition for customers of these
	custom CBD scripts to a coming built-in p4d implementation of component
	based streams, which works only in a Streams world (which are a natural
	fit for CBD).
	
	All that said, it could be done, and if there's a customer with a need
	and budget or will to do it themselves, this broker-based CBD solution
	could be extended to support Classic Perforce.
	
	Implementation:
	I considered taking advantage of the new ChangeView field in 2014.2.
	(See : http://www.perforce.com/blog/141110/client-changeview-window-past)
	
	This gives part of what we want, but supports only changelists rather than
	arbitrary revision specifiers, so we still need to do the broker REWRITE
	trick to rewrite user sync commands (just as with the Streams implementation,
	which cannot use @change on import lines in the path specifier.

Type:	Feature
# Change User Description Committed
#8 default
#7 default
#6 default
#5 default
#4 default
#3 default
#2 default
#1 default