Skip to content

Commit

Permalink
Merge pull request #4291 from dnnsoftware/release/9.8.0
Browse files Browse the repository at this point in the history
Release/9.8.0
  • Loading branch information
valadas authored Nov 10, 2020
2 parents 82a3a08 + 971faf3 commit 6545748
Show file tree
Hide file tree
Showing 1,879 changed files with 96,713 additions and 23,137 deletions.
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug-report.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ Provide any additional context that may be helpful in understanding and/or resol
Please add X in at least one of the boxes as appropriate. In order for an issue to be accepted, a developer needs to be able to reproduce the issue on a currently supported version. If you are looking for a workaround for an issue with an older version, please visit the forums at https://dnncommunity.org/forums
-->
* [ ] 10.00.00 alpha build
* [ ] 09.08.00 release candidate
* [ ] 09.07.02 release candidate
* [ ] 09.07.01 latest supported release

Expand Down
26 changes: 10 additions & 16 deletions .github/PULL_REQUEST_PROCESS.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,11 @@ Community review of submitted pull requests is encouraged, and all pull requests
At the current time the following community members are designated approvers.

* Mitchel Sellers ([mitchelsellers](https://github.com/mitchelsellers)) - Community Technology Advisory Group Lead
* Oliver Hine ([ohine](https://github.com/ohine))
* Brian Dukes ([bdukes](https://github.com/bdukes))
* Peter Donker ([donker](https://github.com/donker)) - Community Developer Advisory Group Lead
* Daniel Valadas ([valadas](https://github.com/valadas))
* Matt Rutledge ([mtrutledge](https://github.com/mtrutledge))
* Vicenç Masanas ([vmasanas](https://github.com/vmasanas))
* Erik van Ballegoij ([erikvb](https://github.com/erikvb))

Additionally, the following individuals from ESW/DNN Corp are approved reviewers.

* Daniel Aguilera ([daguiler](https://github.com/daguiler)) - CTO
* Ash Prasad ([ashishpd](https://github.com/ashishpd)) - VP of Engineering
* David Poindexter ([david-poindexter](https://github.com/david-poindexter)) - Community Strategy Advisory Group Lead

### Review Minimums
An individual performing the code review should validate at a minimum the following.
Expand All @@ -50,6 +43,14 @@ If a reviewer has suggestions for improvement, those should be noted in the pull

*If you have questions about a pull request or an idea for a pull request, please reach out to one of the approvers before submitting to ensure a streamlined process.*

### Draft PR's
For proper management of pull requests the team will utilize the "Draft" option within a pull request to identify something that is being submitted for consideration and in need of review/comment or other special review from the team. Individuals should coordinate with the Approvers group prior to submitting any Draft pull requests as they are special cases.

### On-Hold Tag
The Approvers group will add the "On-Hold" tag to any pull request that is targeting a major or minor release until it is ready for merging. This is done as an administrative process to prevent accidental merging and is not a reflection of rejection of the submitted code. The associated milestone will be updated when the "On-Hold" tag has been added for clear communication regarding expectations.

Examples of requests of this nature include technology or dependency changes that could introduce major/minor breaking changes.

## Merging & Closing of Requests
Once a pull request has been reviewed by two designated approvers it may be merged and the pull request closed.

Expand All @@ -67,11 +68,4 @@ We follow the process outlined in the [Versioning Policy](VERSIONING_POLICY.md)

The review team will work to respond to all pull requests in a timely fashion. If changes or additional information is requested a pull request will remain open allowing the submitter to update their contribution accordingly. If a request for additional information or changes is not completed with 90 days of request the Pull Request will be closed to keep the pipeline clear. Once the needed information has been gathered the information can be re-submitted via a new Pull Request.

For expedited processing you may reference the prior Pull Request.

### Items for Future Releases
If an item was submitted that will be integrated into a future release that is not currently in the development pipeline it is possible that the Pull Request will remain open.

In this situation the reviewing team will approve the request, tag the request with a specific version milestone and add a comment noting when and why it will be included in the particularly identified release.

This most often will apply to technology or dependency changes that require alignment with Major, Minor, Revision build inclusion.
For expedited processing you may reference the prior Pull Request.
27 changes: 20 additions & 7 deletions .github/RELEASE_SCHEDULE.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,29 @@
# DNN Platform Release Schedule
To ensure adequate time for release planning by the community, partners, and vendors a specific release process will be followed for all releases.
To ensure adequate time for release planning by the community, partners, and vendors, a specific release process will be followed for all releases.

## Release Candidates
For a period of one week (Revision), two weeks (Minor) or four-weeks (Major) before any release, a Release Candidate (RC) version will be made available to the public. At present these release candidates will be for testing only. After version 10.x efforts will be made to support upgrading from RC to Production releases.
A Release Candidate (RC) is designed to give the community time to adjust their existing environments for any breaking changes and identify any unintended changes. Strong community participation during the RC process will result in more stable releases.

The goal of these release candidates is to give the community time to adjust their existing environments for any breaking changes, as well as to identify any issues with the changes. If necessary, changes will be incorporated an additional RC release could be made if significant problems are identified. If a revised Release Candidate is necessary the Production Release schedule will be impacted. The exact impact will vary on a case-by-case basis depending on the nature of the issue(s) identified during RC review, however, will be clearly communicated during the release.
### Major Releases (`MAJOR.Minor.Patch`)
Major releases will have an initial RC cycle with a minimum duration of three weeks between the date of the RC release and the date of the final release.

## Production Releases
Production releases will only be completed after a successful RC phase, except in the case of a significant security release that was included as part of a revision release.
### Minor Releases (`Major.MINOR.Patch`)
Minor releases will have an initial RC cycle with a minimum duration of two weeks between the date of the RC release and the date of the final release.

The release date will be communicated to the community at the time of the RC. And each release will take the following considerations into mind for all releases.
### Patch Releases (`Major.Minor.PATCH`)
Patch releases will have an initial RC cycle with a minimum duration of one week from the RC release and final release.

* Releases must allow for at least two additional business days after the release for regular Monday - Friday office situations (Releases only on Monday, Tuesday or Wednesday)
### Changes During RC Cycle
If necessary, changes will be incorporated during an RC; if the changes resolve significant issues or introduce risk, an additional RC may be created at the discretion of the Approvers group. If a revised RC is necessary, the Production Release schedule will be impacted; the exact impact will vary on a case-by-case basis depending on the nature of the issue(s) identified during the RC review. However, it will be communicated as part of the updated RC release notes.

## Final Releases
Production Releases will only be completed after a successful Release Candidate cycle, except in the case of a significant security release included as part of a Patch release.

The anticipated release date will be communicated to the community at the time of the RC. And each release will take the following considerations into mind for all releases.

* Releases must allow for at least two business days following the release (based on standard business operations of Monday - Friday). Thus, releases should only be made on Mondays, Tuesdays, or Wednesdays.
* Releases will not be completed during weeks of major US holidays, specifically New Years, Memorial Day, Independence Day, Labor Day, Thanksgiving Day, or Christmas.
* Best efforts shall be made to avoid other significant holidays in other countries.

## Release Notifications
You can utilize the "Watch" functionality within GitHub to receive notifications for new Release Candidates and Production Releases using the "Releases Only" notification option.
26 changes: 15 additions & 11 deletions .github/VERSIONING_POLICY.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,33 @@
# DNN Platform Versioning and Deprecation Policies
The DNN Platform follows a semantic versioning process for releases, in a manner to better communicate expectations of releases and their potential impacts to users of the platform.

##Semantic Versioning
## Semantic Versioning
The DNN Community adopted the current semantic version policy in July of 2018. Releases before this date may follow different standards.

### Major Releases (Ex 10.0.0)
A major release is as the name implies, a release with major changes. These changes might include new features, breaking changes, or other larger changes. Each major release will come with release notes that outline the nature of any known breaking changes.

Major releases are also the time that platform requirements might be changed, such as requiring a new edition of SQL Server or otherwise.
Major releases are also the time that platform requirements might be changed, such as requiring a new edition of SQL Server, .NET Framework, or otherwise.

### Minor Releases (Ex 10.1, 10.2, 10.x)
A minor might contain smaller new features and enhancements, but will not introduce any breaking API changes, nor will it change the requirements of the hosting environment or platform to run the application.
A minor release might contain smaller new features and enhancements, but will not introduce any known breaking API changes, nor will it change the requirements of the hosting environment or platform to run the application.

It is possible that minor breaking changes and Javascript library updates are included in minor releases.

### Revision Releases (Ex 10.1.1, 10.1.2, 10.1.x)
These releases are created primarily to contain hot-fix style improvements from prior releases. Any bugs or security issues identified, or missing UI/UX features from a Minor/Major release might be added to a revision release. Similar to a Minor release a Revision release will not contain any known breaking changes.
These releases are created primarily to contain hot-fix style improvements from prior releases. Any bugs or security issues identified, or missing UI/UX features from a Minor/Major release might be added to a revision release. Similar to a Minor release a Revision release will not contain any known breaking changes API.

## API Deprecation Policy (Updated September 2020)
The DNN Platform project is in a state of transition, continuing to modernize the API and remove existing technology debt. To this point, it will be necessary for the project to remove/restructuree many public API's. This will be done methodically, allowing developers to transition away from the older code with time to properly respond to change.

## API Deprecation Policy
The DNN Platform project is in a state of transition, continuing to modernize the API and work towards a transition to .NET Core. To this point, it will be necessary for the project to remove public API's. This will be done methodically, allowing developers to transition away from the older code with time to properly respond to change.
Any API method to be removed will be flagged as deprecated in a release, major, minor or revision, and will be identified to be removed by a specific version. This will be done using a C# annotation with a comment similar to the following "Deprecated in x.x.x. Scheduled for removal in vy.0.0, use ____ instead". The version number of "y" in this example must be 2 major versions ahead.
Therefore, an API marked as Deprecated in 9.2.1 can only be removed in version 11.0. Additionally, methods marked for removal in a version will GUARANTEED be removed in that revision.
Any API method to be removed will be flagged as deprecated in a release, major, minor or revision, and will be identified to be removed by a specific version. This will be done using a C# `[Obsolete]` attribute with a comment similar to the following "Deprecated in x.x.x. Scheduled for removal in vy.0.0, use ____ instead". The version number of "y" in this example must be 1 major versions ahead of the version in which the notice was added.

Therefore, an API marked as Deprecated in 9.2.1 can only be removed in version 10.0. Additionally, methods marked for removal in a version will GUARANTEED be removed in that revision.
> Example: [Obsolete("Deprecated in DotNetNuke 7.0. This function has been replaced by AddUserRole with additional params. Scheduled removal in v10.0.0.")]
### Testing Recommendations
It is suggested that all extension developers recompile their projects on the latest API versions on a regular basis to identify removed elements as the compiler warnings will be the primary communication method for these changes.

### Special DNN 10.x Cleanup
A number of legacy APIs have been marked as deprecated for more than 7 years and not yet removed. To continue to clean the API structure a final cleanup is being completed as part of the 10.x release. All of these API's are more than 2 major revisions older, however, have non-standard indicators for the Obsolete attribute. These will be removed in 10.x along with other expected removals.
Lastly, each Major release will contain release notes outlining every API method removed. More information can be found [in this blog post](https://www.dnnsoftware.com/community-blog/cid/156712/moving-forward-dnn-platform-100-growing-pains-lead-to-improvement)



4 changes: 4 additions & 0 deletions .github/mergeable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ mergeable:
no_empty:
enabled: true # Cannot be empty when true.
message: 'A milestone must be assigned to this pull request'
must_exclude:
regex: 'Future:'
regex_flag: 'none'
message: 'A milestone that does not contain `Future:` must be assigned to this pull request'
- do: label
begins_with:
match: 'Type:' # or array of strings
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,8 @@ DNN [Pp]latform/Syndication/[Bb]in/*
DNN [Pp]latform/[Cc]onnectors/*/[Bb]in/*
DNN [Pp]latform/[Pp]roviders/*/[Bb]in/*

DNN [Pp]latform/Modules/ResourceManager/**/scripts/*-bundle.*

# ignore all other language resx files
*.de-DE.resx
*.es-ES.resx
Expand All @@ -130,3 +132,5 @@ DNN [Pp]latform/[Pp]roviders/*/[Bb]in/*

# Add fips back
!DNN Platform/[Ww]ebsite/App_Data/FipsCompilanceAssemblies/Lucene.Net.dll

yarn-error.log
30 changes: 15 additions & 15 deletions Build/BuildScripts/AEModule.build
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project ToolsVersion="4.0" DefaultTargets="Build"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\packages\Yarn.MSBuild.1.13.0\build\Yarn.MSBuild.props" Condition="Exists('..\..\packages\Yarn.MSBuild.1.13.0\build\Yarn.MSBuild.props')" />
<Import Project="..\..\packages\Yarn.MSBuild.1.13.0\build\Yarn.MSBuild.targets" Condition="Exists('..\..\packages\Yarn.MSBuild.1.13.0\build\Yarn.MSBuild.targets')" />
<Import Project="..\..\packages\Yarn.MSBuild.1.16.0\build\Yarn.MSBuild.props" Condition="Exists('..\..\packages\Yarn.MSBuild.1.16.0\build\Yarn.MSBuild.props')" />
<Import Project="..\..\packages\Yarn.MSBuild.1.16.0\build\Yarn.MSBuild.targets" Condition="Exists('..\..\packages\Yarn.MSBuild.1.16.0\build\Yarn.MSBuild.targets')" />

<PropertyGroup>
<ResourceZipWorkingDirectory>$(MSBuildProjectDirectory)\Package\Resources\admin\personaBar</ResourceZipWorkingDirectory>
Expand All @@ -11,13 +11,13 @@
<Target Name="AfterBuild" DependsOnTargets="RunYarn;CopyBin;GetFiles;DebugProject;Package"></Target>
<Target Name="GetFiles">
<ItemGroup>
<PersonaBar-views Include="admin/**/*.html" />
<PersonaBar-images Include="admin/**/images/**/*" />
<PersonaBar-data Include="admin/**/data/*.resources" />
<PersonaBar-css Include="admin/**/css/**/*" />
<PersonaBar-resources Include="admin/**/App_LocalResources/*.resx" />
<PersonaBar-controls Include="admin/**/UserControls/*.ascx" />
<PersonaBar-scripts Include="admin/**/scripts/*;admin/**/scripts/**/*" />
<PersonaBar-views Include="admin/personaBar/**/*.html" />
<PersonaBar-images Include="admin/personaBar/**/images/**/*" />
<PersonaBar-data Include="admin/personaBar/**/data/*.resources" />
<PersonaBar-css Include="admin/personaBar/**/css/**/*" />
<PersonaBar-resources Include="admin/personaBar/**/App_LocalResources/*.resx" />
<PersonaBar-controls Include="admin/personaBar/**/UserControls/*.ascx" />
<PersonaBar-scripts Include="admin/personaBar/**/scripts/*;admin/personaBar/**/scripts/**/*" />
<Resources Include="@(PersonaBar-views);@(PersonaBar-images);@(PersonaBar-css);@(PersonaBar-scripts);@(PersonaBar-data);@(PersonaBar-resources);@(PersonaBar-controls)" Exclude="**/node_modules/**/*" />
</ItemGroup>
</Target>
Expand All @@ -27,12 +27,12 @@
<Copy SourceFiles="$(MSBuildProjectDirectory)\bin\$(AssemblyName).xml" DestinationFolder="$(WebsitePath)\bin" />
</Target>
<Target Name="DebugProject" Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<Copy SourceFiles="@(PersonaBar-views)" DestinationFolder="$(ModuleFolderName)" />
<Copy SourceFiles="@(PersonaBar-resources)" DestinationFolder="$(ModuleFolderName)\App_LocalResources" />
<Copy SourceFiles="@(PersonaBar-controls)" DestinationFolder="$(ModuleFolderName)\UserControls" />
<Copy SourceFiles="@(PersonaBar-images)" DestinationFolder="$(ModuleFolderName)\Images" />
<Copy SourceFiles="@(PersonaBar-scripts)" DestinationFolder="$(ModuleFolderName)\Scripts" />
<Copy SourceFiles="@(PersonaBar-css)" DestinationFolder="$(ModuleFolderName)\Css" />
<Copy SourceFiles="@(PersonaBar-views)" DestinationFolder="$(ModuleFolderName)\%(RecursiveDir)" />
<Copy SourceFiles="@(PersonaBar-resources)" DestinationFolder="$(ModuleFolderName)\%(RecursiveDir)" />
<Copy SourceFiles="@(PersonaBar-controls)" DestinationFolder="$(ModuleFolderName)\%(RecursiveDir)" />
<Copy SourceFiles="@(PersonaBar-images)" DestinationFolder="$(ModuleFolderName)\%(RecursiveDir)" />
<Copy SourceFiles="@(PersonaBar-scripts)" DestinationFolder="$(ModuleFolderName)\%(RecursiveDir)" />
<Copy SourceFiles="@(PersonaBar-css)" DestinationFolder="$(ModuleFolderName)\%(RecursiveDir)" />
</Target>
<Target Name="RunYarn" Condition="$(YarnWorkingDirectory.Length) > 0 AND '$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<ItemGroup>
Expand Down
1 change: 0 additions & 1 deletion Build/Cake/devsite.cake
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ Task("BuildToTempFolder")
.IsDependentOn("ResetDatabase")
.IsDependentOn("PreparePackaging")
.IsDependentOn("OtherPackages")
.IsDependentOn("ExternalExtensions")
.Does(() =>
{
});
Expand Down
Loading

0 comments on commit 6545748

Please sign in to comment.