Как определить ConfigurationOf с версией #development, которая зависит от базовой линии?
В Pharo я хочу определить метацелло ConfigurationOfNand2Tetris
это только один пакет:
ConfigurationOfNand2Tetris>>baseline01: spec
<version: '0.1-baseline'>
spec
for: #common
do: [
spec
blessing: #baseline;
repository: 'http://www.smalltalkhub.com/mc/DamienCassou/Nand2Tetris/main';
package: 'Nand2Tetris' ]
ConfigurationOfNand2Tetris>>development: spec
<symbolicVersion: #development>
spec for: #common version: '0.1-baseline'.
Когда я выполню MetacelloToolBox validateConfiguration: ConfigurationOfNand2Tetris
Я всегда получаю 2 предупреждения:
- Предупреждение: символическая версия #development относится к версии '0.1-baseline', благословение которой #baseline не равно #development { notDevelopmentVersion } [ #validateVersionSpecForSymbolicVersion:symbolicVersion: ]
- Предупреждение: определена только базовая линия (не определена версия). { onlyBaselineVersion } [ #validatePragmas ]
3 ответа
Если вы хотите просто зависеть от базовой линии, метафора для этого в Metacello заключается в использовании #bleedingEdge
благословение. Также вы можете явно отрицать другие символические версии:
ConfigurationOfNand2Tetris>>baseline01: spec
<version: '0.1-baseline'>
spec
for: #common
do: [
spec
blessing: #baseline;
repository: 'http://www.smalltalkhub.com/mc/DamienCassou/Nand2Tetris/main';
package: 'Nand2Tetris' ]
ConfigurationOfNand2Tetris>>bleedingEdge: spec
<symbolicVersion: #bleedingEdge>
spec for: #common version: '0.1-baseline'.
ConfigurationOfNand2Tetris>>development: spec
<symbolicVersion: #'development'>
spec for: #'common' version: #'notDefined'.
ConfigurationOfNand2Tetris>>stable: spec
<symbolicVersion: #'stable'>
spec for: #'common' version: #'notDefined'.
Идея в том, что #stable
а также #development
версии ссылаются на явно пронумерованные версии, тогда как версии #bleedingEdge
всегда указывает на последние версии.
Это должно избежать первого предупреждения. Я думаю, что пока вы не выпустили версию, вы можете смело игнорировать второе предупреждение.
Обычно вы определяете свою базовую линию, а затем также #versionN:
метод:
ConfigurationOfNand2Tetris>>version01: spec
<version: '0.1' imports: #('0.1-baseline')>
spec
for: #common do: [
spec
blessing: #baseline;
package: 'Nand2Tetris' with: 'Nand2Tetris-yourname.22'].
Я думаю, что вы забыли реализовать:
ConfigurationOfNand2Tetris>>version01: spec
<version: '0.1' imports: #('0.1-baseline' )>
spec for: #'common' do: [
spec blessing: #'development'.
spec description: 'some description'.
spec author: 'yourName'.
spec timestamp: '1/15/2013 16:13'.
spec
package: 'Nand2Tetris' with: 'Nand2Tetris-yourName.versionNumber']
Тогда вы должны изменить:
ConfigurationOfNand2Tetris>>development: spec
<symbolicVersion: #development>
spec for: #'common' version: '0.1'.