Skip to content

Commit 90a3842

Browse files
committed
chore: add some developer guide words
1 parent 0a04983 commit 90a3842

File tree

2 files changed

+66
-2
lines changed

2 files changed

+66
-2
lines changed

astro.config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@ export default defineConfig({
1010
github: 'https://github.com/LavaMoat/LavaMoat',
1111
},
1212
sidebar: [
13+
// to change the order of items, use the sidebar.order prop
14+
// of the frontmatter in the .md file
1315
{
1416
label: 'Guides',
1517
autogenerate: { directory: 'guide' },
1618
},
17-
// note: using autogenerate means you cannot control the order of the items
1819
{
1920
label: 'Tutorials',
2021
autogenerate: { directory: 'tutorial' },

src/content/docs/about/development.md

Lines changed: 64 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,67 @@ title: Developer's Handbook
33
description: Learn about LavaMoat's project structure and internals.
44
---
55

6-
Et irure quis sint officia ex est dolor minim fugiat nostrud. Deserunt consequat aute culpa irure esse nisi cupidatat quis ut. Ipsum ad fugiat occaecat laboris ex culpa commodo nisi do quis dolor Lorem cillum.
6+
This document is aimed at developers of (and contributors to) LavaMoat. It contains information about LavaMoat's [project structure][], [internals][], [tools][] and [conventions][].
7+
8+
## Project Structure
9+
10+
LavaMoat is organized as a monorepo, and contains the following published packages:
11+
12+
| Package | Description |
13+
| ---------------------------------- | --------------------------------------------------------------------------------------------------- |
14+
| `@lavamoat/aa` | Provides functions to generate canonical package names which are consistent across package managers |
15+
| `@lavamoat/allow-scripts` | An allow-list for on-install lifecycle scripts |
16+
| `lavamoat-browserify` | Browserify plugin for LavaMoat |
17+
| `lavamoat-core` | Core functionality; kernel and policy enforcement |
18+
| `@lavamoat/lavapack` | A bundle packer for Browserify based on [`browser-pack`][browser-pack-ext] |
19+
| `@lavamoat/laverna` | Tool to publish multiple workspaces in a monorepo |
20+
| `lavamoat-node` | Node.js adapter for LavaMoat |
21+
| `@lavamoat/preinstall-always-fail` | A package that fails if its `preinstall` lifecycle script is run |
22+
| `lavamoat-tofu` | A tool to generate a LavaMoat policy from a dependency graph |
23+
| `@lavamoat/webpack` | Webpack plugin for LavaMoat |
24+
25+
All directories are relative to `packages/`.
26+
27+
## Internals
28+
29+
> TODO: This section should probably just link to other documents as necessary. I don't think any such documents exist, though.
30+
31+
## Conventions
32+
33+
> TODO: I'd probably talk about how we try to create and ship types, automate away discussions about code style, etc. Anything PR-related should probably live in the contributor's guide.
34+
35+
## Tools
36+
37+
> This is a dynamic list and may never be complete.
38+
39+
LavaMoat uses the following developer tools:
40+
41+
- [ESLint][] and sundry plugins
42+
- [TypeScript][] for type-checking and declaration generation; not used for compilation
43+
- [AVA][] for testing
44+
- [Prettier][] and plugins for code formatting
45+
- [Husky][] and [lint-staged][] for pre-commit and commit message hooks
46+
- GitHub Actions for continuous integration
47+
- [Renovate][] for dependency management
48+
- [CodeQL][] for static analysis
49+
- [Socket][] for supply-chain security
50+
- [commitlint][] for commit message conventions
51+
- [Release Please][] and [Laverna][lavamoat-laverna] for versioning and publishing
52+
53+
[browser-pack-ext]: https://github.com/browserify/browser-pack
54+
[project structure]: #project-structure
55+
[internals]: #internals
56+
[tools]: #tools
57+
[conventions]: #conventions
58+
[eslint]: https://eslint.org
59+
[typescript]: https://www.typescriptlang.org
60+
[ava]: https://github.com/avajs/ava
61+
[prettier]: https://prettier.io
62+
[husky]: https://typicode.github.io/husky
63+
[lint-staged]: https://github.com/lint-staged/lint-staged
64+
[commitlint]: https://commitlint.js.org
65+
[release please]: https://github.com/googleapis/release-please
66+
[lavamoat-laverna]: https://github.com/lavamoat/lavamoat/tree/main/packages/laverna
67+
[renovate]: https://www.mend.io/renovate/
68+
[socket]: https://socket.dev
69+
[codeql]: https://codeql.github.com

0 commit comments

Comments
 (0)