Code Review from @dom96

This commit is contained in:
Zach Smith 2017-06-26 17:12:46 -04:00
commit 2a7e1f132c
2 changed files with 6 additions and 25 deletions

View file

@ -429,7 +429,7 @@ which are also useful. Take a look at it for more information.
### Project structure ### Project structure
A Nimble project includes a *source directory*, containing a at most one A Nimble project includes a *source directory*, containing at most one
primary source file, which shares the same name as the project itself (as well primary source file, which shares the same name as the project itself (as well
as the project's nimble file). In most cases this source directory will also be as the project's nimble file). In most cases this source directory will also be
the root directory of the whole project. In all cases, the root directory will the root directory of the whole project. In all cases, the root directory will
@ -457,27 +457,6 @@ Here's a sample one-module project directory:
└── tests.nim └── tests.nim
``` ```
Here's a more complex example:
```
. # Root directory
├── my_project.nimble # Nimble file
├── nim_src # Source directory
│   ├── my_project.nim # Primary source file
│   ├── my_project # Secondary source directory
│   │   ├── util.nim
│   │   ├── common.nim
│   └── tests # Excluded directory
│   ├── nim.cfg
│   └── tests.nim
├── README.rst
└── Makefile
```
In this example, the source directory is specified in the .nimble file
with `srcDir = "nim_src"`. Inside of `my_project.nim`, the `util` and `common`
modules will be imported as `my_project.util` and `my_project.common`.
#### Tests #### Tests
A common problem that arises with tests is the fact that they need to import A common problem that arises with tests is the fact that they need to import
@ -534,7 +513,7 @@ If your package exposes multiple modules then the modules should be in a
from other packages which expose modules with the same names. In this case from other packages which expose modules with the same names. In this case
the package's modules will be imported with ``import PackageName/module``. the package's modules will be imported with ``import PackageName/module``.
Here's a simple example multi-module library package: Here's a simple example multi-module library package called `util`:
``` ```
. .
@ -582,6 +561,8 @@ It's a good idea to test that the dependencies you specified are correct by
running by running ``nimble build`` or ``nimble install`` in the directory running by running ``nimble build`` or ``nimble install`` in the directory
of your package. of your package.
### Hybrids
One thing to note about binary packages that contain source files aside from One thing to note about binary packages that contain source files aside from
the one(s) specified in `bin` (or that also expose multiple library modules, as the one(s) specified in `bin` (or that also expose multiple library modules, as
above) is that a binary may share the name of the package: this will mean above) is that a binary may share the name of the package: this will mean

View file

@ -102,7 +102,7 @@ proc validatePackageStructure(pkgInfo: PackageInfo, options: Options) =
"will be an error in the future.") % "will be an error in the future.") %
[pkgInfo.name, pkgInfo.name & ext, file & ext] [pkgInfo.name, pkgInfo.name & ext, file & ext]
hint = ("If this is the primary source file in the package, " & hint = ("If this is the primary source file in the package, " &
"Rename it to '$1'. If it's a source file required by " & "rename it to '$1'. If it's a source file required by " &
"the main module, or if it is one of several " & "the main module, or if it is one of several " &
"modules exposed by '$4', then move it into a '$2' subdirectory. " & "modules exposed by '$4', then move it into a '$2' subdirectory. " &
"If it's a test file or otherwise not required " & "If it's a test file or otherwise not required " &
@ -118,7 +118,7 @@ proc validatePackageStructure(pkgInfo: PackageInfo, options: Options) =
let let
msg = ("Package '$2' has an incorrect structure. " & msg = ("Package '$2' has an incorrect structure. " &
"It should contain a single directory hierarchy " & "It should contain a single directory hierarchy " &
"For source files, named '$3', but file '$1' " & "for source files, named '$3', but file '$1' " &
"is in a directory named '$4' instead. " & "is in a directory named '$4' instead. " &
"This will be an error in the future.") % "This will be an error in the future.") %
[file & ext, pkgInfo.name, correctDir, dir] [file & ext, pkgInfo.name, correctDir, dir]