# How to generate a new package/module for v0.7-beta only

**URL:** <https://discourse.julialang.org/t/how-to-generate-a-new-package-module-for-v0-7-beta-only/12189>\
**Category:** Internals & Design\
**Tags:** question\
**Created:** [July 5, 2018, 5:44pm UTC](https://discourse.julialang.org/t/how-to-generate-a-new-package-module-for-v0-7-beta-only/12189 "2018-07-05T17:44:02Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jlapeyre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jlapeyre/32/4514_2.png) [@jlapeyre](https://discourse.julialang.org/u/jlapeyre)\
**Post date:** [July 5, 2018, 5:44pm UTC](https://discourse.julialang.org/t/how-to-generate-a-new-package-module-for-v0-7-beta-only/12189/1 "2018-07-05T17:44:02Z")

</div>

What’s the best way to do the following:

Generate a new package to be used as a module by the end user or other packages, in some public registry. I don’t need v0.6 compatibility. It probably won’t be made public for several days or weeks. Possiblities:

1. In v0.7-beta do

```julia

(v0.7) pkg> generate MyMod
Generating project MyMod:
    MyMod/Project.toml
    MyMod/src/MyMod.jl

```

I get a uuid in the `Project.toml`, which is comforting. Trying `using MyMod` anywhere other than the current directory throws an error. I’m sure there is an easy way to solve this.

1. In v0.6.3 do

```julia
 julia> PkgDev.generate("MyMod", "MIT")
Info: Initializing MyMod repo: /home/lapeyre/.julia/v0.6/MyMod
Info: Origin: https://github.com/jlapeyre/MyMod.jl.git
Info: Generating LICENSE.md
Info: Generating README.md
Info: Generating src/MyMod.jl
Info: Generating test/runtests.jl
Info: Generating REQUIRE
Info: Generating .gitignore
Info: Generating .travis.yml
Info: Generating appveyor.yml
Info: Generating .codecov.yml
Info: Committing MyMod generated files

```

Look at all the useful files I get ! Then,

```bash
shell> mkdir ~/.julia/mydev
shell> cp -a ~/.julia/v0.6/MyMod/ ~/.julia/mydev

```

Then again in v0.6

```julia
julia> Pkg.rm("MyMod");

```

Then

```julia
(v0.7) pkg> dev ~/.julia/mydev/MyMod
┌ Warning: packages will need to have a [Julia]Project.toml file in the future
└ @ Pkg.Types Types.jl:578
[ Info: Assigning UUID 62a62a1c-8078-11e8-34fd-c32091553eb2 to MyMod
 Resolving package versions...
  Updating `~/.julia/environments/v0.7/Project.toml`
  [62a62a1c] + MyMod v0.0.0 [`~/.julia/mydev/MyMod`]
  Updating `~/.julia/environments/v0.7/Manifest.toml`
  [62a62a1c] + MyMod v0.0.0 [`~/.julia/mydev/MyMod`]

```

Entries are made in `Project.toml` and `Manifest.toml` so that I can immediately do `using MyMod` together with all the other packages.

1. Don’t worry, because it won’t be made public for a while, and things will be much more developed and clear by then. Maybe use option 2, just because I can `using` the package immediately, use CI services, and I won’t forget where it is. Well, I will, but it will be easier to find.

2. … ?
