Questions tagged «release»


11
是否有任何理由不接受可作为虚拟机交付的软件?
这是有关物流的问题,而不是技术问题。 我公司已将一些嵌入式软件工作外包。具体来说,由于我们没有足够的内部知识来自己完成这项工作(我们只有桌面应用程序开发人员),因此我们已经向承包商支付了开发嵌入式系统的费用。 因此,承包商已经完成了软件,并询问是否可以通过虚拟机将其交付给我们。VM是一台Windows 8计算机,其中包含预配置的CodeWarrior IDE,并将源代码作为CodeWarrior项目。想法是,这将使我们能够在已配置用于该项目进一步开发的VM中更改代码。 与让他们逐步引导我们如何配置自己的开发机器以对项目进行代码更改相比,这样做有什么弊端吗?我可以预见的唯一问题是VM运行缓慢,并且在进行代码更改时重建项目需要很长时间。但是另一方面,我喜欢获得预配置的嵌入式系统开发环境的想法,因此不必在台式机应用程序开发计算机上添加另一个IDE。 我真的想不起来为什么不接受VM交付的很好的理由,但是我只是想由这个社区来运行它,以防万一我丢失了某些东西。

8
发布版本中应该有断言
assertC ++中的默认行为是在发行版本中不执行任何操作。我认为这样做是出于性能原因,也许是为了防止用户看到讨厌的错误消息。 但是,我认为,那些assert将被触发但被禁用的情况更加麻烦,因为应用程序可能因为某些不变式被破坏而以更糟糕的方式崩溃。 另外,对我而言,性能参数仅在可衡量的问题时才有效。assert我代码中的大多数不会比复杂得多 assert(ptr != nullptr); 这将对大多数代码产生很小的影响。 这使我想到一个问题:断言(意味着概念,而不是特定的实现)是否应该在发布版本中有效?为什么不)? 请注意,此问题不是关于如何在发布版本中启用断言(例如#undef _NDEBUG或使用自定义断言实现)。此外,这不是在第三方/标准库代码中启用断言,而是在我控制的代码中启用断言。


2
如何开源其git存储库中历史上拥有受版权保护的媒体的项目?
我想以免费许可证发布音频指纹识别软件项目,但是存储库包含受版权保护的音频文件。测试用例当前还使用这些文件。如何在不违反版权的情况下以最高版本历史向公众发布代码? 细节: 该代码在git下进行了版本控制。在发布之前,我们会将其全部折叠回一个分支。 有400 MB的音频数据。有些文件是来自Jamendo的免费许可音乐,另一些是我们个人收藏中的MP3。 无论采用哪种方法,我们都将始终保留原始存储库的不变副本,以免破坏项目历史。 主要问题:如何处理公开发布? 从git存储库中删除有问题文件的所有历史记录,并释放更改后的存储库。(v64 指出了执行此操作的方法。) 另外,也可以对代码的当前状态进行快照,甚至不必费心查看预发布代码的公开历史记录。 附带问题:鉴于项目的早期阶段有时需要私有代码或媒体,我们如何首先避免这种困境?

4
发布版本与每晚版本
一个典型的解决方案是在构建服务器上运行CI(连续集成)构建:它将分析源代码,进行构建(在调试中)并运行测试,测量测试覆盖率等。 现在,另一种通常称为“夜间构建”的构建类型:做一些缓慢的工作,例如创建代码文档,制作安装程序包,部署到测试环境以及针对测试环境运行自动(烟熏或接受)测试等。 现在,问题是: 拥有第三个单独的“发布版本”作为发行版本更好吗? 还是在发布模式下“立即构建”并将其用作发布? 您在公司中使用什么? (发行版本还应在潜在产品版本的源代码控制中添加某种标签。)

2
编写发行说明的良好做法
在交付每个版本的软件时,我们都必须编写发行说明。例如,以下是我写发行说明时添加的一些术语: 发布日期 错误解决 够了,还是还有别的吗?
12 release 

8
在规避风险的环境中,我如何倡导半严格的发布时间表?
最近,我越来越被描述为我在该行业中最令人沮丧和士气低落的经历之一困扰:必须坐在经过测试,重新测试,上演的发行版上,并且出于所有目的并且已经准备好装运/部署目的。 作为一个全方位解决方案的人,而不仅仅是一个顽固的编码人员,我确实理解甚至提倡适当的变更控制。但是最近,在覆盖我们的基地和按时运输之间的微妙平衡已经变得不平衡了,在恢复到理智的状态上,我几乎没有成功。 我正在寻找有说服力的论据来帮助说服规避风险的管理人员: 开发团队应该(或必须)能够设置自己的发布时间表-在一定的范围内(除了最大的财富500强公司,对于所有其他公司,1-3个月应该足够保守); 软件版本是重要的里程碑,不应轻率地对待。换句话说,不必要的延误/停工是极具破坏性的,应仅将其作为解决某些关键业务问题的最后手段;和 希望(或要求)作为利益相关者参与的外部(非dev / non-IT)实体有责任与开发团队合作,以达到发布时间表,尤其是在计划船交付前的最后一周左右日期(即用户测试/分期)。 以上是根据经验对我而言正确的断言,但看来我现在必须证明这一点-因此,如果存在这样的问题,我想在这里提出一些建议。 谁必须向管理层“出售”固定(或半柔性)发布周期的想法,才能指出一些论点/策略有效或有说服力,哪些无效?除了明显的时间表争用和沉没成本之外,即使在“公司”环境下,是否有任何硬数据/证据可用于证明运输实际上很重要? 另外,我也乐于听取建设性的争论,即为什么时间表灵活性(即使在数周/数月的时间内)比按期交付更重要;我现在很难相信,但也许他们知道我不知道的东西。 请注意,我们已经分阶段发布了产品,除了生产之外,它经历了每个阶段。使用商业错误跟踪器跟踪问题,并且分配给此版本的每个问题(其中100%)均已解决。我意识到这很难让人相信,这才是真正的重点-出于无法解释的原因,管理层会延迟100%,功能完善,经过全面测试并且获得了利益相关者的批准,这是没有道理的,但这就是事实,这就是正在发生的事情,这是要解决的问题。

5
您是否应该发布自己可以破解的东西?
作为程序的创建者,您可能比其他任何人都更容易意识到安全漏洞和潜在的黑客攻击。如果您知道编写的系统中的漏洞,是否必须在发布之前添加增加安全性的标志,还是应该逐案评估以确定安全漏洞的严重性?
12 security  release 

6
共享库的分支和版本控制策略
这些 帖子似乎相关,但是我的大脑开始融化,试图通过:P来思考 我的雇主刚刚开始使用源代码控制,主要是因为在雇用更多开发人员之前,“存储库”是唯一的开发人员的硬盘驱动器,该开发人员主要在家中工作。所有他写的.NET代码的检入集体,并有大量的重复(读:复制粘贴)功能。现在,我们的SCM系统是光荣的备份。 我想将某些重复的代码放入共享库中。我将单独保留原始存储库,以便我们不会破坏任何内容,我们可以在需要时移动和/或重构现有代码。因此,我为新代码(包括库)设置了一个仓库。 我的问题围绕着对库进行版本控制而没有过多的时间来烦恼我们:承认我们需要一种更一致的方法,更多的开发人员都编写非常相似的代码,管理人员和其他开发人员都愿意进行重组,但可能不会如果解决方案开始影响生产效率,则下降得很好。 在我的痴迷心中,理想的解决方案是分别构建库,而每个从属项目都是针对故意选择的兼容版本构建的。这样,我们就可以准确地知道哪些客户端具有哪个库的哪个版本,可以更可靠地重现错误,维护产品和库的独立发行分支,并且在更改共享代码时不会破坏彼此的项目。 但是,这使得更新库很麻烦,尤其是对于在家工作的开发人员而言。我希望这些库能快速变化,至少在最初(最终)将这些通用位组合在一起时会如此。我完全有可能对此进行全面考虑,并且可以根据最新的库提交构建所有内容,但我至少要做好准备,以便我们决定某些组件必须独立版本化并分散式。必须在GAC中安装某些库这一事实使得版本控制特别重要。 所以我的问题是:我想念什么?我觉得我已经专注于一种解决方案,现在正在尝试寻找可以使更改更平滑的变体。您以前使用过哪些策略来解决此类问题?我意识到这个问题无处不在。我会尽力清理并澄清所有不确定性点。 尽管我很想使用Mercurial,但我们已经在集中式商用SCM(Vault)上花了钱,并且切换不是一种选择。此外,我认为这里的问题比版本控制工具的选择更深。

4
在确定所有需求之前确定发布日期是否敏捷?
我刚刚开始阅读Craig Larman的《 Applying UML and Patterns》。我觉得这很有趣,因为它挑战了我在工作中遇到的许多问题。我读到,并不是一次就可以完全收集需求,并且需要很多次迭代才能完成需求收集。如果是这样,考虑到明天可能会有一些新的突破性要求(或伪装成要求的变更请求),我是否必须设定一个硬性规定的截止日期,这是我在工作中必须做的,非常敏捷。

1
詹金斯Paramerized触发器+复制工件
我正在设置Jenkins来处理我们的发行版本。一个发行版本由Windows安装程序组成,该安装程序包含一些必须在Linux上构建的二进制文件。 这是我到目前为止的内容: Windows部分和Linux部分设置为单独的Jenkins项目。 Windows项目已参数化,并使用Subversion标记进行构建和发布。 作为其构建的一部分,Windows项目将为Linux项目触发相同Subversion标记的构建(使用Parameterized Trigger插件),然后将工件从Linux项目复制(使用Copy Artifact插件)到Windows项目的工作区,以便它们可以包含在Windows安装程序中。 我受阻的地方:现在,设置“复制工件”以复制上一次成功的构建。配置“复制工件”以从参数化触发器触发的确切构建中进行复制似乎更可靠,但是我在弄清楚如何使该工作变得困难。我认为有一个用于“构建选择器”参数的选项可以帮助您解决此问题,但我无法弄清楚应如何设置(而在构建过程中花一个小时,盲目尝试不同的可能性会很痛苦。或两个来查找成功或失败)。 我应该如何设置?构建选择器如何工作?

3
如何在开源项目版本中管理数据库架构更改
我管理一些K-12学校和一些大学使用的开源PHP / MySQL Web应用程序。我也是该项目的唯一开发人员。虽然它过去只不过是我老板托管的应用程序的源代码下载,但在过去的一年中,我一直致力于将其变成一个“真正的”开源项目,其中包含文档,带编号的发行版,公共变更日志等。 我正在寻求改善升级过程,其中一个潜在的难题(尤其是对于IT专业人员匮乏的学校而言)是在两个发行版之间对数据库架构的更改。它们不经常发生或变化不大,但我希望您对此过程提出建议。 当前,我维护一个基本的SQL安装脚本,以在新安装中设置数据库。这包括当前版本的完整架构;全新安装不需要任何进一步的操作。版本之间发生的更改存储在upgrade-$releasever.sql脚本中,对于所有被跳过的版本,有必要增量运行所有升级脚本。 Shell脚本不合适,因为我们很多用户都在没有Shell访问权限的主机上运行。由于其他优先事项,不太可能实现基于PHP浏览器的复杂安装程序/升级脚本。但是,我想使用基于浏览器的PHP脚本来简化升级。关于如何处理的建议?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.