Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
nixel2007 committed May 31, 2020
2 parents 376794e + 64990bc commit 9f44026
Show file tree
Hide file tree
Showing 489 changed files with 14,410 additions and 2,664 deletions.
30 changes: 30 additions & 0 deletions .github/ISSUE_TEMPLATE/NewCodeAction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
name: Новое действие
about: Добавление нового действия (CodeAction)
title: '[NEW]'
labels: component/codeAction
assignees: ''

---

## Описание назначения, идеи
<!-- Например: Добавить возможность переименования локального метода в модуле .... -->

## Тип действия (смысловая составляющая)

<!-- Можно поставить x (на латинице) либо после сохранения кликнуть мышкой -->
* [ ] :syringe: Исправление ошибки (`QuickFix`)
* [ ] :scissors: Рефакторинг кода (`Refactor`)
* [ ] :memo: Шаблон кода (`Template`, `Snippet`)
* [ ] :mushroom: Другое

## Область применения (привязка создаваемого действия)

<!-- Можно поставить x (на латинице) либо после сохранения кликнуть мышкой -->
* [ ] :interrobang: Замечание диагностики
* [ ] :bookmark_tabs: Выделенный пользователем блок кода
* [ ] :book: Действие над файлом
* [ ] :ghost: Другое

## Дополнительная информация
<!-- Можно добавить любую информацию, которая может быть полезной при реализации -->
47 changes: 47 additions & 0 deletions .github/scripts/benchmark.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import pytest
import os
import re
import ntpath
import json

pattern = r"bsl.+\.jar"
thisPath = os.getcwd()
dirName = thisPath + "/build/libs"

def test_analyze_ssl31(benchmark):
benchmark(some_func, None)

def some_func(arg):
pathToConfig = createBSLLSConfiguration()
fullname = get_bslls_jar(dirName)
cmdArgs = ['java']
cmdArgs.append('-jar')
cmdArgs.append(dirName + '/' + fullname)
cmdArgs.append('-a')
cmdArgs.append('-s')
cmdArgs.append('ssl')
cmdArgs.append('-c')
cmdArgs.append(pathToConfig)
cmd = ' '.join(cmdArgs)
os.system(cmd)

def get_bslls_jar(dir):
names = os.listdir(dir)
for name in names:
fullname = os.path.join(dir, name)
if os.path.isfile(fullname) and re.search(pattern, fullname) and fullname.find('sources.jar') == -1 and fullname.find('javadoc.jar') == -1:
return ntpath.basename(fullname)
return None

def createBSLLSConfiguration():
newPath = thisPath + "/ssl/.bsl-language-server.json"
data = {}
data['configurationRoot'] = './src'
data['diagnostics'] = {}
data['diagnostics']['mode'] = 'except'
data['diagnostics']['parameters'] = {'Typo': False}

with open(newPath, 'w') as outfile:
json.dump(data, outfile)

return newPath
13 changes: 13 additions & 0 deletions .github/scripts/gen-bandge.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import json
from pybadges import badge

value = '0'
with open("output.json", "r") as file:
data = json.load(file)
total = data.get('benchmarks')[0].get('stats').get('mean')
value = '{:.2f}'.format(total)

svg = badge(left_text='Benchmark (SSL 1.0)', right_text=value)
f = open('benchmark.svg', 'w')
f.write(svg)
f.close()
82 changes: 82 additions & 0 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Benchmark

on:
push:
branches:
- develop
- master
paths:
- 'src/**'
- '.github/workflows/benchmark.yml'
- '.github/scripts/*.*'
- '*gradle*'
- 'gradle/wrapper/gradle-wrapper.properties'
- 'lombok.config'
pull_request:
paths:
- 'src/**'
- '.github/workflows/benchmark.yml'
- '.github/scripts/*.*'
- '*gradle*'
- 'gradle/wrapper/gradle-wrapper.properties'
- 'lombok.config'

jobs:
Benchmark:
runs-on: self-hosted
steps:
- name: Checkout project
uses: actions/checkout@v2

- name: Setup JDK 11
uses: actions/setup-java@v1
with:
java-version: 11

- name: Build with Gradle
run: ./gradlew jar

- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: "3.7"

- name: Setup Python libs
run: pip install pytest pytest-benchmark && pip install pybadges

- name: Download SSL 3.1
run: git clone https://github.com/1c-syntax/ssl_3_1.git ssl

- name: Analyze ssl
run: pytest .github/scripts/benchmark.py --benchmark-min-rounds=3 --benchmark-timer=time.time --benchmark-json=output.json --benchmark-verbose

- name: Generation badge benchmark
if: github.event_name == 'push'
run: python .github/scripts/gen-bandge.py

- name: Check benchmark result for pull request
if: github.event_name == 'pull_request'
uses: otymko/[email protected]
with:
name: BSL LS perfomance measurement (SSL 3.1)
tool: "pytest"
output-file-path: output.json
github-token: ${{ secrets.GITHUB_TOKEN }}
alert-threshold: "110%"
comment-on-alert: true
fail-on-alert: false
alert-comment-cc-users: "@otymko"

- name: Store benchmark result into branch
if: github.event_name == 'push'
uses: otymko/[email protected]
with:
name: BSL LS perfomance measurement (SSL 3.1)
tool: "pytest"
output-file-path: output.json
github-token: ${{ secrets.GITHUB_TOKEN }}
auto-push: true
alert-threshold: "110%"
comment-on-alert: true
fail-on-alert: false
alert-comment-cc-users: "@otymko"
34 changes: 32 additions & 2 deletions .github/workflows/gh-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,22 @@ on:
- 'src/main/resources/com/github/_1c_syntax/bsl/languageserver/configuration/**'
- 'mkdocs.yml'
- 'mkdocs.en.yml'
- '.github/workflows/gh-pages.yml'

