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
|
||||
dist/
|
||||
.vs
|
||||
.vscode
|
||||
.vscode/**/*
|
||||
!.vscode/extensions.json
|
||||
#Electron-builder output
|
||||
/dist_electron
|
||||
# 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.
|
||||
3. Send a pull request 👌
|
||||
|
||||
## Commands
|
||||
## Development
|
||||
|
||||
- Project setup: `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`
|
||||
- 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`
|
||||
See [docs/development.md](./docs/development.md) for Docker usage, running/building application, development best-practices along with other information related to development.
|
||||
|
||||
## 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