Giter VIP home page Giter VIP logo

opm's Introduction

opm

GitHub release

OneScript Package Manager

Возможные команды:

  • build - Собрать пакет из исходников
  • run - Выполнить произвольную задачу
  • test - Выполнить тестирование проекта
  • prepare - Подготовить новый каталог разрабатываемого пакета
  • install - Выполнить установку. Если указано имя пакета, происходит установка из хаба или из файла. В обратном случае устанавливаются зависимости текущего пакета по файлу packagedef.
  • update - Обновить пакет
  • app - Создать bat-файл для запуска скрипта в указанном каталоге
  • config - Задать пользовательские настройки
  • list - Вывести список пакетов
  • help - Справка по командам

Наберите opm <команда> --help, чтобы вывести справку по команде

Справка из википедии: Система управления пакетами

Сервера

В настоящее время пакеты хранятся на двух серверах:

  • hub.oscript.io - основной хаб пакетов
  • hub.oscript.ru - вторичный хаб пакетов. Используется, когда не удаётся получить данные с основного хаба

Особенности обновления версий

с 0.14.х на 0.15.х и выше

  • Изменена строка использования (вызова) приложения - теперь соответствует стандарту POSIX.
  • Все параметры вызова разделены на опции и аргументы. Для коротких (1 символ) опций обязательно использование -, для длинных опций (2 символа и более) - использование двойного тире --
  • Сначала необходимо указывать опции, а потом аргументы

Пример изменений использования для команды build

# версия 0.14.х и младше

opm build . -mf ./packagedef

# версия 0.15.x и старше

opm build --mf ./packagedef .

Настройка

Настройка путей установки скриптов

Переменная окружения OSCRIPTBIN отвечает за переопределение пути установки скриптов при глобальной установке. По умолчанию для linux считается "/usr/bin", а для windows КаталогПрограммы(). При указании данной переменной можно переназначить путь для создания скриптов запуска различных пакетов. Возможно скачать архив, распаковать его и запуская oscript с указанием этих переменных тестировать работу автономной установки.

  • linux
OSCRIPTBIN=~/.local/bin opm update -all
  • windows
set OSCRIPTBIN=c:\temp\ 
opm update -all

Настройка прокси-сервера для скачивания пакетов

Настройка производится с помощью создания служебного файла opm.cfg данный файл настроек можно расположить по таким путям (список приведен в порядке убывания приоритета):

  • ./opm.cfg - текущий каталог запуска + /opm.cfg
  • каталог настроек пользователя
    • linux: ~/.opm.cfg, внимание файла должен называться с точкой .opm.cfg
    • windows: %USERPROFILE%\opm.cfg
  • системная настройка:
    • linux: /etc/opm.cfg
    • windows: c:\ProgramData\opm.cfg
  • OSCRIPT/lib/opm/opm.cfg - каталог установки opm, для совместимости.

Обновление

Пакетный менеджер обновляется вместе с oscript'ом, необходимую версию которого можно вручную скачать со страницы https://oscript.io/downloads/ или через ovm, или обновить opm через сам opm:

opm update opm

opm's People

Contributors

240596448 avatar artbear avatar asakra avatar asosnoviy avatar awa15 avatar bia-tech avatar dmpas avatar evilbeaver avatar gladilovdmitry avatar islama avatar johnydeath avatar k2589 avatar khorevaa avatar kuzyara avatar nivanchenko avatar nixel2007 avatar ovcharenko-di avatar pumbaeo avatar refringerator avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opm's Issues

WARNING! Deprecated method: 'SystemInfo.GetEnvironmentVariable' is deprecated, u se 'GetEnvironmentVariable' from global context

Установил OneScript (актуальная версия 1.0.16).
Пытаюсь установить пакет vanessa-runner, говорит, что версия стара.

C:\Windows\system32>opm install vanessa-runner
OneScript Package Manager v0.9.3

ИНФОРМАЦИЯ - Скачиваю файл: vanessa-runner.ospx
ИНФОРМАЦИЯ - Устанавливаю пакет vanessa-runner
ИНФОРМАЦИЯ - Ошибка установки пакета <vanessa-runner>: Обнаружена устаревшая вер
сия движка OneScript.
Требуемая версия: 1.0.17
Текущая версия: 1.0.16.41
Обновите OneScript перед установкой пакета

