Comments (5)
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.
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.
@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.
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.
@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)
- Annotations for code-standards HOT 2
- Changes to upstream image causes CircleCI to break HOT 1
- Is this still supported? HOT 5
- Run Travis CI in a Drupal Docker project HOT 3
- Clarify instructions in scripts/databases HOT 8
- Cannot touch 'storage/testing.sqlite': No such file or directory HOT 1
- Errors saving and restoring cache HOT 8
- Drupal Test Traits configured for Github Actions config, but not other CI configs HOT 9
- Drupal 9 compatibility HOT 4
- Replace Behat tests by Cypress.io ones HOT 4
- Create Composer 2 version for both Dockerfile and Dockerfile9 HOT 6
- "Failed to connect to localhost port 80: Connection refused" HOT 1
- DocumentRoot directory doesn't exist HOT 12
- jq not available by default in drupal8ci:latest image
- Include intl extension for PHP
- Update underlying docker image or use third party one HOT 8
- Interactive command line interface HOT 2
- Remove CircleCI test
- Config validation in CI
- Rename project and references from drupal9ci to drupalci HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from drupal9ci.