jobs:
build-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1

- name: Setup JDK
uses: actions/setup-java@v1
with:
java-version: 14

- name: Build javadoc
run: ./gradlew --no-daemon javadoc

- name: Set up Python
uses: actions/setup-python@v1
with:
Expand All @@ -26,12 +35,13 @@ jobs:
- name: Install dependencies
run: |
pip install --upgrade pip
pip install mkdocs mkdocs-material pygments-bsl
pip install mkdocs mkdocs-material==5.0.0 pygments-bsl
- name: Dowload latest GitHub Pages
run: |
wget https://github.com/${{ github.repository }}/archive/gh-pages.zip || true
unzip gh-pages.zip || true
mkdir tmp-bench
- name: Save latest Develop
if: github.ref == 'refs/heads/master'
Expand All @@ -47,6 +57,16 @@ jobs:
cp -R ${GITHUB_REPOSITORY#*/}-gh-pages/. public || true
rm -rf public/dev || true
mkdir public/dev
- name: Backup benchmark (master)
if: github.ref == 'refs/heads/master'
run: |
cp -R ${GITHUB_REPOSITORY#*/}-gh-pages/bench/. tmp-bench || true
- name: Backup benchmark (develop)
if: github.ref == 'refs/heads/develop'
run: |
cp -R ${GITHUB_REPOSITORY#*/}-gh-pages/dev/bench/. tmp-bench || true
- name: Patch Develop
if: github.ref == 'refs/heads/develop'
Expand All @@ -66,7 +86,17 @@ jobs:
rm -rf temp/docs/en
cd temp
mkdocs build
- name: Copy benchmark
run: |
cp -R tmp-bench/. temp/site/bench
rm -rf tmp-bench
- name: Copy javadoc
run: |
cp -R build/docs/javadoc temp/site/javadoc
echo "" > temp/site/.nojekyll
- name: Public Russian Master
if: github.ref == 'refs/heads/master'
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
strategy:
fail-fast: false
matrix:
java_version: ['11', '13']
java_version: ['11', '14']
os: [ubuntu-latest, windows-latest, macOS-latest]
steps:
- uses: actions/checkout@v1
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,10 @@ gen/

.idea/sonarlint-state.xml
.idea/sonarlint.xml
.idea/checkstyle-idea.xml
*.bak
*.orig

# mkdocs
temp/
public/
public/
16 changes: 0 additions & 16 deletions .idea/checkstyle-idea.xml

This file was deleted.

24 changes: 24 additions & 0 deletions .idea/jsonSchemas.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions .nojekyll
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

43 changes: 43 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Правила или как жить дружно и эффективно

Проект `BSL Language Server` является свободным, некоммерческим, развивается дружным сообществом, где главенствующими правилами являются взаимоуважение и взаимопомощь.

В других документах, можно найти правила и инструкции разработки, здесь же больше социальные правила.

Рассмотрим на примере, что хорошо, и что плохо.

## Изучение

Вы увидели наш проект и у вас появились вопросы. Задавать вопросы можно в любом официальном канале, будь то чат или обсуждение в рамках задачи на GitHub. __Но!__

Вопросы и замечания типа "что это за фигня", "на****я", "нормальные люди так не делают", "кгам" - оставьте при себе, кому-то все равно, но некоторым может быть обидно, неприятно.

Переформулируйте вопросы на "а что это вы тут делаете", "а почему, какая цель", "как это работает" и вы получите адекватный, развернутый ответ. За замечания "так не правильно, __ПОТОМУ ЧТО__ *далее ссылки или пояснения*" будут отдельные благодарность и уважение, так как идеальных людей нет и все совершают ошибки, а соринка в чужом глазу всегда виднее.

## Разработка

Вы решили помочь проекту, внеся доработки в его кодовую базу, документацию. Сразу спасибо :). __Но!__
Надо быть готовым к тому, что изменения обязательно будут анализироваться, к ним могут быть высказаны замечания, в том числе: "все неправильно, потому что..." и "нужно переделать...".

Необходимо адекватно воспринимать замечания, внося соответствующие исправления. Если считаете, что ваше решение верно, то дискуссия с примерами и пояснениями приветствуется, как говорил уже ранее, идеальных людей нет.

Если у вас что-то не получается, не понимаете как сделать - спрашивайте, но опять же, без "наездов" типа "у вас черт ногу сломит, фиг поймешь как эта х***ня работает".

Помощь вам в "сделать хорошо" несет пользу проекту, но не стоит злоупотребять вопросами "как это делается", ожидать готовое решение - если вы не можете разобраться в языке программирования, на котором пишете, стоит отложить задачу и поизучать, здесь не бесплатные курсы для студентов.

## Найдена ошибка, несоответствие, опечатка и т.д.

Если вы нашли у нас ошибку - сообщите о ней. Хороший вариант - это оформить задачу в проекте на GitHub, идеальный - отправить следом PULL REQUEST с исправлением.
__УЖАСНЫЙ ВАРИАНТ__ - это просто кричать "у вас кругом одни баги", "все сыро и противно" и т.д. Кому вы помогли данным сообщением? Попытка понизить самооценку сообщества и мейнтейнеров или самоутверждение за счет других?

## Общение

Оскорбления не приемлемы в любом виде!

## Вам не нравится проект, люди, правила

Если вам не нравится конкретный человек сообщества по личным причинам - это ваши личные проблемы, помочь мы вам не сможем, разбирайтесь сами.

Если вам не нравятся правила, можно обсудить, но... **наш проект, наши правила**.

Если вам не нравится наш проект - ничего страшного, просто пройдите мимо.
Loading

0 comments on commit 9f44026

Please sign in to comment.