Skip to content

Commit c5b8dd5

Browse files
committed
Merge remote-tracking branch 'origin/develop' into feature/osClassModuleType
2 parents aea805f + 62a9bdf commit c5b8dd5

File tree

861 files changed

+9596
-1516
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

861 files changed

+9596
-1516
lines changed

.github/ISSUE_TEMPLATE/Bug.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@ assignees: ''
88
---
99

1010
**Версия**
11-
> Версия BSLLS либо плагина, который использует BSLLS
11+
<!-- Версия BSLLS либо плагина, который использует BSLLS -->
1212

1313
**Описание ошибки диагностики**
14-
> Описание ошибки, замечания
14+
<!-- Описание ошибки, замечания -->
1515

1616
**Пример кода**
17-
> Пример кода (в блоке code или прикрепленный файл), на котором ошибка воспроизводится
17+
<!-- Пример кода (в блоке code или прикрепленный файл), на котором ошибка воспроизводится -->
1818

1919
**Скриншоты**
20-
> Скриншоты с подтверждением
20+
<!-- Скриншоты с подтверждением -->
2121

2222
**Дополнительная информация**
23-
> Любая дополнительная информация, которая поможет в расследовании проблемы
23+
<!-- Любая дополнительная информация, которая поможет в расследовании проблемы -->

.github/ISSUE_TEMPLATE/NewDiagnostic.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ assignees: ''
5050
* [ ] `LOCALIZE` - "Проблемы локализации"
5151

5252
### Время на исправление (минут)
53-
<!-- Сколько времени необходим на исправление замечания разработчику, например: 1 минута -->
53+
<!-- Сколько времени необходимо на исправление замечания разработчику, например: 1 минута -->
5454

5555
## Дополнительная информация
5656
<!-- Можно добавить любую информацию, которая может быть полезной при реализации -->
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# This workflow was added by CodeSee. Learn more at https://codesee.io/
2+
# This is v2.0 of this workflow file
3+
on:
4+
push:
5+
branches:
6+
- develop
7+
pull_request_target:
8+
types: [opened, synchronize, reopened]
9+
10+
name: CodeSee
11+
12+
permissions: read-all
13+
14+
jobs:
15+
codesee:
16+
runs-on: ubuntu-latest
17+
continue-on-error: true
18+
name: Analyze the repo with CodeSee
19+
steps:
20+
- uses: Codesee-io/codesee-action@v2
21+
with:
22+
codesee-token: ${{ secrets.CODESEE_ARCH_DIAG_API_TOKEN }}

.github/workflows/gh-pages.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
- name: Set up Python
3232
uses: actions/setup-python@v4
3333
with:
34-
python-version: '3.6'
34+
python-version: '3.7.15'
3535
architecture: 'x64'
3636

3737
- name: Install dependencies
@@ -145,7 +145,7 @@ jobs:
145145
cp -R temp/site/. public/dev/en
146146
147147
- name: Deploy
148-
uses: peaceiris/actions-gh-pages@v3.8.0
148+
uses: peaceiris/actions-gh-pages@v3.9.2
149149
with:
150150
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
151151
publish_branch: gh-pages

.github/workflows/qa.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ jobs:
4747
git checkout -B ${{ fromJson(steps.get_pr_data.outputs.data).base.ref }} upstream/${{ fromJson(steps.get_pr_data.outputs.data).base.ref }}
4848
git checkout ${{ github.event.workflow_run.head_branch }}
4949
git clean -ffdx && git reset --hard HEAD
50-
- name: Set up JDK 11
50+
- name: Set up JDK 17
5151
uses: actions/setup-java@v3
5252
with:
53-
java-version: 11
53+
java-version: 17
5454
distribution: 'temurin'
5555
- name: SonarCloud Scan on PR
5656
if: github.event.workflow_run.event == 'pull_request'

.github/workflows/qodana.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@ jobs:
2020
steps:
2121
- uses: actions/checkout@v3
2222
- name: 'Qodana Scan'
23-
uses: JetBrains/qodana-action@v5.1.0
23+
uses: JetBrains/qodana-action@v2022.3.4
2424
with:
2525
linter: jetbrains/qodana-jvm-community
2626
- uses: github/codeql-action/upload-sarif@v2
2727
with:
2828
sarif_file: ${{ runner.temp }}/qodana/results/qodana.sarif.json
2929
- name: Deploy to GitHub Pages
3030
if: github.event_name == 'push'
31-
uses: peaceiris/actions-gh-pages@v3
31+
uses: peaceiris/actions-gh-pages@v3.9.2
3232
with:
3333
github_token: ${{ secrets.GITHUB_TOKEN }}
3434
publish_dir: ${{ runner.temp }}/qodana/results/report

