Scala Version Manager?
От: Young yunoshev.ru
Дата: 30.07.13 11:51
Оценка:
Приветствую...

Существует ли в природе Scala Version Manager — по аналогии с Ruby Version Manager — RVM и т.п.

Т.е. есть задача иметь возможность поставить батником нужную версию. Новой версией не собираются новые исходники (вернее есть jar классы сторонней scala библиотеки которая не собирается под 2.10 — simplex3d)
Под OSX brew не умеет без шаманства ставить старые версии

Компиляция идет через просто запуск scala с параметрами.

Или можно как нибудь scala сказать про режим совместимости со старой версией?
Re: Scala Version Manager?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 30.07.13 11:53
Оценка:
Здравствуйте, Young, Вы писали:

Y>Т.е. есть задача иметь возможность поставить батником нужную версию. Новой версией не собираются новые исходники (вернее есть jar классы сторонней scala библиотеки которая не собирается под 2.10 — simplex3d)

Y>Под OSX brew не умеет без шаманства ставить старые версии

У тебя просто не правильный менеждер пакетов:

astavonin:/Users/../astavonin: port search scala
...
scala29 @2.9.2 (lang, java)
    The Scala Programming Language

scala210 @0.0.2.10.0-M4 (lang, java)
    The Scala Programming Language

scala_select @0.1 (sysutils)
    common files for selecting default scala compiler
...
Re[2]: Scala Version Manager?
От: Young yunoshev.ru
Дата: 30.07.13 11:59
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Здравствуйте, Young, Вы писали:


Y>>Т.е. есть задача иметь возможность поставить батником нужную версию. Новой версией не собираются новые исходники (вернее есть jar классы сторонней scala библиотеки которая не собирается под 2.10 — simplex3d)

Y>>Под OSX brew не умеет без шаманства ставить старые версии

KP>У тебя просто не правильный менеждер пакетов:


Я понимаю И я думаю скорее всего я даже через brew поставлю нужную версию.

Вопрос именно в наличии SVM — как вы переключаете версии scala налету? Т.е. вот есть проект которые для такой версии, а есть проект который для такой версии. Не переустанавливать же системую scala всегда?

Ответ, нет такого не существует меня тоже устроит
Re[2]: Scala Version Manager?
От: Young yunoshev.ru
Дата: 30.07.13 12:05
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Здравствуйте, Young, Вы писали:


Y>>Т.е. есть задача иметь возможность поставить батником нужную версию. Новой версией не собираются новые исходники (вернее есть jar классы сторонней scala библиотеки которая не собирается под 2.10 — simplex3d)

Y>>Под OSX brew не умеет без шаманства ставить старые версии

KP>У тебя просто не правильный менеждер пакетов:


Кстати, разобрался с brew. После команды brew tap homebrew/versions, появляются версии нужные при brew search и brew install
Так что сейчас буду пробовать.

P.S. От port в свое время отошел к brew — не нравилось что все таки port все хранит в системных директориях и не всегда корректно делает uninstall
Re: Scala Version Manager?
От: RomikT Германия  
Дата: 30.07.13 12:05
Оценка:
Здравствуйте, Young, Вы писали:

Я думаю проблема не в менеджере пакетов а в этом:
Y>Компиляция идет через просто запуск scala с параметрами.

sbt, gradle и даже наверное maven в состоянии компилировать нужной версией скалы независимо от того, что установлено глобально.
Re[3]: Scala Version Manager?
От: dimgel Россия https://github.com/dimgel
Дата: 30.07.13 12:06
Оценка:
Здравствуйте, Young, Вы писали:

Y>Вопрос именно в наличии SVM — как вы переключаете версии scala налету? Т.е. вот есть проект которые для такой версии, а есть проект который для такой версии. Не переустанавливать же системую scala всегда?


Y>Ответ, нет такого не существует меня тоже устроит


