Improve documentation for developing
Move existing documentation to `docs/development.md` to have simpler `README.md` but more dedicated and extensive documentation for development. Improve existing documentation for different commands for the project. Document VSCode recommendations in `extensions.json` file and add exception in `.gitignore` to be able to add it to repository.
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,7 +1,8 @@
|
|||||||
node_modules
|
node_modules
|
||||||
dist/
|
dist/
|
||||||
.vs
|
.vs
|
||||||
.vscode
|
.vscode/**/*
|
||||||
|
!.vscode/extensions.json
|
||||||
#Electron-builder output
|
#Electron-builder output
|
||||||
/dist_electron
|
/dist_electron
|
||||||
# Cypress
|
# Cypress
|
||||||
|
|||||||
23
.vscode/extensions.json
vendored
Normal file
23
.vscode/extensions.json
vendored
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"recommendations": [
|
||||||
|
// Common
|
||||||
|
"editorconfig.editorconfig", // Applies .editorconfig to follow project style.
|
||||||
|
"wengerk.highlight-bad-chars", // Highlights bad chars.
|
||||||
|
"wayou.vscode-todo-highlight", // Highlights TODO.
|
||||||
|
"wix.vscode-import-cost", // Shows in KB how much a require include in code.
|
||||||
|
// Documentation
|
||||||
|
"davidanson.vscode-markdownlint", // Lints markdown.
|
||||||
|
// TypeScript / JavaScript
|
||||||
|
"dbaeumer.vscode-eslint", // Lints JavaScript/TypeScript.
|
||||||
|
"pmneo.tsimporter", // Provides better auto-complete for TypeScripts imports.
|
||||||
|
// Vue
|
||||||
|
"jcbuisson.vue", // Highlights syntax.
|
||||||
|
"octref.vetur", // Adds Vetur, Vue tooling support.
|
||||||
|
// Scripting
|
||||||
|
"timonwong.shellcheck", // Lints bash files.
|
||||||
|
"ms-vscode.powershell", // Lints PowerShell files.
|
||||||
|
"ms-python.python", // Lints Python files.
|
||||||
|
// Distribution
|
||||||
|
"ms-azuretools.vscode-docker" // Adds Docker support.
|
||||||
|
]
|
||||||
|
}
|
||||||
20
README.md
20
README.md
@@ -126,25 +126,9 @@
|
|||||||
- 🙏 For any new script, please add `revertCode` and `docs` values if possible.
|
- 🙏 For any new script, please add `revertCode` and `docs` values if possible.
|
||||||
3. Send a pull request 👌
|
3. Send a pull request 👌
|
||||||
|
|
||||||
## Commands
|
## Development
|
||||||
|
|
||||||
- Project setup: `npm install`
|
See [docs/development.md](./docs/development.md) for Docker usage, running/building application, development best-practices along with other information related to development.
|
||||||
- Testing
|
|
||||||
- Run unit tests: `npm run test:unit`
|
|
||||||
- Run integration tests: `npm run test:integration`
|
|
||||||
- Run e2e (end-to-end) tests
|
|
||||||
- Interactive mode with GUI: `npm run test:e2e`
|
|
||||||
- Headless mode without GUI: `npm run test:e2e -- --headless`
|
|
||||||
- Lint: `npm run lint`
|
|
||||||
- **Desktop app**
|
|
||||||
- Development: `npm run electron:serve`
|
|
||||||
- Production: `npm run electron:build` to build an executable
|
|
||||||
- **Webpage**
|
|
||||||
- Development: `npm run serve` to compile & hot-reload for development.
|
|
||||||
- Production: `npm run build` to prepare files for distribution.
|
|
||||||
- Or run using Docker:
|
|
||||||
1. Build: `docker build -t undergroundwires/privacy.sexy:0.11.3 .`
|
|
||||||
2. Run: `docker run -it -p 8080:80 --rm --name privacy.sexy-0.11.3 undergroundwires/privacy.sexy:0.11.3`
|
|
||||||
|
|
||||||
## Architecture overview
|
## Architecture overview
|
||||||
|
|
||||||
|
|||||||
51
docs/development.md
Normal file
51
docs/development.md
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
# Development
|
||||||
|
|
||||||
|
Before your commit, a good practice is to:
|
||||||
|
|
||||||
|
1. [Run unit tests](#testing)
|
||||||
|
2. [Lint your code](#linting)
|
||||||
|
|
||||||
|
You could run other types of tests as well, but they may take longer time and overkill for your changes. All tests are executed inside a pull request.
|
||||||
|
|
||||||
|
## Commands
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
|
||||||
|
- Install node >15.x.
|
||||||
|
- Install dependencies using `npm install`.
|
||||||
|
|
||||||
|
### Testing
|
||||||
|
|
||||||
|
- Run unit tests: `npm run test:unit`
|
||||||
|
- Run integration tests: `npm run test:integration`
|
||||||
|
- Run e2e (end-to-end) tests
|
||||||
|
- Interactive mode with GUI: `npm run test:e2e`
|
||||||
|
- Headless mode without GUI: `npm run test:e2e -- --headless`
|
||||||
|
|
||||||
|
### Linting
|
||||||
|
|
||||||
|
- Lint all (recommended 💡): `npm run lint`
|
||||||
|
- Markdown: `npm run lint:md`
|
||||||
|
- Markdown consistency `npm run lint:md:consistency`
|
||||||
|
- Markdown relative URLs: `npm run lint:md:relative-urls`
|
||||||
|
- JavaScript/TypeScript: `npm run lint:eslint`
|
||||||
|
- Yaml: `npm run lint:yaml`
|
||||||
|
|
||||||
|
### Running
|
||||||
|
|
||||||
|
- Run in local server: `npm run serve`
|
||||||
|
- 💡 Meant for local development with features such as hot-reloading.
|
||||||
|
- Run using Docker:
|
||||||
|
1. Build: `docker build -t undergroundwires/privacy.sexy:latest .`
|
||||||
|
2. Run: `docker run -it -p 8080:80 --rm --name privacy.sexy undergroundwires/privacy.sexy:latest`
|
||||||
|
|
||||||
|
### Building
|
||||||
|
|
||||||
|
- Build web application: `npm run build`
|
||||||
|
- Build desktop application: `npm run electron:build`
|
||||||
|
|
||||||
|
## Recommended extensions
|
||||||
|
|
||||||
|
You should use EditorConfig to follow project style.
|
||||||
|
|
||||||
|
For Visual Studio Code, recommended extensions are defined in [`.vscode/extensions.json`](./../.vscode/extensions.json).
|
||||||
Reference in New Issue
Block a user