File Structures
The file structures for Devora is heavily aligned to the Go application file structure. Afterall, it is a Go application.
There should not be any other files apart from git required files outsides these purposeful directories.
root
Local root directory inside the repository should contains only the body
execution codes for Devora. They are consumed by the Devora’s main
applications inside the cmd
directory.
Keep in mind that there should only be 1 purpose for Devora package, complying to Go’s packaging best practice here, here, and here.
cmd
Holds the Devora’ main
directory for others to go get
.
docs
Devora
├── docs
│ ├── en-us
│ │ └── ...
│ └── zh-cn
│ └── ...
...
Holds Devora’s documentations. It is powered by .sites
website generator and
primarily written in vanilla Markdown.
scripts
Devora
├── scripts
│ └── ...
...
scripts
holds the Devora repository’s automated execution scripts. These
are normally package builder and manager, tester, and other operational scripts.
They are primarily written in BASH scripts.
.sites
Devora
├── .sites
│ ├── config
│ │ └── _default
│ │ ├── config.toml
│ │ ├── languages.toml
│ │ ├── menus.en-us.toml
│ │ ├── menus.zh-cn.toml
│ │ └── params.toml
│ ├── manager.sh
│ ├── resources
│ │ └── ...
│ └── themes
│ └── .themes
...
Devora local Hugo website generator. This generator is meant to render the documentations into the local web server for either:
- local hosting for viewing
- build publishing artifacts
.fennec
Devora
├── .fennec
│ └── ...
...
Devora’s GitLab CI support module. Bissetti uses Fennec to drive most of its continuous integration works.
tmp
Devora
├── tmp
│ └── ...
...
tmp
directory is a reserved directory for the repository to perform automated
operations. Hence, nothing should inherit this working directory.
release
Devora
├── release
│ └── ...
...
release
directory is a reserved directoy for the repository to deposit all
the compiled packages. Hence, nothing should inherit this working directory.
public
Devora
├── public
│ └── ...
...
public
directory is a reserved directory for the repository to deposit all
the generated document website artifact. Hence, nothing should inherit this
working directory.