.github/workflows/rebase.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ jobs:
1414
token: ${{ secrets.GITHUB_TOKEN }}
1515
fetch-depth: 0 # otherwise, you will fail to push refs to dest repo
1616
- name: Automatic Rebase
17-
uses: cirrus-actions/rebase@1.7
17+
uses: cirrus-actions/rebase@1.8
1818
env:
1919
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/sentry.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: Sentry
2+
on:
3+
push:
4+
branches-ignore:
5+
- "translations_*"
6+
jobs:
7+
8+
sentry:
9+
name: Sentry
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v3
13+
- name: Create Sentry release
14+
uses: getsentry/action-release@v1
15+
env:
16+
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
17+
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
18+
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
19+
with:
20+
environment: production

build.gradle.kts

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,21 @@ plugins {
88
jacoco
99
signing
1010
id("org.cadixdev.licenser") version "0.6.1"
11-
id("org.sonarqube") version "3.4.0.2513"
12-
id("io.freefair.lombok") version "6.4.3.1"
13-
id("io.freefair.javadoc-links") version "6.4.3.1"
14-
id("io.freefair.javadoc-utf-8") version "6.4.3.1"
15-
id("io.freefair.aspectj.post-compile-weaving") version "6.4.3.1"
16-
id("io.freefair.maven-central.validate-poms") version "6.4.3.1"
17-
id("me.qoomon.git-versioning") version "6.1.4"
18-
id("com.github.ben-manes.versions") version "0.42.0"
19-
id("org.springframework.boot") version "2.6.7"
20-
id("io.spring.dependency-management") version "1.0.11.RELEASE"
21-
id("io.github.1c-syntax.bslls-dev-tools") version "0.7.0"
22-
id("ru.vyarus.pom") version "2.2.1"
11+
id("org.sonarqube") version "3.5.0.2730"
12+
id("io.freefair.lombok") version "6.6.1"
13+
id("io.freefair.javadoc-links") version "6.6.1"
14+
id("io.freefair.javadoc-utf-8") version "6.6.1"
15+
id("io.freefair.aspectj.post-compile-weaving") version "6.6.1"
16+
id("io.freefair.maven-central.validate-poms") version "6.6.1"
17+
id("me.qoomon.git-versioning") version "6.4.0"
18+
id("com.github.ben-manes.versions") version "0.45.0"
19+
id("org.springframework.boot") version "2.7.5"
20+
id("io.spring.dependency-management") version "1.1.0"
21+
id("io.github.1c-syntax.bslls-dev-tools") version "0.7.2"
22+
id("ru.vyarus.pom") version "2.2.2"
23+
id("com.gorylenko.gradle-git-properties") version "2.4.1"
2324
id("io.codearte.nexus-staging") version "0.30.0"
25+
id("me.champeau.jmh") version "0.6.8"
2426
}
2527