Обновляю OneScript до версии 1.0.17, повторяю установку vanessa-runner. Пишет что установка завершена, но при этом в самом начале надпись:

C:\Windows\system32>opm install vanessa-runner
WARNING! Deprecated method: 'SystemInfo.GetEnvironmentVariable' is deprecated, u
se 'GetEnvironmentVariable' from global context

Надпись выводится при каждом обращении к OneScript:

C:\Windows\system32>vrunner version
WARNING! Deprecated method: 'SystemInfo.GetEnvironmentVariable' is deprecated, u
se 'GetEnvironmentVariable' from global context
0.11.1

C:\Windows\system32>opm version
WARNING! Deprecated method: 'SystemInfo.GetEnvironmentVariable' is deprecated, u
se 'GetEnvironmentVariable' from global context
0.9.6

D:\binex\jenkins_slave\workspace\rooms_pipeline>vrunner init-dev --src cf
WARNING! Deprecated method: 'SystemInfo.GetEnvironmentVariable' is deprecated, u
se 'GetEnvironmentVariable' from global context
vanessa-runner v0.11.1
WARNING! Deprecated method: 'SystemInfo.GetEnvironmentVariable' is deprecated, u
se 'GetEnvironmentVariable' from global context
WARNING! Deprecated method: 'SystemInfo.GetEnvironmentVariable' is deprecated, u
se 'GetEnvironmentVariable' from global context
10.07.2017 8:23:18: ИНФОРМАЦИЯ - Создали базу данных для /F"D:/binex/jenkins_sla
ve/workspace/rooms_pipeline\./build/ib"
10.07.2017 8:23:18: ИНФОРМАЦИЯ - Запускаю загрузку конфигурации из исходников
WARNING! Deprecated method: 'SystemInfo.GetEnvironmentVariable' is deprecated, u
se 'GetEnvironmentVariable' from global context
WARNING! Deprecated method: 'SystemInfo.GetEnvironmentVariable' is deprecated, u
se 'GetEnvironmentVariable' from global context
10.07.2017 8:23:35: ИНФОРМАЦИЯ - Запускаю обновление конфигурации БД
WARNING! Deprecated method: 'SystemInfo.GetEnvironmentVariable' is deprecated, u
se 'GetEnvironmentVariable' from global context
WARNING! Deprecated method: 'SystemInfo.GetEnvironmentVariable' is deprecated, u
se 'GetEnvironmentVariable' from global context
10.07.2017 8:23:40: ИНФОРМАЦИЯ - Обновление конфигурации базы данных
Обработка структуры базы данных...

Сбор служебной информации...

Новый объект: ПланОбмена.ОбновлениеИнформационнойБазы
Обновление конфигурации базы данных успешно завершено
Построение индекса справки...


10.07.2017 8:23:40: ИНФОРМАЦИЯ - Обновление конфигурации БД завершено.
10.07.2017 8:23:40: ИНФОРМАЦИЯ - Инициализация завершена

opm test

Допустим, в файле манифеста моего приложения/библиотеки есть секция:
Описание.ТестируетсяСПомощью("testrunner")
Или
Описание.ТестируетсяСПомощью("1bdd")

Когда Я выполняю команду opm test
Тогда opm автоматически прогоняет все тесты с помощью указанного фреймворка

Когда Я выполняю команду opm build
Тогда opm автоматически прогоняет все тесты с помощью указанного фреймворка
И Пакет собирается только если все тесты прошли

Пропускать обновление пакета, установленного только локально

Хочу пользоваться библиотекой https://github.com/arkuznetsov/cpdb
но ее по какой-то причине в составе oscript-library нет
Я скачал ее руками, скопировал в lib, создал cmd-файл в bin
и все вроде бы работает

Но при запуске команды opm update -all падает с таким сообщением:

КРИТИЧНАЯОШИБКА - {Модуль D:\Programs\OneScript\lib\opm\src\Классы\УстановкаПакета.os / Ошибка в строке: 263 / Ошибка установки пакета cpdb: Пакет не найден}

Хотелось бы, чтобы opm пропускал пакеты, которых нет в хабе, но которые существуют локально

Функциональность сборок независимых app от библиотеки lib

