<document xmlns="http://maven.apache.org/changes/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/xsd/changes-1.0.0.xsd">
  <properties>
    <title>Sample Changes Report: Papyrus SysML 1.4</title>
  </properties>
  <body>
    <release version="1.3.200" date="2019-06-26" description="Maintenance release">
      <action dev="qlemenez" type="add" issue="548630">
        Migrate to Papyrus 4.4.0 (2019-06 target platform)
      </action>  
    </release> 
    <release version="1.3.100" date="2018-10-26" description="Maintenance release">
      <action dev="qlemenez" type="add" issue="540517">
        Migrate to Papyrus 4.1.0 (2018-09 target platform)
      </action>     
      <action dev="pdeville" type="add" issue="539011">
        Create a connector between flowports inside two properties
      </action>              
      <action type="update">
        All the fixes can be found here: https:&#47;&#47;bugs.eclipse.org&#47;bugs&#47;buglist.cgi&#63;classification&#61;Modeling&#38;product&#61;Papyrus&#38;component&#61;SysML&#38;target_milestone&#61;1.3.1
      </action>  
    </release> 
  	<release version="1.3.0" date="2017-05-23" description="Quickfixes for validation issues">
  	  <action dev="bmaggi" type="add" issue="535759">
		Migrate to Papyrus 4.0.0 (Photon target platform)
      </action>  	
  	  <action dev="bmaggi" type="add" issue="535544">
		Display parameters and constraints in ConstraintBlock property
      </action>  	
  	  <action dev="bmaggi" type="add" issue="536295">
		New license for the code (EPLv2)
      </action>              
  	  <action type="update">
        All the fixes can be found here: https:&#47;&#47;bugs.eclipse.org&#47;bugs&#47;buglist.cgi&#63;classification&#61;Modeling&#38;product&#61;Papyrus&#38;component&#61;SysML&#38;target_milestone&#61;1.3.0
      </action>  
    </release>     
  	<release version="1.2.0" date="2017-05-23" description="Quickfixes for validation issues">
  	  <action dev="bmaggi" type="add" issue="534155">
		Provide architecture for QuickFix on validation errors.
		Some example are already implemented
      </action>  	
  	  <action dev="bmaggi" type="add" issue="530565">
		Trace and Verify stereotypes now inherits from Standard Profile stereotypes.
      </action>              
  	  <action type="update">
        All the fixes can be found here: https:&#47;&#47;bugs.eclipse.org&#47;bugs&#47;buglist.cgi&#63;classification&#61;Modeling&#38;product&#61;Papyrus&#38;component&#61;SysML&#38;target_milestone&#61;1.2.0
      </action>  
    </release>   
  	<release version="1.1.0" date="2017-12-22" description="Maintenance version working with Oxygen.1 and Oxygen.2">
  	  <action dev="vlorenzo" type="add" issue="502163">
		It's now possible to show/hide content all elements in BDD.
      </action>  	
  	  <action dev="vlorenzo" type="add" issue="502176">
		It's now possible to display constraint property parameters in parametric diagram.
      </action>   
  	  <action dev="vlorenzo" type="add" issue="528163">
		It's now possible to display corder iteme for constraint block in parametric diagram.
      </action>    
      <action dev="bmaggi" type="add" issue="528694">
			Fix NPE on diagram extending parametric diagram.
      </action>      
      <action dev="pdeville" type="add" issue="528161">
		NestedConnectorEnd stereotype is now applied when we creating a connector between the same property in a different context.
      </action> 
      <action dev="pdeville" type="add" issue="528159">
		Property path of nestedconnectorEnd is now displayed in the correct order.
      </action>       
      <action dev="bmaggi" type="add" issue="527348">
		 SysML-Standard-Library diagrams are now using SysML Architecture viewpoint.
      </action>       
      <action dev="vlorenzo" type="add" issue="528154">
		Constraint Block is now available in BDD palette.
      </action>            
  	  <action type="update">
        All the fixes can be found here: https:&#47;&#47;bugs.eclipse.org&#47;bugs&#47;buglist.cgi&#63;classification&#61;Modeling&#38;product&#61;Papyrus&#38;component&#61;SysML&#38;target_milestone&#61;1.1.0
      </action>  
    </release>   
  	<release version="1.0.0" date="2017-09-28" description="1.0.0 (0.11.0)">
  	  <action dev="bmaggi" type="add" issue="517162">
		Define the new SysML 1.4 architecture using Papyrus New Architecture framework
      </action>  	  
      <action dev="bmaggi" type="add" issue="521569">
		Refactor all palette to include:
       - common model elements (chapter 7.2 from SysML 1.4) 
       - diagram specific elements (ex chapter 16.2.1 for Requirement)
      </action>
      <action dev="flefevre" type="add" issue="522000">
		Menu New child UML4SysML
      </action> 
      <action dev="bmaggi" type="update" issue="518947">
		8.3.2.11 NestedConnectorEnd stereotype is not applied for ConnectedEnd.
		NestedConnector is correctly updated when moving a connector.
      </action>            
  	  <action type="update">
  	   Project Leader Sebastien G. decided to promote this version as 1.0.0. 
  	   (So the plugins number will be 1.0.0 but bugs target will remain 0.11.0)
        All the fixes can be found here: https:&#47;&#47;bugs.eclipse.org&#47;bugs&#47;buglist.cgi&#63;classification&#61;Modeling&#38;product&#61;Papyrus&#38;component&#61;SysML&#38;target_milestone&#61;0.11.0
      </action>  
    </release>   
  	<release version="0.10.1" date="2017-05-18" description="Updates on Palette, Properties, Validation">
      <action dev="bmaggi" type="add" issue="508532">
      A property view shouldn't be empty 
      </action> 
       <action dev="bmaggi" type="add" issue="509148">
	  Allocation table should display supplier in one column 
      </action>      
       <action dev="nfauvergue" type="add" issue="510521">
       [Parametric] Allow constraint Block drop
      </action>
       <action dev="bmaggi" type="add" issue="508172">
       [IBD] Refresh problems when resizing a FlowPort
      </action>          
     <action dev="bmaggi" type="add" issue="510848">
	 [Validation] Correct rule 8.3.2.3 Block [8] Any classifier that specializes a Block must also have the
 Block stereotype or one of its specializations applied
     </action>      
      <action dev="bmaggi" type="add" issue="516343">
      [Validation] Correct rule 9.3.2.5  FeatureDirection [1] A FlowProperty is typed by a ValueType, Block, or Signal.
      </action>
      <action dev="bmaggi" type="add" issue="515283">
      [Validation] Correct rule 8.3.2.7 DirectedRelationshipPropertyPath [6] The type of the property at the
  last position of the sourcePropertyPath list must own or inherit the source
  of the stereotyped directed relationship.
      </action>
     <action dev="bmaggi" type="add" issue="514255">
	[Validation] Error when creating a part 
     </action>       
      <action dev="bmaggi" type="add" issue="511914">
     [Validation] Missing rules for allocation (source and target multiplicity == 1)
      </action> 
      <action dev="bmaggi" type="add" issue="516561">
      DeriveReqt should be allowed only requirements
      </action>
      <action dev="bmaggi" type="add" issue="514301">
      [Palette] Remove Continuous, Rate and Discrete from
      </action>      
      <action dev="bmaggi" type="add" issue="514305">
      [Palette] Regroup Test Case element in Stack 
      </action>            
      <action dev="bmaggi" type="add" issue="514065">
      [Palette] [Parametric] Manage FlowPort as Deprecated
      </action>
      <action dev="nfauvergue" type="add" issue="513817">
      [Palette] [IBD] Manage FlowPort as Deprecated
      </action>           
    </release>    
  	<release version="0.10.0" date="2016-09-30" description="0.10.0">
  	  <action dev="bmaggi" type="update" issue="501077">
		Performance: change Package to Profile in the SysML 1.4 OMG profile
		:warning: The profile needs to be re-apply:
				- Open your Model
				- Select the root in the Model Explorer
				- Select Profile Properties view
				- SysML 1.4 profile is applied
				- Re-apply SysML 1.4 profile
				=> All SysML 1.4 sub profile should also be applied
      </action>  	  
      <action dev="bmaggi" type="add">
		Many constraints have added from the official norm.
		You can validate your model by:
		       - Opening the model in model explorer
		       - Right click on any element
		       - Chose Validation > Validate Model
		       - The result of the validation is available in  
      </action>
      <action dev="bmaggi" type="add" issue="478268">
		Add Association Block element, an AssociationBlock is an association class stereotyped by Block  
      </action>       
  	  <action type="update">
        All the fixes can be found here: https:&#47;&#47;bugs.eclipse.org&#47;bugs&#47;buglist.cgi&#63;classification&#61;Modeling&#38;product&#61;Papyrus&#38;component&#61;SysML&#38;target_milestone&#61;0.10.0
      </action>  
    </release>  
  	<release version="0.9.1" date="2016-07-30" description="0.9.1">
  	  <action dev="bmaggi" type="update" issue="498991">
		Performance: improve element creation in diagrams
      </action>
      <action dev="bmaggi" type="update" issue="498989">
		Performance: improve element creation in diagrams
      </action>
      <action dev="bmaggi" type="update" issue="498885">
		Performance: improve element creation in diagrams
      </action>
      <action dev="bmaggi" type="update" issue="498338">
		Performance: improve element creation in diagrams
      </action>
      <action dev="flefevre" type="add" issue="496803">
		Releng: introducing the Components parent pom to manage the shared configuration accross all Papyrus components
      </action>
      <action dev="bmaggi" type="update" issue="495408">
		Add a new type of table : Requirement Tree Table
      </action>
      <action dev="bmaggi" type="update">
		Add a new plugin to hold all the viewpoint configuration
      </action>     	  
      <action type="update">
        All the fixes can be found here: https:&#47;&#47;bugs.eclipse.org&#47;bugs&#47;buglist.cgi&#63;classification&#61;Modeling&#38;product&#61;Papyrus&#38;component&#61;SysML&#38;target_milestone&#61;0.9.1
      </action>       
    </release>  
  	<release version="0.9.0" date="2016-05-30" description="Wild Cat release">
      <action dev="bmaggi" type="update">
		This version is only compatible with Papyrus Eclipse Neon.
      </action>
      <action type="update">
		This version will allow to create "Inner Port", port on port in IBD and Parametric Diagram.
      </action>
      <action type="update">
		This version add all the validation rules for the requirements.
      </action>            	
      <action type="update">
        All the fixes can be found here: https:&#47;&#47;bugs.eclipse.org&#47;bugs&#47;buglist.cgi&#63;classification&#61;Modeling&#38;product&#61;Papyrus&#38;component&#61;SysML&#38;target_milestone&#61;0.9.0
      </action>       
    </release>
    <release version="0.8.1" date="2016-15-04" description="Second release">
      <action dev="bmaggi" type="update" issue="488468">
		Update version dependencies to indicate incompatibility with Papyrus Neon 
		(Note version 0.9.0 won't be compatible with Papyrus Mars)
      </action>	 
	  <action dev="flefevre" type="update" issue="479570">
       755c771 Bug 484695 - [SysML 1.4][product] open the papyrus perspective
      </action>
      <action dev="flefevre" type="update" issue="479570">
       3958147 Bug 478259 - [SysML 1.4][BDD] Attributes compartment of ConstraintBlocks should be named 'parameters'
      </action>
      <action dev="flefevre" type="add" issue="480739">
		New icon for ControlOperator in the model explorer view
      </action>		
      <action dev="bmaggi" type="update" issue="488080">
		The new Child menu is separated in two menus nodes and relations
      </action>	
      <action dev="bmaggi" type="add" issue="484221">
	  The rcptt tests are know available here: https:&#47;&#47;repo.eclipse.org&#47;content&#47;repositories&#47;papyrus-releases&#47;org&#47;eclipse&#47;papyrus&#47;sysml&#47;org.eclipse.papyrus.sysml14.rcptt.tests&#47;
      </action>	  
      <action type="update">
        All the fixes can be found here: https:&#47;&#47;bugs.eclipse.org&#47;bugs&#47;buglist.cgi&#63;classification&#61;Modeling&#38;product&#61;Papyrus&#38;component&#61;SysML&#38;target_milestone&#61;0.8.1
      </action>
    </release>	
    <release version="0.8" date="2015-12-01" description="First release">
      <action dev="flefevre" type="fix" issue="479570">
        Factorize the code under org.eclipse.papyrus.sysml14.diagram.blockdefinition.factory.
      </action>
      <action dev="bmaggi" type="update">
        Uploaded documentation and first major commit.
      </action>
    </release>
  </body>
</document>