{"id":7335,"date":"2022-12-20T19:37:44","date_gmt":"2022-12-20T22:37:44","guid":{"rendered":"http:\/\/lode.uno\/linux-man\/index.php\/2022\/12\/20\/listmoreutilscontributing-man3\/"},"modified":"2022-12-20T19:37:44","modified_gmt":"2022-12-20T22:37:44","slug":"listmoreutilscontributing-man3","status":"publish","type":"post","link":"https:\/\/lode.uno\/linux-man\/2022\/12\/20\/listmoreutilscontributing-man3\/","title":{"rendered":"List::MoreUtils::Contributing (man3)"},"content":{"rendered":"<h1 align=\"center\">List::MoreUtils::Contributing<\/h1>\n<p> <a href=\"#NAME\">NAME<\/a><br \/> <a href=\"#DESCRIPTION\">DESCRIPTION<\/a><br \/> <a href=\"#SEE ALSO\">SEE ALSO<\/a><br \/> <a href=\"#AUTHOR\">AUTHOR<\/a><br \/> <a href=\"#COPYRIGHT AND LICENSE\">COPYRIGHT AND LICENSE<\/a> <\/p>\n<hr>\n<h2>NAME <a name=\"NAME\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">List::MoreUtils::Contributing \u2212 Gives rough introduction into contributing to List::MoreUtils<\/p>\n<h2>DESCRIPTION <a name=\"DESCRIPTION\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">List::Moreutils has a turbulent history and a strong approach. Before going further, please step to Open Source Contribution Etiquette <http:\/\/tirania.org\/blog\/archive\/2010\/Dec-31.html> and then come back.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The current distribution is a balance between finishing the history and claiming for future requirements. Therefore some components will receive a rewrite on purpose \u2212 others won\u2019t.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">For the moment \u2212 it\u2019s not the primary goal to clean up the configuration stage, until the primary goals and prerequisites are done.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">To contribute to List::MoreUtils, one has to arrange with the current situation, dig into details and ask for clarifying when parts are incomprehensible.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>Primary Goals<\/b> <br \/> The very first primary goal is to clear the backlog. These are primarily the open issues, feature requests and missing infrastructure elements.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">As example see RT#93207 or RT#75672 for missing configure time checks, while RT#93207 radiates until test \u2212 but doesn\u2019t affect runtime nor installation (beside test failures).<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>Secondary Goals<\/b> <br \/> Secondary goals are harmonizing the function names and calling convention (see RT#102673), tidying the infrastructure of the distribution and remove unnecessary complexity (while protecting the necessary).<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">One example of removing unnecessary infrastructure could be to move Data::Tumbler and Test::WriteVariants into authoring mode, when improved test for RT#93207 could be reasonably done by a module which is recommended for test. The recommendation of Graham Knop\u2019s Makefile.PL#L82 <https:\/\/github.com\/haarg\/List-MoreUtils\/blob\/dd877f963deead742fc90005636c72c6be9060fc\/Makefile.PL#L82> in PR#9 <https:\/\/github.com\/perl5-utils\/List-MoreUtils\/pull\/9> a desirable one.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\"><b>Orientation Guide<\/b> <br \/> List::MoreUtils configuration stage heavily depends on Config::AutoConf and Data::Tumbler. A few prerequisites of both modules aren\u2019t available for Perl 5.6 \u2212 which leads to a tiny emulation layer t the begin of &#8220;Makefile.PL&#8221;.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The reason for Config::AutoConf is quite simple \u2212 the opportunities for checking the environment cover a much wider range than a simple test whether there is a working compiler. It requires a lot of improvements since its base ExtUtils::CBuilder was never designed to support that kind of solutions \u2212 but there is <i>Work In Progress<\/i>. To finally solve issues as RT#75672 even in cross-compile environments \u2212 there is no way around such a checking tool.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">The reason for Data::Tumbler in combination with Test::WriteVariants are extensible tests with reasonable effort and easy figuring out which extra condition causes failures. Also \u2212 missing pre-conditions should result in failing tests i some cases \u2212 what is fully supported by the logic behind Data::Tumbler in combination with Test::WriteVariants.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">Finally \u2212 inc::latest glues the stuff in a bundle together to allow people with older toolchains to use List::MoreUtils out of the box (maybe with reduced quantity but full quality).<\/p>\n<h2>SEE ALSO <a name=\"SEE ALSO\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">Config::AutoConf, Data::Tumbler, Test::WriteVariants, ExtUtils::MakeMaker::Extensions<\/p>\n<h2>AUTHOR <a name=\"AUTHOR\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">Jens Rehsack <rehsack <small>AT<\/small> cpan.org><\/p>\n<h2>COPYRIGHT AND LICENSE <a name=\"COPYRIGHT AND LICENSE\"><\/a> <\/h2>\n<p style=\"margin-left:11%; margin-top: 1em\">Copyright 2015\u22122017 by Jens Rehsack<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">All code added with 0.417 or later is licensed under the Apache License, Version 2.0 (the &#8220;License&#8221;); you may not use this file except in compliance with the License. You may obtain a copy of the License at<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">http:\/\/www.apache.org\/licenses\/LICENSE\u22122.0<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &#8221; <small>AS IS&#8221; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,<\/small> either express or implied. See the License for the specific language governing permissions and limitations under the License.<\/p>\n<p style=\"margin-left:11%; margin-top: 1em\">All code until 0.416 is licensed under the same terms as Perl itself, either Perl version 5.8.4 or, at your option, any later version of Perl 5 you may have available.<\/p>\n<hr>\n","protected":false},"excerpt":{"rendered":"<p>  List::MoreUtils::Contributing \u2212 Gives rough introduction into contributing to List::MoreUtils <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[3653,3007],"class_list":["post-7335","post","type-post","status-publish","format-standard","hentry","category-sin-categoria","tag-listmoreutilscontributing","tag-man3"],"gutentor_comment":0,"_links":{"self":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/posts\/7335","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/comments?post=7335"}],"version-history":[{"count":0,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/posts\/7335\/revisions"}],"wp:attachment":[{"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/media?parent=7335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/categories?post=7335"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lode.uno\/linux-man\/wp-json\/wp\/v2\/tags?post=7335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}