Openbravo Issue Tracking System - Openbravo ERP
View Issue Details
0051068Openbravo ERPA. Platformpublic2022-12-05 14:592022-12-21 08:23
shuehner 
shuehner 
normalmajorhave not tried
closedfixed 
5
 
PR23Q1PR23Q1 
Core
No
0051068: Block direct upgrades from version older than 16Q1 to latest version
Direct upgrades from very old version require to keep extra code around just for that purpose.
Blocking possibility to block direct updates allows to cleanup that code.

This issue adds a buildvalidation to refuse updating if the old version is older than 16Q1.
Effect is that direct upgrades to the version which includes this issue (23Q1) are not possible and instead an error message is shown.

This indirectly also blocks (direct) migration from old 2.50 major release. However 2.50 migration typically include running the APRM migration tool which is no longer possible since the 18Q4 release. So this change here does not add any extra restriction for 2.50 migrations.

Instances which should be affected by this change can still upgrade but need to go via some intermediate version.

Example:
- First upgrade to a at most 22Q4 release
- Then 2nd upgrade to move ahead to the latest version
-
Add build-validation running if old version is < 16Q4 which shows an error message explaining that direct upgrades are no longer possible (but going via intermediate version is still an option)
Message shown is via wiki link:
http://wiki.openbravo.com/wiki/RestrictOldDirectUpdates [^]
No tags attached.
blocks defect 0051069 closed shuehner Openbravo ERP Cleanup (delete) all buildvalidations only required for updates from <16Q1 
blocks defect 0051070 closed shuehner Retail Modules Review and probably remove obsolete buildvalidation DuplicatedPosTerminalPaymentType 
blocks defect 0051071 closed shuehner Retail Modules Cleanup (delete) all modulescript not running on install and only required for updates from <16Q1 
blocks defect 0051073 closed shuehner Openbravo ERP Delete obsolete code from prescript-* from before 2.50MP4 
blocks defect 0051152 closed shuehner Openbravo ERP Review and remove modulescripts only required for updates from <16Q1 - platform 
blocks defect 0051153 closed shuehner Openbravo ERP Review and remove modulescripts only required for updates from <16Q1 - omni 
blocks defect 0053029 closed shuehner Openbravo ERP Review and remove modulescripts only required for updates from <16Q1 - omni - part2 
blocks defect 0053170 closed shuehner Openbravo ERP Review and remove modulescripts only required for updates from <16Q1 - omni - part3 
Issue History
2022-12-05 14:59shuehnerNew Issue
2022-12-05 14:59shuehnerAssigned To => Triage Platform Base
2022-12-05 14:59shuehnerModules => Core
2022-12-05 14:59shuehnerTriggers an Emergency Pack => No
2022-12-05 14:59shuehnerIssue generated from0048466
2022-12-05 14:59shuehnerAssigned ToTriage Platform Base => shuehner
2022-12-05 15:05shuehnerRelationship addedblocks 0051069
2022-12-05 15:59shuehnerRelationship addedblocks 0051070
2022-12-05 16:38shuehnerRelationship addedblocks 0051071
2022-12-05 17:13hgbotNote Added: 0144425
2022-12-05 17:22shuehnerRelationship addedblocks 0051073
2022-12-09 11:49shuehnerNote Added: 0144493
2022-12-13 14:37shuehnerTarget Version => PR23Q1
2022-12-13 14:39shuehnerProposed Solution updated
2022-12-14 09:45hgbotResolutionopen => fixed
2022-12-14 09:45hgbotStatusnew => closed
2022-12-14 09:45hgbotNote Added: 0144636
2022-12-14 09:45hgbotFixed in Version => PR23Q1
2022-12-14 09:45hgbotNote Added: 0144637
2022-12-14 10:29hgbotNote Added: 0144655
2022-12-14 13:29shuehnerRelationship addedblocks 0051152
2022-12-15 11:26shuehnerRelationship addedblocks 0051153
2022-12-21 08:23hgbotNote Added: 0144857
2023-07-21 16:14shuehnerRelationship addedblocks 0053029
2023-08-06 13:32shuehnerRelationship addedblocks 0053170

