Сопровождающий Crypto-API здесь.
ПРОБЛЕМА
Проблема в том, что пакеты являются взаимоисключающими. Последняя версия cprng-aes требует версию crypto-api >= 0.8
. Последний моток требует crypto-api 0.6.*
. Итак, мы хотим, чтобы разработчик мотков (по электронной почте) обновил пакет.
НА СЕЙЧАС
До этого вам нужно будет установить более старые версии соответствующих пакетов. Попробуйте что-то вроде:
cabal install yesod 'crypto-api == 0.6.4' 'cprng == 0.2.1'
Я думаю, что синтаксис правильный. Если нет, вы всегда можете сделать:
cabal install yesod crypto-api-0.6.4 cprng-0.2.1
КАК ОБЩЕСТВО МОЖЕТ ИЗБЕГАТЬ
В долгосрочной перспективе я надеюсь, что cabal станет лучше и автоматически найдет совместимые версии, как я делал для вышеизложенного. Если не считать таких кабальных улучшений, о которых все упоминают и которые никто не внедряет, было бы неплохо, чтобы сопровождающие пакетов попытались сохранить постоянную нижнюю границу в своих сборочных разработках. Если бы cprng-aes все еще принимал crypto-api >= 0.5
, то я думаю, что это было установлено cabal. Сопровождающие пакетов могут попросить об этом немного, но они могут сделать это, используя CPP и макросы {MAX,MIN}_VERSION
, предоставленные cabal.
РЕДАКТИРОВАТЬ: ОБНОВЛЕНИЕ
Фелипе обновил моток и загрузил его в хакерскую сеть. Майкл обновил клиентскую версию, и, учитывая, что он является сопровождающим Yesod и уже участвует в обсуждениях по электронной почте, я уверен, что он скоро загрузит его для взлома. К моменту прочтения этого сообщения все должно быть исправлено, просто запустите:
cabal update ; cabal install yesod
Подумав, я вижу, сколько ударов основной версии трафика в crypto-api вызывают остальное сообщество. Я не уверен, как справиться с проблемой. Я мог только что заметить, что «никто не пострадает, если я сделаю это изменение» и просто порвать с PVP. OTOH, если я нарушу чей-то код, когда не смогу следовать PVP, у них есть веская причина расстраиваться. Есть комментарии сообщества?