Deprecate internal ECA-module

Created on 3 February 2025, 7 months ago

Problem/Motivation

In order to decouple the roadmaps of AI and ECA, I created a separate module: "ai_eca". It contains the same amount of operation types as Actions, but also the AI Agent that is capable of interacting with ECA models.

Which steps are required to remove the submodule?

✨ Feature request
Status

Active

Version

1.1

Component

Other Submodules

Created by

πŸ‡§πŸ‡ͺBelgium lammensj

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

  • Issue created by @lammensj
  • πŸ‡¬πŸ‡§United Kingdom MrDaleSmith

    What we did for the providers may be useful here: ai_update_10301() checks the various possibilities for whether the deprecated or replacement module exist and are enabled and reacts accordingly. Something similar would be useful for ai_eca as well as deprecating the module.

  • πŸ‡§πŸ‡ͺBelgium lammensj

    Aha, that's very useful, thank you!
    I'll take a look and create something similar.

  • πŸ‡§πŸ‡ͺBelgium lammensj

    It seems to be more complicated than the providers: I made the mistake of registering a contrib module with the same name as the submodule. When the submodule is enabled, and composer downloads the new one, Drupal automatically uses the contrib one, without uninstalling the original. This means you can't run hook_update from the submodule or hook_install from the contrib one.

    Perhaps it's easier if I register a new contrib module, something like "ai_integration_eca" and then apply the provided example...

  • πŸ‡©πŸ‡ͺGermany marcus_johansson

    I have tried to search for solutions for this as well this morning, but I can't find a good solution that doesn't require you rename it.

    You can't control the discovery as far as I could tell, like I think you could in Drupal 7 via system table.

    The only way I can think of to test is if we add the module as required module in composer.json and remove/rename the old module completely. But since ECA is a requirement for AI ECA, that would lead to a lot of dependencies being downloaded.

    With a renamed module we already have a proven upgrade path. It kind of sucks, to have to rename it, but I'm not sure if there is some other way around.

  • πŸ‡§πŸ‡ͺBelgium lammensj

    Yeah, no problem. I should have thought about that when I registered it in the first place... #facepalm

    I have some time tonight, I hope I get it done.

  • Pipeline finished with Success
    7 months ago
    Total: 214s
    #420302
  • πŸ‡§πŸ‡ͺBelgium lammensj

    @marcus_johansson, the PRs for the related modules are done. Let me know how you want to address this in terms of timing (when I should create new releases etc.).

  • πŸ‡©πŸ‡ͺGermany marcus_johansson

    @lammensj - I wrote some comments. Could you have a look, maybe its just NIT and not important or maybe I misunderstood something, but its good to get clarity. Could you also move the MR to point to 1.1.x-dev

    I think 1.1.0 would be released when this is ready, together with the suggested solutions for Structured Responses and Function Calling, since all of those are (none-breakign) architectural changes. Maybe as soon as next week.

  • Pipeline finished with Success
    4 months ago
    Total: 231s
    #493196
  • Status changed to Needs work 2 months ago
  • πŸ‡ΊπŸ‡ΈUnited States Kristen Pol Santa Cruz, CA, USA

    We are doing some issue management housekeeping and adding/removing components.

    We are removing the "Other Submodules" component and want people to categorize issues with the best module/submodule component.

    Moving this issue to "AI ECA".

    See πŸ“Œ Update AI module project components Active for more details.

  • πŸ‡ΊπŸ‡ΈUnited States Kristen Pol Santa Cruz, CA, USA

    Actually, task makes more sense

  • πŸ‡©πŸ‡ͺGermany marcus_johansson

    Target 1.2.x for this.

  • πŸ‡©πŸ‡ͺGermany jurgenhaas Gottmadingen
  • πŸ‡©πŸ‡ͺGermany jurgenhaas Gottmadingen

    The AI/ECA integration β†’ module is now ready to go with AI 1.2 and later. So, it's now time to finalize this issue as well by removing the deprecated code and finish the upgrade path.

    Before I get this done, I'd appreciate one confirmation: we keep the submodule as is in AI 1.1.x, and only remove it from 1.2 and later, right?

  • πŸ‡©πŸ‡ͺGermany marcus_johansson

    We have never actually done a depreciation notice for it yet, this issue was to prepare that.

    So I think we still need a stub module and a update hook for 1.2 release and then full removal in 2.0, unless there is some nice way of doing the upgrade in some other way?

    1.1.x we just keep as is.

  • πŸ‡©πŸ‡ͺGermany jurgenhaas Gottmadingen

    Thank you @marcus_johansson, this is great. I'll get the MR up-to-date following those guidelines.

  • πŸ‡©πŸ‡ͺGermany jurgenhaas Gottmadingen

    I've rebased the MR and then implemented the suggestions from the MR-review. What's left after merging this, is just the info and the install file, everything is gone as it then lives in the new module. From that point on, the submodule hangs around until AI 2.0 where it can then be removed entirely. From my point of view, we can go that far, as an upgrade path is available, so users won't lose anything by this process.

    As I'm not a maintainer here, I can't close the threads in the MR, so @marcus_johansson please close them if you're OK with them.

  • πŸ‡©πŸ‡ͺGermany jurgenhaas Gottmadingen

    Note: the failing phpunit test doesn't seem to be related to this MR.

  • πŸ‡©πŸ‡ͺGermany marcus_johansson

    Thanks you - tested on clean 10.5 and 11.2 environments and the upgrade process works well.

    I added a follow up issue for the test failure here πŸ› Figure out random failures of testTokenCount test Active . Seems like retriggering is working.

Production build 0.71.5 2024