Problem/Motivation
As an individual with contributing experience, oftentimes for free, it is my own opinion that a hard dependency on the Contribute module from Webform is the wrong place to advocate for the contributing cause. To me, Drupal is ultimately to me a tool for other developers. And I think the tool we use should have a separate purpose from the community. When I run composer diagnose
, I don't want to get information about contributing to Composer. As the maintainer of Pathauto, I've always thought about adding in a module that allowed a site to make a donation based on the number of automatic URL aliases that were generated. Something that showed how useful the module in its functionality and operation. And whenever I've thought about this, it was always going to be an optional thing that could be disabled and removed. I know that Contribute advocates for contributions, not donations, but I consider the advocation similar.
I am more than capable of having the conversation with my clients about becoming an organization on Drupal.org, supporting the DA, etc. I would be ok with the Contribute being a part of Core that could be turned off for those of us capable of having that conversation with clients and end-users, but having it as a dependency for a module just to make a statement really feels like the wrong place. We should be giving developers the tools to have this conversation, not forcing it to happen.
The problem with a dependency is that I cannot disable the module without patching, and I'm unable to patch the module until it has already downloaded the contribute module into my codebase via composer. Why do I need to explain to customers that I had to patch a very popular module for this reason? I think until we have something like #820054: Add support for recommends[] and fix install profile dependency special casing where we can add the Contribute module as a recommends[], or Contribute is part of core, this dependency should be removed.
I'm totally down for advocating for our community and contributors to Drupal happening anywhere on Drupal.org and coming from any maintainer, but at the lower level of modules, I don't personally feel this is the right place.
Proposed resolution
Remove the dependency from composer.json and the info.yml file.
Remaining tasks
Possibly disable contribute module in an update hook? Remove the existing update hooks to stop the module from being enabled for existing users that haven't updated?
User interface changes
No more Contribute module.
API changes
None
Data model changes
None
Comment | File | Size | Author |
---|---|---|---|
#37 | webform-remove-contribute-dep-2944792-37.patch | 1.23 KB | Tess Bakker |
#28 | webform-2944792-remove-contribute-dependency-28.patch | 1.26 KB | recrit |
#14 | 2944792-remove-contribute-dependency.patch | 1.15 KB | Dave Reid |
Comments
Comment #2
Dave ReidComment #3
Dave ReidComment #4
abrammI'm agree with Dave's arguments. I'm using Silent Contribute to avoid patching and downloading Contribute module but generally I'd prefer if dependency was removed.
Comment #5
Dave ReidComment #6
Dave ReidComment #7
markhalliwellAttributing the contribute module with "donations" is what is wrong. It merely suggests supporting the community by contributing (any way you can).
You make it sound like the module is malicious and disruptive, it's not. It doesn't even have a very large file footprint. The only place this is visible (to anyone) is on the status report page.
IMO, there are far greater dependency issues in this module to be complaining about, not a module that is practically and purely cosmetic in nature.
I really don't understand why people are so adamant about making this into more than it's not.
Setting status to PMNMI since there are currently no mechanisms in place (other than a "hard" dependency) to bring awareness to the reality that is FOSS.
Comment #8
Dave ReidI will strongly disagree that I'm attributing anything to malice. I was trying to give a personal example of how I thought we could get end users to help think about how someone was behind this module, how useful they are as tools every day, etc. I'm not equating the Contribute module with donations AT ALL. I just think this is the wrong hill to die on.
I point clients to the status report page for the very first thing to check when they see something wrong. I don't think this is the right place for this.
Comment #9
Dave ReidI'll respect your decision to mark this a NMI since this will stay visible in the issue queue for others to be able to apply the patch in Composer.
Comment #10
Dave ReidComment #11
dpagini CreditAttribution: dpagini as a volunteer commentedI made the same comment over in #2936020.
Careful with this approach as a patch. You cannot alter a packages' composer file with the composer-patches approach. It will download this file and all its dependencies (including contribute) before patching the `composer.json` file, meaning you WILL HAVE contribute in your code base. Next, this does not address the update hook `webform_update_8106` which, when run, will install the contribute module, since it exists in your code base b/c of the previous point.
So this approach works for a new install of webform... you will not have contribute installed, but it will likely be in your codebase. For an existing install, you will likely still end up with the module installed.
Comment #12
markhalliwellOne is a model for a project's (personal) monetary gain/compensation, the other is to bolster community involvement (as a whole). No, they aren't even remotely similar... at all.
Comment #13
Dave ReidThank you for your opinion @markcarver, I think we are agreeing to disagree at this point.
Comment #14
Dave ReidUpdated patch with nullification of the update hook.
Comment #15
Dave Reid@dpagini Yes this is one of the problems I point out in the summary, that even applying the patch won't prevent the module from being included in the codebase at all.
Comment #16
markhalliwellWow... what a polite way to tell me to STFU. Not sure how an empirical fact turned into "my opinion" unless somehow that also implies that this is suddenly "your" issue simply because you opened it and provided the patch an initial issue summary.
Comment #17
xmacinfoI do agree with Dave Reid on this point. The Contribute module is not REQUIRED for Webform to work.
Jacob Rockowitz said that it wanted to make a “political” point by forcing it into Webform installations. That he will eventually remove the dependency before reaching a final version.
@markcarver, please do not make it a personal issue. You are not attacked in any way.
The issue here is the pure definition of a “dependency”! The issue is not who is a contributor or who contributes more than the other, contributing to open source cannot be calculated because one developer have a larger profile than the other.
Comment #18
mmjvb CreditAttribution: mmjvb as a volunteer commentedSee https://www.drupal.org/project/webform/issues/2936020
Comment #19
Dave ReidI would like to request that a module maintainer make the final decision to won't fix this, otherwise others looking to patch the module will not see this listed in the issue queue. I have read the referenced issue and this is in response to it.
Comment #20
xmacinfo@mmjvb: Please do not close this issue.
Even if the Webform 5 maintainer wants to add a false dependency, he must remember that his decisions may affect millions of users and thousands of contributors. If he want to add dependencies to a “toaster”, we must remind him that a “toaster” is not required for Webform to work.
https://www.drupal.org/dcoc#consideration
Consideration
Our work will be used by other people, and we in turn will depend on the work of others. Any decision we take will affect users and colleagues, and we should take those consequences into account when making decisions. Drupal has millions of users and thousands of contributors. Even if it's not obvious at the time, our contributions to Drupal will impact the work of others. For example, changes to code, infrastructure, policy, documentation, and translations during a release may negatively impact others' work.
Comment #21
jrockowitz CreditAttribution: jrockowitz as a volunteer and at The Big Blue House commented@Dave Reid I agree that this issue is a reasonable response and should remain open and marked as 'Postponed' so that people can easily find the ticket and the attached patch.
Even though I am not removing this dependency today. I have clearly stated that this dependency will be removed before stable release is tagged.
I also decided pre-emptively bump the priority to 'Major', maybe just to prevent someone from marking this as 'Critical'.
The overall discussion should continue via #2944651: Encourage participation, acknowledge contributions, and improve sustainability within Drupal (the software).
Comment #22
mmjvb CreditAttribution: mmjvb as a volunteer commentedSurprised and disappointed to hear this, at least it provides clarity.
Understood it wasn't a permanent dependency, but didn't get that it would be removed upon release.
BTW Is the abuse of the issue queue here documented somewhere?
Comment #23
jrockowitz CreditAttribution: jrockowitz as a volunteer and at The Big Blue House commentedI don't feel that there is an abuse of the issue queue just a passionate conversation.
Comment #24
borwickja CreditAttribution: borwickja commentedThere is another issue here that to me weighs in favor of removing the contrib module dependency.
Syncing configuration data is now more difficult. Importing configuration from a D8 install with Webform release candidate 1 into a D8 install with Webform release candidate 3 fails. The config from release candidate 1 tries to uninstall the contrib module, and that breaks the import. The use case here is that I was testing release candidate 3 locally and was ready to push it up to production but needed to make sure that configuration data from production was in local so that pushing up through the repo would put everything in sync.
"Drupal\Core\Config\ConfigImporterException: There were errors validating the config synchronization. in Drupal\Core\Config\ConfigImporter->validate()
The import failed due for the following reasons: [error]
Unable to uninstall the Contribute module since the Webform module is installed.
Unable to uninstall the Contribute module since the Webform Bootstrap module is installed.
Unable to uninstall the Contribute module since the Webform UI module is installed."
etc
Comment #25
karenann CreditAttribution: karenann as a volunteer commentedMy Issue is that as of today, the Contribute module is still in beta.
If it were a stable release and covered by the security advisory policy, I could probably make a case internally for this. Right now, this fails our vetting process and I cannot update webform.
I was able to get a pass for webform not being stable and covered due to the unique and powerful role it serves. Contribute would be the equivalent to an appendix in our installation.
Comment #26
jrockowitz CreditAttribution: jrockowitz as a volunteer and at The Big Blue House commented@karanaan Are you okay holding off upgrading to RC3 or using the patch?
As stated in my blog post will be removed in the near future.
Comment #27
Alan D. CreditAttribution: Alan D. commentedAwesome news (reg: stable release) and big thanks for all the hard work to all. :)
Comment #28
recrit CreditAttribution: recrit commentedre-roll against latest dev#55e7b560
Comment #29
Rajab Natshah CreditAttribution: Rajab Natshah at Vardot commentedThank you ... using #28
Comment #30
Rajab Natshah CreditAttribution: Rajab Natshah at Vardot commentedThis patch for Webform 8.x-5.0-rc3
Comment #31
Rajab Natshah CreditAttribution: Rajab Natshah at Vardot commentedComment #32
Rajab Natshah CreditAttribution: Rajab Natshah at Vardot commentedComment #33
Rajab Natshah CreditAttribution: Rajab Natshah at Vardot commentedSorry, but Not sure seems that we have to use the DEV version
I'm switching to use
"drupal/webform": "5.x-dev#385cb39037cc966b286fbe42e591a4119d482c85",
with #28
Comment #34
Rajab Natshah CreditAttribution: Rajab Natshah at Vardot commentedComment #35
Rajab Natshah CreditAttribution: Rajab Natshah at Vardot commentedAfter more study over this issue
I will follow with Jacob Rockowitz (jrockowitz) current option on Webform 8.5.0-rc3
Just to NOTE that the composer will get the contribute module, but we need to add the following, for Drupal.org build to work.
Comment #36
P44T CreditAttribution: P44T as a volunteer commentedBesides that I question the decision to let this module depend on the contribute module, there's an issue while upgrading using Drush too. The contribute module is not downloaded automatically, which leads to a failing database update (which tries to enable this dependency).
I also can't see how webform, which has an RC status, could depend on a module that is still in beta, while it's not crucial to the operation of webform.
Comment #37
Tess BakkerPatch for webform 8.x-5.0-rc3 to use with composer.json
To recreate the patch for newer versions:
Comment #38
jrockowitz CreditAttribution: jrockowitz as a volunteer and at The Big Blue House commented@see Remove Contribute dependency and move Contribute message into Webform module
Comment #40
karenann CreditAttribution: karenann as a volunteer commented@jrockowitz Re: #25/#26 At that time, the patch in #14 either didn't work for me or I didn't see it (I can't recall). I worded my post in a effort to support the dependency removal as I hadn't seen your blog post and wasn't clear that the choice to remove was a done deal. I probably should have worded my post differently. Sorry for the lack of clarity. Thanks for your work on this module!!! I'm really thrilled to see it moving forward!
Comment #41
jrockowitz CreditAttribution: jrockowitz as a volunteer and at The Big Blue House commented@karenann It is very hard to track everything that is happening in a Drupal.org issue queue which is why I am trying to be as transparent as possible by explaining everything I am doing and responding to feedback on my blog.