SBT умеет компилять под несколько версий скалы сразу. Там даже артефакты генерятся с именами artifactName_scalaVersion-artifactVersion.jar. Но по подробностям не подскажу, не юзал. Недопонял что такое "на лету", может это и не оно, но это это общепринятый в scala-сообществе подход. Все скаловские библиотеки и фреймворки деплоятся в репы сразу для несколько версий скалы с такими вот инфиксами.
Re[3]: Scala Version Manager?
От: Alyash77 США  
Дата: 30.07.13 12:06
Оценка:
Y>Вопрос именно в наличии SVM — как вы переключаете версии scala налету? Т.е. вот есть проект которые для такой версии, а есть проект который для такой версии. Не переустанавливать же системую scala всегда?
Зачем что-то переустанавливать? Есть SBT который можно отконфигурить для работы с нужной версией. Ему только JVM нужна. Скала с репозиториев тянется.
Re[2]: Scala Version Manager?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 30.07.13 12:09
Оценка:
Здравствуйте, RomikT, Вы писали:

RT>sbt, gradle и даже наверное maven в состоянии компилировать нужной версией скалы независимо от того, что установлено глобально.


Мавен однозначно умеет.
Re[3]: Scala Version Manager?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 30.07.13 12:10
Оценка:
Здравствуйте, Young, Вы писали:

Y>Вопрос именно в наличии SVM — как вы переключаете версии scala налету? Т.е. вот есть проект которые для такой версии, а есть проект который для такой версии. Не переустанавливать же системую scala всегда?


Я в Мавене указывал нужную мне версию Скалы. В итоге, даже пакетный менеджер оставался не при делах.
Re[4]: Scala Version Manager?
От: Young yunoshev.ru
Дата: 30.07.13 12:11
Оценка:
Здравствуйте, Alyash77, Вы писали:

Y>>Вопрос именно в наличии SVM — как вы переключаете версии scala налету? Т.е. вот есть проект которые для такой версии, а есть проект который для такой версии. Не переустанавливать же системую scala всегда?

A>Зачем что-то переустанавливать? Есть SBT который можно отконфигурить для работы с нужной версией. Ему только JVM нужна. Скала с репозиториев тянется.

Ок, но это только для проектов настроенных собираться через SBT? Или через SBT установить в систему нужную версию scala?
Ну чтобы запуск в консоле "scala -version" выдавал нужное?
Re[5]: Scala Version Manager?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 30.07.13 12:16
Оценка:
Здравствуйте, Young, Вы писали:

Y>Ок, но это только для проектов настроенных собираться через SBT? Или через SBT установить в систему нужную версию scala?

Y>Ну чтобы запуск в консоле "scala -version" выдавал нужное?

Для мавена это выглядит так:
<project>
...
    <properties>
        <maven.compiler.source>1.6</maven.compiler.source>
        <maven.compiler.target>1.6</maven.compiler.target>
        <encoding>UTF-8</encoding>
        <scala.version>2.10.0</scala.version>
    </properties>
</project>


В итоге, он сам загрузит нужную версию компилятора из репозитория и соберет твой код им.
Re[5]: Scala Version Manager?
От: Alyash77 США  
Дата: 30.07.13 12:21
Оценка:
Y>Ок, но это только для проектов настроенных собираться через SBT? Или через SBT установить в систему нужную версию scala?
Зачем что-то куда-то устанавливать? У меня несколько десятков либ на скале и пол дюжины довольно больших проектов.
ну вот проще мне на новой машине сделать(при условии наличия jvm)
git clone/git pull
./sbt "project bla-bla" "compile"
При этом для даного проекта будет использоваться нужная версия подгружения с инета на старте сбт


Что именно вы пытаетесь решить глобальной установкой?

Y>Ну чтобы запуск в консоле "scala -version" выдавал нужное?

Зачем это на практике нужно?
Re[6]: Scala Version Manager?
От: Young yunoshev.ru
Дата: 30.07.13 12:22
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Здравствуйте, Young, Вы писали:


Y>>Ок, но это только для проектов настроенных собираться через SBT? Или через SBT установить в систему нужную версию scala?

Y>>Ну чтобы запуск в консоле "scala -version" выдавал нужное?

KP>Для мавена это выглядит так:

KP>
KP><project>
KP>...
KP>    <properties>
KP>        <maven.compiler.source>1.6</maven.compiler.source>
KP>        <maven.compiler.target>1.6</maven.compiler.target>
KP>        <encoding>UTF-8</encoding>
KP>        <scala.version>2.10.0</scala.version>
KP>    </properties>
KP></project>
KP>


