mpt-csproj

mono-packaging-tools
Существующий код для работы с файлами проектов
Удаление TreatErrorsAsWarnings

Какие есть версии?

Это можно посмотреть на страницах:
http://gpo.zugaina.org/dev-util/mono-packaging-tools

проект
mpt-csproj/mpt-csproj.csproj
зависит от сборки
mpt-core/mpt-core.csproj

Внутри сборки mpt-core классы для работы с версиями (SemanticVersioning), но они пока не используются.

mpt-csproj.csproj ссылается на Mono.Options.dll для того, чтобы можно было анализировать аргументы командной строки

Что я хочу сделать в mpt-csroj?
1) сделать разбор параметров командной строки для управления функциями
2) сделать функцию печати Reference использованных в указанном .csproj-файле
одной этой функции достаточно, чтобы зарелизить новую минорную версию пакета и опакетить её (тем более, что старый пакет неработоспособен)
3) сделать функцию замены Reference в некотором .csproj-файле с ProjectReference на GAC Reference.
ну, csproj это такой XML, можно найти секцию где находятся ProjectReferences, можно найти секцию где находятся References,
ну и ссылку удалить/создать по-новому

Будет ли забираться версия сборки из GAC, если не указано, какая версия нужна?
Для ответа на этот вопрос надо найти спецификацию по местам поиска сборок в mono или прочитать код mono.
Но можно просто проверить практически - сделать и посмотреть, вдруг заработает? Тогда на грабли будут наступать другие, а я победно кричать УМВР!

функция печати Reference в указанном .csproj-файле

mpt-csproj --refs filename
    здесь "refs" требует один параметр (то есть не один, а список). Если надо обработать несколько проектов - пишем несколько refs
Затем надо позвать функцию из mpt-core,
пусть эта функция будет иметь интерфейс
void DumpRefs(string csproj, IndentedTextWriter out)
mpt-csproj пусть занимается
анализом параметров, циклом по файлам, соединением с выводом на консоль, отступами (созданием IndentedTextWriter)

Новый пакет

2016-08-18, 13a6c4524e2f3a7e70604fc8f68fd7aba72efc4c
cd /var/lib/layman/dotnet
git add *
git commit -m "bump for commandlineparser fix"
git push

Использование ветки и URL для layman

Как перенастроить репозиторий лайман, чтобы использовлся другой URL для скачивания контента?
потому что вокфлоу такой - форкнул, отбранчил, наменял, запушил, (вот тут я хочу эту ветку потестить), создал PR для ветки, дождался мержа, удалил ветку, догнал master
потому что это другая машина, хочу чтобы она скачивала с гитхаба

Как я пытался разрешить проблему:
читал man layman

man на layman - в нём же нет примера секции для файла /etc/portage/repos.conf/layman.conf
а на странице https://wiki.gentoo.org/wiki//etc/portage/repos.conf не написано, как выбрать ветку в репозитории
how to configure layman's overlay to fetch ebuilds from git branch other than "master" ?
grknight: portage's sync, and i believe layman does as well, assumes the current branch selected by the user is what should be updated
grknight: oh, thanks. I changed url with "git remote set-url origin" by hands, and /etc/portage/repos.conf/layman.conf too, but looks like "layman -i" output wrong information
<iamben> beyond the initial repos.conf file generation, layman isnt too useful
<grknight> yes, layman is on it's way to being an "add from known sources" tool. rest should be done by portage

https://wiki.gentoo.org/wiki/Project:Portage/Sync