Deprecate the use of drgullin/icheck

Created on 26 November 2024, 3 months ago

Problem/Motivation

This dependency hasn't been updated for over 4 years. It recently popped up here πŸ› dargullin/icheck is returning a 404 Active as not downloadable because the user changed his name without caring about the downstream chaos it would create.

Steps to reproduce

N/A

Proposed resolution

See if we can replace or drop the icheck plugin.

Remaining tasks

MR

User interface changes

N/A

API changes

?

Data model changes

?

πŸ“Œ Task
Status

Active

Version

6.3

Component

Code

Created by

πŸ‡§πŸ‡ͺBelgium BramDriesen Belgium πŸ‡§πŸ‡ͺ

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

Merge Requests

Comments & Activities

  • Issue created by @BramDriesen
  • πŸ‡ΊπŸ‡ΈUnited States kmonty San Francisco, CA

    +1 for this. Good reasons to do this:

    1. Stewardship: The maintainer doesn't appear to care about downstream impacts and security exploits that changing their username could create.
    2. Technical Debt: This is written in jQuery, which the Drupal ecosystem is trying to move away from.
    3. Maintenance: It hasn't received an update in more than 4 years. The "coming soon" v2 was promised 10 years ago and still hasn't been released.
    4. Criticality: This module only provides UI niceties--hardly mandatory for Webform itself--that largely do not require a JS library in the modern browser ecosystem.
  • πŸ‡§πŸ‡ͺBelgium BramDriesen Belgium πŸ‡§πŸ‡ͺ

    It seems self contained in it's own "webform_icheck" submodule. So we can add a deprecation message to remove it in "V6.4.X" like core does, and move the module to it's own contrib space for those few sites that would still need it. If then something blows up again, it's only in that separate module, and not the whole webform user base.

  • πŸ‡§πŸ‡ͺBelgium BramDriesen Belgium πŸ‡§πŸ‡ͺ
  • πŸ‡§πŸ‡ͺBelgium BramDriesen Belgium πŸ‡§πŸ‡ͺ
  • πŸ‡§πŸ‡ͺBelgium BramDriesen Belgium πŸ‡§πŸ‡ͺ
  • πŸ‡ΊπŸ‡ΈUnited States kmonty San Francisco, CA

    @bramdriesen It isn't self-contained. You can see it in the core Webform module's Composer libraries file https://git.drupalcode.org/project/webform/-/blob/6.3.x/composer.librari...

  • πŸ‡ΊπŸ‡ΈUnited States jrockowitz Brooklyn, NY

    If we move the webform_icheck module into its own project, the composer package will become webform_icheck-webform_icheck because all webform sub-modules are exposed as dedicated composer packages. I think the DA can fix this problem.

    Here is an example of a sub-module moving into its project and getting the double namespace.
    https://www.drupal.org/project/schemadotorg_next/releases/1.0.0-alpha16 β†’

    Below are all the projects that have been deprecated for at least two years.

    • Webform Algolia Places
    • Webform iCheck
    • Webform jQueryUI Buttons
    • Webform jQueryUI Datepicker
    • Webform Location Geocomplete
    • Webform Toggles

    My thought and recommendation is to move all of the sub-modules in the webform_deprecated project (and let them die a slow death).

    Having a single project to deal with deprecated sub-modules will be easier to maintain.

    I am unsure if we should move the Webform jQuery UI sub-modules because I suspect many sites are still using the datepicker.

  • πŸ‡§πŸ‡ͺBelgium BramDriesen Belgium πŸ‡§πŸ‡ͺ
  • πŸ‡¨πŸ‡¦Canada Liam Morland Ontario, CA πŸ‡¨πŸ‡¦

    The advantage to making a separate project for each module is that is allows the users of that module to work on maintaining it together or not, if there is not enough community interest.

    It could be helpful to move to their own projects most Webform modules that exist only to make an external library work with Webform. This allows Webform it self to not need to worry about maintaining a dependency on a library that only a subset use.

  • Pipeline finished with Success
    3 months ago
    Total: 419s
    #356712
  • Pipeline finished with Success
    3 months ago
    Total: 434s
    #356724
  • Pipeline finished with Failed
    3 months ago
    Total: 383s
    #356742
  • Pipeline finished with Failed
    3 months ago
    Total: 388s
    #356753
  • Pipeline finished with Success
    3 months ago
    Total: 835s
    #356781
  • πŸ‡§πŸ‡ͺBelgium BramDriesen Belgium πŸ‡§πŸ‡ͺ

    I moved:

    • Webform Algolia Places
    • Webform iCheck
    • Webform Location Geocomplete
    • Webform Toggles

    Into contrib space: https://www.drupal.org/project/webform_deprecated β†’ and added jrockowitz as maintainer (feel free to remove me after this issue is closed).

    webform_deprecated is a module on it's own because of a bartik CSS tweak and to set a requirement on Webform.

    A few observations that @jrockowitz probably can best decide over:

    1. I removed a few tests checks from: tests/src/Functional/Element/WebformElementPluginDefinitionsTest.php, tests/src/Functional/Element/WebformElementPluginPropertiesTest.php and tests/src/Functional/WebformLibrariesTest.php Which I did not add to the new deprecated module. Which, imo is fine but not to decide :-).
    2. There is a little bit of leftover code in webform_ui\Form\WebformUiElementTypeFormBase::buildElementPreview line 425 and webform\Plugin\WebformElement\OptionsBase::prepare line 158 in regards to webform_toggles. Not sure what to do with that and if it could/should be moved into the webform_deprecated module somehow.
  • πŸ‡§πŸ‡ͺBelgium BramDriesen Belgium πŸ‡§πŸ‡ͺ

    I did not touch the jQuery UI modules by the way.

  • πŸ‡ΊπŸ‡ΈUnited States jrockowitz Brooklyn, NY

    The advantage to making a separate project for each module is that is allows the users of that module to work on maintaining it together or not, if there is not enough community interest.

    I think the problem is there is no interest in maintaining these projects. At any time someone can opt to move a project from the webform_deprecated project into a dedicated project.

  • Pipeline finished with Success
    3 months ago
    Total: 381s
    #356815
  • πŸ‡ΊπŸ‡ΈUnited States jrockowitz Brooklyn, NY

    I am cool with moving these 4 deprecated modules. Is everyone okay with approach, knowing we can move these modules into dedicated projects if needed.

  • πŸ‡ΊπŸ‡ΈUnited States jrockowitz Brooklyn, NY

    Moving this to Critical because it will block the beta and stable release of Webform 6.3.x

  • πŸ‡§πŸ‡ͺBelgium BramDriesen Belgium πŸ‡§πŸ‡ͺ

    I'm fine with #15 since the libraries themself are usually abandoned/deprecated, I really see no need to move them separately into a contrib.

  • πŸ‡ΊπŸ‡ΈUnited States jrockowitz Brooklyn, NY

    Should we also deprecate the webform_shortcuts module?

    The https://github.com/jeresig/jquery.hotkeys has not been updated in 10 years

  • πŸ‡¨πŸ‡¦Canada Liam Morland Ontario, CA πŸ‡¨πŸ‡¦

    That sound reasonable.

  • πŸ‡ΊπŸ‡ΈUnited States jrockowitz Brooklyn, NY

    Done!

  • πŸ‡¨πŸ‡¦Canada Liam Morland Ontario, CA πŸ‡¨πŸ‡¦

    We'll need to make sure the release notes are clear that anyone using certain Webform sub-modules will need to add webform_deprecated to Composer before upgrading.

  • πŸ‡ΊπŸ‡ΈUnited States jrockowitz Brooklyn, NY

    Should we merge this and tag a new alpha release?

  • πŸ‡§πŸ‡ͺBelgium BramDriesen Belgium πŸ‡§πŸ‡ͺ

    I think that makes sense :)

  • πŸ‡¨πŸ‡¦Canada Liam Morland Ontario, CA πŸ‡¨πŸ‡¦

    Tests are not currently passing on this merge request. Once they are passing, I agree with merging and tagging a new alpha.

  • Pipeline finished with Failed
    2 months ago
    Total: 173975s
    #375127
  • Pipeline finished with Failed
    about 1 month ago
    Total: 960s
    #399161
  • Pipeline finished with Failed
    about 1 month ago
    Total: 955s
    #401742
  • Pipeline finished with Failed
    about 1 month ago
    Total: 379s
    #403933
  • Pipeline finished with Success
    about 1 month ago
    Total: 966s
    #403937
  • Pipeline finished with Canceled
    about 1 month ago
    Total: 944s
    #404932
  • Pipeline finished with Success
    about 1 month ago
    Total: 838s
    #404943
  • Pipeline finished with Success
    27 days ago
    Total: 912s
    #408300
  • Pipeline finished with Success
    27 days ago
    Total: 909s
    #408366
Production build 0.71.5 2024