KP>В итоге, он сам загрузит нужную версию компилятора из репозитория и соберет твой код им.


Понятно. Но для этого нужне marven и т.п. Сейчас же компиляция и сбор проекта это вызов "scalac", "scala" и все. Мне хочется разрулит именно установкой scala в систему.
Времени разбираться глубоко в marven, sbt и т.п. — и создавать проект там нету.

Собственно, решение через brew я сам нашел.
А SVM в отличии от RVM нету — ибо в scala исторически все собирают проекты через различные системы сборки аля marven и sbt — как я понимаю наследие java
Re[6]: Scala Version Manager?
От: Young yunoshev.ru
Дата: 30.07.13 12:24
Оценка:
Здравствуйте, Alyash77, Вы писали:

Y>>Ок, но это только для проектов настроенных собираться через SBT? Или через SBT установить в систему нужную версию scala?

A>Зачем что-то куда-то устанавливать? У меня несколько десятков либ на скале и пол дюжины довольно больших проектов.
A>ну вот проще мне на новой машине сделать(при условии наличия jvm)
A>git clone/git pull
A>./sbt "project bla-bla" "compile"
A>При этом для даного проекта будет использоваться нужная версия подгружения с инета на старте сбт

Для этого требуется чтобы sbt проект был. Его нету.


A>Что именно вы пытаетесь решить глобальной установкой?


Y>>Ну чтобы запуск в консоле "scala -version" выдавал нужное?

A>Зачем это на практике нужно?

Сейчас запуск нужного скрипта это запуск scalac и парочкой параметров и scala. Заменять эти две строчки на SBT, marven и т.п. видится несколько громоздким и лишним.
Re[7]: Scala Version Manager?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 30.07.13 12:25
Оценка:
Здравствуйте, Young, Вы писали:

Y>Понятно. Но для этого нужне marven и т.п. Сейчас же компиляция и сбор проекта это вызов "scalac", "scala" и все. Мне хочется разрулит именно установкой scala в систему.

Y>Времени разбираться глубоко в marven, sbt и т.п. — и создавать проект там нету.

Ну тогда ты просто сделаешь "еще один msven/sbt" только с игровыми автоматами и девочками.

Y>Собственно, решение через brew я сам нашел.

Y>А SVM в отличии от RVM нету — ибо в scala исторически все собирают проекты через различные системы сборки аля marven и sbt — как я понимаю наследие java

Подобные системы сборок реально удобны. Как ты иначе будешь собирать-то? Ну, разве что, Makefile писать какой-то или bash-скрипт
Re[8]: Scala Version Manager?
От: Young yunoshev.ru
Дата: 30.07.13 12:30
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Здравствуйте, Young, Вы писали:


Y>>Понятно. Но для этого нужне marven и т.п. Сейчас же компиляция и сбор проекта это вызов "scalac", "scala" и все. Мне хочется разрулит именно установкой scala в систему.

Y>>Времени разбираться глубоко в marven, sbt и т.п. — и создавать проект там нету.

KP>Ну тогда ты просто сделаешь "еще один msven/sbt" только с игровыми автоматами и девочками.


Нее...нее... sbt и прочее, оно как бы если зависимости, библиотеки. А когда это один scala файл и к нему 3 jar файла, зачем оно?

Y>>Собственно, решение через brew я сам нашел.

Y>>А SVM в отличии от RVM нету — ибо в scala исторически все собирают проекты через различные системы сборки аля marven и sbt — как я понимаю наследие java

KP>Подобные системы сборок реально удобны. Как ты иначе будешь собирать-то? Ну, разве что, Makefile писать какой-то или bash-скрипт


Да, это батник в котором написанно

scalac -javaextdirs bla some.scala -d bla
scala -J-Xmx2g -javaextdirs bla -classpath bla --outpath bla


Считаешь что его все же нужно заменить на marven/sbt и прочее? Не уверен.
Re[7]: Scala Version Manager?
От: Alyash77 США  
Дата: 30.07.13 12:36
Оценка:
Y>Для этого требуется чтобы sbt проект был. Его нету.
и в интернете тоже?

