# Moving a new package to GitHub

**URL:** <https://discourse.julialang.org/t/moving-a-new-package-to-github/125741>\
**Category:** General Usage\
**Tags:** package, github\
**Created:** [February 10, 2025, 10:47am UTC](https://discourse.julialang.org/t/moving-a-new-package-to-github/125741 "2025-02-10T10:47:18Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![rmfritz](https://avatars.discourse-cdn.com/v4/letter/r/b487fb/32.png) [@rmfritz](https://discourse.julialang.org/u/rmfritz)\
**Post date:** [February 10, 2025, 10:47am UTC](https://discourse.julialang.org/t/moving-a-new-package-to-github/125741/1 "2025-02-10T10:47:18Z")

</div>

I’m getting ready to upload my little experimental package to GitHub, though still not read to publish it to the world. Any free advice? And how do I separate tooling I don’t even want to see on GitHub from the package itself?

---

<div class="post-metadata">

**Author:** ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)\
**Post date:** [February 10, 2025, 12:08pm UTC](https://discourse.julialang.org/t/moving-a-new-package-to-github/125741/2 "2025-02-10T12:08:58Z")

</div>

What do you mean by tooling?

---

<div class="post-metadata">

**Author:** ![lupemba](https://avatars.discourse-cdn.com/v4/letter/l/e5b9ba/32.png) [@lupemba](https://discourse.julialang.org/u/lupemba)\
**Post date:** [February 10, 2025, 12:36pm UTC](https://discourse.julialang.org/t/moving-a-new-package-to-github/125741/3 "2025-02-10T12:36:27Z")

</div>

If I understand the question correct. You can use a .gitignore file to exclude files or folders from git. Here is an example  
[Makie.jl/.gitignore at master · MakieOrg/Makie.jl · GitHub](https://github.com/MakieOrg/Makie.jl/blob/master/.gitignore)

Another solution is to place the tooling out side the git folder.

Maybe you can look through a guide on how to use git and github. This is not anything specific for julia.

---

<div class="post-metadata">

**Author:** ![heliosdrm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/heliosdrm/32/3851_2.png) [@heliosdrm](https://discourse.julialang.org/u/heliosdrm)\
**Post date:** [February 10, 2025, 1:20pm UTC](https://discourse.julialang.org/t/moving-a-new-package-to-github/125741/4 "2025-02-10T13:20:14Z")

</div>

Hi. About uploading to GitHub without “publishing it to the world” you may mean:

a) Keeping it private because you don’t want other people to see it or use it. See [Setting repository visibility - GitHub Docs](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility).

b) Keeping it unregistered, because you don’t mind others to see it and use it (and even help you to improve it!), but it is in a very experimental stage or not meant to be part of the general Julia registry. In that case you don’t have to do anything special after uploading it to GitHub.

---

<div class="post-metadata">

**Author:** ![rmfritz](https://avatars.discourse-cdn.com/v4/letter/r/b487fb/32.png) [@rmfritz](https://discourse.julialang.org/u/rmfritz)\
**Post date:** [February 11, 2025, 6:56am UTC](https://discourse.julialang.org/t/moving-a-new-package-to-github/125741/5 "2025-02-11T06:56:57Z")

</div>

I have a whole bunch of bits and pieces that don’t belong on GitHub, quick test scripts and such. I’ve also got pieces that belong in branches. I’m trying to figure out how to organize this pile of stuff.

---

<div class="post-metadata">

**Author:** ![GHTaarn](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ghtaarn/32/216007_2.png) [@GHTaarn](https://discourse.julialang.org/u/GHTaarn)\
**Post date:** [February 11, 2025, 1:49pm UTC](https://discourse.julialang.org/t/moving-a-new-package-to-github/125741/6 "2025-02-11T13:49:21Z")

</div>

> [@rmfritz](#):
>
> Any free advice?

Use `git add` to add only the files that you want on Github. Usually `Manifest.toml` files in **packages** are not added to the commit and they are instead added to the `.gitignore` file (which should be added with `git add`). Depending on what your tests look like, it is usually considered good practice to include some tests in the package. Note also, that it is not always necessary to have packages hosted on foreign machines such as Github, Julia can easily use packages that simply reside on your local hard disk.

I’m guessing that you are not yet at the stage where you would be adding your project to a registry, but if you are, note that you can make your own registry with  
[GitHub - GunnarFarneback/LocalRegistry.jl: Create and maintain local registries for Julia packages.](http://github.com/GunnarFarneback/LocalRegistry.jl) if this is more relevant than adding your package to the General registry.

---

<div class="post-metadata">

**Author:** ![rmfritz](https://avatars.discourse-cdn.com/v4/letter/r/b487fb/32.png) [@rmfritz](https://discourse.julialang.org/u/rmfritz)\
**Post date:** [February 11, 2025, 10:29pm UTC](https://discourse.julialang.org/t/moving-a-new-package-to-github/125741/7 "2025-02-11T22:29:20Z")

</div>

Thanks! That does help. I’m just going to have to sort through the thing, I think.
