Add a cpanfile for the PG repo#691
Conversation
A cpanfile lists the module dependencies for each area of development (runtime/test/authoring) as determined by Test::CPANfile and uses the "recommended" tag for suggestions for useful modules. Permits future "pinning" of versions to installed modules and doesn't obstruct other workflows.
|
Re-targeted at the develop branch and isolated from other issues for cleaner discussion.
@drgrice1 is correct that it is an unnecessary file, but points 4, 7 & 8 try to show that its utility justifies adding a small file and the rest are that if you don't find it personally useful, it won't get in your way. So, not required, but recommended. |
|
There was a comment today that raised the issue that the cpanfile could be updated without also updating check_modules.pl. I would ask how check_modules.pl is updated currently? Here are some options technical solutions
social solution
|
|
My suggestion is a variation of your third option: split off the list of dependencies from the check_modules script. Create a new file somewhere in the repo that contains all of the ww dependencies, along with preferred methods for installing them on any supported OS. check_modules would then query this file to determine missing packages. It would also allow check_modules to be expanded into a script that installs the dependencies (or this could be a separate script). It would also make it easier for people to write custom scripts to check and/or install dependencies. We should then be able to set up a GitHub action to generate the cpanfile any time the dependencies file is updated. |
drgrice1
left a comment
There was a problem hiding this comment.
There seem to be some modules that are missing from the cpanfile that this pull request adds, that are used by PG. For example Encode, GD, and Class::Accessor. There are probably others. Look at the modules list in defaults.conf of the webwork2 code to see all of the modules that are loaded for PG.
Add modules listed in CPAN in webwork2/conf/defaults.config Add dependancies of Rserve as "recommends" Remove URI::Escape as it is not actually used by Applet.pm
drgrice1
left a comment
There was a problem hiding this comment.
I will approve this for now.
However, in light of my observation in #702 regarding prop isa of the Test2::V0 object builder not being in version 0.000129 of the Test2::Suite package, it seems that this should also have version specifications for all packages. At least minimums should be given. I am not sure what those need to be, and that may take some work to figure out. So we can leave this for later for now.
For Test2::V0 with the changes in my pull request to your branch for #702 the tests work with version 0.000129 (and maybe earlier), but with the prop isa and check_isa you used, at least version 0.000139 is needed.
|
Note, that although I have approved this, this should not be merged in its current state until after #702 is fixed and merged. It still requires Test2::V0 (and related modules). |
A cpanfile lists the module dependencies for each area
of development (runtime/test/authoring) as determined by Test::CPANfile
and uses the "recommended" tag for suggestions for useful modules.
Permits future "pinning" of versions to installed modules and
doesn't obstruct other workflows.