LINUX.ORG.RU

История изменений

Исправление Deleted, (текущая версия) :

Я про контроль целостности.

Вы можете собрать application с хидерами от libblabla-1.0.0, а задеплоить с бинарником от libblabla-1.0.1, libblabla-1.1.0, libblabla-1.2.10...

Два разных шага: с чем собираем, и с чем линкуем в рантайме.

А мой собеседник настаивает, что нужно каждый раз пересобирать application, хотя это абсурд, противоречащий тому, как проектируется софт. Тут игнорируется фундаментальный принцип разделения интерфейса и реализации.

В идеале, nix должен разделять build environment и run-time environment и контроллировать их отдельно.

При сборке мы получаем производный артефакт «application собранный с хидерами от libblabla-1.0.0», который должен контроллироваться отдельно как от обоих исходников, так и от не связанного с ним артефакта «бинарник libblabla». Это контроль сборки.

А контроль run-time environment в свою очередь даёт гарантию, что задеплоено будет ровно то, что побитово совпадает с задуманным. А вот что именно задумано, т.е. конфигурация, - это должен решить человек.

Из-за того, что nix смешивает роли системы сборки и системы доставки, обе вещи он реализует хуже, чем мог бы.

Исправление Deleted, :

Я про контроль целостности.

Вы можете собрать application с хидерами от libblabla-1.0.0, а задеплоить с бинарником от libblabla-1.0.1, libblabla-1.1.0, libblabla-1.2.10...

Два разных шага: с чем собираем, и с чем линкуем в рантайме.

А мой собеседник настаивает, что нужно каждый раз пересобирать application, хотя это абсурд, противоречащий тому, как проектируется софт.

В идеале, nix должен разделять build environment и run-time environment и контроллировать их отдельно.

При сборке мы получаем производный артефакт «application собранный с хидерами от libblabla-1.0.0», который должен контроллироваться отдельно как от обоих исходников, так и от не связанного с ним артефакта «бинарник libblabla». Это контроль сборки.

А контроль run-time environment в свою очередь даёт гарантию, что задеплоено будет ровно то, что побитово совпадает с задуманным. А вот что именно задумано, т.е. конфигурация, - это должен решить человек.

Из-за того, что nix смешивает роли системы сборки и системы доставки, обе вещи он реализует хуже, чем мог бы.

Исправление Deleted, :

Я про контроль целостности.

Вы можете собрать application с хидерами от libblabla-1.0.0, а задеплоить с бинарником от libblabla-1.0.1, libblabla-1.1.0, libblabla-1.2.10...

Два разных шага: с чем собираем, и с чем линкуем в рантайме.

А мой собеседник настаивает, что нужно каждый раз пересобирать application, хотя это абсурд, противоречащий тому, как проектируется софт.

В идеале, nix должен разделять build environment и run-time environment и контроллировать их отдельно.

При сборке мы получаем производный артефакт «application собранный с хидерами от libblabla-1.0.0», который должен контроллироваться отдельно как от обоих исходников, так и от не связанного с ним артефакта «бинарник libblabla».

Контроль run-time environment даёт гарантию, что задеплоено будет ровно то, что побитово совпадает с задуманным. А вот что именно задумано, т.е. конфигурация, - это должен решить человек.

Из-за того, что nix смешивает роли системы сборки и системы доставки, обе вещи он реализует хуже, чем мог бы.

Исправление Deleted, :

Я про контроль целостности.

Вы можете собрать application с хидерами от libblabla-1.0.0, а задеплоить с бинарником от libblabla-1.0.1, libblabla-1.1.0, libblabla-1.2.10...

Два разных шага: с чем собираем, и с чем линкуем в рантайме.

А мой собеседник настаивает, что нужно каждый раз пересобирать application, хотя это абсурд, противоречащий тому, как проектируется софт.

При сборке мы получаем производный артефакт «application собранный с хидерами от libblabla-1.0.0», который должен контроллироваться отдельно как от обоих исходников, так и от не связанного с ним артефакта «бинарник libblabla».

В идеале, nix должен разделять build environment и run-time environment и контроллировать их отдельно.

Контроль run-time environment даёт гарантию, что задеплоено будет ровно то, что побитово совпадает с задуманным. А вот что именно задумано, т.е. конфигурация, - это должен решить человек.

Из-за того, что nix смешивает роли системы сборки и системы доставки, обе вещи он реализует хуже, чем мог бы.

Исходная версия Deleted, :

Я про контроль целостности.

Вы можете собрать application с хидерами от libblabla-1.0.0, а задеплоить с бинарником от libblabla-1.0.1, libblabla-1.1.0, libblabla-1.2.10...

Два разных шага: с чем собираем, и с чем линкуем в рантайме.

А мой собеседник настаивает, что нужно каждый раз пересобирать application, хотя это абсурд, противоречащий тому, как проектируется софт.

В идеале, nix должен разделять build environment и run-time environment и контроллировать их отдельно.

Контроль run-time environment даёт гарантию, что задеплоено будет ровно то, что побитово совпадает с задуманным. А вот что именно задумано, т.е. конфигурация, - это должен решить человек.

Из-за того, что nix смешивает роли системы сборки и системы доставки, обе вещи он реализует хуже, чем мог бы.