Notes
(0144425)
hgbot   
2022-12-05 17:13   
Merge Request created: https://gitlab.com/openbravo/product/openbravo/-/merge_requests/779 [^]
(0144493)
shuehner   
2022-12-09 11:49   
Testplan:
1.) Test upgrade from version older than 16Q1
1.a) Install 15Q4.6
git checkout 3.0PR15Q4.6
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
# Note: can be done with pg10 (works good enough for our purpose)
ant setup
ant install.source
1.b) Switch to git master containing this change
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/
ant buildvalidation
1.c) Verify expected behavior:
- Error message is shown about updates not being possible
- This buildvalidation is run first as is blocking the process

2.) Test upgrade from version 16Q1
2.a) Install 16Q1
git checkout 3.0PR16Q1
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
# Note: can be done with pg10 (works good enough for our purpose)
ant setup
ant install.source
1.b) Switch to git master containing this change
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/
ant buildvalidation
1.c) Expected: Error message is not shown
(0144636)
hgbot   
2022-12-14 09:45   
Merge request merged: https://gitlab.com/openbravo/product/openbravo/-/merge_requests/779 [^]
(0144637)
hgbot   
2022-12-14 09:45   
Directly closing issue as related merge request is already approved.

Repository: https://gitlab.com/openbravo/product/openbravo [^]
Changeset: fa4f6bb422d544dd22fe1bddfe9ac8f3a083bdb4
Author: Stefan Huehner <stefan.huehner@openbravo.com>
Date: 14-12-2022 08:45:08
URL: https://gitlab.com/openbravo/product/openbravo/-/commit/fa4f6bb422d544dd22fe1bddfe9ac8f3a083bdb4 [^]

Fixes ISSUE-51068: Block update from version older than 16Q1

Block updates coming from versions older than 16Q1 by adding a
buildvalidation to detect those cases and error out with a message.

Buildvalidation has an ExecutionLimit of 3.0.28207 which is exactly
16Q1.
ExecutionLimits are checked with < comparison which gives the wanted
behavior:
- Validation is running if old version is <16Q1
- But no longer running if it is already 16Q1 (or higher)

Additionally modify BuildValidationHandler declaring that this new check
should be run first before other validation:
- Conceptually makes sense to raise this first (before any data
  checks)
- Technically needed as in some (ratr) cases other buildvalidations
  already modify data (related to the upgrade process)
  i.e. RemoveCostingRuleProcessExecutions
  So check and block the update process as first step.
- ant target buildvalidation depends on core.lib which ensures the
  modified handler to be compiled before this new check is ran.

The buildvalidation committed .class file is compiled for Java11 with is
min version supported right now. For the upgrade process that is
already required anyway as i.e.:
- build.xml blocks version < Java 11 already
- dbsourcemanager.jar is also compiled for Java11
So that does not introduce any new restriction for those upgrades.

Wiki page is added with info for affected users and a table of added
restrictions (in case more come in future):
http://wiki.openbravo.com/wiki/RestrictOldDirectUpdates [^]

---
A src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/RestrictOldDirectUpdates.class
A src-util/buildvalidation/src/org/openbravo/buildvalidation/RestrictOldDirectUpdates.java
M src-core/src/org/openbravo/buildvalidation/BuildValidationHandler.java
---
(0144655)
hgbot   
2022-12-14 10:29   
Repository: https://gitlab.com/openbravo/product/openbravo [^]
Changeset: a48a6d97644629340031d6ab80a58145e9db424e
Author: Stefan Huehner <stefan.huehner@openbravo.com>
Date: 14-12-2022 09:29:47
URL: https://gitlab.com/openbravo/product/openbravo/-/commit/a48a6d97644629340031d6ab80a58145e9db424e [^]

Related to ISSUE-51069: Delete obsolete buildvalidations from <16Q1

ISSUE-51068 blocks direct updates from before 3.0 16Q1
That allows to delete any buildvalidation with an EndVersion <=16Q1 as
they will never trigger.

