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:

  1. local hosting for viewing
  2. 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.