Initial commit
This commit is contained in:
commit
d617d3cbc8
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
# Auto detect text files and perform LF normalization
|
||||
* text=auto
|
35
C++.txt
Normal file
35
C++.txt
Normal file
|
@ -0,0 +1,35 @@
|
|||
Upgrade code: 7E57EE0B-9FF4-4A12-9776-B5B7FBBC803E
|
||||
|
||||
00. give maximum info to compiler
|
||||
01. express intent
|
||||
02. const correctness - values, refs, in-build types
|
||||
03. full logic (dont skip else after return)
|
||||
04. skip control block if possible
|
||||
05. use reference for polymorphism
|
||||
06. pointer is a nullable reference
|
||||
07. use smart pointers for ownership
|
||||
08. use RAII for cleanup on errors
|
||||
09. dont =delete move ctor (delete copy ctor instead)
|
||||
10. auto stick and auto deduce!
|
||||
11. west const
|
||||
12. noexcept false if noexcept was considered and discarded
|
||||
13. use algorithm and numeric instead of loops
|
||||
14. maybe unused to combat assert warnings in realease build
|
||||
15. nodiscard if function doesnt mutate any state
|
||||
16. mark unreachable code to draw attention
|
||||
17. dont use && and || to compose differenet semantic checks!
|
||||
18. dont bundle return points together!
|
||||
19. dont mix virtual inheritance and MFC classes
|
||||
|
||||
Èìåíîâàíèå èäåíòèôèêàòîðîâ ðåñóðñîâ
|
||||
|
||||
IXTRAD - àññîöèàöèè ôàéëîâ, ìåíþ è èêîíîâ äëÿ òèïîâ äîêóìåíòîâ
|
||||
IXTRR - èêîíêè, êàðòèíêè, êóðñîðû è ïðî÷
|
||||
IXTRC - êîììàíäû, êîíòðîëû
|
||||
IXTRD - äèàëîãè
|
||||
|
||||
IXTRE - ñîîáùåíèÿ îá îøèáêà
|
||||
IXTRS - ñòðîêè
|
||||
IXTRO - èìåíà ïàðàìåòðîâ â ðååñòðå
|
||||
|
||||
ID, IDC, AFX - èäåíòèôèêàòîðû MFC
|
9
Commit messages.txt
Normal file
9
Commit messages.txt
Normal file
|
@ -0,0 +1,9 @@
|
|||
https://chris.beams.io/posts/git-commit/
|
||||
|
||||
1. Separate subject from body with a blank line
|
||||
2. Limit the subject line to 50 characters
|
||||
3. Capitalize the subject line
|
||||
4. Do not end the subject line with a period
|
||||
5. Use the imperative mood in the subject line
|
||||
6. Wrap the body at 72 characters
|
||||
7. Use the body to explain what and why vs. how
|
33
PowerShell.txt
Normal file
33
PowerShell.txt
Normal file
|
@ -0,0 +1,33 @@
|
|||
0. Docs example
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Performs monthly data updates.
|
||||
|
||||
.DESCRIPTION
|
||||
The Update-Month.ps1 script updates the registry with new data generated
|
||||
during the past month and generates a report.
|
||||
|
||||
.PARAMETER InputPath
|
||||
Specifies the path to the CSV-based input file.
|
||||
|
||||
.PARAMETER OutputPath
|
||||
Specifies the name and path for the CSV-based output file. By default,
|
||||
MonthlyUpdates.ps1 generates a name from the date and time it runs, and
|
||||
saves the output in the local directory.
|
||||
|
||||
.INPUTS
|
||||
None. You cannot pipe objects to Update-Month.ps1.
|
||||
|
||||
.OUTPUTS
|
||||
None. Update-Month.ps1 does not generate any output.
|
||||
|
||||
.EXAMPLE
|
||||
PS> .\Update-Month.ps1
|
||||
|
||||
.EXAMPLE
|
||||
PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv
|
||||
|
||||
.EXAMPLE
|
||||
PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv -outputPath C:\Reports\2009\January.csv
|
||||
#>
|
13
PublishConceptPortal.ps1
Normal file
13
PublishConceptPortal.ps1
Normal file
|
@ -0,0 +1,13 @@
|
|||
$tmp = "gitTemp"
|
||||
$source = "Concept-Web"
|
||||
$destination = "ConceptPortal"
|
||||
|
||||
if (Test-Path -Path $tmp) {
|
||||
Remove-Item $tmp -Recurse -Force
|
||||
}
|
||||
Remove-Item -recurse $destination\* -exclude .git
|
||||
|
||||
& git clone $source $tmp
|
||||
Copy-Item $tmp\* $destination\ -Recurse -Exclude .git
|
||||
|
||||
Remove-Item $tmp\ -Recurse -Force
|
36
Python.txt
Normal file
36
Python.txt
Normal file
|
@ -0,0 +1,36 @@
|
|||
1. Use naming guidelines
|
||||
https://www.python.org/dev/peps/pep-0008/#package-and-module-names
|
||||
|
||||
2. Use docstrings
|
||||
https://www.python.org/dev/peps/pep-0257/
|
||||
|
||||
3. Basic input/output
|
||||
in_file = open("input.txt", "r", encoding="utf-8")
|
||||
lines = [line.strip() for line in in_file.readlines()]
|
||||
in_file.close()
|
||||
|
||||
# process lines
|
||||
lines = [process_line(line) for line in lines]
|
||||
|
||||
# output result
|
||||
out_file = open("output.txt", "w", encoding="utf-8")
|
||||
out_file.writelines([line + '\n' for line in lines])
|
||||
out_file.close()
|
||||
|
||||
4. Install Virtual Env
|
||||
$python -m venv $targetPath
|
||||
|
||||
5. Requirements
|
||||
$python -m pip freeze > requirements.txt
|
||||
|
||||
OR
|
||||
|
||||
$python -m pip install --user pipenv
|
||||
cd myproject
|
||||
$python -m pipenv install requests
|
||||
|
||||
6. Reset Virtual Env
|
||||
$python -m pip freeze > unins && pip uninstall -y -r unins && rm unins
|
||||
|
||||
7. Create wheels for project
|
||||
$python -m pip wheel . -w $folder
|
9
configs/.gitignore
vendored
Normal file
9
configs/.gitignore
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
.vscode
|
||||
.vs
|
||||
*.user
|
||||
*.aps
|
||||
~*
|
||||
*.pch.tmp
|
||||
*.clang.pch
|
||||
|
||||
build
|
58
configs/Dockerfile
Normal file
58
configs/Dockerfile
Normal file
|
@ -0,0 +1,58 @@
|
|||
# ubunutu is the base image
|
||||
FROM ubuntu:20.04 as cpp-builder
|
||||
LABEL version="1.0"
|
||||
LABEL author="IRBorisov iborisov@acconcept.ru"
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
# ENV TZ=Europe/Moscow
|
||||
# RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
# Install standard packages
|
||||
RUN apt-get update -qq && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
wget \
|
||||
git \
|
||||
software-properties-common \
|
||||
build-essential \
|
||||
gpg-agent \
|
||||
cmake \
|
||||
python3 \
|
||||
python3-pip \
|
||||
cppcheck
|
||||
|
||||
# Install conan
|
||||
RUN python3 -m pip install --upgrade pip setuptools && \
|
||||
python3 -m pip install conan && \
|
||||
conan --version
|
||||
|
||||
# Set compiler versions as arguments
|
||||
ARG GCC_VER="11"
|
||||
ARG LLVM_VER="14"
|
||||
|
||||
# Add GCC compiler
|
||||
RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test && \
|
||||
apt-get update -qq && \
|
||||
apt-get install -y --no-install-recommends gcc-${GCC_VER} g++-${GCC_VER} && \
|
||||
update-alternatives --install /usr/bin/gcc gcc $(which gcc-${GCC_VER}) 100 && \
|
||||
update-alternatives --install /usr/bin/g++ g++ $(which g++-${GCC_VER}) 100
|
||||
|
||||
# Add Clang compiler
|
||||
RUN wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - 2>/dev/null
|
||||
RUN add-apt-repository -y "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-${LLVM_VER} main" && \
|
||||
apt-get update -qq && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
clang-${LLVM_VER} lldb-${LLVM_VER} lld-${LLVM_VER} clangd-${LLVM_VER} \
|
||||
llvm-${LLVM_VER}-dev libclang-${LLVM_VER}-dev clang-tidy-${LLVM_VER} && \
|
||||
update-alternatives --install /usr/bin/clang clang $(which clang-${LLVM_VER}) 100 && \
|
||||
update-alternatives --install /usr/bin/clang++ clang++ $(which clang++-${LLVM_VER}) 100 && \
|
||||
update-alternatives --install /usr/bin/clang-tidy clang-tidy $(which clang-tidy-${LLVM_VER}) 1
|
||||
|
||||
# Add current cmake/ccmake, from Kitware
|
||||
RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null \
|
||||
| gpg --dearmor - | tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/null && \
|
||||
apt-add-repository 'deb https://apt.kitware.com/ubuntu/ focal main' && \
|
||||
apt-get update -qq && \
|
||||
apt-get install -y --no-install-recommends cmake cmake-curses-gui
|
||||
|
||||
# Cleanup cached apt data we don't need anymore
|
||||
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
|
6
configs/NuGet.Config
Normal file
6
configs/NuGet.Config
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<config>
|
||||
<add key="repositoryPath" value="%PACKAGEHOME%" />
|
||||
</config>
|
||||
</configuration>
|
235
configs/VSCODE_settings.json
Normal file
235
configs/VSCODE_settings.json
Normal file
|
@ -0,0 +1,235 @@
|
|||
{
|
||||
// Themes
|
||||
"workbench.colorTheme": "Default Light+",
|
||||
"editor.fontFamily": "'Fira Code', monospace",
|
||||
"editor.fontSize": 14,
|
||||
"editor.fontLigatures": true,
|
||||
"editor.fontWeight": "500",
|
||||
"terminal.integrated.fontFamily": "'Fira Code', monospace",
|
||||
"terminal.integrated.fontSize": 12,
|
||||
// "workbench.iconTheme": "",
|
||||
|
||||
// Git
|
||||
"git.autofetch": true,
|
||||
"git.enableSmartCommit": true,
|
||||
"git.openRepositoryInParentFolders": "always",
|
||||
"gitlens.codeLens.enabled": false,
|
||||
"diffEditor.ignoreTrimWhitespace": false,
|
||||
|
||||
// Indentation
|
||||
"editor.insertSpaces": true,
|
||||
"editor.tabSize": 2,
|
||||
"editor.detectIndentation": true,
|
||||
|
||||
// Wrapping
|
||||
"editor.wordWrap": "bounded",
|
||||
"editor.wrappingIndent": "same",
|
||||
"editor.wordWrapColumn": 120,
|
||||
|
||||
// Cursor
|
||||
"editor.cursorBlinking": "expand",
|
||||
"editor.cursorStyle": "line-thin",
|
||||
"editor.cursorSmoothCaretAnimation": "explicit",
|
||||
"editor.hideCursorInOverviewRuler": false,
|
||||
|
||||
// Scroll
|
||||
"editor.smoothScrolling": true,
|
||||
"editor.minimap.enabled": false,
|
||||
"editor.scrollBeyondLastLine": true,
|
||||
|
||||
// Gutter
|
||||
"editor.folding": false,
|
||||
"editor.glyphMargin": false,
|
||||
|
||||
// Breadcrumbs
|
||||
"breadcrumbs.enabled": true,
|
||||
"breadcrumbs.icons": false,
|
||||
"breadcrumbs.showKeys": false,
|
||||
"breadcrumbs.showFiles": false,
|
||||
"breadcrumbs.symbolPath": "on",
|
||||
"breadcrumbs.showArrays": true,
|
||||
"breadcrumbs.showEvents": true,
|
||||
"breadcrumbs.showFields": true,
|
||||
"breadcrumbs.showClasses": true,
|
||||
"breadcrumbs.showMethods": true,
|
||||
"breadcrumbs.showBooleans": true,
|
||||
"breadcrumbs.showFunctions": true,
|
||||
"breadcrumbs.showConstants": true,
|
||||
"breadcrumbs.showEnumMembers": true,
|
||||
"breadcrumbs.showConstructors": true,
|
||||
|
||||
// Autosave
|
||||
"files.autoSave": "onFocusChange",
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll.eslint": "explicit"
|
||||
},
|
||||
"eslint.codeActionsOnSave.rules": null,
|
||||
"editor.formatOnSave": true,
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||
|
||||
// Quotes
|
||||
"html.completion.attributeDefaultValue": "singlequotes",
|
||||
"typescript.preferences.quoteStyle": "single",
|
||||
"javascript.preferences.quoteStyle": "single",
|
||||
|
||||
// Autocompletion
|
||||
"html.autoClosingTags": true,
|
||||
"javascript.autoClosingTags": true,
|
||||
"typescript.autoClosingTags": true,
|
||||
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
|
||||
"workbench.editor.empty.hint": "hidden",
|
||||
"editor.gotoLocation.multipleDefinitions": "gotoAndPeek",
|
||||
|
||||
// Interactions
|
||||
"workbench.startupEditor": "newUntitledFile",
|
||||
"editor.suggestSelection": "first",
|
||||
"editor.linkedEditing": true,
|
||||
"editor.quickSuggestionsDelay": 0,
|
||||
"explorer.confirmDragAndDrop": false,
|
||||
"explorer.confirmDelete": false,
|
||||
"security.workspace.trust.untrustedFiles": "open",
|
||||
"editor.inlineSuggest.enabled": true,
|
||||
"window.confirmBeforeClose": "keyboardOnly",
|
||||
|
||||
// Appearance
|
||||
"editor.renderControlCharacters": false,
|
||||
"editor.bracketPairColorization.enabled": true,
|
||||
"editor.scrollbar.horizontal": "visible",
|
||||
"editor.scrollbar.vertical": "visible",
|
||||
"workbench.editor.highlightModifiedTabs": true,
|
||||
"window.density.editorTabHeight": "compact",
|
||||
"workbench.activityBar.location": "top",
|
||||
"editor.accessibilitySupport": "off",
|
||||
"window.commandCenter": false,
|
||||
"workbench.layoutControl.enabled": false,
|
||||
"explorer.compactFolders": false,
|
||||
"workbench.editor.tabSizing": "fit",
|
||||
|
||||
// File associations
|
||||
"workbench.editorAssociations": {
|
||||
"*.ipynb": "jupyter-notebook"
|
||||
},
|
||||
|
||||
// Frontend
|
||||
"css.lint.unknownAtRules": "ignore",
|
||||
"typescript.updateImportsOnFileMove.enabled": "always",
|
||||
"javascript.updateImportsOnFileMove.enabled": "always",
|
||||
"javascript.format.semicolons": "insert",
|
||||
"typescript.format.semicolons": "insert",
|
||||
"colorize.colorized_colors": ["BROWSERS_COLORS", "HEXA", "RGB", "HSL"],
|
||||
|
||||
// Python
|
||||
"python.globalModuleInstallation": true,
|
||||
"python.testing.pytestEnabled": true,
|
||||
"python.testing.unittestEnabled": true,
|
||||
"python.testing.cwd": "${workspaceFolder}",
|
||||
"python.analysis.completeFunctionParens": true,
|
||||
"[python]": {
|
||||
"editor.formatOnType": true,
|
||||
"editor.tabSize": 4
|
||||
},
|
||||
"pylint.importStrategy": "fromEnvironment",
|
||||
"pylint.args": ["--extension-pkg-allowlist=pyconcept"],
|
||||
"python.analysis.autoImportCompletions": true,
|
||||
"python.analysis.packageIndexDepths": [
|
||||
{
|
||||
"name": "django",
|
||||
"depth": 4
|
||||
},
|
||||
{
|
||||
"name": "djangorestframework",
|
||||
"depth": 2
|
||||
}
|
||||
],
|
||||
"jupyter.askForKernelRestart": false,
|
||||
"notebook.cellToolbarLocation": {
|
||||
"default": "right",
|
||||
"jupyter-notebook": "left"
|
||||
},
|
||||
"jupyter.interactiveWindow.creationMode": "perFile",
|
||||
|
||||
// Powershell
|
||||
"powershell.pester.debugOutputVerbosity": "Detailed",
|
||||
|
||||
// CMake
|
||||
"cmake.configureOnOpen": true,
|
||||
"[cmake]": {},
|
||||
|
||||
// XML
|
||||
"[xslt]": {
|
||||
"editor.semanticHighlighting.enabled": true
|
||||
},
|
||||
|
||||
// Hide folders
|
||||
"files.exclude": {
|
||||
"**/.next": true,
|
||||
"**/node_modules": true,
|
||||
"**/.mypy_cache": true,
|
||||
"**/__pycache__": true,
|
||||
"**/.pytest_cache": true,
|
||||
"**/.coverage": true,
|
||||
"**/htmlcov": true,
|
||||
"**/venv": true,
|
||||
"**/dist": true
|
||||
},
|
||||
|
||||
// Spelling
|
||||
"cSpell.enabled": true,
|
||||
"cSpell.language": "en,ru",
|
||||
"cSpell.userWords": [],
|
||||
"cSpell.enableFiletypes": ["jsx", "tsx", "ts", "js", "h", "hpp", "cpp", "py"],
|
||||
|
||||
// Syntax Highlighting
|
||||
"editor.unicodeHighlight.ambiguousCharacters": false,
|
||||
"syntax.debugHover": true,
|
||||
"editor.semanticTokenColorCustomizations": {
|
||||
"[Default Light+]": {
|
||||
"enabled": true,
|
||||
"rules": {
|
||||
"variable.declaration": { "bold": true },
|
||||
"parameter": "#ff32f5"
|
||||
}
|
||||
}
|
||||
},
|
||||
"editor.tokenColorCustomizations": {
|
||||
"textMateRules": [
|
||||
{
|
||||
"scope": "entity.name.tag",
|
||||
"settings": {
|
||||
"foreground": "#ac1bf0"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"syntax.highlightTerms": [
|
||||
"type",
|
||||
"scope",
|
||||
"function",
|
||||
"variable",
|
||||
"number",
|
||||
"string",
|
||||
"comment",
|
||||
"constant",
|
||||
"directive",
|
||||
"control",
|
||||
"operator",
|
||||
"modifier",
|
||||
"punctuation"
|
||||
],
|
||||
"syntax.highlightLanguages": [
|
||||
"c",
|
||||
"cpp",
|
||||
"python",
|
||||
"typescript",
|
||||
"typescriptreact",
|
||||
"javascript",
|
||||
"go",
|
||||
"rust",
|
||||
"php",
|
||||
"ruby",
|
||||
"shellscript",
|
||||
"ocaml",
|
||||
"lua"
|
||||
],
|
||||
"redhat.telemetry.enabled": false
|
||||
}
|
658
configs/VSCustom.ruleset
Normal file
658
configs/VSCustom.ruleset
Normal file
|
@ -0,0 +1,658 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RuleSet Name="New Rule Set" Description=" " ToolsVersion="16.0">
|
||||
<Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
|
||||
<Rule Id="CA1000" Action="Warning" />
|
||||
<Rule Id="CA1001" Action="Warning" />
|
||||
<Rule Id="CA1002" Action="Warning" />
|
||||
<Rule Id="CA1003" Action="Warning" />
|
||||
<Rule Id="CA1004" Action="Warning" />
|
||||
<Rule Id="CA1005" Action="Warning" />
|
||||
<Rule Id="CA1006" Action="Warning" />
|
||||
<Rule Id="CA1007" Action="Warning" />
|
||||
<Rule Id="CA1008" Action="Warning" />
|
||||
<Rule Id="CA1009" Action="Warning" />
|
||||
<Rule Id="CA1010" Action="Warning" />
|
||||
<Rule Id="CA1011" Action="Warning" />
|
||||
<Rule Id="CA1012" Action="Warning" />
|
||||
<Rule Id="CA1013" Action="Warning" />
|
||||
<Rule Id="CA1014" Action="Warning" />
|
||||
<Rule Id="CA1016" Action="Warning" />
|
||||
<Rule Id="CA1017" Action="Warning" />
|
||||
<Rule Id="CA1018" Action="Warning" />
|
||||
<Rule Id="CA1019" Action="Warning" />
|
||||
<Rule Id="CA1020" Action="Warning" />
|
||||
<Rule Id="CA1021" Action="Warning" />
|
||||
<Rule Id="CA1023" Action="Warning" />
|
||||
<Rule Id="CA1024" Action="Warning" />
|
||||
<Rule Id="CA1025" Action="Warning" />
|
||||
<Rule Id="CA1026" Action="Warning" />
|
||||
<Rule Id="CA1027" Action="Warning" />
|
||||
<Rule Id="CA1028" Action="Warning" />
|
||||
<Rule Id="CA1030" Action="Warning" />
|
||||
<Rule Id="CA1031" Action="Warning" />
|
||||
<Rule Id="CA1032" Action="Warning" />
|
||||
<Rule Id="CA1033" Action="Warning" />
|
||||
<Rule Id="CA1034" Action="Warning" />
|
||||
<Rule Id="CA1035" Action="Warning" />
|
||||
<Rule Id="CA1036" Action="Warning" />
|
||||
<Rule Id="CA1038" Action="Warning" />
|
||||
<Rule Id="CA1039" Action="Warning" />
|
||||
<Rule Id="CA1040" Action="Warning" />
|
||||
<Rule Id="CA1041" Action="Warning" />
|
||||
<Rule Id="CA1043" Action="Warning" />
|
||||
<Rule Id="CA1044" Action="Warning" />
|
||||
<Rule Id="CA1045" Action="Warning" />
|
||||
<Rule Id="CA1046" Action="Warning" />
|
||||
<Rule Id="CA1047" Action="Warning" />
|
||||
<Rule Id="CA1048" Action="Warning" />
|
||||
<Rule Id="CA1049" Action="Warning" />
|
||||
<Rule Id="CA1050" Action="Warning" />
|
||||
<Rule Id="CA1051" Action="Warning" />
|
||||
<Rule Id="CA1052" Action="Warning" />
|
||||
<Rule Id="CA1053" Action="Warning" />
|
||||
<Rule Id="CA1054" Action="Warning" />
|
||||
<Rule Id="CA1055" Action="Warning" />
|
||||
<Rule Id="CA1056" Action="Warning" />
|
||||
<Rule Id="CA1057" Action="Warning" />
|
||||
<Rule Id="CA1058" Action="Warning" />
|
||||
<Rule Id="CA1059" Action="Warning" />
|
||||
<Rule Id="CA1060" Action="Warning" />
|
||||
<Rule Id="CA1061" Action="Warning" />
|
||||
<Rule Id="CA1062" Action="Warning" />
|
||||
<Rule Id="CA1063" Action="Warning" />
|
||||
<Rule Id="CA1064" Action="Warning" />
|
||||
<Rule Id="CA1065" Action="Warning" />
|
||||
<Rule Id="CA1300" Action="Warning" />
|
||||
<Rule Id="CA1301" Action="Warning" />
|
||||
<Rule Id="CA1302" Action="Warning" />
|
||||
<Rule Id="CA1303" Action="Warning" />
|
||||
<Rule Id="CA1304" Action="Warning" />
|
||||
<Rule Id="CA1305" Action="Warning" />
|
||||
<Rule Id="CA1306" Action="Warning" />
|
||||
<Rule Id="CA1307" Action="Warning" />
|
||||
<Rule Id="CA1308" Action="Warning" />
|
||||
<Rule Id="CA1309" Action="Warning" />
|
||||
<Rule Id="CA1400" Action="Warning" />
|
||||
<Rule Id="CA1401" Action="Warning" />
|
||||
<Rule Id="CA1402" Action="Warning" />
|
||||
<Rule Id="CA1403" Action="Warning" />
|
||||
<Rule Id="CA1404" Action="Warning" />
|
||||
<Rule Id="CA1405" Action="Warning" />
|
||||
<Rule Id="CA1406" Action="Warning" />
|
||||
<Rule Id="CA1407" Action="Warning" />
|
||||
<Rule Id="CA1408" Action="Warning" />
|
||||
<Rule Id="CA1409" Action="Warning" />
|
||||
<Rule Id="CA1410" Action="Warning" />
|
||||
<Rule Id="CA1411" Action="Warning" />
|
||||
<Rule Id="CA1412" Action="Warning" />
|
||||
<Rule Id="CA1413" Action="Warning" />
|
||||
<Rule Id="CA1414" Action="Warning" />
|
||||
<Rule Id="CA1415" Action="Warning" />
|
||||
<Rule Id="CA1500" Action="Warning" />
|
||||
<Rule Id="CA1501" Action="Warning" />
|
||||
<Rule Id="CA1502" Action="Warning" />
|
||||
<Rule Id="CA1504" Action="Warning" />
|
||||
<Rule Id="CA1505" Action="Warning" />
|
||||
<Rule Id="CA1506" Action="Warning" />
|
||||
<Rule Id="CA1600" Action="Warning" />
|
||||
<Rule Id="CA1601" Action="Warning" />
|
||||
<Rule Id="CA1700" Action="Warning" />
|
||||
<Rule Id="CA1701" Action="Warning" />
|
||||
<Rule Id="CA1702" Action="Warning" />
|
||||
<Rule Id="CA1703" Action="Warning" />
|
||||
<Rule Id="CA1704" Action="Warning" />
|
||||
<Rule Id="CA1707" Action="Warning" />
|
||||
<Rule Id="CA1708" Action="Warning" />
|
||||
<Rule Id="CA1709" Action="Warning" />
|
||||
<Rule Id="CA1710" Action="Warning" />
|
||||
<Rule Id="CA1711" Action="Warning" />
|
||||
<Rule Id="CA1712" Action="Warning" />
|
||||
<Rule Id="CA1713" Action="Warning" />
|
||||
<Rule Id="CA1714" Action="Warning" />
|
||||
<Rule Id="CA1715" Action="Warning" />
|
||||
<Rule Id="CA1716" Action="Warning" />
|
||||
<Rule Id="CA1717" Action="Warning" />
|
||||
<Rule Id="CA1719" Action="Warning" />
|
||||
<Rule Id="CA1720" Action="Warning" />
|
||||
<Rule Id="CA1721" Action="Warning" />
|
||||
<Rule Id="CA1722" Action="Warning" />
|
||||
<Rule Id="CA1724" Action="Warning" />
|
||||
<Rule Id="CA1725" Action="Warning" />
|
||||
<Rule Id="CA1726" Action="Warning" />
|
||||
<Rule Id="CA1800" Action="Warning" />
|
||||
<Rule Id="CA1801" Action="Warning" />
|
||||
<Rule Id="CA1802" Action="Warning" />
|
||||
<Rule Id="CA1804" Action="Warning" />
|
||||
<Rule Id="CA1806" Action="Warning" />
|
||||
<Rule Id="CA1809" Action="Warning" />
|
||||
<Rule Id="CA1810" Action="Warning" />
|
||||
<Rule Id="CA1811" Action="Warning" />
|
||||
<Rule Id="CA1812" Action="Warning" />
|
||||
<Rule Id="CA1813" Action="Warning" />
|
||||
<Rule Id="CA1814" Action="Warning" />
|
||||
<Rule Id="CA1815" Action="Warning" />
|
||||
<Rule Id="CA1816" Action="Warning" />
|
||||
<Rule Id="CA1819" Action="Warning" />
|
||||
<Rule Id="CA1820" Action="Warning" />
|
||||
<Rule Id="CA1821" Action="Warning" />
|
||||
<Rule Id="CA1822" Action="Warning" />
|
||||
<Rule Id="CA1823" Action="Warning" />
|
||||
<Rule Id="CA1824" Action="Warning" />
|
||||
<Rule Id="CA1900" Action="Warning" />
|
||||
<Rule Id="CA1901" Action="Warning" />
|
||||
<Rule Id="CA1903" Action="Warning" />
|
||||
<Rule Id="CA2000" Action="Warning" />
|
||||
<Rule Id="CA2001" Action="Warning" />
|
||||
<Rule Id="CA2002" Action="Warning" />
|
||||
<Rule Id="CA2003" Action="Warning" />
|
||||
<Rule Id="CA2004" Action="Warning" />
|
||||
<Rule Id="CA2006" Action="Warning" />
|
||||
<Rule Id="CA2100" Action="Warning" />
|
||||
<Rule Id="CA2101" Action="Warning" />
|
||||
<Rule Id="CA2102" Action="Warning" />
|
||||
<Rule Id="CA2103" Action="Warning" />
|
||||
<Rule Id="CA2104" Action="Warning" />
|
||||
<Rule Id="CA2105" Action="Warning" />
|
||||
<Rule Id="CA2106" Action="Warning" />
|
||||
<Rule Id="CA2107" Action="Warning" />
|
||||
<Rule Id="CA2108" Action="Warning" />
|
||||
<Rule Id="CA2109" Action="Warning" />
|
||||
<Rule Id="CA2111" Action="Warning" />
|
||||
<Rule Id="CA2112" Action="Warning" />
|
||||
<Rule Id="CA2114" Action="Warning" />
|
||||
<Rule Id="CA2115" Action="Warning" />
|
||||
<Rule Id="CA2116" Action="Warning" />
|
||||
<Rule Id="CA2117" Action="Warning" />
|
||||
<Rule Id="CA2118" Action="Warning" />
|
||||
<Rule Id="CA2119" Action="Warning" />
|
||||
<Rule Id="CA2120" Action="Warning" />
|
||||
<Rule Id="CA2121" Action="Warning" />
|
||||
<Rule Id="CA2122" Action="Warning" />
|
||||
<Rule Id="CA2123" Action="Warning" />
|
||||
<Rule Id="CA2124" Action="Warning" />
|
||||
<Rule Id="CA2126" Action="Warning" />
|
||||
<Rule Id="CA2130" Action="Warning" />
|
||||
<Rule Id="CA2131" Action="Warning" />
|
||||
<Rule Id="CA2132" Action="Warning" />
|
||||
<Rule Id="CA2133" Action="Warning" />
|
||||
<Rule Id="CA2134" Action="Warning" />
|
||||
<Rule Id="CA2135" Action="Warning" />
|
||||
<Rule Id="CA2136" Action="Warning" />
|
||||
<Rule Id="CA2137" Action="Warning" />
|
||||
<Rule Id="CA2138" Action="Warning" />
|
||||
<Rule Id="CA2139" Action="Warning" />
|
||||
<Rule Id="CA2140" Action="Warning" />
|
||||
<Rule Id="CA2141" Action="Warning" />
|
||||
<Rule Id="CA2142" Action="Warning" />
|
||||
<Rule Id="CA2143" Action="Warning" />
|
||||
<Rule Id="CA2144" Action="Warning" />
|
||||
<Rule Id="CA2145" Action="Warning" />
|
||||
<Rule Id="CA2146" Action="Warning" />
|
||||
<Rule Id="CA2147" Action="Warning" />
|
||||
<Rule Id="CA2149" Action="Warning" />
|
||||
<Rule Id="CA2151" Action="Warning" />
|
||||
<Rule Id="CA2200" Action="Warning" />
|
||||
<Rule Id="CA2201" Action="Warning" />
|
||||
<Rule Id="CA2202" Action="Warning" />
|
||||
<Rule Id="CA2204" Action="Warning" />
|
||||
<Rule Id="CA2205" Action="Warning" />
|
||||
<Rule Id="CA2207" Action="Warning" />
|
||||
<Rule Id="CA2208" Action="Warning" />
|
||||
<Rule Id="CA2210" Action="Warning" />
|
||||
<Rule Id="CA2211" Action="Warning" />
|
||||
<Rule Id="CA2212" Action="Warning" />
|
||||
<Rule Id="CA2213" Action="Warning" />
|
||||
<Rule Id="CA2214" Action="Warning" />
|
||||
<Rule Id="CA2215" Action="Warning" />
|
||||
<Rule Id="CA2216" Action="Warning" />
|
||||
<Rule Id="CA2217" Action="Warning" />
|
||||
<Rule Id="CA2218" Action="Warning" />
|
||||
<Rule Id="CA2219" Action="Warning" />
|
||||
<Rule Id="CA2220" Action="Warning" />
|
||||
<Rule Id="CA2221" Action="Warning" />
|
||||
<Rule Id="CA2222" Action="Warning" />
|
||||
<Rule Id="CA2223" Action="Warning" />
|
||||
<Rule Id="CA2224" Action="Warning" />
|
||||
<Rule Id="CA2225" Action="Warning" />
|
||||
<Rule Id="CA2226" Action="Warning" />
|
||||
<Rule Id="CA2227" Action="Warning" />
|
||||
<Rule Id="CA2228" Action="Warning" />
|
||||
<Rule Id="CA2229" Action="Warning" />
|
||||
<Rule Id="CA2230" Action="Warning" />
|
||||
<Rule Id="CA2231" Action="Warning" />
|
||||
<Rule Id="CA2232" Action="Warning" />
|
||||
<Rule Id="CA2233" Action="Warning" />
|
||||
<Rule Id="CA2234" Action="Warning" />
|
||||
<Rule Id="CA2235" Action="Warning" />
|
||||
<Rule Id="CA2236" Action="Warning" />
|
||||
<Rule Id="CA2237" Action="Warning" />
|
||||
<Rule Id="CA2238" Action="Warning" />
|
||||
<Rule Id="CA2239" Action="Warning" />
|
||||
<Rule Id="CA2240" Action="Warning" />
|
||||
<Rule Id="CA2241" Action="Warning" />
|
||||
<Rule Id="CA2242" Action="Warning" />
|
||||
<Rule Id="CA2243" Action="Warning" />
|
||||
<Rule Id="CA5122" Action="Warning" />
|
||||
</Rules>
|
||||
<Rules AnalyzerId="Microsoft.Analyzers.NativeCodeAnalysis" RuleNamespace="Microsoft.Rules.Native">
|
||||
<Rule Id="C26100" Action="Warning" />
|
||||
<Rule Id="C26101" Action="Warning" />
|
||||
<Rule Id="C26102" Action="Warning" />
|
||||
<Rule Id="C26105" Action="Warning" />
|
||||
<Rule Id="C26106" Action="Warning" />
|
||||
<Rule Id="C26110" Action="Warning" />
|
||||
<Rule Id="C26111" Action="Warning" />
|
||||
<Rule Id="C26112" Action="Warning" />
|
||||
<Rule Id="C26115" Action="Warning" />
|
||||
<Rule Id="C26116" Action="Warning" />
|
||||
<Rule Id="C26117" Action="Warning" />
|
||||
<Rule Id="C26130" Action="Warning" />
|
||||
<Rule Id="C26138" Action="Warning" />
|
||||
<Rule Id="C26140" Action="Warning" />
|
||||
<Rule Id="C26160" Action="Warning" />
|
||||
<Rule Id="C26165" Action="Warning" />
|
||||
<Rule Id="C26166" Action="Warning" />
|
||||
<Rule Id="C26167" Action="Warning" />
|
||||
<Rule Id="C26400" Action="Warning" />
|
||||
<Rule Id="C26401" Action="Warning" />
|
||||
<Rule Id="C26402" Action="Warning" />
|
||||
<Rule Id="C26403" Action="Warning" />
|
||||
<Rule Id="C26404" Action="Warning" />
|
||||
<Rule Id="C26405" Action="Warning" />
|
||||
<Rule Id="C26406" Action="Warning" />
|
||||
<Rule Id="C26407" Action="Warning" />
|
||||
<Rule Id="C26408" Action="Warning" />
|
||||
<Rule Id="C26410" Action="Warning" />
|
||||
<Rule Id="C26411" Action="Warning" />
|
||||
<Rule Id="C26414" Action="Warning" />
|
||||
<Rule Id="C26415" Action="Warning" />
|
||||
<Rule Id="C26416" Action="Warning" />
|
||||
<Rule Id="C26417" Action="Warning" />
|
||||
<Rule Id="C26418" Action="Warning" />
|
||||
<Rule Id="C26426" Action="Warning" />
|
||||
<Rule Id="C26427" Action="Warning" />
|
||||
<Rule Id="C26430" Action="Warning" />
|
||||
<Rule Id="C26431" Action="Warning" />
|
||||
<Rule Id="C26435" Action="Warning" />
|
||||
<Rule Id="C26436" Action="Warning" />
|
||||
<Rule Id="C26437" Action="Warning" />
|
||||
<Rule Id="C26438" Action="Warning" />
|
||||
<Rule Id="C26439" Action="Warning" />
|
||||
<Rule Id="C26440" Action="Warning" />
|
||||
<Rule Id="C26441" Action="Warning" />
|
||||
<Rule Id="C26444" Action="Warning" />
|
||||
<Rule Id="C26445" Action="Warning" />
|
||||
<Rule Id="C26446" Action="Warning" />
|
||||
<Rule Id="C26447" Action="Warning" />
|
||||
<Rule Id="C26448" Action="Warning" />
|
||||
<Rule Id="C26449" Action="Warning" />
|
||||
<Rule Id="C26450" Action="Warning" />
|
||||
<Rule Id="C26451" Action="Warning" />
|
||||
<Rule Id="C26452" Action="Warning" />
|
||||
<Rule Id="C26453" Action="Warning" />
|
||||
<Rule Id="C26454" Action="Warning" />
|
||||
<Rule Id="C26456" Action="Warning" />
|
||||
<Rule Id="C26459" Action="Warning" />
|
||||
<Rule Id="C26460" Action="Warning" />
|
||||
<Rule Id="C26462" Action="Warning" />
|
||||
<Rule Id="C26463" Action="Warning" />
|
||||
<Rule Id="C26464" Action="Warning" />
|
||||
<Rule Id="C26465" Action="Warning" />
|
||||
<Rule Id="C26466" Action="Warning" />
|
||||
<Rule Id="C26471" Action="Warning" />
|
||||
<Rule Id="C26473" Action="Warning" />
|
||||
<Rule Id="C26474" Action="Warning" />
|
||||
<Rule Id="C26475" Action="Warning" />
|
||||
<Rule Id="C26476" Action="Warning" />
|
||||
<Rule Id="C26481" Action="Warning" />
|
||||
<Rule Id="C26482" Action="Warning" />
|
||||
<Rule Id="C26483" Action="Warning" />
|
||||
<Rule Id="C26485" Action="Warning" />
|
||||
<Rule Id="C26491" Action="Warning" />
|
||||
<Rule Id="C26492" Action="Warning" />
|
||||
<Rule Id="C26493" Action="Warning" />
|
||||
<Rule Id="C26494" Action="Warning" />
|
||||
<Rule Id="C26495" Action="Warning" />
|
||||
<Rule Id="C26496" Action="Warning" />
|
||||
<Rule Id="C26497" Action="Warning" />
|
||||
<Rule Id="C26498" Action="Warning" />
|
||||
<Rule Id="C26800" Action="Warning" />
|
||||
<Rule Id="C26810" Action="Warning" />
|
||||
<Rule Id="C26811" Action="Warning" />
|
||||
<Rule Id="C28020" Action="Warning" />
|
||||
<Rule Id="C28021" Action="Warning" />
|
||||
<Rule Id="C28022" Action="Warning" />
|
||||
<Rule Id="C28023" Action="Warning" />
|
||||
<Rule Id="C28024" Action="Warning" />
|
||||
<Rule Id="C28039" Action="Warning" />
|
||||
<Rule Id="C28101" Action="Warning" />
|
||||
<Rule Id="C28103" Action="Warning" />
|
||||
<Rule Id="C28104" Action="Warning" />
|
||||
<Rule Id="C28105" Action="Warning" />
|
||||
<Rule Id="C28106" Action="Warning" />
|
||||
<Rule Id="C28107" Action="Warning" />
|
||||
<Rule Id="C28108" Action="Warning" />
|
||||
<Rule Id="C28109" Action="Warning" />
|
||||
<Rule Id="C28110" Action="Warning" />
|
||||
<Rule Id="C28111" Action="Warning" />
|
||||
<Rule Id="C28112" Action="Warning" />
|
||||
<Rule Id="C28113" Action="Warning" />
|
||||
<Rule Id="C28114" Action="Warning" />
|
||||
<Rule Id="C28120" Action="Warning" />
|
||||
<Rule Id="C28121" Action="Warning" />
|
||||
<Rule Id="C28122" Action="Warning" />
|
||||
<Rule Id="C28123" Action="Warning" />
|
||||
<Rule Id="C28124" Action="Warning" />
|
||||
<Rule Id="C28125" Action="Warning" />
|
||||
<Rule Id="C28126" Action="Warning" />
|
||||
<Rule Id="C28127" Action="Warning" />
|
||||
<Rule Id="C28128" Action="Warning" />
|
||||
<Rule Id="C28129" Action="Warning" />
|
||||
<Rule Id="C28131" Action="Warning" />
|
||||
<Rule Id="C28132" Action="Warning" />
|
||||
<Rule Id="C28133" Action="Warning" />
|
||||
<Rule Id="C28134" Action="Warning" />
|
||||
<Rule Id="C28135" Action="Warning" />
|
||||
<Rule Id="C28137" Action="Warning" />
|
||||
<Rule Id="C28138" Action="Warning" />
|
||||
<Rule Id="C28141" Action="Warning" />
|
||||
<Rule Id="C28143" Action="Warning" />
|
||||
<Rule Id="C28144" Action="Warning" />
|
||||
<Rule Id="C28145" Action="Warning" />
|
||||
<Rule Id="C28146" Action="Warning" />
|
||||
<Rule Id="C28147" Action="Warning" />
|
||||
<Rule Id="C28150" Action="Warning" />
|
||||
<Rule Id="C28151" Action="Warning" />
|
||||
<Rule Id="C28152" Action="Warning" />
|
||||
<Rule Id="C28153" Action="Warning" />
|
||||
<Rule Id="C28156" Action="Warning" />
|
||||
<Rule Id="C28157" Action="Warning" />
|
||||
<Rule Id="C28158" Action="Warning" />
|
||||
<Rule Id="C28159" Action="Warning" />
|
||||
<Rule Id="C28160" Action="Warning" />
|
||||
<Rule Id="C28161" Action="Warning" />
|
||||
<Rule Id="C28162" Action="Warning" />
|
||||
<Rule Id="C28163" Action="Warning" />
|
||||
<Rule Id="C28164" Action="Warning" />
|
||||
<Rule Id="C28165" Action="Warning" />
|
||||
<Rule Id="C28166" Action="Warning" />
|
||||
<Rule Id="C28167" Action="Warning" />
|
||||
<Rule Id="C28168" Action="Warning" />
|
||||
<Rule Id="C28169" Action="Warning" />
|
||||
<Rule Id="C28170" Action="Warning" />
|
||||
<Rule Id="C28171" Action="Warning" />
|
||||
<Rule Id="C28172" Action="Warning" />
|
||||
<Rule Id="C28173" Action="Warning" />
|
||||
<Rule Id="C28175" Action="Warning" />
|
||||
<Rule Id="C28176" Action="Warning" />
|
||||
<Rule Id="C28182" Action="Warning" />
|
||||
<Rule Id="C28183" Action="Warning" />
|
||||
<Rule Id="C28193" Action="Warning" />
|
||||
<Rule Id="C28194" Action="Warning" />
|
||||
<Rule Id="C28195" Action="Warning" />
|
||||
<Rule Id="C28196" Action="Warning" />
|
||||
<Rule Id="C28197" Action="Warning" />
|
||||
<Rule Id="C28198" Action="Warning" />
|
||||
<Rule Id="C28199" Action="Warning" />
|
||||
<Rule Id="C28202" Action="Warning" />
|
||||
<Rule Id="C28203" Action="Warning" />
|
||||
<Rule Id="C28204" Action="Warning" />
|
||||
<Rule Id="C28205" Action="Warning" />
|
||||
<Rule Id="C28206" Action="Warning" />
|
||||
<Rule Id="C28207" Action="Warning" />
|
||||
<Rule Id="C28208" Action="Warning" />
|
||||
<Rule Id="C28209" Action="Warning" />
|
||||
<Rule Id="C28210" Action="Warning" />
|
||||
<Rule Id="C28211" Action="Warning" />
|
||||
<Rule Id="C28212" Action="Warning" />
|
||||
<Rule Id="C28213" Action="Warning" />
|
||||
<Rule Id="C28214" Action="Warning" />
|
||||
<Rule Id="C28215" Action="Warning" />
|
||||
<Rule Id="C28216" Action="Warning" />
|
||||
<Rule Id="C28217" Action="Warning" />
|
||||
<Rule Id="C28218" Action="Warning" />
|
||||
<Rule Id="C28219" Action="Warning" />
|
||||
<Rule Id="C28220" Action="Warning" />
|
||||
<Rule Id="C28221" Action="Warning" />
|
||||
<Rule Id="C28222" Action="Warning" />
|
||||
<Rule Id="C28223" Action="Warning" />
|
||||
<Rule Id="C28224" Action="Warning" />
|
||||
<Rule Id="C28225" Action="Warning" />
|
||||
<Rule Id="C28226" Action="Warning" />
|
||||
<Rule Id="C28227" Action="Warning" />
|
||||
<Rule Id="C28228" Action="Warning" />
|
||||
<Rule Id="C28229" Action="Warning" />
|
||||
<Rule Id="C28230" Action="Warning" />
|
||||
<Rule Id="C28231" Action="Warning" />
|
||||
<Rule Id="C28232" Action="Warning" />
|
||||
<Rule Id="C28233" Action="Warning" />
|
||||
<Rule Id="C28234" Action="Warning" />
|
||||
<Rule Id="C28235" Action="Warning" />
|
||||
<Rule Id="C28236" Action="Warning" />
|
||||
<Rule Id="C28237" Action="Warning" />
|
||||
<Rule Id="C28238" Action="Warning" />
|
||||
<Rule Id="C28239" Action="Warning" />
|
||||
<Rule Id="C28240" Action="Warning" />
|
||||
<Rule Id="C28241" Action="Warning" />
|
||||
<Rule Id="C28243" Action="Warning" />
|
||||
<Rule Id="C28244" Action="Warning" />
|
||||
<Rule Id="C28245" Action="Warning" />
|
||||
<Rule Id="C28246" Action="Warning" />
|
||||
<Rule Id="C28250" Action="Warning" />
|
||||
<Rule Id="C28251" Action="Warning" />
|
||||
<Rule Id="C28252" Action="Warning" />
|
||||
<Rule Id="C28253" Action="Warning" />
|
||||
<Rule Id="C28254" Action="Warning" />
|
||||
<Rule Id="C28260" Action="Warning" />
|
||||
<Rule Id="C28262" Action="Warning" />
|
||||
<Rule Id="C28263" Action="Warning" />
|
||||
<Rule Id="C28266" Action="Warning" />
|
||||
<Rule Id="C28267" Action="Warning" />
|
||||
<Rule Id="C28272" Action="Warning" />
|
||||
<Rule Id="C28273" Action="Warning" />
|
||||
<Rule Id="C28275" Action="Warning" />
|
||||
<Rule Id="C28278" Action="Warning" />
|
||||
<Rule Id="C28279" Action="Warning" />
|
||||
<Rule Id="C28280" Action="Warning" />
|
||||
<Rule Id="C28282" Action="Warning" />
|
||||
<Rule Id="C28283" Action="Warning" />
|
||||
<Rule Id="C28284" Action="Warning" />
|
||||
<Rule Id="C28285" Action="Warning" />
|
||||
<Rule Id="C28286" Action="Warning" />
|
||||
<Rule Id="C28287" Action="Warning" />
|
||||
<Rule Id="C28288" Action="Warning" />
|
||||
<Rule Id="C28289" Action="Warning" />
|
||||
<Rule Id="C28290" Action="Warning" />
|
||||
<Rule Id="C28291" Action="Warning" />
|
||||
<Rule Id="C28300" Action="Warning" />
|
||||
<Rule Id="C28301" Action="Warning" />
|
||||
<Rule Id="C28302" Action="Warning" />
|
||||
<Rule Id="C28303" Action="Warning" />
|
||||
<Rule Id="C28304" Action="Warning" />
|
||||
<Rule Id="C28305" Action="Warning" />
|
||||
<Rule Id="C28306" Action="Warning" />
|
||||
<Rule Id="C28307" Action="Warning" />
|
||||
<Rule Id="C28308" Action="Warning" />
|
||||
<Rule Id="C28309" Action="Warning" />
|
||||
<Rule Id="C28350" Action="Warning" />
|
||||
<Rule Id="C28351" Action="Warning" />
|
||||
<Rule Id="C28601" Action="Warning" />
|
||||
<Rule Id="C28602" Action="Warning" />
|
||||
<Rule Id="C28604" Action="Warning" />
|
||||
<Rule Id="C28615" Action="Warning" />
|
||||
<Rule Id="C28616" Action="Warning" />
|
||||
<Rule Id="C28617" Action="Warning" />
|
||||
<Rule Id="C28623" Action="Warning" />
|
||||
<Rule Id="C28624" Action="Warning" />
|
||||
<Rule Id="C28625" Action="Warning" />
|
||||
<Rule Id="C28636" Action="Warning" />
|
||||
<Rule Id="C28637" Action="Warning" />
|
||||
<Rule Id="C28638" Action="Warning" />
|
||||
<Rule Id="C28639" Action="Warning" />
|
||||
<Rule Id="C28640" Action="Warning" />
|
||||
<Rule Id="C28645" Action="Warning" />
|
||||
<Rule Id="C28648" Action="Warning" />
|
||||
<Rule Id="C28649" Action="Warning" />
|
||||
<Rule Id="C28650" Action="Warning" />
|
||||
<Rule Id="C28714" Action="Warning" />
|
||||
<Rule Id="C28715" Action="Warning" />
|
||||
<Rule Id="C28716" Action="Warning" />
|
||||
<Rule Id="C28717" Action="Warning" />
|
||||
<Rule Id="C28719" Action="Warning" />
|
||||
<Rule Id="C28720" Action="Warning" />
|
||||
<Rule Id="C28721" Action="Warning" />
|
||||
<Rule Id="C28726" Action="Warning" />
|
||||
<Rule Id="C28727" Action="Warning" />
|
||||
<Rule Id="C28730" Action="Warning" />
|
||||
<Rule Id="C28735" Action="Warning" />
|
||||
<Rule Id="C28736" Action="Warning" />
|
||||
<Rule Id="C28750" Action="Warning" />
|
||||
<Rule Id="C28751" Action="Warning" />
|
||||
<Rule Id="C6001" Action="Warning" />
|
||||
<Rule Id="C6011" Action="Warning" />
|
||||
<Rule Id="C6014" Action="Warning" />
|
||||
<Rule Id="C6029" Action="Warning" />
|
||||
<Rule Id="C6031" Action="Warning" />
|
||||
<Rule Id="C6053" Action="Warning" />
|
||||
<Rule Id="C6054" Action="Warning" />
|
||||
<Rule Id="C6059" Action="Warning" />
|
||||
<Rule Id="C6063" Action="Warning" />
|
||||
<Rule Id="C6064" Action="Warning" />
|
||||
<Rule Id="C6066" Action="Warning" />
|
||||
<Rule Id="C6067" Action="Warning" />
|
||||
<Rule Id="C6101" Action="Warning" />
|
||||
<Rule Id="C6200" Action="Warning" />
|
||||
<Rule Id="C6201" Action="Warning" />
|
||||
<Rule Id="C6211" Action="Warning" />
|
||||
<Rule Id="C6214" Action="Warning" />
|
||||
<Rule Id="C6215" Action="Warning" />
|
||||
<Rule Id="C6216" Action="Warning" />
|
||||
<Rule Id="C6217" Action="Warning" />
|
||||
<Rule Id="C6219" Action="Warning" />
|
||||
<Rule Id="C6220" Action="Warning" />
|
||||
<Rule Id="C6221" Action="Warning" />
|
||||
<Rule Id="C6225" Action="Warning" />
|
||||
<Rule Id="C6226" Action="Warning" />
|
||||
<Rule Id="C6230" Action="Warning" />
|
||||
<Rule Id="C6235" Action="Warning" />
|
||||
<Rule Id="C6236" Action="Warning" />
|
||||
<Rule Id="C6237" Action="Warning" />
|
||||
<Rule Id="C6239" Action="Warning" />
|
||||
<Rule Id="C6240" Action="Warning" />
|
||||
<Rule Id="C6242" Action="Warning" />
|
||||
<Rule Id="C6244" Action="Warning" />
|
||||
<Rule Id="C6246" Action="Warning" />
|
||||
<Rule Id="C6248" Action="Warning" />
|
||||
<Rule Id="C6250" Action="Warning" />
|
||||
<Rule Id="C6255" Action="Warning" />
|
||||
<Rule Id="C6258" Action="Warning" />
|
||||
<Rule Id="C6259" Action="Warning" />
|
||||
<Rule Id="C6260" Action="Warning" />
|
||||
<Rule Id="C6262" Action="Warning" />
|
||||
<Rule Id="C6263" Action="Warning" />
|
||||
<Rule Id="C6268" Action="Warning" />
|
||||
<Rule Id="C6269" Action="Warning" />
|
||||
<Rule Id="C6270" Action="Warning" />
|
||||
<Rule Id="C6271" Action="Warning" />
|
||||
<Rule Id="C6272" Action="Warning" />
|
||||
<Rule Id="C6273" Action="Warning" />
|
||||
<Rule Id="C6274" Action="Warning" />
|
||||
<Rule Id="C6276" Action="Warning" />
|
||||
<Rule Id="C6277" Action="Warning" />
|
||||
<Rule Id="C6278" Action="Warning" />
|
||||
<Rule Id="C6279" Action="Warning" />
|
||||
<Rule Id="C6280" Action="Warning" />
|
||||
<Rule Id="C6281" Action="Warning" />
|
||||
<Rule Id="C6282" Action="Warning" />
|
||||
<Rule Id="C6283" Action="Warning" />
|
||||
<Rule Id="C6284" Action="Warning" />
|
||||
<Rule Id="C6285" Action="Warning" />
|
||||
<Rule Id="C6286" Action="Warning" />
|
||||
<Rule Id="C6287" Action="Warning" />
|
||||
<Rule Id="C6288" Action="Warning" />
|
||||
<Rule Id="C6289" Action="Warning" />
|
||||
<Rule Id="C6290" Action="Warning" />
|
||||
<Rule Id="C6291" Action="Warning" />
|
||||
<Rule Id="C6292" Action="Warning" />
|
||||
<Rule Id="C6293" Action="Warning" />
|
||||
<Rule Id="C6294" Action="Warning" />
|
||||
<Rule Id="C6295" Action="Warning" />
|
||||
<Rule Id="C6296" Action="Warning" />
|
||||
<Rule Id="C6297" Action="Warning" />
|
||||
<Rule Id="C6298" Action="Warning" />
|
||||
<Rule Id="C6299" Action="Warning" />
|
||||
<Rule Id="C6302" Action="Warning" />
|
||||
<Rule Id="C6303" Action="Warning" />
|
||||
<Rule Id="C6305" Action="Warning" />
|
||||
<Rule Id="C6306" Action="Warning" />
|
||||
<Rule Id="C6308" Action="Warning" />
|
||||
<Rule Id="C6310" Action="Warning" />
|
||||
<Rule Id="C6312" Action="Warning" />
|
||||
<Rule Id="C6313" Action="Warning" />
|
||||
<Rule Id="C6314" Action="Warning" />
|
||||
<Rule Id="C6315" Action="Warning" />
|
||||
<Rule Id="C6316" Action="Warning" />
|
||||
<Rule Id="C6317" Action="Warning" />
|
||||
<Rule Id="C6318" Action="Warning" />
|
||||
<Rule Id="C6319" Action="Warning" />
|
||||
<Rule Id="C6320" Action="Warning" />
|
||||
<Rule Id="C6322" Action="Warning" />
|
||||
<Rule Id="C6323" Action="Warning" />
|
||||
<Rule Id="C6324" Action="Warning" />
|
||||
<Rule Id="C6326" Action="Warning" />
|
||||
<Rule Id="C6328" Action="Warning" />
|
||||
<Rule Id="C6329" Action="Warning" />
|
||||
<Rule Id="C6330" Action="Warning" />
|
||||
<Rule Id="C6331" Action="Warning" />
|
||||
<Rule Id="C6332" Action="Warning" />
|
||||
<Rule Id="C6333" Action="Warning" />
|
||||
<Rule Id="C6334" Action="Warning" />
|
||||
<Rule Id="C6335" Action="Warning" />
|
||||
<Rule Id="C6336" Action="Warning" />
|
||||
<Rule Id="C6340" Action="Warning" />
|
||||
<Rule Id="C6381" Action="Warning" />
|
||||
<Rule Id="C6383" Action="Warning" />
|
||||
<Rule Id="C6384" Action="Warning" />
|
||||
<Rule Id="C6385" Action="Warning" />
|
||||
<Rule Id="C6386" Action="Warning" />
|
||||
<Rule Id="C6387" Action="Warning" />
|
||||
<Rule Id="C6388" Action="Warning" />
|
||||
<Rule Id="C6400" Action="Warning" />
|
||||
<Rule Id="C6401" Action="Warning" />
|
||||
<Rule Id="C6411" Action="Warning" />
|
||||
<Rule Id="C6412" Action="Warning" />
|
||||
<Rule Id="C6500" Action="Warning" />
|
||||
<Rule Id="C6501" Action="Warning" />
|
||||
<Rule Id="C6503" Action="Warning" />
|
||||
<Rule Id="C6504" Action="Warning" />
|
||||
<Rule Id="C6505" Action="Warning" />
|
||||
<Rule Id="C6506" Action="Warning" />
|
||||
<Rule Id="C6508" Action="Warning" />
|
||||
<Rule Id="C6509" Action="Warning" />
|
||||
<Rule Id="C6510" Action="Warning" />
|
||||
<Rule Id="C6511" Action="Warning" />
|
||||
<Rule Id="C6513" Action="Warning" />
|
||||
<Rule Id="C6514" Action="Warning" />
|
||||
<Rule Id="C6515" Action="Warning" />
|
||||
<Rule Id="C6516" Action="Warning" />
|
||||
<Rule Id="C6517" Action="Warning" />
|
||||
<Rule Id="C6518" Action="Warning" />
|
||||
<Rule Id="C6522" Action="Warning" />
|
||||
<Rule Id="C6525" Action="Warning" />
|
||||
<Rule Id="C6527" Action="Warning" />
|
||||
<Rule Id="C6530" Action="Warning" />
|
||||
<Rule Id="C6540" Action="Warning" />
|
||||
<Rule Id="C6551" Action="Warning" />
|
||||
<Rule Id="C6552" Action="Warning" />
|
||||
<Rule Id="C6701" Action="Warning" />
|
||||
<Rule Id="C6702" Action="Warning" />
|
||||
<Rule Id="C6703" Action="Warning" />
|
||||
<Rule Id="C6704" Action="Warning" />
|
||||
<Rule Id="C6705" Action="Warning" />
|
||||
<Rule Id="C6706" Action="Warning" />
|
||||
<Rule Id="C6707" Action="Warning" />
|
||||
<Rule Id="C6993" Action="Warning" />
|
||||
<Rule Id="C6995" Action="Warning" />
|
||||
<Rule Id="C6997" Action="Warning" />
|
||||
</Rules>
|
||||
</RuleSet>
|
4
configs/concept-options.json
Normal file
4
configs/concept-options.json
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"PythonInterpreter": "python"
|
||||
"PythonImports": "D:\\DEV\\!WORK\\PyRunner\\src"
|
||||
}
|
29
configs/native.clang-tidy
Normal file
29
configs/native.clang-tidy
Normal file
|
@ -0,0 +1,29 @@
|
|||
Checks: "*,\
|
||||
-llvmlibc-callee-namespace,\
|
||||
-llvmlibc-restrict-system-libc-headers,\
|
||||
-llvm-else-after-return,\
|
||||
-bugprone-branch-clone,\
|
||||
-bugprone-suspicious-include,\
|
||||
-modernize-use-trailing-return-type,\
|
||||
-hicpp-special-member-functions,\
|
||||
-llvm-header-guard,\
|
||||
-google-runtime-references,\
|
||||
-llvm-include-order,\
|
||||
-fuchsia-overloaded-operator,\
|
||||
-fuchsia-default-arguments,\
|
||||
-google-readability-todo,\
|
||||
-google-global-names-in-headers,\
|
||||
-readability-redundant-access-specifiers,\
|
||||
-readability-else-after-return,\
|
||||
-readability-implicit-bool-conversion,\
|
||||
-readability-use-anyofallof,\
|
||||
-performance-inefficient-string-concatenation,\
|
||||
-performance-unnecessary-value-param,\
|
||||
-fuchsia-default-arguments-declarations,\
|
||||
-fuchsia-trailing-return,\
|
||||
-fuchsia-multiple-inheritance,\
|
||||
-fuchsia-default-arguments-calls,\
|
||||
-misc-non-private-member-variables-in-classes,\
|
||||
-misc-no-recursion,\
|
||||
-cppcoreguidelines-special-member-functions,\
|
||||
-cppcoreguidelines-non-private-member-variables-in-classes"
|
22
configs/vscode_python_settings.json
Normal file
22
configs/vscode_python_settings.json
Normal file
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"python.testing.unittestArgs": [
|
||||
"-v",
|
||||
"-s",
|
||||
"./tests",
|
||||
"-p",
|
||||
"test*.py"
|
||||
],
|
||||
"python.testing.pytestEnabled": false,
|
||||
"python.testing.unittestEnabled": true,
|
||||
"python.linting.pylintEnabled": true,
|
||||
"python.linting.enabled": true
|
||||
"python.linting.pylintArgs": [
|
||||
"--max-line-length=120",
|
||||
"--disable=invalid-name",
|
||||
"--disable=line-too-long",
|
||||
"--disable=no-else-return",
|
||||
"--disable=too-many-return-statements",
|
||||
"--disable=no-else-break",
|
||||
"--disable=no-else-continue"
|
||||
]
|
||||
}
|
43
configs/win32.clang-tidy
Normal file
43
configs/win32.clang-tidy
Normal file
|
@ -0,0 +1,43 @@
|
|||
Checks: "*,\
|
||||
-llvmlibc-implementation-in-namespace,\
|
||||
-llvmlibc-callee-namespace,\
|
||||
-llvmlibc-restrict-system-libc-headers,\
|
||||
-llvm-else-after-return,\
|
||||
-bugprone-branch-clone,\
|
||||
-bugprone-suspicious-include,\
|
||||
-modernize-use-trailing-return-type,\
|
||||
-modernize-avoid-c-arrays,\
|
||||
-hicpp-special-member-functions,\
|
||||
-hicpp-multiway-paths-covered,\
|
||||
-hicpp-signed-bitwise,\
|
||||
-hicpp-avoid-c-arrays,\
|
||||
-hicpp-vararg,\
|
||||
-llvm-header-guard,\
|
||||
-google-runtime-references,\
|
||||
-google-runtime-int,\
|
||||
-llvm-include-order,\
|
||||
-fuchsia-overloaded-operator,\
|
||||
-fuchsia-default-arguments,\
|
||||
-google-readability-todo,\
|
||||
-google-global-names-in-headers,\
|
||||
-readability-redundant-access-specifiers,\
|
||||
-readability-else-after-return,\
|
||||
-readability-implicit-bool-conversion,\
|
||||
-readability-use-anyofallof,\
|
||||
-performance-no-int-to-ptr,\
|
||||
-performance-inefficient-string-concatenation,\
|
||||
-performance-unnecessary-value-param,\
|
||||
-fuchsia-default-arguments-declarations,\
|
||||
-fuchsia-trailing-return,\
|
||||
-fuchsia-multiple-inheritance,\
|
||||
-fuchsia-default-arguments-calls,\
|
||||
-misc-non-private-member-variables-in-classes,\
|
||||
-misc-no-recursion,\
|
||||
-cppcoreguidelines-pro-type-union-access,\
|
||||
-cppcoreguidelines-pro-type-reinterpret-cast,\
|
||||
-cppcoreguidelines-macro-usage,\
|
||||
-cppcoreguidelines-pro-type-vararg,\
|
||||
-cppcoreguidelines-special-member-functions,\
|
||||
-cppcoreguidelines-avoid-c-arrays,\
|
||||
-cppcoreguidelines-pro-type-cstyle-cast,\
|
||||
-cppcoreguidelines-non-private-member-variables-in-classes"
|
3
devops/SETUP GITEA.txt
Normal file
3
devops/SETUP GITEA.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
https://docs.gitea.com/installation/install-with-docker-rootless
|
||||
|
||||
sudo docker-compose up -d
|
57
devops/SETUP PRODUCTION.txt
Normal file
57
devops/SETUP PRODUCTION.txt
Normal file
|
@ -0,0 +1,57 @@
|
|||
IP сервера: 77.232.136.118
|
||||
# ------ SETUP PROD SERVER ---------
|
||||
# 1. ======== SSH AS ROOT ==========
|
||||
apt update && apt install docker.io -y
|
||||
groupadd docker
|
||||
|
||||
adduser prod
|
||||
usermod -aG sudo prod
|
||||
usermod -aG docker prod
|
||||
su - prod
|
||||
|
||||
|
||||
# 2. ====== SSH AS PROD USER ==========
|
||||
mkdir backup portal
|
||||
cd portal
|
||||
git clone https://github.com/IRBorisov/ConceptPortal ./
|
||||
mkdir secretes
|
||||
|
||||
|
||||
# 3. ====== WINDOWS =========
|
||||
scp D:\DEV\WORK\Concept-Web\rsconcept\backend\import\pyconcept-1.3.0-cp310-cp310-linux_x86_64.whl prod@77.232.136.118:~/portal/rsconcept/backend/import/pyconcept-1.3.0-cp310-cp310-linux_x86_64.whl
|
||||
|
||||
scp -r D:\DEV\WORK\Concept-Web\secrets prod@77.232.136.118:~/portal/secrets
|
||||
|
||||
|
||||
# 4. ======= SSH AS PROD USER =======
|
||||
cd ~/protal
|
||||
bash scripts/prod/UpdateProd.sh
|
||||
|
||||
# 5. For Initial certbot startup we need to temporarily edit nginx config to prevent it from failing to load them
|
||||
nano nginx/production.conf
|
||||
# Remove all HTTPS sections (listen 443)
|
||||
|
||||
docker compose -f "docker-compose-prod.yml" up --build -d
|
||||
docker logs -t portal-router
|
||||
# Make sure that router logs do not contain errors
|
||||
|
||||
# 6. Get cerificates first time
|
||||
docker compose -f "docker-compose-prod.yml" run --rm certbot certonly --webroot --webroot-path /var/www/certbot/ --dry-run -d portal.acconcept.ru -d api.portal.acconcept.ru
|
||||
> email: portal@acconcept.ru
|
||||
# Should result in "The dry run was successful.
|
||||
|
||||
docker compose -f "docker-compose-prod.yml" run --rm certbot certonly --webroot --webroot-path /var/www/certbot/ -d portal.acconcept.ru
|
||||
docker compose -f "docker-compose-prod.yml" run --rm certbot certonly --webroot --webroot-path /var/www/certbot/ -d api.portal.acconcept.ru
|
||||
# Should result in "Successfully received certificate"
|
||||
|
||||
# 7. Setup nginx using certs
|
||||
git checkout HEAD -- nginx/production.conf
|
||||
docker compose -f "docker-compose-prod.yml" up --build -d
|
||||
|
||||
# 8. Setup Initial data
|
||||
docker exec -it portal-backend /bin/bash
|
||||
python manage.py createsuperuser
|
||||
python manage.py loaddata fixtures/InitialData.json
|
||||
|
||||
# OR restore backup from pg_dump
|
||||
docker exec -i portal-db pg_restore --username=portal-admin --dbname=portal-db --clean < ~/restore/2023-09-18-db.dump
|
54
devops/arch/SETUP SERVER.txt
Normal file
54
devops/arch/SETUP SERVER.txt
Normal file
|
@ -0,0 +1,54 @@
|
|||
# NOTE: Server IP = 172.22.1.2 // ssh admuser@192.168.1.249
|
||||
# VPN CONNECTION REQUIRED
|
||||
|
||||
======== System ===========
|
||||
Install Ubuntu
|
||||
|
||||
sudo apt full-upgrade
|
||||
|
||||
sudo apt-get upgrade
|
||||
sudo apt-get update
|
||||
|
||||
sudo timedatectl set-timezone Europe/Moscow
|
||||
|
||||
Setup en_US locale
|
||||
https://www.thomas-krenn.com/en/wiki/Configure_Locales_in_Ubuntu
|
||||
|
||||
sudo apt install zip unzip
|
||||
|
||||
======== GIT ==============
|
||||
Add git user and setup git repos server
|
||||
https://git-scm.com/book/ru/v1/Git-%D0%BD%D0%B0-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B5-%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%B0%D0%B8%D0%B2%D0%B0%D0%B5%D0%BC-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80
|
||||
|
||||
Import git repositories
|
||||
https://gist.github.com/niksumeiko/8972566
|
||||
|
||||
Update submodule links between repos
|
||||
http://pa1gitsolutions.blogspot.com/2015/07/changing-git-submodules-urlbranch-to.html
|
||||
|
||||
======== Jenkins ===========
|
||||
1. Install Java, Jenkins, Apache server, UFW Firewall
|
||||
https://www.digitalocean.com/community/tutorials/how-to-install-jenkins-on-ubuntu-20-04-ru
|
||||
|
||||
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
|
||||
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
|
||||
sudo apt install jenkins
|
||||
sudo ufw allow 8080
|
||||
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
|
||||
|
||||
2. Use Internet browser to connect to http://172.22.1.2:8080/
|
||||
|
||||
3. Jenkins Plugins: Folders OWASP Markup Formatter Build Timeout Credentials Binding Timestamper Workspace Cleanup Pipeline Pipeline: Stage View Git SSH Build Agents Email Extension Mailer Dashboard View MSBuild Cobertura Warnings Next Generation Multijob Copy Artifact SSH Agent Active Directory Publish Over SSH Locale
|
||||
|
||||
4. Setup network DNS to alias jenkins URL
|
||||
|
||||
5. Configure Jenkins Master and Slave
|
||||
https://www.howtoforge.com/tutorial/ubuntu-jenkins-master-slave
|
||||
|
||||
6. Jenkins: Subverion Version Number
|
||||
To control this behavior with Jenkins go to Manage Jenkins -> Configure System -> Subversion and configure the Subversion Workspace Version to 1.6 from the combo box (by default it is set to oldest version - 1.4).
|
||||
https://stackoverflow.com/questions/11872313/svn-is-not-under-version-control-failure-with-jenkins
|
||||
|
||||
7. Configure and connect Jenkins agents
|
||||
Use JNLP to connect Windows slave. Might require network adjustm
|
||||
https://scmquest.com/jenkins-windows-slave-configuration-with-screenshots/
|
39
devops/arch/SETUP UBUNTU BUILD.txt
Normal file
39
devops/arch/SETUP UBUNTU BUILD.txt
Normal file
|
@ -0,0 +1,39 @@
|
|||
======= gcc-10 =======
|
||||
sudo apt install g++-10
|
||||
|
||||
https://askubuntu.com/questions/1028601/install-gcc-8-only-on-ubuntu-18-04
|
||||
https://linuxize.com/post/how-to-install-gcc-compiler-on-ubuntu-18-04/
|
||||
|
||||
======= clang-11 =======
|
||||
sudo wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
|
||||
sudo apt-add-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-11 main"
|
||||
sudo apt-get install clang-11 lldb-11 lld-11
|
||||
|
||||
======= CMake ===============
|
||||
sudo apt-get install cmake
|
||||
|
||||
# or build desired version from source
|
||||
# https://askubuntu.com/questions/355565/how-do-i-install-the-latest-version-of-cmake-from-the-command-line
|
||||
|
||||
==== Python =====
|
||||
sudo apt install python3-pip
|
||||
|
||||
======== Conan ===========
|
||||
sudo pip3 install conan
|
||||
|
||||
FIX CMAKE NOT DOWNLOADING HTTPS: https://github.com/libigl/libigl/issues/1019
|
||||
sudo apt install libcurl4-openssl-dev (or another dev package for cURL with TLS support)
|
||||
Download cmake source and change to unpacked directory
|
||||
./bootstrap --system-curl -- -DCMAKE_BUILD_TYPE:STRING=Release
|
||||
make
|
||||
make install
|
||||
|
||||
|
||||
----------------------------------------
|
||||
========== DEPRECATED DEPENDENCIES =====
|
||||
========= might reintroduce in future ====
|
||||
-----------------------------------------
|
||||
|
||||
======= boost =======
|
||||
from source
|
||||
https://stackoverflow.com/questions/12578499/how-to-install-boost-on-ubuntu
|
38
devops/arch/SETUP WINDOWS BUILD.txt
Normal file
38
devops/arch/SETUP WINDOWS BUILD.txt
Normal file
|
@ -0,0 +1,38 @@
|
|||
Setup SSH for client
|
||||
|
||||
1. Enable Windows SSH Agent service
|
||||
|
||||
2. ssh-keygen -t ecdsa -b 521
|
||||
# VERY IMPORTANT TO GENERATE ECDSA KEY:
|
||||
# https://github.com/PowerShell/Win32-OpenSSH/issues/1263#issuecomment-716215121
|
||||
|
||||
3. ssh-add FILENAME
|
||||
# If needed remove old keys with ssh-add -D
|
||||
|
||||
4. Setup GIT to use native ssh:
|
||||
git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"
|
||||
|
||||
5. Add public key to server authorized_keys
|
||||
https://stackoverflow.com/questions/31813080/windows-10-ssh-keys
|
||||
|
||||
- Visual Studio
|
||||
- vcpkg
|
||||
- vcpkg install poco:x86-windows-static-md // see https://levelup.gitconnected.com/how-to-statically-link-c-libraries-with-vcpkg-visual-studio-2019-435c2d4ace03
|
||||
- vcpkg install poco:x64-windows-static-md
|
||||
- PATH (for lib.exe)
|
||||
- HTML Help Workshop + PATH
|
||||
- CMake 3.14+, PATH
|
||||
- OpenCppCoverage, PATH
|
||||
- MSBuild, PATH
|
||||
- Git PATH
|
||||
- nuget.exe, PATH
|
||||
- setup %PACKAGEHOME% system variable pointing to folder for storing shared nuget packages
|
||||
- 7zip, PATH
|
||||
- Python 3.9 - INSTALL WITH DEBUG LIBRARIES!
|
||||
- python -m pip install --upgrade pip
|
||||
- pip install conan
|
||||
- setup CONAN_USER_HOME
|
||||
- pip install nose
|
||||
- pip install coverage
|
||||
- winflexbison3 https://sourceforge.net/projects/winflexbison/files/ + PATH
|
||||
- reflex https://github.com/Genivia/RE-flex + PATH
|
14
devops/arch/SETUP WINDOWS EDIT.txt
Normal file
14
devops/arch/SETUP WINDOWS EDIT.txt
Normal file
|
@ -0,0 +1,14 @@
|
|||
0. Setup windows build
|
||||
1. Vistual Studio
|
||||
2. VS Extensions
|
||||
- Fix File Encoding
|
||||
- Clang Power Tools
|
||||
- GitHub Extension
|
||||
- GitExtensions
|
||||
- VS Intellicode
|
||||
- Test Adapter for Google Test
|
||||
- Syntax Highlighting Pack
|
||||
|
||||
Setup SSH Agent and keys
|
||||
https://stackoverflow.com/questions/18683092/how-to-run-ssh-add-on-windows
|
||||
https://vladmihalcea.com/tutorials/git/windows-git-ssh-authentication-to-github/
|
90
devops/prod commands.txt
Normal file
90
devops/prod commands.txt
Normal file
|
@ -0,0 +1,90 @@
|
|||
ssh prod@77.232.136.118
|
||||
bash scripts/prod/UpdateProd.sh
|
||||
docker compose -f "docker-compose-prod.yml" restart
|
||||
sudo apt-get full-upgrade
|
||||
|
||||
sudo nano /etc/docker/daemon.json
|
||||
|
||||
python -m smtpd -n -c DebuggingServer localhost:1025
|
||||
|
||||
npm update --save
|
||||
venv\Scripts\activate
|
||||
python -m pip install cctext==0.1.2
|
||||
pip freeze -r requirements.txt
|
||||
|
||||
scp -r prod@77.232.136.118:~/backup/* E:\Google\!WORK\backup\
|
||||
scp -r D:\DEV\WORK\Concept-Web\secrets\* prod@77.232.136.118:~/portal/secrets/
|
||||
|
||||
zabbix
|
||||
Grafana
|
||||
ELK
|
||||
|
||||
docker *** ls
|
||||
|
||||
docker compose -f "docker-compose-prod.yml" up --build -d
|
||||
docker run --rm -it --entrypoint /bin/bash image_name
|
||||
|
||||
# Nuke all except volumes and running containers
|
||||
docker system prune -a
|
||||
|
||||
docker container prune
|
||||
docker image prune --all
|
||||
docker volume prune --all
|
||||
|
||||
# Create Superuser
|
||||
python manage.py createsuperuser
|
||||
|
||||
# Django data
|
||||
-Xutf8
|
||||
python -Xutf8 manage.py dumpdata rsform --indent 2 -o fixtures/InitialData.json
|
||||
python manage.py loaddata fixtures/InitialData.json
|
||||
|
||||
./manage.py migrate --fake
|
||||
|
||||
# Connect to container
|
||||
docker exec -it <container name> /bin/bash
|
||||
Ctrl + D = exit
|
||||
# connect to stopped container
|
||||
docker run --rm -it --entrypoint /bin/bash concept-core-builder
|
||||
|
||||
docker logs -t [OPTIONS] CONTAINER
|
||||
|
||||
# Check memory usage
|
||||
sudo df -h --total
|
||||
|
||||
|
||||
# Certificates CERTBOT
|
||||
sudo apt install certbot python3-certbot-nginx
|
||||
sudo certbot --nginx -d portal.acconcept.ru
|
||||
|
||||
docker compose -f "docker-compose-prod.yml" run --rm
|
||||
certbot certonly --webroot --webroot-path /var/www/certbot/ -d portal.acconcept.ru api.portal.acconcept.ru
|
||||
|
||||
docker compose -f "docker-compose-prod.yml" run --rm certbot renew
|
||||
|
||||
|
||||
#chkmk monitoring
|
||||
https://checkmk.com/download?method=docker&edition=cre&version=2.2.0p8
|
||||
|
||||
docker container run -dit -p 8080:5000 -p 8000:8000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v monitoring:/omd/sites --name monitoring -v /etc/localtime:/etc/localtime:ro --restart always checkmk/check-mk-raw:2.2.0p8
|
||||
|
||||
# check container logs
|
||||
docker container logs portal-backend
|
||||
|
||||
#DB
|
||||
pg_dump -U <db_username> <db_name> -h <host> -t <table_name> > exported_data.sql
|
||||
|
||||
docker exec -t container pg_dump ... > dump.sql
|
||||
cat dump.sql | docker exec -i container psql ...
|
||||
|
||||
docker exec <container-name> pg_dump -U <mydbUser> -F t <mydbName> > mydb.tar
|
||||
docker cp mydb.tar <container-name>:/
|
||||
pg_restore -U <mydbUser> -C -d <mydbName> mydb.tar
|
||||
|
||||
|
||||
pg_restore --verbose --clean --no-acl --no-owner -h
|
||||
|
||||
|
||||
# Fix ubuntu repo
|
||||
|
||||
https://www.oslogic.ru/knowledge/1540/ispravlyaem-key-is-stored-in-legacy-trusted-gpg-keyring-etc-apt-trusted-gpg/
|
15
devops/scripts/ImportGTest.txt
Normal file
15
devops/scripts/ImportGTest.txt
Normal file
|
@ -0,0 +1,15 @@
|
|||
cmake_minimum_required(VERSION 3.12)
|
||||
|
||||
project(googletest-download LANGUAGES CXX)
|
||||
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(googletest
|
||||
GIT_REPOSITORY https://github.com/google/googletest.git
|
||||
GIT_TAG master
|
||||
SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-src"
|
||||
BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-build"
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND ""
|
||||
TEST_COMMAND ""
|
||||
)
|
19
devops/scripts/MergeIntoMaster.bat
Normal file
19
devops/scripts/MergeIntoMaster.bat
Normal file
|
@ -0,0 +1,19 @@
|
|||
cd REPO
|
||||
mkdir out
|
||||
cd out
|
||||
|
||||
FOR /F "tokens=*" %%A IN (../../repos.txt) DO (call :subroutine "%%A")
|
||||
|
||||
PAUSE
|
||||
GOTO :eof
|
||||
|
||||
:subroutine
|
||||
git clone ../%1
|
||||
cd %1
|
||||
git remote rm origin
|
||||
git remote add origin git@repo:/var/repos/%1.git
|
||||
git config master.remote origin
|
||||
git config master.merge refs/heads/master
|
||||
git push -u origin master
|
||||
cd ..
|
||||
GOTO :eof
|
3
devops/scripts/OpenCppCoverage.bat
Normal file
3
devops/scripts/OpenCppCoverage.bat
Normal file
|
@ -0,0 +1,3 @@
|
|||
OpenCppCoverage --sources "%~dp0src" --sources "%~dp0header" --sources "%~dp0include" --modules "%~dp0build\Debug\ConceptCoreLibraryd.lib" --modules "%~dp0test\build\Debug\cclTest.exe" --excluded_line_regex "\s*\} else \{.*" --excluded_line_regex "\s*\}\s*" --excluded_line_regex "\s*\sthrow *" --excluded_line_regex "\sassert\(.*" --excluded_sources "rsparserimpl.cpp" --excluded_sources "rsparserimpl.y" --excluded_sources "stack.hh" -- %~dp0test\build\Debug\CCLTest.exe
|
||||
|
||||
pause
|
26
devops/setup google-benchmark.txt
Normal file
26
devops/setup google-benchmark.txt
Normal file
|
@ -0,0 +1,26 @@
|
|||
https://github.com/google/benchmark
|
||||
|
||||
git clone https://github.com/google/benchmark.git
|
||||
git clone https://github.com/google/googletest.git benchmark/googletest
|
||||
mkdir build && cd build
|
||||
|
||||
cmake ../ -G "Visual Studio 2019" -A "Win32"
|
||||
|
||||
Открыть BUILD_ALL.sln и далее скомпилить Release и Debug
|
||||
Скопировать из build/src/Release либы в lib/Win32/Release
|
||||
аналогично Debug
|
||||
|
||||
------------------
|
||||
|
||||
git clone https://github.com/google/benchmark.git
|
||||
git clone https://github.com/google/googletest.git benchmark/googletest
|
||||
|
||||
cmake -E make_directory "build"
|
||||
cmake -E chdir "build" cmake -DCMAKE_BUILD_TYPE=Release ../
|
||||
# or use this to auto download googletest:
|
||||
# cmake -E chdir "build" cmake -DBENCHMARK_DOWNLOAD_DEPENDENCIES=TRUE, -DCMAKE_BUILD_TYPE=Release ../
|
||||
cmake --build "build" --config Release
|
||||
|
||||
|
||||
# copy result from build\src\Release into lib folder (i.t. lib\x64\Release)
|
||||
# repeat for --config Debug and -A Win32
|
8
devops/windows tools.txt
Normal file
8
devops/windows tools.txt
Normal file
|
@ -0,0 +1,8 @@
|
|||
1. Dependencies - analyse dependencies for dll and exe
|
||||
# helps with Critical error "the application was unable to start correctly 0xc00007b"
|
||||
|
||||
2. LongPathTool - deal with windows paths > 260 symbols
|
||||
|
||||
3. WinSpy64 - analyze open windows
|
||||
|
||||
4. ProcessExplorer - analyze open processes
|
54
git.txt
Normal file
54
git.txt
Normal file
|
@ -0,0 +1,54 @@
|
|||
0. Add new repository to Ubuntu server
|
||||
cd /var/repos
|
||||
mkdir Name.git
|
||||
cd Name.git
|
||||
git init --bare
|
||||
cd ..
|
||||
sudo chown -R git Name.git
|
||||
sudo chmod -R a+rwx /var/repos
|
||||
|
||||
1. Move a bunch of files through git mv
|
||||
for FILE in src/*.h; do git mv $FILE include/; done
|
||||
|
||||
2. Submodules
|
||||
https://git-scm.com/docs/git-submodule
|
||||
git submodule update --init --recursive --remote
|
||||
git config submodule.moduleName.url git@repo:/var/repos/common/CodeStandard.git
|
||||
|
||||
3. Remove submodule
|
||||
https://gist.github.com/myusuf3/7f645819ded92bda6677
|
||||
|
||||
4. Move files with history into another repo
|
||||
https://medium.com/@ayushya/move-directory-from-one-repository-to-another-preserving-git-history-d210fa049d4b
|
||||
|
||||
5. Change origin
|
||||
git remote rm origin
|
||||
git remote add origin git@repo:/var/repos/CodeStandard.git
|
||||
git config master.remote origin
|
||||
git config master.merge refs/heads/master
|
||||
|
||||
6. Push commits to remote (origin)
|
||||
git push -u origin master
|
||||
|
||||
7. move files with history
|
||||
https://gbayer.com/development/moving-files-from-one-git-repository-to-another-preserving-history/
|
||||
git filter-branch --subdirectory-filter <directory 1> -- --all
|
||||
git pull repo-A-branch master --allow-unrelated-histories
|
||||
|
||||
8. Remove history for inactive files = delete all and restore active
|
||||
https://stackoverflow.com/questions/17901588/new-repo-with-copied-history-of-only-currently-tracked-files
|
||||
|
||||
$ git checkout master
|
||||
$ git ls-files > keep-these.txt
|
||||
$ git filter-branch --force --index-filter \
|
||||
"git rm --ignore-unmatch --cached -qr . ; \
|
||||
cat $PWD/keep-these.txt | tr '\n' '\0' | xargs -d '\0' git reset -q \$GIT_COMMIT --" \
|
||||
--prune-empty --tag-name-filter cat -- --all
|
||||
|
||||
$ rm -rf .git/refs/original/
|
||||
$ git reflog expire --expire=now --all
|
||||
$ git gc --prune=now
|
||||
|
||||
9. Remove file from history
|
||||
https://myopswork.com/how-remove-files-completely-from-git-repository-history-47ed3e0c4c35
|
||||
git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch path_to_file" HEAD
|
42
python_libs/Natasha.txt
Normal file
42
python_libs/Natasha.txt
Normal file
|
@ -0,0 +1,42 @@
|
|||
https://github.com/natasha/natasha
|
||||
|
||||
====== install =========
|
||||
pip install natasha
|
||||
wget https://storage.yandexcloud.net/natasha-navec/packs/navec_hudlit_v1_12B_500K_300d_100q.tar
|
||||
wget https://storage.yandexcloud.net/natasha-navec/packs/navec_news_v1_1B_250K_300d_100q.tar
|
||||
|
||||
|
||||
======= config ========
|
||||
from natasha import (
|
||||
Segmenter,
|
||||
MorphVocab,
|
||||
|
||||
NewsEmbedding,
|
||||
NewsMorphTagger,
|
||||
NewsSyntaxParser,
|
||||
NewsNERTagger,
|
||||
|
||||
PER,
|
||||
NamesExtractor,
|
||||
|
||||
Doc
|
||||
)
|
||||
|
||||
segmenter = Segmenter()
|
||||
morph_vocab = MorphVocab()
|
||||
|
||||
emb = NewsEmbedding()
|
||||
morph_tagger = NewsMorphTagger(emb)
|
||||
syntax_parser = NewsSyntaxParser(emb)
|
||||
ner_tagger = NewsNERTagger(emb)
|
||||
|
||||
names_extractor = NamesExtractor(morph_vocab)
|
||||
|
||||
|
||||
============= use ==============
|
||||
text = 'Мама мыла раму'
|
||||
doc = Doc(text)
|
||||
|
||||
doc.segment(segmenter)
|
||||
doc.parse_syntax(syntax_parser)
|
||||
doc.sents[0].syntax.print()
|
14
python_libs/Pymorphy.txt
Normal file
14
python_libs/Pymorphy.txt
Normal file
|
@ -0,0 +1,14 @@
|
|||
https://pymorphy2.readthedocs.io/en/stable/user/index.html
|
||||
|
||||
======= install ========
|
||||
pip install pymorphy2
|
||||
pip install -U pymorphy2-dicts-ru
|
||||
pip install -U pymorphy2-dicts-uk
|
||||
|
||||
========= config ============
|
||||
import pymorphy2
|
||||
parser = pymorphy2.MorphAnalyzer()
|
||||
|
||||
=========== use =============
|
||||
parser.parse("слон")
|
||||
parser.parse("слона")[0].inflect({'sing', 'nomn'}).word
|
16
python_libs/graphviz.txt
Normal file
16
python_libs/graphviz.txt
Normal file
|
@ -0,0 +1,16 @@
|
|||
https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224
|
||||
https://graphviz.readthedocs.io/en/stable/manual.html
|
||||
|
||||
====== install =========
|
||||
pip install graphviz
|
||||
|
||||
======= config ========
|
||||
from graphviz import Digraph
|
||||
|
||||
============= use ==============
|
||||
dot = Digraph(comment='The Round Table')
|
||||
dot.node('A', 'King Arthur')
|
||||
dot.node('B', 'Sir Bedevere the Wise')
|
||||
dot.node('L', 'Sir Lancelot the Brave')
|
||||
dot.edges(['AB', 'AL'])
|
||||
print(dot.source)
|
55
python_libs/vosk.txt
Normal file
55
python_libs/vosk.txt
Normal file
|
@ -0,0 +1,55 @@
|
|||
https://alphacephei.com/vosk/install
|
||||
|
||||
======= install ========
|
||||
pip install vosk
|
||||
pip install srt
|
||||
pip install sounddevice
|
||||
|
||||
|
||||
========= config ============
|
||||
from vosk import Model, KaldiRecognizer, SetLogLevel
|
||||
import sys
|
||||
import os
|
||||
import wave
|
||||
import subprocess
|
||||
import srt
|
||||
import json
|
||||
import datetime
|
||||
|
||||
sample_rate=16000
|
||||
model = Model(r"D:\DEV\models\vosk-model-small-ru-0.15")
|
||||
rec = KaldiRecognizer(model, sample_rate)
|
||||
|
||||
=========== use =============
|
||||
process = subprocess.Popen(['ffmpeg', '-loglevel', 'quiet', '-i',
|
||||
sys.argv[1],
|
||||
'-ar', str(sample_rate) , '-ac', '1', '-f', 's16le', '-'],
|
||||
stdout=subprocess.PIPE)
|
||||
|
||||
|
||||
WORDS_PER_LINE = 7
|
||||
|
||||
def transcribe():
|
||||
results = []
|
||||
subs = []
|
||||
while True:
|
||||
data = process.stdout.read(4000)
|
||||
if len(data) == 0:
|
||||
break
|
||||
if rec.AcceptWaveform(data):
|
||||
results.append(rec.Result())
|
||||
results.append(rec.FinalResult())
|
||||
|
||||
for i, res in enumerate(results):
|
||||
jres = json.loads(res)
|
||||
if not 'result' in jres:
|
||||
continue
|
||||
words = jres['result']
|
||||
for j in range(0, len(words), WORDS_PER_LINE):
|
||||
line = words[j : j + WORDS_PER_LINE]
|
||||
s = srt.Subtitle(index=len(subs),
|
||||
content=" ".join([l['word'] for l in line]),
|
||||
start=datetime.timedelta(seconds=line[0]['start']),
|
||||
end=datetime.timedelta(seconds=line[-1]['end']))
|
||||
subs.append(s)
|
||||
return subs
|
Loading…
Reference in New Issue
Block a user