---
R modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/buildvalidation/TransactionsWithMissingData.class
R modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/buildvalidation/TransactionsWithMissingDataData.class
R modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/buildvalidation/UniquePaymentForTransaction.class
R modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/buildvalidation/UniquePaymentForTransactionData.class
R modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/buildvalidation/UnpostRefundPayments.class
R modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/buildvalidation/UnpostRefundPaymentsData.class
R modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/buildvalidation/WrongPaymentScheduleDetailsCheck.class
R modules/org.openbravo.advpaymentmngt/build/classes/org/openbravo/advpaymentmngt/buildvalidation/WrongPaymentScheduleDetailsCheckData.class
R modules/org.openbravo.advpaymentmngt/src-util/buildvalidation/src/org/openbravo/advpaymentmngt/buildvalidation/TransactionsWithMissingData.java
R modules/org.openbravo.advpaymentmngt/src-util/buildvalidation/src/org/openbravo/advpaymentmngt/buildvalidation/TransactionsWithMissingData_data.xsql
R modules/org.openbravo.advpaymentmngt/src-util/buildvalidation/src/org/openbravo/advpaymentmngt/buildvalidation/UniquePaymentForTransaction.java
R modules/org.openbravo.advpaymentmngt/src-util/buildvalidation/src/org/openbravo/advpaymentmngt/buildvalidation/UniquePaymentForTransaction_data.xsql
R modules/org.openbravo.advpaymentmngt/src-util/buildvalidation/src/org/openbravo/advpaymentmngt/buildvalidation/UnpostRefundPayments.java
R modules/org.openbravo.advpaymentmngt/src-util/buildvalidation/src/org/openbravo/advpaymentmngt/buildvalidation/UnpostRefundPayments_data.xsql
R modules/org.openbravo.advpaymentmngt/src-util/buildvalidation/src/org/openbravo/advpaymentmngt/buildvalidation/WrongPaymentScheduleDetailsCheck.java
R modules/org.openbravo.advpaymentmngt/src-util/buildvalidation/src/org/openbravo/advpaymentmngt/buildvalidation/WrongPaymentScheduleDetailsCheck_data.xsql
R modules/org.openbravo.advpaymentmngt/src-util/buildvalidation/src/src/org/openbravo/advpaymentmngt/buildvalidation/TransactionsWithMissingDataData.java
R modules/org.openbravo.advpaymentmngt/src-util/buildvalidation/src/src/org/openbravo/advpaymentmngt/buildvalidation/UniquePaymentForTransactionData.java
R modules/org.openbravo.advpaymentmngt/src-util/buildvalidation/src/src/org/openbravo/advpaymentmngt/buildvalidation/UnpostRefundPaymentsData.java
R modules/org.openbravo.advpaymentmngt/src-util/buildvalidation/src/src/org/openbravo/advpaymentmngt/buildvalidation/WrongPaymentScheduleDetailsCheckData.java
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/AccountingTabs.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/AccountingTabsData.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/CheckUpdateConnectionPoolMerge.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/DuplicateDocExchangeRate.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/DuplicateDocExchangeRateData.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/DuplicatedJavaPackage.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/DuplicatedJavaPackageData.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/DuplicatedOrgWarehouse.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/DuplicatedOrgWarehouseData.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/DuplicatedPriceListVersion.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/DuplicatedPriceListVersionData.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/GLJournalAccountingCheck.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/GLJournalAccountingCheckData.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/PaymentGLItemCheck.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/PaymentGLItemCheckData.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/PreferenceConflict.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/PreferenceConflictData.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/RemoveCostingRuleProcessExecutions.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/RemoveCostingRuleProcessExecutionsData.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/User1Ready.class
R src-util/buildvalidation/build/classes/org/openbravo/buildvalidation/User1ReadyData.class
R src-util/buildvalidation/build/javasqlc/src/org/openbravo/buildvalidation/DuplicatedOrgWarehouseData.java
R src-util/buildvalidation/src/org/openbravo/buildvalidation/AccountingTabs.java
R src-util/buildvalidation/src/org/openbravo/buildvalidation/AccountingTabs_data.xsql
R src-util/buildvalidation/src/org/openbravo/buildvalidation/CheckUpdateConnectionPoolMerge.java
R src-util/buildvalidation/src/org/openbravo/buildvalidation/DuplicateDocExchangeRate.java
R src-util/buildvalidation/src/org/openbravo/buildvalidation/DuplicateDocExchangeRate_data.xsql
R src-util/buildvalidation/src/org/openbravo/buildvalidation/DuplicatedJavaPackage.java
R src-util/buildvalidation/src/org/openbravo/buildvalidation/DuplicatedJavaPackage_data.xsql
R src-util/buildvalidation/src/org/openbravo/buildvalidation/DuplicatedOrgWarehouse.java
R src-util/buildvalidation/src/org/openbravo/buildvalidation/DuplicatedOrgWarehouse_data.xsql
R src-util/buildvalidation/src/org/openbravo/buildvalidation/DuplicatedPriceListVersion.java
R src-util/buildvalidation/src/org/openbravo/buildvalidation/DuplicatedPriceListVersion_data.xsql
R src-util/buildvalidation/src/org/openbravo/buildvalidation/GLJournalAccountingCheck.java
R src-util/buildvalidation/src/org/openbravo/buildvalidation/GLJournalAccountingCheck_data.xsql
R src-util/buildvalidation/src/org/openbravo/buildvalidation/PaymentGLItemCheck.java
R src-util/buildvalidation/src/org/openbravo/buildvalidation/PaymentGLItemCheck_data.xsql
R src-util/buildvalidation/src/org/openbravo/buildvalidation/PreferenceConflict.java
R src-util/buildvalidation/src/org/openbravo/buildvalidation/PreferenceConflict_data.xsql
R src-util/buildvalidation/src/org/openbravo/buildvalidation/RemoveCostingRuleProcessExecutions.java
R src-util/buildvalidation/src/org/openbravo/buildvalidation/RemoveCostingRuleProcessExecutions_data.xsql
R src-util/buildvalidation/src/org/openbravo/buildvalidation/User1Ready.java
R src-util/buildvalidation/src/org/openbravo/buildvalidation/User1Ready_data.xsql
---
(0144857)
hgbot   
2022-12-21 08:23   
Repository: https://gitlab.com/openbravo/product/openbravo [^]
Changeset: 9bffaae704fce4c0b5e8d5967a8524180bcd491d
Author: Stefan Huehner <stefan.huehner@openbravo.com>
Date: 21-12-2022 07:23:31
URL: https://gitlab.com/openbravo/product/openbravo/-/commit/9bffaae704fce4c0b5e8d5967a8524180bcd491d [^]

