Closed agriffard closed 3 years ago
We all know it always takes a long time between the moment we decide a Release and the actual Release itself. RC 2 was a good rehearsal to define the Release steps so lets make this 1.0 a great milestone.
Preliminary steps:
It is yet the best time to make changes that bring breaking changes. After the Release of 1.0, it will be a bit more difficult.
At some point, I think we will then have to "stop" merging new PRs (that are not necessary or fixing issues) until the release is done.
I know that we ask a lot from the core contributors and that reviewing others's PRs is a tough work and responsability. If your are not comfortable with the process, please ask for help on specific issues.
People are not always aware of all the time it requires to do all this tasks but you can be sure that is really appreciated and that is one of the most valuable contributions to the project.
Thank you everyone for your work.
Thanks @agriffard for starting this, regarding to me I can assist in the translations part, just few notes:
We can focus on the 1.0.0
issues
Avoid working on new features, because this happen always of course this will defer the release coz every new features needs a design, review ... etc, so let us focus on 1.0.0
issues
Could we assign the remaining issues for the core members - without pressure - and it is free for the community to pick one of those, I know most of us are busy, but we can do balancing here and let the dev picks the one who interested in, instead of wasting the time for other things, unless it's urgent
Try to look for the old PRs, there are 99 PRs at the time of writing this
Hope to hear the feedback from others, thanks
Is OC 1.0.0 targeting .NET 5?
Is OC 1.0.0 targeting .NET 5?
I think that makes sense.
I think we should ship a version on 3.1 because it's LTS (@Skrypt reminded us) and later another one with 5.0. Some users might care about relying on a dotnet version that will be supported for a long time.
I'm still learning Orchard Core but I would like to help with the development. Are there any issues for release 1 that would be good for someone new to start with? I saw 1 labeled "good first issue" but it looked like it was already being worked on.
I'm still learning Orchard Core but I would like to help with the development. Are there any issues for release 1 that would be good for someone new to start with? I saw 1 labeled "good first issue" but it looked like it was already being worked on.
Check the issues assigned to the 1.0 milestone: https://github.com/OrchardCMS/OrchardCore/issues?q=is%3Aopen+is%3Aissue+milestone%3A1.0
I'd like to see Audit Trail (https://github.com/OrchardCMS/OrchardCore/pull/6679) included, but that's on us :|.
I think version 1 should target netcore 3.1 because it has the LTS, .NET5 is not LTS.
It is mid December and we are waiting for release 1.0 to use in production, Is there any clue when will we receive or we can use the current master repo for production?
The current master branch is the latest released version, i.e. RC2, and it's suitable for production use. You can use the current dev branch in production as well, which is the most up to date, and this is what a lot of people are doing too.
@sheryever we are using orchard betas since multiple months in production and work stable. Upgrades have never been an issue
Migration release notes (to be included in any final document)
When migrating from RC2 to xxx please follow this procedure
App_Data/Logs
after resuming usage of the site, to ensure the success of these migrations.For more information here are the details of the migrations involved
User
to use a UserId
property.
Users
in the database. On existing Users
the UserName
will be used as the UserId
property. When new Users
are created, they will be assigned a generated UserId
property. The ContentItem.Owner
value will match either the existing UserName
or the generated UserId
value. The ContentItem.Author
property will update as content items are edited to the most recent UserName
of the editor that published the ContentItem
.Layers
feature to use the OrchardCore.Rules
feature.Menus
to use the ContentItem.DisplayText
property.@agriffard I think that covers it for the most part.
Before merging release/1.0, we'll rename the master branch to main: #8085
When do you plan to release the version 1.0.0 (a non-prerelease) of OrchardCore.Localization.Core?
thanks you @sebastienros for the release. There are breaking changes
Also more features set in the release.
I wonder if we need any migration step/tool for the upgrading from the RC2 to v1.0.0 ?. or just upgrading the package is good enough ? Currently, I'm using the RC2 for the production page, so I'm considering if there is any risk after the upgrading.
Doing the upgrading from RC2 to v1.0.0. Here are a few breaking change that would impact to the migrations.
1/ OrchardCore.OpenId.Core: Migration issue in UpdateFrom7Async when using Microsoft SQL Server (not sure with others)
Error: Invalid column name 'IsLockoutEnabled'.
/**
-- DROP THE EXISTING FOREIGN KEY ALTER TABLE [dbo].[OC_OpenIdApplicationIndex] DROP CONSTRAINT [OC_FK_OpenIdApplicationIndex] GO
-- ADD THE SAME 'KEY' NAME BACK IN AS A DUMMY CONSTRAINT ALTER TABLE [dbo].[OC_OpenIdApplicationIndex] ADD CONSTRAINT [OC_FK_OpenIdApplicationIndex] CHECK (DocumentId > 0) GO
/**
-- ADD THE SAME 'KEY' NAME BACK IN AS A DUMMY CONSTRAINT ALTER TABLE [dbo].[OC_OpenIdAppByRoleNameIndex_Document] ADD CONSTRAINT [OC_FK_OpenIdAppByRoleNameIndex_Document_DocumentId] CHECK (DocumentId > 0) GO
-- DROP THE EXISTING FOREIGN KEY ALTER TABLE [dbo].[OC_OpenIdAppByRoleNameIndex_Document] DROP CONSTRAINT [OC_FK_OpenIdAppByRoleNameIndex_Document_Id] GO
-- ADD THE SAME 'KEY' NAME BACK IN AS A DUMMY CONSTRAINT ALTER TABLE [dbo].[OC_OpenIdAppByRoleNameIndex_Document] ADD CONSTRAINT [OC_FK_OpenIdAppByRoleNameIndex_Document_Id] CHECK (DocumentId > 0) GO
**2. There are breaking changes in the sharp name, so that It would impact to the UI overriding.**
In my case:
- Contents_Button_Edit_SummaryAdmin.cshtml --(changed to)--> ContentsButtonEdit_SummaryAdmin.cshtml
- Contents_Button_Actions_SummaryAdmin.cshtml --(changed to)--> ContentsButtonActions_SummaryAdmin.cshtml
**3. Do not display Setup recipes in admin**
- RC: Display Setup recipes in admin
- v1.0.0: Do not Display Setup recipes in admin
- Ref: Setup recipes in admin: https://github.com/OrchardCMS/OrchardCore/pull/8417
**4. Base Admin theme: CSS identifiers are changed might impact to the CSS selector/overriding priorities**
- In v1.0.0 It introduce the dark theme. Which wrap the CSS selectors under `:root[data-theme='darkmode']` or `:root[data-theme='default']`
In my case, this more specific CSS selector cause some change in the CSS Specificity and impact to my CSS overriding rules .
So that I have to review all my custom CSS to override the theme again.
It also changes how users are fetched from the DB via UserManager<IUser>
6/ User name is now only accept contain letters or digits. In RC
In v1.0
See:
@hung-doan Can I ask you which version of SQL Server you are using? If it's under SQL Server 2016 these issues might happen because it doesn't support the syntax of the SQL queries we did. This is why we don't recommend using SQL Server < 2016.
@Skrypt I'm using : Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64) Sep 24 2019 13:48:23 Copyright (C) 2019 Microsoft Corporation Developer Edition (64-bit) on Windows 10 Pro 10.0
Database is imported from Azure SQL Database with Combability level "130 - in SQL Server 2016" I changed the Combability level to SQL Server 2019. I still get the same error.
One migration failed to execute and it seems to be one from the OrchardCore.Users module where it adds a UserId.
Basically you need to execute everything starting from this migration. To do so you can set the migration value in the database to "6" so that it re-execute them. Look at your logs afterward to see if any error happened and report it here.
To see the migrations you need to execute this SQL Query :
SELECT * FROM Document WHERE [Type] = 'OrchardCore.Data.Migration.Records.DataMigrationRecord, OrchardCore.Data'
Set the value of OrchardCore.Users.Migrations to 6 :
UPDATE Document SET Content = REPLACE(content, '{"DataMigrationClass":"OrchardCore.Users.Migrations","Version":12}', '{"DataMigrationClass":"OrchardCore.Users.Migrations","Version":6}')
WHERE [Type] = 'OrchardCore.Data.Migration.Records.DataMigrationRecord, OrchardCore.Data'
Backup your database first and restart Orchard Core so that it executes the migrations.
If it fails to create the Index tables because those already exists it might break the migrations to execute so you need to look at your logs to find what is blocking the migration from executing.
@Skrypt not sure it's the cause as my current migration version is just around 4
{"DataMigrationClass":"OrchardCore.Users.Migrations","Version":4}
All modules
{
"Id": 1,
"DataMigrations": [{
"DataMigrationClass": "OrchardCore.Deployment.Migrations",
"Version": 1
}, {
"DataMigrationClass": "OrchardCore.Liquid.Migrations",
"Version": 1
}, {
"DataMigrationClass": "OrchardCore.ContentManagement.Records.Migrations",
"Version": 5
}, {
"DataMigrationClass": "OrchardCore.Contents.Migrations",
"Version": 1
}, {
"DataMigrationClass": "OrchardCore.ContentFields.Migrations",
"Version": 2
}, {
"DataMigrationClass": "OrchardCore.Html.Migrations",
"Version": 5
}, {
"DataMigrationClass": "OrchardCore.Indexing.Migrations",
"Version": 1
}, {
"DataMigrationClass": "OrchardCore.Lists.Migrations",
"Version": 2
}, {
"DataMigrationClass": "OrchardCore.Markdown.Migrations",
"Version": 4
}, {
"DataMigrationClass": "OrchardCore.Media.Migrations",
"Version": 1
}, {
"DataMigrationClass": "OrchardCore.Title.Migrations",
"Version": 2
}, {
"DataMigrationClass": "OrchardCore.OpenId.YesSql.Migrations.OpenIdMigrations",
"Version": 3
}, {
"DataMigrationClass": "OrchardCore.Users.Migrations",
"Version": 4
}
]
}
In my app the exception came from OrchardCore.OpenId
.
2021-08-31 14:47:23.352 +07:00 [INF] Updating feature 'OrchardCore.Users'
2021-08-31 14:47:23.352 +07:00 [INF] Applying migration for 'OrchardCore.Users' from version 4.
2021-08-31 14:47:23.354 +07:00 [INF] Applying migration for 'OrchardCore.Users' from version 5.
2021-08-31 14:47:23.354 +07:00 [INF] Applying migration for 'OrchardCore.Users' from version 6.
2021-08-31 14:47:23.354 +07:00 [INF] Applying migration for 'OrchardCore.Users' from version 7.
2021-08-31 14:47:23.354 +07:00 [INF] Applying migration for 'OrchardCore.Users' from version 8.
2021-08-31 14:47:23.357 +07:00 [INF] Applying migration for 'OrchardCore.Users' from version 9.
2021-08-31 14:47:23.359 +07:00 [INF] Applying migration for 'OrchardCore.Users' from version 10.
2021-08-31 14:47:23.361 +07:00 [INF] Applying migration for 'OrchardCore.Users' from version 11.
2021-08-31 14:47:23.365 +07:00 [INF] Updating feature 'OrchardCore.Lists'
2021-08-31 14:47:23.365 +07:00 [INF] Updating feature 'OrchardCore.ContentTypes'
2021-08-31 14:47:23.365 +07:00 [INF] Applying migration for 'OrchardCore.Lists' from version 2.
2021-08-31 14:47:23.366 +07:00 [INF] Updating feature 'OrchardCore.OpenId'
2021-08-31 14:47:23.366 +07:00 [INF] Applying migration for 'OrchardCore.OpenId' from version 3.
2021-08-31 14:47:23.367 +07:00 [INF] Applying migration for 'OrchardCore.OpenId' from version 4.
2021-08-31 14:47:23.391 +07:00 [INF] Applying migration for 'OrchardCore.OpenId' from version 5.
2021-08-31 14:47:23.401 +07:00 [INF] Applying migration for 'OrchardCore.OpenId' from version 6.
2021-08-31 14:47:23.405 +07:00 [DBG] Creating described context for tenant 'Default'
2021-08-31 14:47:23.405 +07:00 [DBG] Composing blueprint
2021-08-31 14:47:23.468 +07:00 [DBG] Done composing blueprint
2021-08-31 14:47:23.600 +07:00 [INF] Applying migration for 'OrchardCore.OpenId' from version 7.
2021-08-31 14:47:52.150 +07:00 [ERR] Error while running migration version 7 for 'OrchardCore.OpenId'.
Microsoft.Data.SqlClient.SqlException (0x80131904): The DELETE statement conflicted with the REFERENCE constraint "OC_FK_OpenIdApplicationIndex". The conflict occurred in database "MyDb", table "dbo.OC_OpenIdApplicationIndex", column 'DocumentId'.
at Microsoft.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at Microsoft.Data.SqlClient.SqlDataReader.TryHasMoreRows(Boolean& moreRows)
at Microsoft.Data.SqlClient.SqlDataReader.TryHasMoreResults(Boolean& moreResults)
at Microsoft.Data.SqlClient.SqlDataReader.TryNextResult(Boolean& more)
at Microsoft.Data.SqlClient.SqlDataReader.NextResult()
at YesSql.Commands.CreateIndexCommand.<AddToBatch>b__6_0(DbDataReader dr)
at YesSql.Commands.BatchCommand.ExecuteAsync(DbConnection connection, DbTransaction transaction, ISqlDialect dialect, ILogger logger)
at YesSql.Session.FlushAsync()
at YesSql.Session.FlushAsync()
at OrchardCore.OpenId.YesSql.Migrations.OpenIdMigrations.UpdateFrom7Async()
at OrchardCore.Data.Migration.DataMigrationManager.UpdateAsync(String featureId)
ClientConnectionId:0de48100-af6a-41e0-a158-a1bcd331655a
Error Number:547,State:0,Class:16
2021-08-31 14:47:52.164 +07:00 [DBG] Testing Azure Media Storage container cms existence
2021-08-31 14:47:52.390 +07:00 [DBG] Azure Media Storage container cms created.
2021-08-31 14:47:54.523 +07:00 [ERR] An unhandled exception has occurred while executing the request.
Microsoft.Data.SqlClient.SqlException (0x80131904): Invalid column name 'UserId'.
Invalid column name 'IsLockoutEnabled'.
Invalid column name 'LockoutEndUtc'.
Invalid column name 'AccessFailedCount'.
Invalid column name 'UserId'.
Invalid column name 'IsLockoutEnabled'.
Invalid column name 'LockoutEndUtc'.
....
In my view, the errors are causes by this deletion https://github.com/OrchardCMS/OrchardCore/blob/e13cda97e036205ddb7c2fa1c655cc07385bbc2d/src/OrchardCore/OrchardCore.OpenId.Core/YesSql/Migrations/OpenIdMigrations.cs#L488-L496
The failure of this migration will prevents other migration to be executed and cause the error Invalid column name '****'
Prepare the project
Do some housekeeping on GitHub in the main repo.
Prepare the code
Update the source so everything looks like on the new version.
master
branch automation to use tags for deploymentdev
tomain
release/<version name>
branch out ofmain
. See #7236OrchardCore.ProjectTemplates
.OrchardCore.Commons.props
file: UpdateVersionPrefix
for release versions (like "1.0.0") andVersionSuffix
for pre-release versions (like "rc2", for the full version to be e.g. "1.0.0-rc2").ManifestConstants
.main
to deploy on NuGet.orgTest the release
Make sure everything works all right.
release/
are automatically published too). Test at least the following guides:Prepare and publish Orchard Core Translations
Update everything in the Translations project. Only do this once all the code changes are done since localized strings can change until then.
OrchardCore.Translations.All
package reference in the main repo's src/OrchardCore.Build/Dependencies.props file to refer to the new NuGet package.Prepare the documentation
Update the docs so they contain information about the new release so once the release is out you'll just need to point to new information.
changelog OrchardCMS OrchardCore <previous version> <current version>
command, e.g.changelog OrchardCMS OrchardCore 1.0.0-rc2 1.0.0
. Alternatively, you can use Antoine's app too.Publish the release
Do the harder parts of making the release public. This should come after everything above is done.
release/<version name>
tomaster
.master
need two approvals so you'll need to create a pull request.master
with the full version name, including the prefix and suffix (e.g. "1.0.0").Publicize the release
Let the whole world know about our shiny new release. Savor this part! These steps will make the release public so only do them once everything else is ready.
For details on this version see the [release notes in the documentation](link here).
). Add a link to this release under Status in the root README.