Предлагаю добавить в команду build возможность создавать app независимых приложений.
Например, gitsync-2.1.1-standalone.ospx
opm - думаю надо делать сразу таким.

Использование установка готового приложение и отсутствие конфликтов по версиям библиотек с другими приложениями.
Пример, такой сборки https://github.com/Khorevaa/gitsync/releases/tag/2.1.1-standalone

/cc @artbear @nixel2007 @EvilBeaver
Готов взяться за реализацию

Формат описания packagedef

Как разработчик хочу иметь возможность указывать настройки пакета в формате yaml
Пример файла ниже

name: YAML 
version: 0.0.1
description: Конвертация и чтение в формат YAML
executable: 
    class: 'yaml2.os'
engine-version: '*'
include-content:
    - 'src/*'
    - 'tests/*'
    - 'bin/*'
    - readme.md
explicit-modules:
    - '*'
keywords:
    - null
repository:
    type: git
    url: ..
author:
    name: Автор
    email: Почта
    url: url
depends-on:
    logos: 1.1.0
    cmdline: ^3.0.6
    tempfiles: '^3.4.3"'
    tool1cd: ^2.0.0
    v8runner: ^4.0.0
    strings: '*'

Падение на получении данных о зеркалах при включенном прокси по умолчанию

C:\Users\na_gryzlov>opm update opm
WARNING! Deprecated method: 'SystemInfo.GetEnvironmentVariable' is deprecated, use 'GetEnvironmentVariable' from global context
КРИТИЧНАЯОШИБКА - {Модуль C:\Program Files (x86)\OneScript\lib\opm\src\Классы\Зеркало.os / Ошибка в строке: 16 / Преобразование к типу 'Число' не поддерживается}

Команда "opm config" сбрасывает все настройки в файле настройки при указании ключа "-proxyusedefault"

Даже указываю полный набор ключей, получаем пустой файл
opm config -proxyusedefault -proxyserver myserver -proxyport 3128 -proxyuser user -proxypass 123

{
    "Прокси": {
        "ИспользоватьПрокси": true,
        "ПроксиПоУмолчанию": true,
        "Сервер": "",
        "Порт": "",
        "Пользователь": "",
        "Пароль": "",
        "ИспользоватьАутентификациюОС": false
    },
    "СоздаватьShСкриптЗапуска": false
}

без указанного ключа создается правильный файл, с указанными настройками

Стабильный канал пакетов

Предлагаю разделить хаб на стабильный канал и канал разработки.

  1. весь самый свежак сначала кладётся на dev-канал (alpha-канал, как угодно), его качают те, кому это дико нужно, пользуются, ругаются, чинят
  2. спустя какое-то время использования видим, что ошибки не валятся, добавляем пакет в стабильный канал и он расходится простым пользователям.
  3. соответственно всему этому в настройки opm надо добавить настройку, ЯВНО указывающую, что пользователь в здравом рассудке и трезвой памяти будет качать нестабильные обновления с dev-канала.

Добавить алиасы исполняемых файлов пакетов

Удобно юзать разные алиасы для одного исполняемого файла пакета.
Например, vrun, vrunner, 1runner и т.п. :)

  • Предусмотреть возможность указания нескольких вариантов имен исполняемых файлов при описании пакета
  • Возможность локально указать алиас opm alias cmd-path os-script-path

В продолжение разговора сегодня между @allustin , @nixel2007 и мной

Документировать работу с локальными каталогами пакетов

Описать схему работу с oscript-modules
Пошагово - сделать то, затем это и т.д.

Приложить один/два типовых сценария.
Например, "доработка штатной библиотеки", "разработка с использованием собственной версии штатной библиотеки"

Хранение метаинформации об установленном пакете

При установки из ospx/opm дополнительно класть в корень библиотеки packagedef или какой-то другой файл информации (предпочтительно json)

P.S. у packagedef есть проблема с обратной совместимостью - новый packagedef нельзя прочитать старым opm, т.к. будут ошибки вызова несуществующих процедур (например недавно добавленное Задачи() )

Обнаружены циклические ссылки

Любой вызов 'opm' даёт такой результат:

$ opm help list
{Модуль /usr/share/oscript/lib/opm/src/opm.os / Ошибка в строке: 0 / Ошибка загрузки библиотеки /usr/share/oscript/lib/opm/src. Обнаружены циклические зависимости.
-> /usr/share/oscript/lib/cmdline
-> /usr/share/oscript/lib/logos
-> /usr/share/oscript/lib/opm/src
}