Y>Сейчас запуск нужного скрипта это запуск scalac и парочкой параметров и scala. Заменять эти две строчки на SBT, marven и т.п. видится несколько громоздким и лишним.

если это
https://github.com/harrah/xsbt/wiki/Quick-Configuration-Examples
для изменения версии
scalaVersion := "2.9.0-SNAPSHOT"

для вас сложнее чем писать свой велосипед то посоветовать вряд ли что-то можно. В результате у вас получится тот же sbt...
Re[8]: Scala Version Manager?
От: Young yunoshev.ru
Дата: 30.07.13 12:58
Оценка:
Здравствуйте, Alyash77, Вы писали:

Y>>Для этого требуется чтобы sbt проект был. Его нету.

A>и в интернете тоже?

Y>>Сейчас запуск нужного скрипта это запуск scalac и парочкой параметров и scala. Заменять эти две строчки на SBT, marven и т.п. видится несколько громоздким и лишним.

A>если это
A>https://github.com/harrah/xsbt/wiki/Quick-Configuration-Examples
A>для изменения версии
A>scalaVersion := "2.9.0-SNAPSHOT"

A>для вас сложнее чем писать свой велосипед то посоветовать вряд ли что-то можно. В результате у вас получится тот же sbt...


Ээээ... Ну холивар же.

Я правда считаю когда размер make файл (конфигурационного и т.п. назовем это так) для запуска скрипта больше чем сам скрипт, то что-то тут не так. Особенно когда знаешь что скрипт не будет изменятся.

Т.е. на 500к строк c++ кода, который должен собираться под ряд платформ, с десятком результирующих бинарников — я понимаю зачем нужен makefile на 5к строчек. Но когда это скрипт на десяток строчек.

Мне когда c++ программу скомпилировать и запустить нужно я пишу clang bla.cpp & ./a.out и все, а не пишу makefile для этого.
Когда я пишу ruby скрипт, я тоже запускаю его как ruby bla.rb, установив один раз на сервер нужную версию ruby
Когда я пишу java скрипт, я тоже запускаю его через javac & java — а не тащу туда ant/marven и прочее.

Зачем? Будут зависимости, будет хитрая процедура сборки — тогда ага.

Т.е. менять трехстрочкин brew install scala29 & scalac & scala на установку SBT, создание sbt проекта и т.п. мне не видится нужным.

Вы правда когда вам на скала нужно запустить небольшой скрипт генерите sbt проект всегда?
Re[3]: Scala Version Manager?
От: avpavlov  
Дата: 30.07.13 13:02
Оценка: +1
Y>Вопрос именно в наличии SVM — как вы переключаете версии scala налету? Т.е. вот есть проект которые для такой версии, а есть проект который для такой версии. Не переустанавливать же системую scala всегда?
Y>Ответ, нет такого не существует меня тоже устроит

А зачем Скалу вообще куда-то глобально ставить?

Если речь идёт про запуск приложения, то Скала — это ещё одна библиотека вместе с другими библиотеками приложения
Если речь идёт про компиляцию — то используй Maven или SBT, которые сами скачают и соберут под нужную версию (или под несколько сразу)

Руби-вэй с его гемсами, которые сделаны паралельно системному менеджеру пакетов — говно.
Re[9]: Scala Version Manager?
От: Alyash77 США  
Дата: 30.07.13 13:08
Оценка: +1
Y>Когда я пишу ruby скрипт, я тоже запускаю его как ruby bla.rb, установив один раз на сервер нужную версию ruby
Руби — отстой редкостный с бредовой системой версий и пакетов. Не надо его подходы тащить дальше. Забудте как страшный сон.

Y>Т.е. менять трехстрочкин brew install scala29 & scalac & scala на установку SBT, создание sbt проекта и т.п. мне не видится нужным.

вы вот раз в 10 больше строк уже против SBT написали — а свою проблему так и не решили.

Y>Вы правда когда вам на скала нужно запустить небольшой скрипт генерите sbt проект всегда?

Неа — я его копирую с другого проекта и имя сборки меняю Тем более что о-ужас-скрипт будет в пол-экрана вместе со всеми коментраиями
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.