Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Knowledge Base Begins #103

Merged
merged 4 commits into from
Nov 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ ci_artifacts
.DS_Store
artifacts
Taskfile.yml
.obsidian
41 changes: 8 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,15 @@
## Management tasks
# datalens-backend

Running tasks:
```
task <task_name>
```
## About

This is the repository for the back-end implementation of DataLens

### Environment (`env:`)
Head over to the [Knowledge Base](kb/index.md) for documentation on this repo.

- `task env:devenv`:
Create development/testing environment (run it from a package dir)
- `task env:devenv-d`:
Create development/testing environment in detached mode (run it from a package dir)
- `task env:ensure_venv`: Command to create virtual env for the mainrepo tools.
It requires presence of .env in the mainrepo/tools.
[Code of conduct](CODE_OF_CONDUCT.md)

[Contributing](CONTRIBUTING.md)

### Generation (`gen:`)
## License

- `task gen:antlr`:
(Re-)generate ANTLR code files for formula
- `task gen:i18n-po`:
Sync/generate `.po` files for package (run it from a package dir)
- `task gen:i18n-binaries`:
Generate binary `.mo` files from `.po` files for package (run it from a package dir)


### Code quality (`cq:`)

Experimental tasks to check and fix source files.

- `task cq:fix_changed`:
Apply all auto-fixes
- `task cq:check_changed`:
Check for any non-conformity in code style/format/lint
- `task cq:fix_dir -- {single dir}`:
Apply all auto-fixes to the given dir absolute path
- `task cq:check_dir -- {single dir}`:
Check for any non-conformity in code style/format/lint in the given dir abs path
`datalens-backend` is available under the Apache 2.0 license.
6 changes: 6 additions & 0 deletions kb/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Datalens Backend Knowledge Base

Welcome to the KB!

See:
- [Repository tooling](tooling/index.md)
15 changes: 15 additions & 0 deletions kb/test_embeds.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
This is a file to test embedded diagrams.


``` plantuml
@startuml
digraph foo {
node [style=rounded]
node1 [shape=box]
node2 [fillcolor=yellow, style="rounded,filled", shape=diamond]
node3 [shape=record, label="{ a | b | c }"]

node1 -> node2 -> node3
};
@enduml
```
8 changes: 8 additions & 0 deletions kb/tooling/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Repository Tooling

This section is about the custom tooling available in this repo.

- [task commands](task_commands.md) - a set of (`make`-like) shortcuts for various commands and scripts for repository management, development, testing, etc.
- tools from `terrarium` ([README](../../terrarium/README.md)):
- [dl-git](../../terrarium/dl_gitmanager/README.md) - a wrapper for advanced git commands, for usage mainly in the CI workflow
- [dl-repo / dl-package](../../terrarium/dl_repmanager/README.md) - tools for managing and inspecting packages, their dependencies, meta-packages, etc.
47 changes: 47 additions & 0 deletions kb/tooling/task_commands.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
## Management tasks

These commands require the ``taskfile`` tool. See [this page](https://taskfile.dev/installation/)
for installation options.

Running tasks:
```
task <task_name>
```


### Environment (`env:`)

Working with the testing/development environment.

- `task env:devenv`:
Create development/testing environment (run it from a package dir)
- `task env:devenv-d`:
Create development/testing environment in detached mode (run it from a package dir)
- `task env:ensure_venv`: Command to create virtual env for the mainrepo tools.
It requires presence of .env in the mainrepo/tools.


### Generation (`gen:`)

Generating files to be used from the code.

- `task gen:antlr`:
(Re-)generate ANTLR code files for formula
- `task gen:i18n-po`:
Sync/generate `.po` files for package (run it from a package dir)
- `task gen:i18n-binaries`:
Generate binary `.mo` files from `.po` files for package (run it from a package dir)


### Code quality (`cq:`)

Checking and fixing source files.

- `task cq:fix_changed`:
Apply all auto-fixes
- `task cq:check_changed`:
Check for any non-conformity in code style/format/lint
- `task cq:fix_dir -- {single dir}`:
Apply all auto-fixes to the given dir absolute path
- `task cq:check_dir -- {single dir}`:
Check for any non-conformity in code style/format/lint in the given dir abs path
26 changes: 26 additions & 0 deletions kb/using_kb.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Working with the KB

This KB is mostly `Markdown`, but it has embedded charts.
These usually don't work out-of-the-box and might require a little additional configuration.

To check the correect rendering of embedded charts open [this file](test_embeds.md).
If your editor supports this, and everything is configured correctly,
you should see a rendered charts.

Here are two options you can use to work with this KB

## PyCharm

- Install `graphviz`.
- Install and enable the Markdown plugin in PyCharm.

In theory this should be enough, but you may find that charts give you a rendering error
about not finding "dot".
In this case find the `dot` executable in your system and copy it to `/opt/local/bin/dot`.
It should work now.

## Obsidian

- Install the `Obsidian` app
- Install the PlantUML plugin in Obsidian.
You might need to configure the path to the dot executable.
Loading