[policy] Document development dependencies

Created on 1 October 2019, about 5 years ago
Updated 18 September 2024, 3 months ago

Problem/Motivation

Drupal has documentation on maintainership, security policies and release and support cycles of its dependencies . However, development dependencies are largely missing on that documentation.

Since this issue was created much of the dependency information is in composer meta data but not all.

Proposed resolution

Change the current text

Issue contributors should update either Current JavaScript dependencies or Current PHP dependencies when a dependency is added or when one is removed.

To

Dependency information links

It is important to know information such as who to contact in a dependency project, it's release cycle and how to file an issue for the dependency. This type information may be provided by the package meta data but not always. So, we keep track of that in the Current JavaScript dependencies and Current PHP dependencies for some dependencies.

The dependencies that this extra information is kept for are those that have a large security or API surface. Others may be added at the discretion of the release managers.

There are three times when the page is altered for a dependency. They are when it is added, when it is deprecated and when it is removed.

  • When a dependency is added, add a new listing
  • When a dependency is deprecated, update the listing to include that it is to be remove in the next major version.
  • When the last Drupal version to require it reaches End of Life (EOL), remove the listing.

The dependency information pages can be updated at any time.

On the Javascript dependency page
Only keep: CKEditor, jQuery, jQuery UI

On the PHP dependency page
Only keep: Symfony, Twig, Autoupdates(TBD)

new tag

dependency evaluation - For issue that include dependency evaluation and contact information.

Use of the new tag is added to Criteria for adding dependencies

Add link to issues with the new tag on the policy page

Remaining tasks

Discuss the future of these pages
Are they still needed?
What dependencies (dev and production) should be listed and why?
Add a new tag to find issue with the dependency information for dependencies that are not maintained on these pages.

Update documentation as required

User interface changes

API changes

Data model changes

Release notes snippet

📌 Task
Status

Needs review

Version

11.0 🔥

Component
Documentation 

Last updated 1 day ago

No maintainer
Created by

🇫🇮Finland lauriii Finland

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

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

  • 🇳🇿New Zealand quietone

    Discussed this with xjm and the short answer is that these pages needs a rethink.

    These were created when there were fewer dependencies and predate composer and yarn. We have more dependencies now and it is no longer sustainable to list every one. So, there needs to be discussion on what, if any, of these need to be recorded here. Keeping in mind that the purpose of the page is to provide contacts for our major dependencies.

    xjm pointed out that the composer meta data provides some of the information, although not all projects define it. "And things like the release cycle info or our known community contacts for a specific project are definitely not in the composer metadata.", from xjm.

    I am changing this to a policy to discuss this further. Still needs a better title but perhaps later.

  • Status changed to Needs review 3 months ago
  • 🇬🇧United Kingdom catch

    If we look at core/composer.json these are the PHP dependencies that aren't 'symfony, twig':

    doctrine
    guzzle
    egulias/email-validator
    masterminds/html5
    composer
    asm89/stack-cors
    mck89/peast
    sebastian/diff

    Of these, none of them have the same security or API surface as symfony or twig (or ckeditor5), which is the main reason to have active upstream contacts.

    doctrine, masterminds/html5 will probably not be dependencies in a release cycle or two.

    guzzle, composer, peast, diff, html5 are all single purpose libraries that most developers won't interact with directly.

    So, I don't think we would really get anything from adding them to the documentation page, but also I'm not sure I could come up with a one sentence summary of what makes them different.

  • 🇳🇿New Zealand quietone

    @catch, thanks!

    I updated the proposed text.

  • 🇺🇸United States xjm
    • jQuery and jQuery UI should be on the list for sure; we are very dependent on their release cycles and we have contacts with their maintainers.
    • We also will need detailed sections about the various Autoupdates PHP components.

    I'll have a think about others that should be on the list too for release management and security stuff.

    Thanks for filing this; it should make the page a lot more maintainable to focus only on the key dependencies.

    Two other things:

    1. We should establish a best practice for which dependencies have their versions listed. I believe the list still has dependencies that were removed in D10. I think we should:
      • Add a note on the page if the dependency is to be removed in the next major version.
      • Remove listings when the last version to require them goes EOL.
    2. Maybe we should instead have a way of tracking dependency evaluation issues (new issue tag?), and those issues should be expanded to include the contact details etc. That way we could get the info at need for less-important dependencies, rather than having to maintain the information in a second place. There could be a link to these issues at the top or bottom of the doc.
  • 🇳🇿New Zealand quietone

    Maybe the tag should be very specific, "core approved dependency evaluation"

  • 🇳🇿New Zealand quietone

    Rather, "approved dependency evaluation"

  • 🇳🇿New Zealand quietone

    I completed the following

    Anything to change on the PHP and Javascript dependency pages can happen on an ongoing basis, it doesn't need this issue to remain open.

  • 🇬🇧United Kingdom catch

    Yes that sounds good to me, I think we can mark this fixed, tweaks to pages can then happen based on the policy.

  • 🇺🇸United States smustgrave

    Only moving to RTBC based on @catch comment in #19.

  • 🇳🇿New Zealand quietone

    I updated the policy doc to include the new tag and adding a link for searching with the tag. Also added the tag to the Fixed issue 📌 Add revoltphp/event-loop dependency to core Active .

  • 🇦🇺Australia larowlan 🇦🇺🏝.au GMT+10

    On the basis of #19 we can mark this fixed and any new dependencies/updates can be handled on a case by case basis.

  • Automatically closed - issue fixed for 2 weeks with no activity.

Production build 0.71.5 2024