Giter Site home page Giter Site logo

Comments (5)

juampynr avatar juampynr commented on May 25, 2024

We have seen cases where we may want to change the mink extension or the composer patches version. Having them in the Dockerfile makes it harder to test changing them.

I think that it is better to have these libraries getting installed as dev dependencies with the installer so they can be tweaked if needed and tested on pull requests.

Thoughts, @deviantintegral, @q0rban?

from drupal9ci.

deviantintegral avatar deviantintegral commented on May 25, 2024

Yeah, we actually used to do everything in the dockerfile back in an earlier, internal revision, and it made per-project configuration much harder. Also, it means that running tests outside of the docker containers is harder, because you don't know what dependencies you need.

Did you see this line in the Dockerfile for drupal_tests? It helps speed up builds by preseeding the Composer cache with the likely-shared dependencies, while still allowing composer.json to control the final dependencies. - Of course you did, it's what you linked to 🤦‍♂️

from drupal9ci.

dakkusingh avatar dakkusingh commented on May 25, 2024

@juampynr & @deviantintegral thank you again for your thoughts. I am getting to learn the inner workings :)

I think in the case of drupal8ci it perhaps makes sense to have the dependencies in the project composer.json. As this keep all project dependencies in the same scope.

@deviantintegral for drupal_tests, I am am not sure if we should have a module specific composer.json with its own (module level) dependencies. I could be wrong.

Say I am testing a project which requires a module (and module also has its composer dependencies), and these module level dependencies are either different from other modules or from the project. How does composer handle this mishmash of module and project level dependencies?

from drupal9ci.

deviantintegral avatar deviantintegral commented on May 25, 2024

Module level dependencies are pretty important - for example, we had a private module that ran into a Behat bug. We could work around it by pinning a specific version in it's composer.json, not affecting other modules.

Conflicting dependencies is not a real issue for dev dependencies, since they are only ever installed for one module at a time. For normal module-level dependencies, that's already an issue and one developers have to deal with. For example, if one module requires drupal/features: ^2.8, and another requires drupal/features: ^3.0, composer will throw an error on composer update and the site builder will have to decide what to do.

from drupal9ci.

dakkusingh avatar dakkusingh commented on May 25, 2024

@deviantintegral thanks again :)
I think it makes total sense when you have multiple use cases, just I hadnt encountered that issue yet

from drupal9ci.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.