EvilBeaver / OneScript

Исполняющая среда скриптов на языке 1С
http://oscript.io
Mozilla Public License 2.0
482 stars 107 forks source link

Компиляция модульных приложений #199

Closed EvilBeaver closed 8 years ago

EvilBeaver commented 8 years ago

Originally reported by: EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver)


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

Вопрос - что делать с зависимостями по библиотекам.

Второй вопрос - надо ли это в 1.0


EvilBeaver commented 8 years ago

Original comment by EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver):


Цель реализации задачи - более простой деплой приложения с учетом всех библиотек. Я, как и @allustin против распространения приложения в виде EXE. А вот когда надо зафиксировать все зависимости и запулить приложение куда-то на сервер (или в контейнер), где оно будет жить - вот для этого пригодится.

EvilBeaver commented 8 years ago

Original comment by Alexey Lustin (Bitbucket: allustin, GitHub: allustin):


"allustin" - вот такой никнейм тут

@vsuh - то что вы хотите методологически ;-) плохо. Положить 2 файла exe и cfg и добавить задачу в cron - также должны скриптоваться. Такое вот евангелистическое скотство - я обязан это сказать. Тогда в мануал добавляется 3 команды:

msi install oscript
opm install super-scripts --local \\share\oscripts-our-libs\super-script
super-script --init

а в super-script добавляется модули типа

Процедура СпроситьНастройкиКонфигурации()
Процедура СпроситьАдресКаталогаDir()
Процедура СпроситьПараметрыCronOrTaskSheduler()

И тогда не нужны exe файлы.

Но это евангелистически . Практически еаверное стоит добавлять простое компилирование в макроядро типа embedding и на этом остановится. Рисков вроде как меньше.

EvilBeaver commented 8 years ago

Original comment by Valery Sukhikh (Bitbucket: vsuh, GitHub: vsuh):


Незнай, как к вам через @ обратиться я хочу, иметь возможность написать в мануале: Положьте 2 файла exe и cfg в каталог dir, поправьте конфиг и заведите задачу в task manager или cron.

EvilBeaver commented 8 years ago

Original comment by Alexey Lustin (Bitbucket: allustin, GitHub: allustin):


@EvilBeaver кстати в целях переносимости мы в свое время же придумали подход.

В стандартный образ "любого" Windows включается 2 пакета:

Делалось это в целях развития 1С разработчиков и в целях наращивания библиотек oscript-library

Если развивать компилятор - то получается есть еще 2 проблемы. По какому пути пойдем:

Во всех трех случаях есть грабли

Пока писал - вдруг понял. Что компиляция скриптов в остальном мире применяется только для дистрибуции полученного скрипта в виде приложения, а приложение это Marketplace ;-). А для Marketplace нужна экосистема. Наверное это правильно - но уж сильно Enterprise.

В итоге у меня вопрос - @vsuh а зачем Вам переносимая сборка, чтобы на целевую машину не устанавливать oscript ? Может выходом будет удобная установка oscript на целевую машину ?

EvilBeaver commented 8 years ago

Original comment by Alexey Lustin (Bitbucket: allustin, GitHub: allustin):


@EvilBeaver меня несколько "пугает" это функционал, когда ко мне приезжает исходник пакета через opm, я могу его:

А вот что делать с компилированным пакетом. Скорее всего это нужно для распространения, то есть дистрибуции. И тут начнётся "веселуха" с подписями авторов пакетов - я уже на chocko нарвался https://github.com/chocolatey/choco/wiki/Legal#distributions-aka-chocolatey-packages

То есть понадобится (пишу по памяти из Java мира и из Windows) для автора скомпилированного пакета:

Одновременно с этим

Может стоит это перенести в Enterprise версию ?

EvilBeaver commented 8 years ago

Original comment by Valery Sukhikh (Bitbucket: vsuh, GitHub: vsuh):


хотелось бы, чтоб вариант сборки выбирался параметром команды -make. Если это слишком трудоемко, я бы хотел вариант embedding, чтобы сборка была переносимой.

EvilBeaver commented 8 years ago

Original comment by EvilBeaver (Bitbucket: EvilBeaver, GitHub: EvilBeaver):


Issue #202 was marked as a duplicate of this issue.