# Changing the name of a package

**URL:** https://discourse.julialang.org/t/changing-the-name-of-a-package/14960
**Category:** General Usage
**Tags:** package
**Created:** [September 14, 2018, 2:58pm UTC](https://discourse.julialang.org/t/changing-the-name-of-a-package/14960 "2018-09-14T14:58:14Z")
**Posts on this page:** 9
**Page:** 1

<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: [September 14, 2018, 2:58pm UTC](https://discourse.julialang.org/t/changing-the-name-of-a-package/14960/1 "2018-09-14T14:58:14Z")

</div>

I have been developing the package [RecurrenceAnalysis](https://github.com/heliosdrm/RecurrenceAnalysis.jl) for some time. I used that name because the usual way of calling what it does looked too long for a package name (“Recurrence Quantification Analysis”), and acronyms like “RQA” are discouraged in the guidelines.

But now that I could release a version for Julia 1.0 I feel like updating its name, perhaps to the also commonly used “RecurrencePlot” (originally there was no plotting support, but now there will be).

I might just mirror the existing Github repository to another one with a new name, and submit the new one to be registered. But what should I do with the old package (already registered)? Is there a way to tag it as “defunct” or “superseded by”…?

Or should I do something different?

---

<div class="post-metadata">

### Author: ![dpsanders](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dpsanders/32/3573_2.png) [@dpsanders](https://discourse.julialang.org/u/dpsanders)
#### Post date: [September 15, 2018, 3:06pm UTC](https://discourse.julialang.org/t/changing-the-name-of-a-package/14960/2 "2018-09-15T15:06:14Z")

</div>

> [@heliosdrm](#):
>
> RecurrenceAnalysis

`RecurrenceQuantificationAnalysis.jl` seems good to me.

---

<div class="post-metadata">

### Author: ![dpsanders](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dpsanders/32/3573_2.png) [@dpsanders](https://discourse.julialang.org/u/dpsanders)
#### Post date: [September 15, 2018, 3:06pm UTC](https://discourse.julialang.org/t/changing-the-name-of-a-package/14960/3 "2018-09-15T15:06:31Z")

</div>

Or just `RecurrenceQuantification.jl`.

---

<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: [September 15, 2018, 8:09pm UTC](https://discourse.julialang.org/t/changing-the-name-of-a-package/14960/4 "2018-09-15T20:09:20Z")

</div>

I like it “RecurrenceQuantification.jl” as well.

Neverthless, my main question is about what is the good practice if a new package supersedes an already registered package.

---

<div class="post-metadata">

### Author: ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)
#### Post date: [September 15, 2018, 8:34pm UTC](https://discourse.julialang.org/t/changing-the-name-of-a-package/14960/5 "2018-09-15T20:34:35Z")

</div>

I think this has been already asked several times, but here are the steps:

1. move the repository on GitHub to the new name (so that you keep stars, users watching it, record of issues and pull requests, etc…)
2. in the new repository, actually change the name of the package (move the `src/RecurrenceAnalysis.jl` to the new name, adapt elsewhere as needed)
3. [this is optional, but a good way to redirect users to the new package] Fork the new repository on GitHub to the old name. In this repository (with the old name), prepare a new version of the package. This should issue a warning telling the users to move to the new package. For example, right after the beginning of the module you can add:

```julia
@warn("This package is deprecated. Use NEWNAME.jl instead:
           pkg> update
           pkg> add NEWNAME")

```

As an alternative, the warning can be moved to the `init` function of the module, so that every time people will load it will get the info.  
In addition, this new version of the package with the old name should set an upper bound to the allowed Julia version. I see that currently your package requires at least Julia 0.7. Set the version 1.0 as an upper bound (excluded) in this way:

```julia
julia 0.7 1.0

```

Tag a new version of the package and update accordingly in METADA.jl (if you use attobot, you don’t have anything to do but crafting a new release on GitHub).
4. Register the new package in METADATA.jl
5. Enjoy

Step 3 is optional in the sense that instead of doing all of that I suggested you can simply set an upper bound on METADATA.jl to all the versions of your package, but I recommend doing a new release that informs the users to switch to another package.

You can see as an example this package: [GitHub - giordano/CmplxRoots.jl: DEPRECATED PACKAGE. Use PolynomialRoots.jl instead](https://github.com/giordano/CmplxRoots.jl) I made it very clear in the repository description that the package is now deprecated, I also emptied the `README.md` and redirected the users to the new package

---

<div class="post-metadata">

### Author: ![rveltz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rveltz/32/2707_2.png) [@rveltz](https://discourse.julialang.org/u/rveltz)
#### Post date: [November 30, 2018, 8:52am UTC](https://discourse.julialang.org/t/changing-the-name-of-a-package/14960/6 "2018-11-30T08:52:27Z")

</div>

> [@giordano](#):
>
> move the repository on GitHub to the new name (so that you keep stars, users watching it, record of issues and pull requests, etc…)

How can this be done effectively? I want to copy `PDMP.jl` into [here](https://github.com/rveltz/PiecewiseDeterministicMarkovProcesses) while keeping stars, etc. See also [this](https://github.com/JuliaLang/METADATA.jl/pull/19741#issuecomment-442371130)

---

<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: [November 30, 2018, 9:42am UTC](https://discourse.julialang.org/t/changing-the-name-of-a-package/14960/7 "2018-11-30T09:42:44Z")

</div>

Instead of copying `PMDP.jl` to another repository, what you want to do is to change the name of the former. You may do this in the “Settings” tab of the repository page in Github.

 ![image](https://global.discourse-cdn.com/julialang/original/3X/8/4/843a387d146aff12745f6c983f9c17ef839e9ef6.png)

Since you already created the repository with the new name, you should delete it first (also in settings). I guess you just created it and there is no clone pointing to it with contents that might conflict, so deleting it should be safe in this particular case.

---

<div class="post-metadata">

### Author: ![nsajko](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nsajko/32/221187_2.png) [@nsajko](https://discourse.julialang.org/u/nsajko)
#### Post date: [September 25, 2025, 5:42pm UTC](https://discourse.julialang.org/t/changing-the-name-of-a-package/14960/8 "2025-09-25T17:42:07Z")

</div>

The solution above is outdated. The current reference is the README.md of the General registry:

- [General/README.md at master · JuliaRegistries/General · GitHub](https://github.com/JuliaRegistries/General/blob/master/README.md)

---

<div class="post-metadata">

### Author: ![Sole](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sole/32/202974_2.png) [@Sole](https://discourse.julialang.org/u/Sole)
#### Post date: [September 26, 2025, 7:55am UTC](https://discourse.julialang.org/t/changing-the-name-of-a-package/14960/9 "2025-09-26T07:55:52Z")

</div>

```julia-auto
import RecurrenceQuantificationAnalysis as RQA

```

a long name is not a problem 🙂
