hengist

0.0.1 • Public • Published

𐌷𐌴𐌽𐌲𐌹𐍃𐍄

Table of Contents generated with DocToc

𐌷𐌴𐌽𐌲𐌹𐍃𐍄

Multi-App Dev (M.A.D.)

Hengist Layout

  • apps
  • assets
  • individual project folders (each with src/ and lib/, if you're so inclined and transpile stuff, or any other structure deemed suitable)
┌─────────────────────────────────────────────────────╖
│ my-hengist                                          ║
│   ● package.json                                    ║
│   ● README.md                                       ║
│   ┌─────────────────────────────────────────────────────╖
│   │ .git                                                ║
│   ┌─────────────────────────────────────────────────────╖
│   │ node_modules                                        ║
│   ┌─────────────────────────────────────────────────────╖
│   │ apps                                                ║
│   │   ▸  ../path/to/my-project                          ║
│   │   ▸  ../other-path/to/that-other-project            ║
│   ┌─────────────────────────────────────────────────────╖
│   │ assets                                              ║
│   │   ▸  ../path/to/some-data.file                      ║
│   │   ●  image.png                                      ║
│   │   ┌─────────────────────────────────────────────────────╖
│   │   │ my-project                                          ║
│   │   │   ●  huge-data.file                                 ║
│   │   ┌─────────────────────────────────────────────────────╖
│   │   │ that-other-project                                  ║
│   │   │   ●  another-huge-data.file                         ║
│   ┌─────────────────────────────────────────────────────╖
│   │ my-project                                          ║
│   │   ● package.json                                    ║
│   │   ┌─────────────────────────────────────────────────────╖
│   │   │ node_modules                                        ║
│   │   ┌─────────────────────────────────────────────────────╖
│   │   │ src                                                 ║
│   │   │   ● main.coffee                                     ║
│   │   │   ● foobar.benchmark.coffee                         ║
│   │   │   ● silly.benchmark.coffee                          ║
│   │   │   ● arithmetic.test.coffee                          ║
│   │   │   ● silly.test.coffee                               ║
│   │   ┌─────────────────────────────────────────────────────╖
│   │   │ lib                                                 ║
│   │   │   ● main.js                                         ║
│   │   │   ● main.js.map                                     ║
│   ┌─────────────────────────────────────────────────────╖
│   │ that-other-project                                  ║
│   │   ● package.json                                    ║
│   │   ┌─────────────────────────────────────────────────────╖
│   │   │ node_modules                                        ║
│   │   ┌─────────────────────────────────────────────────────╖
│   │   │ src                                                 ║
│   │   │   ● main.coffee                                     ║
│   │   ┌─────────────────────────────────────────────────────╖
│   │   │ lib                                                 ║
│   │   │   ● main.js                                         ║
│   │   │   ● main.js.map                                     ║

Thoughts & Plans

  • We continue to keep

    • benchmarks,
    • demos and
    • tests

    for the projects under hengist/dev/$project_name. This makes hengist a monorepo for the dev code of the projects, but not for their production code. Dependencies for stuff under dev will be kept in hengist/node_modules and be declared in hengist/package.json.

  • To help subject-oriented development, apps-$subject folders such as apps-dbay and apps-typesetting are introduced. These contain symlinks to the projects that are relevent for the $subject (e.g. typesetting) at hand; they may also contain further material such as READMEs.

To Do

  • [–] Update tree representation: local development under dev/ (which is included in Hengist git repo); external stuff (for which Hengist only provides tests and/or benchmarks and/or demos, experiments) is symlinked under apps/ (and not included in Hengist git repo).
  • [+] Implement a prepare-commit-msg git hook that prepends each commit with the names of the sub-projects affected. This works by retrieving the relative paths of all staged files with git diff --cached --name-only and then looking for the nearest package.json file for each part.

Readme

Keywords

none

Package Sidebar

Install

npm i hengist

Weekly Downloads

7

Version

0.0.1

License

ISC

Unpacked Size

82.2 MB

Total Files

1129

Last publish

Collaborators

  • loveencounterflow