$ oscript
1Script Execution Engine. Version 1.0.18.30

$ cat /etc/debian_version
buster/sid

Кэш установленных модулей.

Проблема:
Мне для проверки работы сделанного PR понадобилась свежая библиотека 1testrunner.
Чтобы ее установить только локально - надо удалить из глобальной папки, при этом переключение на другой проект приводит к обратной операции. (или аналогичной)

Посмотрел код и сделал вывод: кэш установленных библиотек работает только для "глобально" установленных. Что не очень корректно.

Как следствие, вызов команды opm install -l , в папке проекта, каждый раз устанавливает одни и те же библиотеки - локально, хотя они уже там есть.

Предлагаю переделать(доделать) флаг -g, а при вызове opm install -l , в папке проекта, устанавливать зависимости по умолчанию в локальную папку.

Изменить(доделать) логику поиска и подбора закэшированных библиотек.(думаю вопрос к движку) По следующим приоритетам:

  1. Поиск в локальной папке
  2. Поиск в глобальной папке.

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

Развитие команды config

Конфиг должен быть более универсальным и работать аналогично git config

Сейчас он жестко привязан к настройкам прокси, это недостаточно гибко.
Через него можно задавать и зеркала хаба и всякое разное другое.

Баг скачивания пакетов в 0.9.5

http://ci.silverbulleters.org/job/Vanessa-runner/job/develop/lastFailedBuild/console

opm update 1bdd 

20:00:21 КРИТИЧНАЯОШИБКА - 
{Модуль C:\Program Files (x86)\OneScript\lib\opm\src\Классы\Зеркало.os / 
Ошибка в строке: 16 / Преобразование к типу 'Число' не поддерживается}

Проблема в строке https://github.com/oscript-library/opm/blob/master/src/%D0%9A%D0%BB%D0%B0%D1%81%D1%81%D1%8B/%D0%97%D0%B5%D1%80%D0%BA%D0%B0%D0%BB%D0%BE.os#L15

Копипаста присутствует, отличия в коде проверки условий Если НастройкиПрокси.ХХХ или Если НастройкиПрокси.ХХХ = Ложь/Истина

В Зеркало.ос

Функция ИнициализироватьСоединение() Экспорт

	Если Не Соединение = Неопределено Тогда
		Возврат Соединение;
	КонецЕсли;
	
	НастройкиПрокси = НастройкиПриложенияOpm.Получить().Прокси;
	Если НастройкиПрокси.ИспользоватьПрокси Тогда
		Прокси = Новый ИнтернетПрокси(НастройкиПрокси.ПроксиПоУмолчанию);
		Если НастройкиПрокси.ПроксиПоУмолчанию Тогда
			Прокси.Установить("http",НастройкиПрокси.Сервер,НастройкиПрокси.Порт,НастройкиПрокси.Пользователь,НастройкиПрокси.Пароль,НастройкиПрокси.ИспользоватьАутентификациюОС);
		КонецЕсли;	
		Соединение = Новый HTTPСоединение(СерверУдаленногоХранилища,,,,Прокси);
	Иначе
		Соединение = Новый HTTPСоединение(СерверУдаленногоХранилища);
	КонецЕсли;
	
	Возврат Соединение;
	
КонецФункции

В УстановкаПакета.ос

Функция ИнициализироватьСоединение(Сервер) Экспорт
	
	НастройкиПрокси = НастройкиПриложенияOpm.Получить().Прокси;
	Если НастройкиПрокси.ИспользоватьПрокси = Истина Тогда
		Прокси = Новый ИнтернетПрокси(НастройкиПрокси.ПроксиПоУмолчанию);
		Если НастройкиПрокси.ПроксиПоУмолчанию = Ложь Тогда
			Прокси.Установить("http",НастройкиПрокси.Сервер,НастройкиПрокси.Порт,НастройкиПрокси.Пользователь,НастройкиПрокси.Пароль,НастройкиПрокси.ИспользоватьАутентификациюОС);
		КонецЕсли;	
		Соединение = Новый HTTPСоединение(Сервер,,,,Прокси);
	Иначе
		Соединение = Новый HTTPСоединение(Сервер);
	КонецЕсли;
	
	Возврат Соединение;
	
