42
Views
2
Comments
How to solve platform upgrade v11.19.0 breaking change
Question
Platform Version
11.19.0 (Build 39069)

Hi

We need to upgrade our platform server (our instalation is on premise) and reading the breaking changes we found this one

Issue: In a Solution Publish, if a module references (directly or indirectly) multiple extensions and those extensions contain different versions of the same DLL, the Publish process chooses one of those DLLs to deploy. There was never a guarantee that the final application would work if those DLLs or their dependencies were incompatible with each other. In version 11.19.0, the algorithm that chooses the DLLs to deploy changed. It's possible that applications that were previously working, because the algorithm picked one DLL, stop working because it now picks another.

And the suggested solution is this one

Ensure the environment's extensions don’t have different incompatible versions of the same DLL. You can use the following query to identify multiple extensions that contain the same DLL. If you can see your extensions on this list, we recommend you consolidate the DLLs into a single extension or make sure they are all compatible. The query lists some OutSystems extensions, which are compatible between them. 

but this is a little bit confusing to us, what can be do to ensure that this breaking change is not going to impact in our factory ? Can anyone provide a way to do the consolidation OS is talking about ?


Thanks in advance

2023-01-19 12-23-07
Abhinav Shilwant

Hi @Francisco Alberto Donat Guijarro,

The breaking change in v11.19.0 stems from how the platform now selects DLLs during deployment. To prevent impact, start by running the provided query to identify extensions that reference different versions of the same DLL. Once identified, the best approach is to consolidate those DLLs into a single extension or verify that they are compatible across all extensions.

If consolidation is needed, you can either manually merge the extensions’ DLLs into one or modify the individual extensions to ensure they use the same version. It might help to collaborate with the extension maintainers or use dependency management tools to avoid future conflicts.

Testing the environment after changes will confirm if the fix is stable before production deployment.

Hope this helps!

2024-09-17 12-24-07
Rammurthy Naidu Boddu
Champion

Hi @Francisco Alberto Donat Guijarro

General Steps to Handle Breaking Changes:

  1. Review the Breaking Changes Documentation:

    • Before upgrading, review the release notes and breaking changes specific to version 11.19.0. You can find this information on the OutSystems Release Notes page.
    • Identify which changes might impact your applications.
  2. Test in a Non-Production Environment:

    • Always perform the upgrade on a non-production environment first. This allows you to test your applications and address issues without affecting your live systems.
  3. Analyze Impact on Your Applications:

    • Use the Lifetime environment to identify applications that might be affected by the breaking changes.
    • Run the Impact Analysis to see which modules are using deprecated features or APIs.
  4. Update Deprecated APIs or Components:

    • Replace deprecated APIs, methods, or components with the recommended alternatives. OutSystems usually provides guidance on what to use instead.
  5. Resolve Compilation Issues:

    • After upgrading, compile all your modules. Fix any compilation issues that arise, which might be due to changes in the platform or dependencies.
  6. Update Forge Components:

    • Update any Forge components in your environment to the latest versions compatible with 11.19.0. Older versions might not be compatible with the new platform version.
  7. Check and Re-test Integrations:

    • If your applications integrate with external systems or use extensions, make sure these integrations are still functioning as expected.
    • Test any REST/SOAP APIs or plugins for compatibility with the new version.

Specific Actions Based on Common Breaking Changes in 11.19.0:

  1. HTTP Strict Transport Security (HSTS) Enforced:

    • Issue: The platform now enforces HSTS, which could break non-secure HTTP integrations.
    • Solution: Ensure all integrations use HTTPS. Update any internal or external URLs in your applications to use secure connections.
  2. Session Timeout Changes:

    • Issue: Changes in session handling could cause issues with user sessions and logins.
    • Solution: Review and adjust session timeout settings in Service Center if needed. Update your login logic if necessary.
  3. Email Template Changes:

    • Issue: The way email templates are handled might have changed, affecting how dynamic content is rendered.
    • Solution: Review email templates and update them to match the new expected format. Test sending emails to ensure they are rendered correctly.
  4. Dependency Changes in Extensions:

    • Issue: Changes in the platform's API might break dependencies in extensions.
    • Solution: Recompile and, if necessary, update extensions to match the new platform APIs.
  5. Changes in JavaScript or CSS Handling:

    • Issue: Changes in how OutSystems handles client-side assets could impact custom JavaScript or CSS in your applications.
    • Solution: Test all screens with custom scripts or styles to ensure they still work as expected. Update any broken scripts or styles.
  6. New Security Restrictions:

    • Issue: Stricter security measures might prevent certain actions or API calls.
    • Solution: Review and adapt your application's security configurations. Ensure that any custom or third-party scripts adhere to the new security policies.

Post-Upgrade Checklist:

  1. Compile All Modules:

    • Use the 1-Click Publish for all applications in Service Center to ensure all modules are compiled and running on the new platform version.
  2. Regression Testing:

    • Perform thorough regression testing to ensure that all functionality works as expected. Pay special attention to critical workflows and custom components.
  3. Update Documentation:

    • Update any internal documentation to reflect changes due to the upgrade, especially if you've made significant changes to handle breaking changes.
  4. Monitor Logs and Performance:

    • After the upgrade, monitor the application logs and performance metrics to catch any unexpected issues early.
  5. Communicate with Stakeholders:

    • Inform all relevant stakeholders about the upgrade and any changes or new features available in the upgraded version.
Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.