fixed ISSUE-51152: Delete obsolete modulescripts

These scripts only ran on updates before MP16
ISSUE-51068 blocks updates from <16Q1 causing it to never run on
updates anymore.

---
R src-util/modulescript/build/classes/org/openbravo/modulescript/ConvertImages.class
R src-util/modulescript/build/classes/org/openbravo/modulescript/DeleteRedundantTranslations.class
R src-util/modulescript/build/classes/org/openbravo/modulescript/DeleteRedundantTranslationsData.class
R src-util/modulescript/build/classes/org/openbravo/modulescript/InitializeAlertStatus.class
R src-util/modulescript/build/classes/org/openbravo/modulescript/InitializeAlertStatusData.class
R src-util/modulescript/build/classes/org/openbravo/modulescript/PgJdbcDatesIssue.class
R src-util/modulescript/build/classes/org/openbravo/modulescript/PgJdbcDatesIssueData.class
R src-util/modulescript/build/classes/org/openbravo/modulescript/UpdateEmailPasswords.class
R src-util/modulescript/build/classes/org/openbravo/modulescript/UpdateEmailPasswordsData.class
R src-util/modulescript/build/classes/org/openbravo/modulescript/UpgradeToPocEmail.class
R src-util/modulescript/build/classes/org/openbravo/modulescript/UpgradeToPocEmailData.class
R src-util/modulescript/src/org/openbravo/modulescript/ConvertImages.java
R src-util/modulescript/src/org/openbravo/modulescript/DeleteRedundantTranslations.java
R src-util/modulescript/src/org/openbravo/modulescript/DeleteRedundantTranslations_data.xsql
R src-util/modulescript/src/org/openbravo/modulescript/InitializeAlertStatus.java
R src-util/modulescript/src/org/openbravo/modulescript/InitializeAlertStatus_data.xsql
R src-util/modulescript/src/org/openbravo/modulescript/PgJdbcDatesIssue.java
R src-util/modulescript/src/org/openbravo/modulescript/PgJdbcDatesIssue_data.xsql
R src-util/modulescript/src/org/openbravo/modulescript/UpdateEmailPasswords.java
R src-util/modulescript/src/org/openbravo/modulescript/UpdateEmailPasswords_Data.xsql
R src-util/modulescript/src/org/openbravo/modulescript/UpgradeToPocEmail.java
R src-util/modulescript/src/org/openbravo/modulescript/UpgradeToPocEmail_Data.xsql
---