Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I rebuild an edited perl6 module that I've downloaded?

I've installed Time::Duration and it failed most of its tests. I want to be able to rebuild the module - with my edits - from the locally stored module.

I edited the file that contains the module (that corresponds to Duration.pm6):

~/.perl6/sources/D00C101A0157E3EAC494310C9961F299240423E7

And then try building via it's json file:

zef --debug build ~/.perl6/dist/83839D8D315EEDEDFEAF211EE42E8D936ACE29CB

This returns:

===> # SKIP: No need to build Time::Duration:ver<2.00>
!!!> Build failure: ~/.perl6/dist/83839D8D315EEDEDFEAF211EE42E8D936ACE29CB at ~/.perl6/dist

I was hoping that this would rebuild the module with the change I made to the source.

Have I done this wrong, or am I going about this entirely wrong?

like image 516
MorayJ Avatar asked Jan 03 '19 13:01

MorayJ


2 Answers

As it has been noted already you should not modify installed files. However, the workflow for testing changes of some module is pretty straight forward.

First:

# Fetch and extract the distribution, then change into its directory.
# If the distribution is still in zef's local file cache then it will
# skip the fetch and extraction steps.

zef look Time::Duration

Then:

At this point you can edit any of the files you wish.

Finally:

# test your changes without reinstalling (assumes all dependencies are installed)
zef test .

# Reinstall the modified version of Time::Duration using one of the following:
zef install . --force-install
zef uninstall Time::Duration && zef install .
like image 164
ugexe Avatar answered Oct 23 '22 01:10

ugexe


You should git clone the code or download the zip package, edit the code you want, then zef install . if the current directory have a META6.json file.

like image 37
chenyf Avatar answered Oct 23 '22 01:10

chenyf