* demerphq <demerphq@gmail.com> [2023-01-19 18:12:55 +0100]:
> On Thu, 19 Jan 2023 at 18:08, Paul "LeoNerd" Evans
> <leonerd@leonerd.org.uk> wrote:
> >
> > On Thu, 19 Jan 2023 17:59:20 +0100
> > demerphq <demerphq@gmail.com> wrote:
> >
> > > ps: For the bulks of BBC tickets my workflow is roughly: Search module
> > > on CPAN, find repo name, clone repo, patch, push, create a PR, report
> > > that i have created a PR and then move on the next module.
> >
> > It sounds like the first 3 steps of that would be made simpler with my
> > `sourcepan` then. I'm going to keep banging on that drum a few times
> > more... ;)
>
> I havent ignored you. It is just that I understood your solution to be
> for a slightly different problem. When i said "it would be nice if
> there was a tool" what i meant was "there is a github repo that uses
> Dist::Zilla, somehow download what is required from CPAN so that repo
> can be patched properly without using Dist::Zila. The solution you
> have is something I am going to be trying out over the next days, but
> it seems like it is more about automating part of the process I dont
> find that difficult or tedius, although I am sure your process is
> nicer and i look forward to trying it out. If i have misunderstood
> some of the finer points of your tool then bear with me and in a day
> or two I will know better. :-)
>
> cheers,
> Yves
I see..I think..
If the fundamental issue is that the author leaves no recourse for another
developer to work on their module other than a deceptive dist.ini; then
it is an act of professional courtesy to offer a development pathway for
contributors to help fix things.
For example, the dist.ini is just the start; the Makefile.PL, etc that the
dist.ini renders should just be available for the latest version (git tagged)
somehow so that someone wanting to test/debug/fix a specific version can not
only build it locally without installing Dist::Zilla..
Consider the following situation:
- dev X's module is broken but uses dist.ini
- dev Y wants to fix it, so they can grab the repo that contains
not only the dist.ini, but the traditional bits (Makefile.PL, etc)
so they do not need to even think about generating the Makefile.PL, etc
- dev Y does the needful; ideally this would just include changes to
module code, tests, or other bespoke Perl, XS, etc; hopefully, the
PR requires no change to dist.ini; and HOPEFULLY the module author
can take this PR and run their dist.ini "dzil release" and all is gold
The rub comes in if:
- dev Y necessarily has to make changes to Makefile.PL (,etc) and not
just the module specific Perl or XS bits - in other words, changes
that will necessarily involve modifying dist.ini and therefore puts
puts more burden on dev X (who may or may not appriate it if they
are responsive, at all)
- dev X may say, "this is great but my dist.ini" doesn't make these
changes and I need you to update the dist.ini
- dev Y balks, muttering something about newfangled kids
- dev X balks, muttering something about a lawn
The best outcome would be if:
- dev Y fixes Makefile.PL, etc
- dev X is super happy, makes the necessary updates to dist.ini,
applies the bespoke PR changes, and a new version is released to CPAN
with fixes
What's the solution there? It's the age old issue of dealing with
rendered things like object files or HTML from templates. It is a
kind of meta compiling step and the dist.ini is the meta makefile.
I don't think there is a pure technical solution. There needs to be some
agreed upon "standard" here, and to get the largest mindshare it needs
to be the lowest common denominator.
Maybe the river factor (how far upstream a module is) or the "bus" factor
can play a part here - basically saying, the more critical module is or
how dependent it is on one person to release it, the less appropriate it
is to rely on dist.ini.
In the example above,
- dev Y treats Makefile.PL as "truth" and solid ground
- dev X treats Makefile.PL, etc as disposible artifacts
And ultimately, this is where the conflict lies as far as I can tell. IMO,
I think module authors should use what they want, but publish the latest
"artifacts" (that dev Y wants/needs) and not forcing contributors to use
Dist::Zilla - and the more critical your module is, the more "dev X" should
feel obligated to treat dzil as the secret shame it really should be.
Now if Dist::Zilla or work-withs/work-alikes can deal with this artifact
versus non-artifact thing, then maybe a 100% technical solution could help
here. I just don't see it. A lot of people, myself included, use dist.ini and
do not even keep Makefile.PL in the git repo - this is what the CPAN tgz is
for! (right?) :-)
Cheers,
Brett
>
>
> --
> perl -Mre=debug -e "/just|another|perl|hacker/"
--
--
oodler@cpan.org
oodler577@sdf-eu.org
SDF-EU Public Access UNIX System -
http://sdfeu.org irc.perl.org #openmp #pdl #native