# Technical questions about forking packages

**URL:** <https://discourse.julialang.org/t/technical-questions-about-forking-packages/33297>\
**Category:** General Usage\
**Tags:** question, package\
**Created:** [January 13, 2020, 9:15am UTC](https://discourse.julialang.org/t/technical-questions-about-forking-packages/33297 "2020-01-13T09:15:18Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [January 13, 2020, 9:15am UTC](https://discourse.julialang.org/t/technical-questions-about-forking-packages/33297/1 "2020-01-13T09:15:18Z")

</div>

Forking packages has been surprisingly rare in the Julia ecosystem, so I could not find any guidelines or examples on it. I am wondering about the following:

1. I am assuming that the fork needs a **new UUID** , and while _technically_ it does not need to be **renamed** , this is required to be registered in the General registry. Is this correct? Anything else?

2. What should be modified in the copyright notice part of the license? Should one **add** a line after/before

3. How would one modify the `author` field in `Project.toml`, just add the new maintainer?

---

<div class="post-metadata">

**Author:** ![Raf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raf/32/3383_2.png) [@Raf](https://discourse.julialang.org/u/Raf)\
**Post date:** [January 13, 2020, 9:45am UTC](https://discourse.julialang.org/t/technical-questions-about-forking-packages/33297/2 "2020-01-13T09:45:58Z")

</div>

You might also not want to actually “fork”, and clone and push a new repo instead. Otherwise the repos are connected, and you have to one day ask github to remove the connection because there is no button for that. It takes a day or so.

Edit: to clarify the main problem with having a fork is pull requests go to the original package by defualt.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [January 13, 2020, 9:54am UTC](https://discourse.julialang.org/t/technical-questions-about-forking-packages/33297/3 "2020-01-13T09:54:53Z")

</div>

I was using “fork” in the sense of “take the code and start a new project without intention of submitting changes back to the original”. I was not aware of Github attaching a special connection to using their “fork” button; thanks for the clarification.

---

<div class="post-metadata">

**Author:** ![fredrikekre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fredrikekre/32/1688_2.png) [@fredrikekre](https://discourse.julialang.org/u/fredrikekre)\
**Post date:** [January 13, 2020, 10:06am UTC](https://discourse.julialang.org/t/technical-questions-about-forking-packages/33297/4 "2020-01-13T10:06:36Z")

</div>

> [@Tamas\_Papp](#):
>
> 1. I am assuming that the fork needs a **new UUID** , and while _technically_ it does not need to be **renamed** , this is required to be registered in the General registry. Is this correct?

If the old codebase is still used and maintained and you intend for them to coexist then you need a new UUID (otherwise they are the same package). The situation about an identical name has not come up, and I don’t think we have discussed this. However, I know some tooling, e.g. Registrator, can not handle it at the moment.

---

<div class="post-metadata">

**Author:** ![tkf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tkf/32/17635_2.png) [@tkf](https://discourse.julialang.org/u/tkf)\
**Post date:** [January 14, 2020, 3:12am UTC](https://discourse.julialang.org/t/technical-questions-about-forking-packages/33297/5 "2020-01-14T03:12:20Z")

</div>

> [@Tamas\_Papp](#):
>
> What should be modified in the copyright notice part of the license? Should one **add** a line after/before

Isn’t it specific to the license of the software? If it’s a Julia package, it probably is the MIT license which contains this line

> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

So, I suppose you have to keep the original copyright.

(On the other hand, IIUC, you don’t have to include the original copyright if the original software is licensed under something like Unlicense or CC0.)

I find related Q&As

- [open source - If I fork a project on Github that is licensed under MIT, how to I handle the attribution and copyright notice? - Software Engineering Stack Exchange](https://softwareengineering.stackexchange.com/questions/277688/if-i-fork-a-project-on-github-that-is-licensed-under-mit-how-to-i-handle-the-at)
- [How should I assert copyright when I’m forking an MIT project? - Open Source Stack Exchange](https://opensource.stackexchange.com/questions/2391/how-should-i-assert-copyright-when-im-forking-an-mit-project)

But I don’t see any agreement on how to add your new copyright.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [January 14, 2020, 6:23am UTC](https://discourse.julialang.org/t/technical-questions-about-forking-packages/33297/6 "2020-01-14T06:23:50Z")

</div>

Yes, I was asking about the most common case, MIT license.

Thanks for the links.
