Куча говна / Говнокод #23825 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
Whether or not you check in your Pods folder is up to you, as workflows vary from project to project. We recommend that you keep the Pods directory under source control, and don't add it to your .gitignore

Benefits of checking in the Pods directory

    After cloning the repo, the project can immediately build and run, even without having CocoaPods installed on the machine. There is no need to run pod install, and no Internet connection is necessary.
    The Pod artifacts (code/libraries) are always available, even if the source of a Pod (e.g. GitHub) were to go down.
    The Pod artifacts are guaranteed to be identical to those in the original installation after cloning the repo.

https://guides.cocoapods.org/using/using-cocoapods.html

Запостил: Desktop Desktop, (Updated )

Комментарии (99) RSS

  • и еще скомпилированный код тоже коммитить, чтобы если нету компилятора то все равно всё работало

    зы: почему эпл не сделает свой нормальный пекедж и депенденси менеджер? почему какое-то рубийное наколенное до сих пор существует?
    Ответить
    • Пойду / закоммичу, чтобы конпелятор и прочее говно не приходилось ставить.
      Ответить
          • К кому ты обращаешься во множественном числе?! Я здесь один!
            Ответить
              • Так... ну я тебе щас лекцию прочитаю. Значит, багры, перед 2017 годом, задумали расхуячить говносток на Говнокоде, то, что потом вошло в историю, как война ботов. Слушай и запоминай. Командующий налётом багров был адмирал Стертор. Средний багор на самом деле, но исполнительный... исполнительный, безусловно, профессионал.
                Ответить
                • $bots['barop'] = '123';
                  $bots['bagor'] = '123212321a';
                  $bots['CTEPTOP'] = 'satanail';
                  $bots['fajes_rown'] = 'roun';
                  $bots['CrashTesterAnusov'] = 'penis';
                  $bots['Dr_Stertor'] = 'str';
                  $bots['voodoodal16'] = 'voodoo16';
                  $bots['REVENGE_OF_STERTOR'] = 'rev';
                  $bots['huest'] = '123';
                  $bots['AntiSpam'] = 'carme';
                  $bots['AntiUeban'] = '1010';
                  $bots['CnEPMA'] = '123';


                  Жалко, что не один из них не рабочий.
                  Ответить
    • Меня тоже мучает этот вопрос. Они запилили Swift Packet Manager, но его используют полторы калеки (все те, кто пишут на Свифте под линь)

      А так Carthage намного проще и лучше, если base language это Свифт, конечно.
      Ответить
    • Полезно было бы иметь одинаковый формат таких репозиториев для разных ЯП, ОС, СКВ. Чтобы можно было качать то, что нужно, если есть (исходники - для разработки, скомпилированное - для использования); чтобы не качать лишнего (исходники - для использования, скомпилированное - для разработки); чтобы прозрачно добавлять скомпилированные версии под другие платформы (при изменении кода в новой ревизии считать все бинарники удалёнными в этой ревизии; при изменении или добавлении бинарников от другой платформы - считать бинарники актуальными); гитхабу - удалять старые/минорные/из неосновных веток бинарники, если лимиты превышены; ОС - отправлять неактуальные бинарники куда подальше (как в той ОС, которая запылившиеся давно не тронутые файлы отправляла на ленту) и т.д.
      Ответить
      • > исходники - для использования
        > лишнего

        Ричард Столлман смотрит на тебя как на говно.
        Ответить
        • Столлман совсем не против того чтобы не качал сырцы: ты можешь качать .so и .h, многие дистры так делают

          Но ты всегда можешь по первому требованию получить сырцы, вот в чем поинт Столлмана
          Ответить
          • > по первому требованию
            Что, кстати, не означает, что ты должен сырцы раздавать всем подряд на гитхабе. Можно только тем, кому продал свой софт.
            Ответить
          • Лол, можно даже бабло за загрузку исходников брать! Но не больше, чем за загрузку бинарников.

            Fee to download source may not be greater than the fee to download the binary.
            Ответить
  • > guaranteed to be identical to those in the original installation after cloning the repo
    Т.е. оно всегда качает последнюю версию, даже на коммит лочиться не умеет?
    Ответить
    • ахахха
      слона-то я и не приметил

      три раза собираешь проект на CI -- три раза разные билды получаюится

      но на самом деле там можно указать версия конечно
      pod 'AFNetworking', '~> 1.0'
      Ответить
      • на самом деле после первого запуска создается файл Podfile.lock, в котором прописаны установленые версии.
        Поэтому остальные разработчики могут выполнить pod install и те же самые версии библиотек
        Ответить
    • Умеет, можно указать репу (например, форк), бранчу и коммит. Плюс есть Podfile.lock. Потому это вдвойне смешнее.

      Я вообще недавно узнал, что у них в доках такая рекомендация. Потому очень удивлялся, что в проекте, который щас надо поддерживать, зависимости были прямо в гите. Нуашо, в доке ж написано
      Ответить
      • ну строго говоря кокоаподс не обязательный трибут яблочника
        у кого-то и рубей может не быть
        Ответить
            • От "жизы" отстал твой папик: в то время, когда везде рекламировали презервативы, он продолжал практиковать прерванный половой акт - поистине дедовский метод борьбы с нежелательной беременностью.
              Ответить
              • судя по знанию таких обычно скрываемых подробностей могу предположить только то, что ты и есть тот самый папик
                Ответить
                • да нет, просто со стертором его собссный папик такую штуку практиковал
                  Ответить
    • Занятно было в мире Node.js, когда какой-то мужик снёс пару сотен своих популярных пакетов.
      Ответить
        • Пока вся питушня зависимостей не будет явно встраиваться в новый продукт - пости то же самое?
          Ответить
          • Не понял, именно для этого же зависимости и нужны?
            Ответить
            • Под "явно встраиваться" я имел в виду "вкомпиливаться" или "складываться в дистрибутив". Чтоб при скачивании софтины X сразу скачивались все её зависимости, а не их список.
              Чтоб если кто-то создал X и протестировал с определёнными версиями зависимостей, по умолчанию пользователю приходило бы всё это в неизменном виде, не важно, кто там что удалил или сломал в пакетах, от которых зависит X.
              Ответить
              • Давай, давай, а ну, давай,
                Меня шмонай ты, вертухай,
                Да загляни под юбочку,
                Да посмотри на булочки.
                Понюхай попку носиком,
                Прикинься, киса, пёсиком,
                Вот в этом вся и разница,
                Кто хочет, а кто дразнится.

                ©Любимая группа мамки админа
                Ответить
      • мнекажется что "left-pad" и была отсылка к этой истории, не?
        Ответить
        • Да, так и есть. Я саму историю помнил, но название этого модуля - нет.
          Думал, left-pad - это совсем другая история - вот и привёл в эту пример 🙂
          Ответить
    • > Но вообще, идея не ломать свой проект, когда какому-то мудаку захочется удалить свой очередной left-pad, кажется здравой.

      Когда пробуешь пособирать какой-нибудь Haskell через cabal, поневоле хочется начать вендорить зависимости. И то сейчас уже получше, раньше вообще ад был, постоянно всё ломалось.
      Ответить
    • Кешируйте пакеты в локальном прокси-репозитории (артифактори) конторы и будет щастье.

      Кстати, вон и СёмаРиал выше о том же глаголит.
      Ответить
    • > удалить свой очередной left-pad
      Да хуй с ним, с удалением. А если бы туда вредоносный код попал?
      Ответить
      • rebar3 создаёт лок-файл с хэшами зависимостей, который коммитится в репозиторий. Если кто-то изменит left-pad.erl, то по меньшей мере у всех наебнутся билды. Может и в npm до подобного додумались. Но вообще, не зеркалировать все зависимости в сколько-нибудь серьёзном проекте -- это адская некомпетентность.
        Ответить
        • >>хэшами зависимостей,
          а обновляться как?)

          Зеркалировать надо еще и для того, чтобы у тебя по 150 раз в день на CI и машинах разрабов не качались одни и те же 200 мегабайт
          Ответить
          • > а обновляться как
            Ну урл исходной репы там, скорее всего, тоже записан. Так что можно и обновиться (если это реально нужно).
            Ответить
            • так при обновлении приедет новый депенденси с хешем?
              Ответить
                • >>поревьювить
                  писька в том, что в уважающем себя JS прокете (будь то клиент или сервер) зависимостей обычно штук триста (включая т.н. peer -- транзитивные). Можно сломаться все ревьюить:)

                  Ну в целом мысля про хеш понятна:
                  она гарантирует что для версии pitushik@1.2.42 всегда приедет один и тот же пакет
                  Ответить
                  • Да может сломаться только минифицированная версия.
                    Статья на швабре было недавно про это.

                    Можно заранее подготовить бекдор, а потом следующим комитом без палева его активировать.
                    Ответить
                      • Как нахуя. Чтобы самому не ебаться с минификацией? Сделал npm i - и всё готово.
                        Ответить
                      • Если ты не умеешь локально компилить JS, например:)
                        Хотя если ты умеешь package management, то наверняка ты умеешь и uglify/webpack/browserify итд
                        Ответить
                        • А могут вообще не поставлять полную версию? Или такую библиотеку сразу нахуй?
                          Ответить
                          • В смысле только компилированную?:)

                            Я о таком не слышал, наверное могут если лицензжия не позволяет
                            Ответить
                            • Ну вот я напесал супер-полезную либу bormand-love.js и храню у себя на компе. В npm выкладываю только углифаеную версию. Так можно?
                              Ответить
                              • Следующим шагом советую начать продавать ее за деньги и требовать лицензионный ключ
                                Ответить
                • У тебя не все коменты в говностоке отображаются, проверь.
                  Ответить
          • > а обновляться как?)
            Я глупость сморозил. На самом деле при изменении апстрима rebar сам изменит lock-файл, и это будет заметно в диффе.
            Ответить
            • а, ну вот yarn так же работает:)

              npm тоже умеет .lock, кстати
              и вот как тут выяснили и кокоаподс ябловый умеет
              Ответить
        • Это на случай, если сделают изменение, но версию не поинкрементят?
          Ответить
          • да, на случай если мамин хакер заспуфит пакет и сделаем там вредоносный код

            правда мне не очень понятно как это сделать если пакеты качаются по https
            Ответить
              • Или мимопроходилам, которые случайно нашли пароль от учётки в репе...

                З.Ы. Имхо, HTTPS тут совершенно лишний и только создаёт иллюзию безопасности.
                Ответить
                • >> HTTPS тут совершенно лишний
                  бог с тобой! Без HTTPS я тебе насру в hosts или в твой DNS и ты будешь качать все зависимости с моего сайтика, а что я туда положу будет зависеть от настроения

                  Ну вот хеш спасает конечно, но с новыми как бывть?
                  Ответить
                  • А что добавляет HTTPS к безопасности репы? Только защищает индекс пакетов при его передаче по каналу (контент пакетов же защищён хешем, который хранится в индексе?). Но никак не защищает от его изменений самим сервером или автором пакета.

                    Автору придётся доверять (ну или ревьювить его код каждый раз). А от сервера и прочих посредников спасёт GPG подпись автора. В итоге HTTPS в этой схеме только для красоты остаётся.
                    Ответить
                    • HTTPS дает гарантию того, что ты соединился с реальной репой.
                      Если репу не взломали, значит ты знаешь что новую версию пакета (на которую ты обновляешься) положил туда автор пакета. Если автор, например, Резиг, то ты знаешь что он не мудак, и пакет не будет тебе гадить.

                      Если нет HTTPS то тебе приходится полагаться на то, что админ DNSа, которым ты сейчас пользуешься, не мудак.
                      А шансы на это не очень велики, особенно в кафе или аэропорту.
                      Ответить
                      • > положил туда автор пакета
                        Не админ сервера с репой?
                        Не взломавший сервер с репой?
                        Не взломавший пароль автора от репы?

                        А если у меня уже есть GPG подпись автора - то мне похуй на все эти HTTPS, они ничего нового не дадут.
                        Ответить
                        • Если это локальная репа нашей конторы то я знаю что админ там хороший (я с ним пиво пил), и что его не взломали (скорее всего).

                          Если это http://www.npmjs.com (или где там у них главный реп) то я почти наверяка уверен что их не сломали.

                          Блин! Я согласен что без хешкода много дыр, но все таки HTTPS тут явно не лишний: он сразу отсекает наиболее вероятный и простой способ взлома.
                          Ответить
        • Он хочет сказать что гугла нет в HSTS?)

          Опять таки все упирается в отсутствие https (передайте борманду за вон той партой). Не важно как тебя пидарнут: через arp spoofing-ли, через DNS, или через сломанный роутер. Важно что канал между тобой и местом, где терминируется tls надо рассматривать как НЕ безопасный.

          Кстати, параноки могут привязывать мак адреса к порту или ключу в случае wifi/eap
          Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8