-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BJ-993: Init java build #2
Conversation
@@ -1,23 +0,0 @@ | |||
# See https://docs.redoc.ly/cli/configuration/ for more information. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не очень понял этот манёвр. В мастере (main, хаха) используется https://github.com/Redocly/openapi-cli в качестве инструмента линтинга, валидации и бандлинга спеки на OAS 3, который по идее приходит на смену swagger-repo. Чем он таким не устроил, что ты его решил выкинуть?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Меня кодген вчера так вытрахал, что я подропал все, предназначение чего не осознал. Вроде все вернул.
# Service image default tag | ||
SERVICE_IMAGE_TAG ?= $(shell git rev-parse HEAD) | ||
# The tag for service image to be pushed with | ||
SERVICE_IMAGE_PUSH_TAG ?= $(SERVICE_IMAGE_TAG) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А зачем тут SERVICE_IMAGE_TAG
нужно объявлять?
java.swag.deploy_server: | ||
$(if $(SETTINGS_XML),,echo "SETTINGS_XML not defined" ; exit 1) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Подозреваю, что по задумке чуть упрощается до
java.swag.deploy_server: | |
$(if $(SETTINGS_XML),,echo "SETTINGS_XML not defined" ; exit 1) | |
java.swag.deploy_server: java.settings |
$(MVN) versions:set versions:commit -DnewVersion="$(JAVA_PKG_VERSION)-server" && \ | ||
$(MVN) install -P="server" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Кажется make будет 😠 💢 из-за этих пробелов (вместо табов).
@@ -1,31 +0,0 @@ | |||
#!/usr/bin/env node |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Это как раз-таки тот скрипт, который бандлит и спеку, и вообще доку в виде redoc-сайта при помощи openapi-cli
. Соответственно, я бы предложил его использовать вместо ./scripts/build.js
и полностью выкинуть заодно использование swagger-repo
, gulp
, и шаблоны в web
.
$ref: './InvitationId.yaml' | ||
$ref: '#/components/schemas/InvitationId' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Соответственно, если поверх openapi-cli
работать, подобные изменения тоже надо будет откатить.
"start": "openapi preview-docs", | ||
"build": "node ./build.js", | ||
"validate": "openapi validate", | ||
"openapi": "openapi", | ||
"build": "node ./scripts/build.js", | ||
"swagger": "swagger-repo", | ||
"test": "swagger-repo validate", | ||
"start": "gulp serve", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
И тут. Я может просто не очень понимаю, что в openapi-cli
не хватает, чтобы с него обратно переезжать. Привычного редактирования через swagger-editor
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
По этому и всем предыдущим вопросам – если честно, понятия не имею. Я взял шаблон, который мы используем в своих сваг-репозиториях и натянул его сюда, чтобы на выходе получить автоматизированную сборку джарника известным мне способом.
Почему оно выглядит так – это скорее вопрос к @vitaxa. Я, к своему стыду, предпочел бы сильно не вникать, как оно работает и почему мы остановились на таком варианте.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Понимаю.
Я бы тогда предложил оставить валидацию и бандлинг поверх openapi-cli
, и вернуть схему в первоначальный вид. После этого (как я понимаю) надо maven таски научить работать с входными файлами dist/openapi.{yaml,json}
(а не swagger.{yaml,json}
как раньше), в остальном различий в процессе сборки кажется быть не должно. Ну разве что надо учесть, что это OAS 3.0.3 спека.
Вообще мы решили на openapi-cli
остановиться, потому что он легковесный, быстрый, развивается, и не ломает «разобранную» спеку (в том смысле что и собранная и разобранная спеки одинаково валидные OAS3 спеки). Если мы прям совсем никак не сможем с ним подружить maven, то ок, можем обратно перекатиться.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@keynslug А в каком swag'e у нас используется openapi-cli? И в чем преимущества? Я когда перекатывался на версию openapi 3.0, переписывал только gulp сборку, чтоб запускалось на актуальном nodejs. Ну и конечно нужно было, чтоб swagger-editor работал
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А в каком swag'e у нас используется openapi-cli?
Лол. Как оказалось на мастере пока ни в каком, только полузабытый эпик висит.
И в чем преимущества?
Кратко расписал выше. Ещё из плюсов удобный линтинг и бандлинг статической доки.
Ну и конечно нужно было, чтоб swagger-editor работал
Ну вот это да, может быть блокер. Нужно поэкспериментировать.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Согласен с использованием openapi-cli, стоит попробовать его покрутить. C maven не должно быть проблем
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Нужно поэкспериментировать.
На всякий случай, результаты экспресс-экспериментов. swagger-editor
v3 не хочет учиться резолвить рефы (swagger-api/swagger-editor#1409), что не позволяет ему из коробки работать со спеками, разбитыми на файлы. Соответственно, народ извращается инструментами типа https://github.com/moon0326/swagger-ui-watcher, чтобы попытаться сохранить воркфлоу. Но воркфлоу всё равно не совсем тот.
Чтобы этот воркфлоу вернуть в нетронутом виде, кажется вариантов кроме перекатывания обратно на swagger-repo
+ gulp
особо и нет. Если именно такая задача не стоит, можно пытаться адаптировать воркфлоу поверх какого-нибудь https://github.com/Mermade/openapi-lint-vscode. Если же мы все готовы пересесть на монолитные однофайловые спеки (пожертвовав до определённой степени возможностью шарить куски спек), можно в принципе и swagger-editor
продолжать использовать, и что-нибудь типа https://github.com/42Crunch/vscode-openapi.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Окей, я тогда предлагаю так поступить:
- Я создам эпик-ветку со всем этим добром, чтобы таки получить свой джарничек и делать org-manager
- Заведу таску на эксперименты с openapi-cli, потому что если технология более новая, то, конечно, стоит попробовать ее завести, но, кажется, это может затянуться
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Удовлетворяем потребности swagger-codegen <3