The best practices are documented 
here: http://docs.julialang.org/en/release-0.4/manual/packages/#code-changes

In summary, it is best to use your third approach. Pkg.submit() will fork 
the github repo into your account. And Pkg.free() will get you back to the 
released state of the package, which makes it safe to do the changes in 
place, within .julia. 

Regards
-
Avik

On Thursday, 26 November 2015 07:04:51 UTC, Eric Forgy wrote:
>
> I'm still learning the ropes.
>
> When I "Pkg.add" a Julia package, it produces a git repo in .julia. If I 
> wanted to revise one of the packages, is it unadvised to modify it directly 
> in the .julia repo if I ultimately intend to submit a PR?
>
> My first instinct was to clone the package somewhere other than .julia and 
> then "Pkg.clone" from there, but that seems a bit roundabout. Hence my 
> question.
>
> I tried the following which doesn't seem optimal:
>
>    1. Fork the package on GitHub
>    2. "git clone" the package somewhere other than .julia
>    3. Pkg.clone from my local cloned repo (had problems with this because 
>    the package was already in .julia so deleted it first)
>    4. Modify the package, commit and then Pkg.checkout
>    5. Repeat step 3. until revision does what I want it to do
>       - Steps 3. and 4. got me a LONG list of commits, so I introduced 
>       myself to "git rebase" with disastrous results.
>       6. Tried deleting the package from .julia so I could start over 
>    again with "Pkg.add", but Pkg seemed to have gotten confused from my 
>    shenanigans and says the package could not be found.
>    7. Delete the Julia installation. Delete .julia and start again.
>
> Disaster :)
>
> My next attempt will be along these lines:
>
>    1. Fork the package on GitHub
>    2. Pkg.clone from my forked repo
>    3. Modify the package directly from the .julia folder (hoping this 
>    will avoid a ton of commits)
>    4. When everything works, commit and push to my forked repo on GitHub
>    5. Submit a PR from GitHub
>
> How does that sound? Any better suggestions?
>
> Just before submitting this question, a possibly better solution dawned on 
> me. Since I have already "Pkg.add"ed the package, a git repo is already in 
> .julia so I might try:
>
>    1. Fork the package on GitHub
>    2. Modify the package already inside .julia
>    3. Add my fork as a remote repo
>    4. When everything works, commit and push to my forked remote repo on 
>    GitHub
>    5. Submit a PR from GitHub
>
> How does that sound? What do others do?
>
> Note: The package I'm trying to modify is pure Julia so does not require 
> any compiler.
>

Reply via email to