Releases: SubPointSolutions/spmeta2
SPMeta2 v1.2.35-beta1, October 2015
What's new in SPMeta2 v1.2.35-beta1, Oct, 2015
Preliminary implementation for 25 strong typed web parts, further improvements will be made prior November 2015 release. Fixes, various enhancements, new regression tests and tests hardening.
AssemblyFileVersion: 1.2.15301.0536
New definitions
- #714, Add 'CategoryWebPartDefinition'
- #712, Add 'MyMembershipWebPartDefinition'
- #711, Add "PictureLibrarySlideshowWebPartDefinition"
- #710, Add 'MembersWebPartDefinition'
- #709, Add "TagCloudWebPartDefinition"
- #708, Add "CommunityJoinWebPartDefinition"
- #707, Add "CommunityAdminWebPartDefinition"
- #706, Add "UserDocsWebPartDefinition"
- #583, Add 'DataFormWebPartDefinition' provision support
- #504, Add 'SiteDocumentsDefinition'
- #503, Add 'RSSAggregatorWebPartDefinition'
- #469, Add "GettingStartedWebPartDefinition"
- #468, Add "UserTasksWebPartDefinition"
- #467, Add "SearchNavigationWebPartDefinition"
- #465, Add "ImageWebPartDefinition"
- #463, Add "DocumentSetPropertiesWebPartDefinition"
- #462, Add "DocumentSetContentsWebPartDefinition"
- #461, Add "XmlWebPartWebPartDefinition"
- #460, Add "SPTimelineWebPartDefinition"
- #459, Add "TableOfContentsWebPartDefinition"
- #458, Add 'BlogAdminWebPartWebPartDefinition'
- #457, Add 'BlogLinksWebPartDefinition'
- #456, Add 'BlogMonthQuickLaunchDefinition'
- #455, Add "SearchBoxScriptWebPart" definition
- #454, Add "SimpleFormWebPart" definition
Fixes
- #693, Some web part provision on wiki page give empty markup
Enhancements
- #718, Enhance 'ChoiceFieldDefinition' - ensure EditFormat field updatibility
- #717, Enhance 'UserFieldDefinition' - add 'ShowField' property
- #716, Enhance 'XsltListViewWebPartDefinition' - add WebId/WebUrl properties
- #715, Enhance 'ListViewDefinition' - add 'Scope' property
- #583, Add 'DataFormWebPartDefinition' provision support
- #485, Enhance 'UserCodeWebPartDefinition' - UserCodeProperty should support ~sitecollection/~site tokens
Regression tests
- 690 regression tests
Support & Issue Resolution
In case you have unexpected issues please contact support on SPMeta2 Yammer or YouTrack:
SPMeta2 v1.2.30, October 2015
What's new in SPMeta2 v1.2.30, October 2015
General assembly clean up to comply with "Microsoft Managed Recommended Rules", improved built-in validation on fields and content type, improved model serialization, various enhancements and new regression tests.
AssemblyFileVersion: 1.2.15294.1219
New definitions
- AnonymousAccessSettingsDefinition - SSOM only, should be deployed under web
- ClearRecycleBinDefinition preview, SSOM + limited CSOM
Fixes
- Incorrect deserialization in particular cases - a model could not be provisioned correctly once deserialized, ModelNodeOptions.RequireSelfProcessing is always false
- Null reference exception while deserializing model
- Incorrect web part type with CSOM ContentBySearchWebPartModelHandler
- Correct BuiltInFieldTypes.LookupMulti type
- Folders support .AddProperty() syntax
- All fields can be deployed to site, web and list scopes #677
- Title props is excluded from the validation for wiki pages
- Fixed NullReferenceException in SSOM ManagedPropertyModelHandler
- Correct FieldType for LookupFieldDefinition/UserFieldDefinition while using AllowMultipleValues flag
Enhancements
- HTMLFieldDefinition has RichText and RichTextMode properties
- Updated RegionalSettings provision for CSOM
- Corrected built-in web part page templates for SP2010/2013
- SSOM only - ListViewDefinition supports 'view style' prop #530
- Added built-in validation for InternalField name - no more than 32 chars
- Added built-in validation for ContentTypeId - must start with '0x'
- WebPartDefinition has generic property collection for web part props
- Enhanced 'WebDefinition' provision - AlternateCssUrl/SiteLogoUr props
- New props for SP2013Workflow/SP2013WorkflowSubscription definitions
- TaxonomyTermSet / Term enhanced with CustomProperties, LocalCustomProperties, CustomSortOrder, Contact, "Available for tagging" props
- UserCustomAction validates absolute URL in ScriptSrc prop
- NoteFieldDefinition updates RichTextMode prop for CSOM
- Builtin class for ManagedDataType
General assembly clean up
A big clean up on the warning and recommended coding practices for the following assemblies:
- SPMeta2
- SPMeta2.Standard
- SPMeta2.CSOM
- SPMeta2.CSOM.Standard
- SPMeta2.SSOM
- SPMeta2.SSOM.Standard
The following settings are used:
- Microsoft Managed Recommended Rules
- Disabled warnings on ListDefinition.GetUrl() and .ListDefinition.Url in the assemblies only
- Warning Level 4
- Suppressed warning 1591 at the build level
- XML documentation file checked
- All warnings threaded as errors for mentioned assemblies
- These settings should be considered as a baseline for the following implementation.
Regression tests
- 630 regression tests, improved coverage, new tests on provision, serialization and model validation
SPMeta2 v1.2.25-beta3, October 2015
What's new in v1.2.25-beta3
[Fixed] Incorrect deserialization in particular cases - a model could not be provisioned correctly once deserialized, ModelNodeOptions.RequireSelfProcessing is always false.
Related to:
- Deserialized models cannot be deployed #697
AssemblyFileVersion: 1.2.15286.1214
No other changes were introduced.
SPMeta2 v1.2.25-beta2, October 2015
What's new in v1.2.25-beta2
Several critical bug-fixes (deserialization in particular cases, CSOM ContentBySearchWebPart fix) plus a big clean up on the warning and recommended coding practices on the M2 assemblies.
AssemblyFileVersion: 1.2.15285.1337
New definitions
- No new definitions were added
Fixes
- Null reference exception while deserializing model
- Incorrect web part type with CSOM ContentBySearchWebPartModelHandler
Enhancements
- SSOM only - ListViewDefinition supports 'view style' prop #530
- Added built-in validation for InternalField name - no more than 32 chars
- Added built-in validation for ContentTypeId - must start with '0x'
- WebPartDefinition has generic property collection for web part props
General assembly clean up
A big clean up on the warning and recommended coding practices for the following assemblies:
- SPMeta2
- SPMeta2.Standard
- SPMeta2.CSOM
- SPMeta2.CSOM.Standard
- SPMeta2.SSOM
- SPMeta2.SSOM.Standard
The following settings are used:
- Microsoft Managed Recommended Rules
- Disabled warnings on ListDefinition.GetUrl() and .ListDefinition.Url in the assemblies only
- Warning Level 4
- Suppressed warning 1591 at the build level
- XML documentation file checked
- All warnings threaded as errors for mentioned assemblies
- These settings should be considered as a baseline for the following implementation.
Regression tests
- 625 regression tests (+9 since last beta release)
SPMeta2 v1.2.25-beta1, October 2015
What's new in v1.2.25-beta1
New definitions
- AnonymousAccessSettingsDefinition - SSOM only, should be deployed under web
Fixes
- Correct BuiltInFieldTypes.LookupMulti type
- Folders support .AddProperty() syntax
- All fields can be deployed to site, web and list scopes #677
- Title props is excluded from the validation for wiki pages
- Fixed NullReferenceException in SSOM ManagedPropertyModelHandler
- Correct FieldType for LookupFieldDefinition/UserFieldDefinition while using AllowMultipleValues flag
Enhancements
- Enhanced 'WebDefinition' provision - AlternateCssUrl/SiteLogoUr props
- New props for SP2013Workflow/SP2013WorkflowSubscription definitions
- TaxonomyTermSet / Term enhanced with CustomProperties, LocalCustomProperties, CustomSortOrder, Contact, "Available for tagging" props
- UserCustomAction validates absolute URL in ScriptSrc prop
- NoteFieldDefinition updates RichTextMode prop for CSOM
- Builtin class for ManagedDataType
Regression tests
- 616 regression tests.
SPMeta2 v1.2.2, September 2015
SPMeta2 v1.2.2 - September 2015 - release notes
If you have 1.1.XXX and moving to 1.2.XXX please review the following release notes carefully.
The following information aims to provide an overview on assembly related changes, refactorings, API changes, new features and API to prepare and simplify migration from v1.1.XXX to v1.2.XXX.
https://github.com/SubPointSolutions/spmeta2/releases/tag/1.2.0-beta1
Please review it carefully, consider that depending on your solution and API usage additional effort might be required to get updated to v1.2.XXX. Once updated, make sure your solution can be compiled without errors, then give a few rounds of provision.
In case you have unexpected issues please contact support on SPMeta2 Yammer or YouTrack:
AssemblyFileVersion - 1.2.15265.2146
What's new in v1.2.2
New definitions
- SupportedUICultureDefinition, should be deployed under web
Fixes
- AddProperty() method on list nodes
- Fixed security provision for SSOM on wiki, web part and publishing pages
Enhancements
- Localization support (TitleResource / DescriptionResource) for web, field, content type, list, list view, navigation nodes and user custom actions
- Enhance 'ModuleFileDefinition' provision - enable security operations #655
- Correct BuiltInListDefinitions.CustomUrl props, regression tests
- Version property validation on AppDefinition
Regression tests
- Improved regression testing
Improved and hardened regression tests coverage - 600+ tests run against the following environments
- SP2013 SP1+ SSOM
- SP2013 SP1+ CSOM
- O365 tenants
Current test coverage is split into three major categories:
- Classic unit tests for pure c# based API
- Random generated definition provision - tests deploy several randomly generated artefacts multiple times, then fetch provisioned SharePoint artefacts, compare properties with original definitions, then randomly update original definition properties and make the second round of the provision, fetch and property comparing
- Scenario based definition provision - manually written provision to cover various real word provision scenarios. Validation process is the same - deploy several times, check, changes, deploy and check again.
Support & Issue Resolution
In case you have unexpected issues please contact support on SPMeta2 Yammer or YouTrack:
SPMeta2 v1.2.1
SPMeta2 v1.2.1 - August 2015 - release notes
If you have 1.1.XXX and moving to 1.2.XXX please review the following release notes carefully.
The following information aims to provide an overview on assembly related changes, refactorings, API changes, new features and API to prepare and simplify migration from v1.1.XXX to v1.2.XXX.
https://github.com/SubPointSolutions/spmeta2/releases/tag/1.2.0-beta1
Please review it carefully, consider that depending on your solution and API usage additional effort might be required to get updated to v1.2.XXX. Once updated, make sure your solution can be compiled without errors, then give a few rounds of provision.
In case you have unexpected issues please contact support on SPMeta2 Yammer network or sent a ticket here at github:
What's new in v1.2.1
Current assembly file version: 1.2.15236.1334
New definitions
- No new definition were added
Fixes
- AddTaxonomyTermLabel() is added under TaxonomyTermDefinition
- AddSecurityRoleLink() is added on SecurityGroupDefinition
- Correct XML validation on XML based properties
- Site provision fixes for SSOM
- ClientWebPart provision on wiki pages (was failing on ID prop presence)
- Correct order for content type related operations in the list
- Correct order for app provision on the web
Enhancements
- AssemblyFileVersion is updated during the build
- TaxonomyTermDefinition has CustomProperties property to address custom prop provision
- SiteDefinition enhanced with required attributes
- M2 handles starting '/' in the web urls avoiding fails
- SecurityGroupDefinition allows nesting security groups (for on-prem AD groups and global O365 groups)
- PublishingPageLayoutDefinition.Title is not required any more, mimic SharePoint
- ListDefinition.DocumentTemplateUrl is introduced
- ListViewDefinition has new props - Type/ViewData to support Gantt, Calendar and Datasheet view provision
- ClientWebPart.ProductWebId is nullable and not required. Current web id will be used if empty
- WebDefinition supports custom web templates via CustomWebTemplate props
- TaxonomyFieldDefinition has IsSiteCollectionGroup and GroupName/GroupId props to enhance provision
- BuiltInSiteFeatures.EnableAppSideLoading props is introduced
- BuiltInWikiPages and BuiltInPublishingPages classes are introduced\
- AppDefinition provision supports updates, automatically detect if any is needed
- ModuleFileUtils.LoadModuleFilesFromLocalFolder() has overload with 'shouldInclude' callback
- LookupFieldDefinition.RelationshipDeleteBehavior is introduced
- PublishingPageLayoutDefinition.PreviewImage is introduced
- Syntax.Extended is added, more details here - #582
- LookupFieldDefinition.LookupWebUrl is added, ~site and ~sitecolleciton token support is implemented
- DeleteWebPartDefinition supports DeleteWebPartDefinition.WebParts props and 'Title' match
Regression tests
- Better web part provision tests - all web parts are deployed to wiki, web part, publishing, list view, new, edit and view list forms
- New tests on apps / client web part provision on web and subwebs
- New tests on app upgrades provision
- New tests on CSOMTokenReplacementService / SSOMTokenReplacementService
Improved and hardened regression tests coverage - 580 tests run again the following three environments
- SP2013 SP1+ SSOM
- SP2013 SP1+ CSOM
- O365 tenants
Current test coverage is split into three major categories:
- Classic unit tests for pure c# based API
- Random generated definition provision - tests deploy several randomly generated artefacts multiple times, then fetch provisioned SharePoint artefacts, compare properties with original definitions, then randomly update original definition properties and make the second round of the provision, fetch and property comparing
- Scenario based definition provision - manually written provision to cover various real word provision scenarios. Validation process is the same - deploy several times, check, changes, deploy and check again.
Support & Issue Resolution
In case you have unexpected issues please contact support on SPMeta2 Yammer network or sent a ticket here at github:
SPMeta2 v1.2.0-beta1
SPMeta2 v1.2.0 release IS fully tested and production ready
Is is marked as -beta1 to avoid automatic upgrade from v1.1.XXX due to possible minor breaking changes in the API and source code base. The following information aims to provide an overview on assembly related changes, refactorings, API changes, new features and API to prepare and simplify migration from v1.1.XXX to v1.2.XXX.
Please review it carefully, consider that depending on your solution and API usage additional effort might be required to get updated to v1.2.XXX. Once updated, make sure your solution can be compiled without errors, then give a few rounds of provision.
In case you have unexpected issues please contact support on SPMeta2 Yammer network or sent a ticket here at github:
What's new in v1.2.0
The major improvement is a "strongly-typed" syntax to build up a model tree. That means that .AddXXX()/AddHostXXX() methods know about allowed SharePoint artifact relationships and pop up in the VS Intellisense only at the right places.
For istance, you see AddListView() method only on the list level, and AddField() only on site, web or list level. That helps to prevent incorrect models being build, moves model check to the compile time and offers a better DSL/domain model for both SharePoint related and non-SharePoint people.
Apart that there are several other enhancements and new API:
- Strongly-typed syntax for model tree construction
- Built-in validation on definition required properties
- Built-in validation on XML properties (a well-formed XML is expected for some properties)
- Fault tolerant provision for O365 and SP 2013 CSOM (provision survives connectivity issues and IISReset)
- Obsolete API and assemblies clean up
Removed assemblies
- Removed SPMeta2.Syntax.Default assembly, moved to SPMeta2.dll preserving namespaces
- Removed SPMeta2.Validation assembly, moved to SPMeta2.dll preserving namespaces
- Removed *.Behaviours assemblies
Removed API
- Fixed BuiltInListDefinitions.Calalogs typo -> use BuiltInListDefinitions.Catalogs instead
- Removed OnCreating/OnCreated events, use OnProvisioning/OnProvisioned events instead
- Removed TaxonomyTermStoreDefinitionSyntax.AddTermStore(), use AddTaxonomyTermStore() instead
- Removed TaxonomyTermGroupDefinitionSyntax.AddTermGroup(), use AddTaxonomyTermGroup() instead
- Removed TaxonomyTermGroupDefinitionSyntax.AddTermSet(), use AddTaxonomyTermSet() instead
- Removed TaxonomyTermDefinitionSyntax.AddTerm(), use AddTaxonomyTerm() instead
- Removed SPMeta2Model.NewModel(), use NewSiteModel()/NewWebModel()/NewWebApplicationModel()/NewFarmModel() methods
- Removed SPMeta2Model.DummySite(), use NewSiteModel()/NewWebModel()/NewWebApplicationModel()/NewFarmModel() methods
- Removed SPMeta2Model.DummyWeb(), use NewSiteModel()/NewWebModel()/NewWebApplicationModel()/NewFarmModel() methods
- Removed "RequireSelfProcessing" property from definitions, please use ModelNode.Options.RequireSelfProcessing instead
- Removed "WithResolvingModelHost()" method on model handlers, use WithResolvingModelHost(ModelHostResolveContext context) instead
New definitions
- No new definition were added
Fixes
- Default RichTextMode/RichText attributes for ImageFieldDefinition to enfore correct HTML render on publishing pages (SharePoint-specific default bahaviour)
Enhancements
- O365 runtime updated to 16.1.3912.1204 from https://www.nuget.org/packages/Microsoft.SharePointOnline.CSOM/16.1.3912.1204
- WebPartDefinition.TitleUrl supports ~sitecollection/~site tokens
- Web parts provision support under list views
- Various "CapabilityAttributes" on definitions to provide additional meta information for external 3rd part tooling (/SPMeta2/Attributes/Capabilities)
- Simple "Provision Progress" callback to track deployment progress, use
ProvisionService.OnModelNodeProcessing / OnModelNodeProcessed events
Regression tests
Improved and hardened regression tests coverage - 520+ tests run again the following three environments
- SP2013 SP1+ SSOM
- SP2013 SP1+ CSOM
- O365 tenants
Current test coverage is split into three major categories:
- Classic unit tests for pure c# based API
- Random generated definition provision - tests deploy several randomly generated artifacts multiple times, then fetch provisioned SharePoint artifacts, compare properties with original definitions, then randomly update original definition properties and make the second round of the provision, fetch and property comparing
- Scenario based definition provision - manually written provision to cover various real word provision scenarios. Validation process is the same - deploy several times, check, changes, deploy and check again.
Support & Issue Resolution
In case you have unexpected issues please contact support on SPMeta2 Yammer network or sent a ticket here at github:
SPMeta2 v1.1.100
New definitions
- DependentLookupFieldDefinition (site columns and content type refs)
- RefinementScriptWebPartDefinition
- ComposedLookItemLinkDefinition
- SilverlightWebPartDefinition
- MasterPagePreviewDefinition
- FilterDisplayTemplateDefinition
- ManagedPropertyDefinition (SP2013 SSOM impl only)
Fixes
- Fixed WebNavigationSettings provision for SSOM - correct ShowSubSites/Pages flags setup
Enhancements
- Module files definition can be deployed under lists
- RootWebDefinition can be deployed under web
- Taxonomy terms provision checks special characters
- Incorrectly deleted taxonomy field is handled during re-provisioning
- WebPartDefinition has ParameterBndings prop
- ModuleFileUtils.LoadModuleFilesFromLocalFolder(..) method to map "local folder" intto model tree
- WebpartXmlExtensions.LoadDefinitionFromWebpartFile(..) method to load webpart definition from .webpart/.dwp files
- ContentTypeFieldLinkDefinition has InternalFieldName prop
- ListFieldLinkDefinition has InternalFieldName prop
- Webpart provision handles both "ChromeType" and "FrameType" prop values
- XsltListViewWebPartDefinition has new props - Xsl, XslLink, XmlDefinition, XmlDefinitionLink, DisableXXX,InplaceSearchEnabled
Obsolete API
- SPMeta2.SSOM.DefaultSyntax.ListDefinitionSyntax.GetListUrl() marked as obsoleted
- SPMeta2.CSOM.DefaultSyntax.ListDefinitionSyntax.GetListUrl() marked as obsoleted
- ListDefinition.Url marked as obsolete - use ListDefinition.CustomUrl with specifying "/List/mylist" or "mylibrary" URL instead
The challenge is that GetListUrl() method was supposed to calculate a correct list URL (with/without 'List' prefix) based on the list type. That works well for known lists, but works incorrectly on list templates, custom list template and lists which types are unknown to M2 library. We suggest to use "CustomUrl" property instead of "Url" and specify web-related list URL - with or without "/List" prefix depending on your case.
Regression tests
Improved regression test covered - 480 tests to cover more provision scenarios and cases.
SPMeta2 v1.1.95-beta1
New definitions
- RefinementScriptWebPartDefinition
- ComposedLookItemLinkDefinition
- SilverlightWebPartDefinition
- MasterPagePreviewDefinition
- FilterDisplayTemplateDefinition
- ManagedPropertyDefinition (SP2013 SSOM impl only)
Fixes
- Fixed WebNavigationSettings provision for SSOM - correct ShowSubSites/Pages flags setup
Enhancements - Module files definition can be deployed under lists
- RootWebDefinition can be deployed under web
- Taxonomy terms provision checks special characters
- Incorrectly deleted taxonomy field is handled during re-provisioning
- WebPartDefinition has ParameterBndings prop
- ModuleFileUtils.LoadModuleFilesFromLocalFolder(..) method to map "local folder" intto model tree
- WebpartXmlExtensions.LoadDefinitionFromWebpartFile(..) method to load webpart definition from .webpart/.dwp files
Obsolete API
- SPMeta2.SSOM.DefaultSyntax.ListDefinitionSyntax.GetListUrl() marked as obsoleted
- SPMeta2.CSOM.DefaultSyntax.ListDefinitionSyntax.GetListUrl() marked as obsoleted
- ListDefinition.Url marked as obsolete - use ListDefinition.CustomUrl with specifying "/List/mylist" or "mylibrary" URL instead
The challenge is that GetListUrl() method was supposed to calculate a correct list URL (with/without 'List' prefix) based on the list type. That works well for known lists, but works incorrectly on list templates, custom list template and lists which types are unknown to M2 library. We suggest to use "CustomUrl" property instead of "Url" and specify web-related list URL - with or without "/List" prefix depending on your case.
Regression tests
Improved regression test covered - 460+ tests to cover more provision scenarios and cases.
The main focus for the June 2015 release is secondary lookup field implementation and better regression test coverage.