КонецФункции	

Попытка скачать неверный пакет при заданных зависимостях версии

@JohnyDeath Запустил сегодня:

$ opm update -all
OneScript Package Manager v0.9.3
....
ИНФОРМАЦИЯ - Устанавливаю зависимость: logos
ИНФОРМАЦИЯ - logos уже установлен. Пропускаем.
ИНФОРМАЦИЯ - Установка завершена
ИНФОРМАЦИЯ - Устанавливаю зависимость: v8runner
ИНФОРМАЦИЯ - Скачиваю файл: v8runner-0.7.ospx
ИНФОРМАЦИЯ - Ошибка установки пакета v8runner <404>

Обрати внимание, что в зависимостях стоит "0.7", а в хабе лежит файл v8runner-0.7.0.ospx
а opm пытается выкачать файл v8runner-0.7.ospx, которого нет :( !

/cc @nixel2007

opm build + локальный package-loader.os

Включать в поставку package-loader.os из корня библиотеки.

http://oscript.io/docs/page/libraries

Кроме того, глобальный загрузчик можно переопределить. Если в корне какой-либо библиотеки тоже лежит файл package-loader.os, то для загрузки библиотеки будет использован именно он, а не глобальный из каталога lib.

opm build && opm install -f

делаю opm build ., мне честно собирается файл с именем InternetMail-1.0.0.ospx.

делаю opm install -f InternetMail-1.0.0.ospx и вот же ж незадача: в каталоге lib создаётся каталог InternetMail-1.0.0 (с версией). И я не могу подключать библиотеку простым #use InternetMail.

Приходится лезть в либы и переименовывать каталог.

Вопрос: как избежать всего этого геморроя?

Доработать opm для Linux

Хотелось бы на линукс повторить "удачное" поведение opm из Windows

Автор @artbear

Цель/требование - после opm install МойПакет или opm app МойПакет я мог сразу вызывать МойПакет без дополнительных телодвижений!

Автор @nixel2007

Когда МойПакет содержит в описании ИсполняемыйФайл test
Тогда после выполнения opm install МойПакет из командной строки доступна команда test

оно так работает на винде, но не работает на линуксе. значит цель - заставить его так работать на линуксе

Автор @dmpas

делаю sudo apt purge onescript и в системе не остаётся ни одного файла, так или иначе установленного посредством этих ваших opm, за исключением того, что лежит в домашних каталогах.

opm show packageName

Команда, которая показывает сводку по установленному пакету.
Имя пакета, описание, версия, etc.

Кириллица в консоли на английской Windows с кодовой страницей, отличающеся от CP 1251

Прикладываю скриншот с проблемой.
image

Можно конечно в ручную поменять кодовую страницу командой CHCP 1251, но может быть есть более крутое решение на уровне самого opm?

Я предлагаю выводить справочную инфу на английском в случае, если не CP 1251 или Windows не русифицированная.

opm package-check

Команда, которая будет:

  • собирать пакет в виде ospx
  • разворачивать его во временном каталоге
  • запускать для каждого файла *.os oscript -check
    • предусмотреть передачу параметра -env

artbear/1testrunner#15

Сделать регистронезависимым установщик пакетов opm install

Ошибка

C:\Users\ShabalinE>opm install precommit1C
ИНФОРМАЦИЯ - Скачиваю файл: precommit1C.ospx
Ошибка установки пакета precommit1C <404>

Правильно

C:\Users\ShabalinE>opm install precommit1c
ИНФОРМАЦИЯ - Скачиваю файл: precommit1c.ospx
ИНФОРМАЦИЯ - Устанавливаю пакет precommit1c
ИНФОРМАЦИЯ - Устанавливаю зависимость: logos
ИНФОРМАЦИЯ - Устанавливаю зависимость: cmdline
ИНФОРМАЦИЯ - Устанавливаю зависимость: tempfiles
ИНФОРМАЦИЯ - Устанавливаю зависимость: asserts
ИНФОРМАЦИЯ - Устанавливаю зависимость: v8runner
ИНФОРМАЦИЯ - Устанавливаю зависимость: strings
ИНФОРМАЦИЯ - Регистрация приложения: precommit1c
ИНФОРМАЦИЯ - Установка завершена

Версия opm

Хотелось бы из командной строки показывать версию opm для проверки актуальности.
opm -version

Зеркала

25 декабря 2016г:

>opm list -remote
Внешнее исключение (System.Net.WebException): Невозможно соединиться с удаленным сервером

Предлагаю:

  1. создать зеркало хаба:
    • зеркало должно уметь обновляться с основного узла
    • зеркало не должно ничем отличаться по структуре от основного узла (за исключением адреса сайта и корневого пути)
  2. научить opm, что пакеты можно качать не только с одного места

Исключать каталоги не библиотек из процедуры обновления

opm update -all
КРИТИЧНАЯОШИБКА - {Модуль ...\OneScript\lib\opm\src\Классы\УстановкаПакета.os / Ошибка в строке: 263 / Ошибка установки пакета .vscode: Пакет не найден}

".vscode" - каталог хранения настроек редактора VSC
Предлагаю убрать из анализа все каталоги, начинающиеся с "."
А вообще, наверное, лучше смотреть на наличие файла packagedef в каталоге
Как считаете?

BAT генерируемый командой app не всегда возвращает нормальный retCode

Если некий opm-runner типа packman или gitsync вызывается из другого BAT-файла, то код ошибки не всегда возвращается в вызывающий скрипт.

Причем, это как-то зависит от системы и настроек, потому что иногда оно работает.
Пример правильного скрипта раннера:

@oscript.exe "C:\Program Files (x86)\OneScript\lib\packman\src\packman.os" %*
@set err=ERRORLEVEL
@exit /B err

opm install -all падает при первом использовании

opm update opm и далее opm install -all падает неожиданно при первом использовании
Например, на чистой машине поставили 1скрипт и пытаемся обновить библиотеки

ругается на Свойство объекта не обнаружено (СоздаватьSHСкриптЗапуска

Непонятная ошибка 404 при установке пакета

opm install strange ругается с 404-ой ошибкой, что не совсем понятно для пользователя.
Вероятнее всего, раз мы получили 404, значит пользователь либо пытается скачать несуществующий пакет либо лежат все зеркала сразу. Нужно пользователю сказать об этом явно.

Сделать отдельную библиотеку универсальных тасков для opm

Нужен набор универсальных тасков для opm

  • запуск 1testrunner для тестирования проекта
  • запуск 1bdd для прогона всех фич проекта
  • запуск 1bdd для прогона одной фичи
  • запуск 1bdd для генерации шагов фичи
  • создание пакета библиотеки для публикации на хабе
  • проверка генерации пакета библиотеки
  • проверка установки пакета
  • новые шаги ...

Сейчас приходится дублировать набор этих задач в каждом проекте. Причем для разных зада нужен индивидуальный набор задач.

Чтобы не нагружать движок opm, предлагаю выделить отдельную библиотеку opm-tasks

opm push должен писать в консоль об успешной отправке файла на хаб

opm push отработал, в дев-канале вижу свежую дату и время
одно но:

C:\projects\params>opm push --file params-0.3.ospx --channel dev --token ХХХ
ИНФОРМАЦИЯ -

никакой инфы об успешности не пишется :(

Предлагаю добавить сообщения

Файл params-0.3.ospx выгружен в dev-хаб по адресу http://hub.oscript.io/dev-channel/params

Баг выполнения opm run

PS C:\projects\1commands> opm run
OneScript Package Manager v0.9.3

ИНФОРМАЦИЯ - Преобразование к типу 'Число' не поддерживается

Падает opm в 15-м односкрипте (из-за ДиспетчерКомандПриложения)

{Модуль /usr/share/oscript/lib/opm/src/opm.os / Ошибка в строке: 51 / Внешнее исключение (System.Collections.Generic.KeyNotFoundException): The given key was not present in the dictionary.}

https://github.com/oscript-library/opm/blob/master/src/opm.os#L51

14-й Односкрипт не ругается на эту строчку, но мне кажется, это ошибка в ОПМ, потому как объекта такого я не нашёл. Видимо, 15-й правильно ругается.

nuget

В качестве вброса.

Перевести opm на технологию nuget. Плюсы из коробки:

  • различные источники пакетов
  • возможность заливать пакеты в хаб из командной строки, а не собирать на коленке в самом хабе

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.