2628
repositories {
@@ -51,29 +53,37 @@ val isSnapshot = gitVersioning.gitVersionDetails.refType != GitRefType.TAG
5153

5254
val languageToolVersion = "5.6"
5355

56+
dependencyManagement {
57+
imports {
58+
mavenBom("io.sentry:sentry-bom:6.13.1")
59+
}
60+
}
61+
5462
dependencies {
5563

5664
// RUNTIME
5765

5866
// spring
5967
api("org.springframework.boot:spring-boot-starter")
60-
api("info.picocli:picocli-spring-boot-starter:4.6.3")
68+
api("org.springframework.boot:spring-boot-starter-websocket")
69+
api("info.picocli:picocli-spring-boot-starter:4.7.1")
6170

6271
// lsp4j core
63-
api("org.eclipse.lsp4j", "org.eclipse.lsp4j", "0.14.0")
72+
api("org.eclipse.lsp4j", "org.eclipse.lsp4j", "0.19.0")
73+
api("org.eclipse.lsp4j", "org.eclipse.lsp4j.websocket", "0.19.0")
6474

6575
// 1c-syntax
66-
api("com.github.1c-syntax", "bsl-parser", "0.21.0") {
76+
api("com.github.1c-syntax", "bsl-parser", "167aaad827322e09ccde4658a71152dad234de4b") {
6777
exclude("com.tunnelvisionlabs", "antlr4-annotations")
6878
exclude("com.ibm.icu", "*")
6979
exclude("org.antlr", "ST4")
7080
exclude("org.abego.treelayout", "org.abego.treelayout.core")
7181
exclude("org.antlr", "antlr-runtime")
7282
exclude("org.glassfish", "javax.json")
7383
}
74-
api("com.github.1c-syntax", "utils", "0.4.0")
75-
api("io.github.1c-syntax", "bsl-common-library", "31ba49780f9fcd0cbf2c5ed631d43e879375bff0")
84+
api("com.github.1c-syntax", "utils", "f1694d9c")
7685
api("com.github.1c-syntax", "mdclasses", "0.10.3")
86+
api("io.github.1c-syntax", "bsl-common-library", "31ba49780f9fcd0cbf2c5ed631d43e879375bff0")
7787
api("io.github.1c-syntax", "supportconf", "0.1.1")
7888

7989
// JLanguageTool
@@ -82,7 +92,7 @@ dependencies {
8292
implementation("org.languagetool", "language-ru", languageToolVersion)
8393

8494
// AOP
85-
implementation("org.aspectj", "aspectjrt", "1.9.7")
95+
implementation("org.aspectj", "aspectjrt", "1.9.9.1")
8696

8797
// commons utils
8898
implementation("commons-io", "commons-io", "2.11.0")
@@ -91,7 +101,7 @@ dependencies {
91101
implementation("org.apache.commons", "commons-collections4", "4.4")
92102

93103
// progress bar
94-
implementation("me.tongfei", "progressbar", "0.9.2")
104+
implementation("me.tongfei", "progressbar", "0.9.5")
95105

96106
// (de)serialization
97107
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
@@ -103,10 +113,12 @@ dependencies {
103113
// SARIF serialization
104114
implementation("com.contrastsecurity", "java-sarif", "2.0")
105115

106-
// COMPILE
116+
// Sentry
117+
implementation("io.sentry:sentry-spring-boot-starter")
118+
implementation("io.sentry:sentry-logback")
107119

108-
// stat analysis
109-
compileOnly("com.google.code.findbugs", "jsr305", "3.0.2")
120+
// COMPILE
121+
compileOnly("com.github.spotbugs:spotbugs-annotations:4.7.3")
110122

111123
// TEST
112124

@@ -116,8 +128,8 @@ dependencies {
116128
}
117129

118130
// test utils
119-
testImplementation("com.ginsberg", "junit5-system-exit", "1.1.2")
120-
testImplementation("org.awaitility", "awaitility", "4.1.1")
131+
testImplementation("org.jmockit", "jmockit", "1.49")
132+
testImplementation("org.awaitility", "awaitility", "4.2.0")
121133
}
122134

123135
java {
@@ -163,6 +175,9 @@ tasks.test {
163175
reports {
164176
html.required.set(true)
165177
}
178+
179+
val jmockitPath = classpath.find { it.name.contains("jmockit") }!!.absolutePath
180+
jvmArgs("-javaagent:${jmockitPath}")
166181
}
167182

168183
tasks.check {
@@ -205,6 +220,7 @@ tasks.generateDiagnosticDocs {
205220
}
206221

207222
tasks.javadoc {
223+
isFailOnError = false
208224
options {
209225
this as StandardJavadocDocletOptions
210226
links(

docs/contributing/StyleGuide.md

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,29 @@
44

55
Постарайтесь придерживаться их, и процесс ревью Вашего кода будет гладким и шелковистым (с).
66

7-
## Общие рекомендации
7+
## Обработка null
88

99
Если метод на законных основаниях может возвращать `null`, рекомендуется вместо явного возврата `null` возвращать `Optional<T>`. Исключения (например, высокочастотные или перфомансные функции) обговариваются отдельно.
1010

11+
В описании пакета `package-info.java` необходимо указать, что в пакете по умолчанию используется NonNull API.
12+
Для этого над именем пакета добавляется аннотация `@DefaultAnnotation(NonNull.class)`
13+
14+
Пример:
15+
```java
16+
// ...Лицензия...
17+
@DefaultAnnotation(NonNull.class)
18+
package com.github._1c_syntax.bsl.languageserver;
19+
20+
import edu.umd.cs.findbugs.annotations.DefaultAnnotation;
21+
import edu.umd.cs.findbugs.annotations.NonNull;
22+
```
23+
24+
Для явного указания того, что метод может принимать или возвращать `null`, используется аннотация `@edu.umd.cs.findbugs.annotations.Nullable`.
25+
26+
В общем случае это позволяет не использовать аннотации `@edu.umd.cs.findbugs.annotations.NonNull` вообще.
27+
28+
Аннотации по контролю за `null` из пакета `javax.annotations` или `jetbrains.annotations` использоваться не должны.
29+
1130
## Форматирование
1231

1332
1. Весь код в модулях должен быть автоматически отформатирован.
@@ -56,6 +75,6 @@
5675
1. Подключение новых библиотек в implementation scope стоит производить аккуратно, с контролем увеличения размера итогового jar-файла. По возможности "лишние" и незадействованные суб-зависимости стоит исключать через `exclude`.
5776
1. Явное подключение библиотеки `com.google.guava`, `Google Collections` или прочих частей библиотек семейства Guava запрещено. В случае **крайней** необходимости допустимо копирование реализации из `Guava` внутрь BSL Language Server с выполнением условий лицензии Guava. Для всего остального есть Apache Commons.
5877
1. Прямой импорт классов `*.google.*`, а так же прочих частей библиотек Guava запрещено. Без исключений.
59-
78+
1. Пакет `jsr305` и его аннотации не должны использоваться в коде. См. раздел "Обработка null".
6079

6180
> В процессе наполнения...

0 commit comments

Comments
 (0)