我刚刚编写了一个新版本的WCF Web服务,我想确保我没有对服务和数据合同进行任何重大更改.
回想一下我作为VB6 Com Api开发人员的日子,我记得在编译时指定组件的先前发行版本是多么容易,并让编译器检查是否正在维护二进制兼容性.
我设想类似的(希望是)"合同兼容性"检查.它将使用元数据执行与VB6 dev env所做的类似的检查.这可以作为执行实用程序的单独构建步骤来完成.
我准备接受那里没有这样的实用工具.如果是这种情况,是否有人对如何实现这一目标的算法有任何想法?
第3步似乎很复杂,但肯定是自动化的......
versioning wcf web-services metadata backwards-compatibility
我们在电子表格中有很多VBA代码,很多时候人们将它们保存到本地驱动器中.当我们想要升级电子表格时,我们将新版本推送到共享驱动器,但没有任何方法可以强制人们不使用旧版本的电子表格.
这里是否有一些最佳实践来部署vba电子表格,因此如果有人加载旧版本,它将无法打开或要求您升级.对于任何自定义解决方案来说,这似乎必须是一个问题所以我会通过MS在这里有一些解决方案.
微软是否有针对此的标准版本/部署解决方案,或者我是否需要提出一些自行开发的解决方案(电子表格在启动时ping数据库以检查版本)
我有一套Debian打包脚本,我希望每次构建时都会增加包的版本号.(即debian_revision如在指定的Debian策略手册)也就是说,第一个构建应该是PACKAGE-1.0-0,然后PACKAGE-1.0-0,等(这里1.0是upstream_version).是否有一种简单的方法来指定这个"额外"版本号而无需在更改日志中创建新条目?
我希望每当特定目标(即deb构建)时,由项目的Makefile自动完成此操作
我目前正在为Project Dash开发Maven工具.其中一个悬而未决的问题是如何处理错误.
Maven Central说:没有任何出版物发生变化.这是因为Maven从未试图弄清楚版本是否发生了变化(与SNAPSHOTs不同).
但我可能不得不创建一个新的"发布版",例如Eclipse 3.6.2的一部分.我应该使用哪个版本号?3.6.2.1,3.6.2-1,3.6.2_1,3.6.2pl1?为什么?
我需要一个普通用户可以编辑模型的系统,但是在管理员批准之前,编辑实际上不会发生.我发现了一个名为paper_trail的宝石,它确实有模型版本,但并不特别支持我想要做的事情.我想知道其他人是如何处理这个问题的.我应该补充一点,我希望能够让用户同时进行编辑.它们不是很复杂,例如一个是别名.
更复杂的部分可能是多个用户编辑相同模型并尝试进行某种合并的情况.
我知道有很多关于如何使用(甚至使用)软件版本的想法.即使我想知道软件版本在1.x之后应该变成2.x.
在我的例子中,我使用1和2,但它当然可以是任何其他数字.
是在完全重写之后吗?还是一个新的/大部分更新的用户界面?一堆新的(主要)功能?在重写程序后,它的"核心"?
当我看到(可能是一个不好的例子)Internet Explorer或Chrome时,我无法真正说出为什么他们如此迅速地增加了他们的"主要"版本......
我现在的想法是,当一个程序从1.x变为2.x时,它应该用至少相同的功能完全重写,只有更好(更稳定,更优化,更清晰的代码等)
有什么想法吗?
我已提交审核更改集.不幸的是我忘了先刷新我的沙箱,这意味着我没有在那个集合中包含一些变化.
所以我失去了添加更改到我的更改集的选项.
我不想丢弃该更改集,因为它包含重要更改.我也不想提供2个更改集,因为它们包含原子逻辑(不能拆分的逻辑).
我有一种感觉,"反向"选项会让我的变化恢复到可编辑的状态,但我真的不知道该怎么做.
总结一下:我需要让我的更改集再次可编辑,以便我可以将其与另一个合并.
谁知道我会怎么做?
谢谢,你们统治!
当我听到关于发布版本1 API的讨论时,它始终伴随着这个基本的想法:
我们还不能发布我们的API,因为我们必须在第一时间做到正确.
这是Vic Gundotra最近的一个例子,但是在API发布前一天,还有很多其他的包括Stackoverflow本身.
我不明白的是,为什么第一个版本必须如此"正确"?使用API,您可以实现版本控制和良好的文档,如果您做得好,哪个并不难,为什么对版本1 API如此珍贵?
从版本到版本,因为它是版本化的,所以API可以在没有任何重大更改的情况下发生显着变化,因为仍然支持旧版本.我想知道为什么发布API的重大问题?
我们将一个中等大小的代码库整合到一个多(多)模块maven项目中.总体而言,整个构建对于不同的系统组件(Web应用程序(.war),实用程序(.jar)等)具有多达十个输出工件.
到目前为止,我们的部署过程基于简单的bash脚本,这些脚本通过maven构建所请求的工件,使用有关工件,目标环境和当前构建时间戳的信息标记scm存储库,然后将工件上载到选定的环境应用程序服务器并发布命令重新启动正在运行的守护进程.通过maven配置文件和资源过滤来配置构建的工件.因此,我们的构建特定于目标环境.
这个过程对我们很有帮助,但出于不同的原因,我想向更复杂的方法迈进.特别是我想摆脱bash脚本.
那么有关基于Maven的Java应用程序的配置,版本控制和部署的最佳实践是什么?
我们的构建是否应该与环境无关,并且配置是通过目标系统上的配置文件完成的?如果是这样,开发人员如何注意新配置选项包含在各种应用程序服务器上的已部署配置文件中?
我们应该使用Maven版本化的Maven发布插件来标记各种构建吗?
配置像Jenkins或Teamcity这样的CI服务器来为我们构建和选择部署我们的工件是一个好主意吗?
versioning ×10
java ×3
deployment ×2
maven ×2
api ×1
architecture ×1
debian ×1
eclipse ×1
excel ×1
metadata ×1
models ×1
packages ×1
packaging ×1
rtc ×1
vba ×1
wcf ×1
web-services ×1