考虑使用特定版本化jar来实现方法的常见情况,但不公开公共或受保护API中该jar的任何类型(仅在私有方法的方法签名中).
现在我想要的是通过名称自动编译时链接此代码 - 修改原始包名称并将其替换为SBT中生成的代码(同样:我想在SBT中添加插件或在build.sbt中添加设置这样做每一个sbt compile).
这样做的目的是避免使用具有相同包/类名的类的多个可能不兼容的版本的类路径错误.注意:在我上面描述的情况中,内联或这个名称修改应该始终有效,并允许一个人走向版本地狱(以更大的罐子为代价).
我需要为大多数不到16MB的文件创建一个存储系统,但我想要GridFS的好处,如版本控制,自定义元数据,轻松备份(使用mongodump)等等.我想说我的文件可能有10%会结束16MB因此我不能依赖于存储在单个文档中,并且我不想为我正在寻找的好处重新创建API.我也在使用mongoDB系统.
我应该使用GridFS吗?
我的任务是在我的公司建立一个新的Team Foundation/Build服务器,我们将开始一个新的项目.目前没有人有TFS的经验,所以我自己学习所有这些.到目前为止一切都在发挥作用; 服务器已经建立,Repository和Team Project已经创建,Build Server已经创建,我创建了一个简单的hello world应用程序来验证源代码控制和持续集成构建(在构建服务器上)正常运行.
但是,我在设置自动版本控制时遇到问题.我已经安装了TfsVersioning项目,它工作正常; 我能够为我的汇编版本定义一种格式.我还没有确定我会用什么格式; 可能是像Major.Minor.Changeset.Revision(我知道在程序集版本中使用变更集编号的潜在问题,所以我可能决定在开始开发之前切换到Major.Minor.Julian.Revision).
问题: 如果自上次构建以来源代码没有更改,我不希望程序集具有新的文件版本.通过持续集成构建,这不是问题,因为构建服务器将只获取已更改的源文件,从而导致仅生成更新模块的增量构建; 将不会构建现有的未更改的模块,因此它们的版本将保持不变.如果我设置每晚构建,我将要清理工作区并执行Build-All.但是,这意味着所有程序集都将具有新版本(假设程序集文件版本包含内部版本号).
一个办法? 这促使我考虑使用程序集文件版本中的最新变更集编号.这样,如果两个连续的Build-All之间没有提交任何内容,则版本不会增加.但是,这意味着更改和提交单个文件会强制所有程序集上的版本增量.
我正在寻找两件事之一:
要么
我可能已经阅读了大约20篇关于这个主题的文章,没有人(除了这个人)似乎解决了这个问题.如果我要求的不是Team Foundation ALM中的常见做法,我该如何解决上面的第二个要点?
谢谢你的时间!
根据 Apple 文档,“Build”编号(又名CFBundleVersion)应该是“两个周期分隔的正整数列表,如 1.2.3 中所示”。(来源:App Distribution Guide,部分:设置版本号和构建字符串)(另一个来源:Info.plist 参考,部分 CFBundleVersion)
但是,许多已发布的应用程序都有带有字母的内部版本号,例如,我的 Xcode 版本是“6D570”。
Apple 文档还表示,您提交到 App Store 的每个二进制文件的内部版本号都必须增加。
所以我的问题是:可以CFBundleVersion有信件吗?如果是,这在哪里记录,以及如何比较字符串?
我们有一个典型的N层.NET应用程序,它位于我们的数据库和Web API服务层之间.此应用程序包括业务层,数据存储库/访问以及相关的DTO和Business Objects.
我们有适当的解决方案来版本化我们的存储过程和Web API端点.问题是这个中间层版本的解决方案,实际的类方法和架构对象.所有Google搜索都会在源代码管理解决方案中提供源代码版本的结果,或者如何使用程序集信息进行版本化,这些都不是我们所指的,因此结果有限.
例如,我们有两个端点:
... api/v1/tax/charges
... api/v2/tax/charges
v1必须命中一个版本的方法CalculateTaxPctgs,v2命中另一个版本的更新业务逻辑.随着我们在v2中更改了一个字段的名称,需要使用不同版本的POCO Tax和TaxItems.
易于开发但难以管理且非常严格/静态的解决方案是创建两个不同的方法,CalculateTaxPctgs_V1和CalculateTaxPctgs_V2.这似乎不是一个好主意.
很难找到最佳实践,甚至是解决这种困境的替代解决方案.这是一个企业应用程序,每天需要数百万个请求,因此性能非常重要,但代码管理和可靠性也是如此.
以下策略规定在 30 天后删除对象的当前版本,并在 30 天后删除先前版本。
现在假设我于 4 月 1 日在启用版本的存储桶中上传一个对象,然后于 4 月 10 日上传相同的对象。
如果我没有上传第二个版本,当前对象将在 4 月 30 日被删除。
所以我的问题是,如果我在 4 月 10 日上传了第二个版本,会发生什么。
新版本和旧版本都会在5月10日删除吗?或者,旧版本会在4月30日删除,新版本会在5月10日删除吗?
{
"Rules": [{
"ID": "DeletionOfFileBasedOnQATag",
"Status": "Enabled",
"Expiration": {
"Days": 30
},
"NoncurrentVersionExpiration": {
"NoncurrentDays": 30
}
}
]
}
Run Code Online (Sandbox Code Playgroud) 当我尝试从命令行运行工具时出现错误。我创建了一个 setup.py 文件并将入口点放在一起。当我克隆存储库并安装在其他计算机上时,此命令行实用程序可以工作。我想知道这个问题是否与包位置中包含的开发标签有关。('this_tool==0.1.1.dev11')
通过python setup.py --version在 0.1.1.dev16 上使用它。但我不确定如何解决此问题,因为重新运行 setup.py 安装似乎无法解决问题。
Traceback (most recent call last):
File "/Users/USERNAME/miniconda2/envs/USERNAME/bin/this_tool", line 30, in <module>
sys.exit(load_entry_point('this_tool==0.1.1.dev11', 'console_scripts', 'this_tool')())
File "/Users/USERNAME/miniconda2/envs/USERNAME/bin/this_tool", line 22, in importlib_load_entry_point
return next(matches).load()
StopIteration
Run Code Online (Sandbox Code Playgroud)
如果需要的话我也可以提供我的 setup.py ,但由于它似乎可以在其他计算机上工作,我认为这不是问题
问题如下。我们有 2 个本机应用程序(ios 和 android)连接到 Firestore 后端。我们当前的数据模型存储分布在 5 个不同集合中的用户信息(个人资料数据、用户答案、用户法律文件等)。这意味着,很多时候,当我们需要查询有关用户的数据时,我们需要进行多个查询并手动将它们连接在一起以获得我们需要的数据。将所有信息存储在一个集合中对我们来说要简单得多。这是我们现在遇到的问题,而且随着我们业务的不断发展,我们会有更多的情况需要改变数据模型的结构。
\n目前,我们使用Firestore API在前端查询user\xe2\x80\x99s数据以进行实时更新。ATM 我们不\xe2\x80\x99t 使用自定义端点,因此我们\xe2\x80\x99t 没有任何类型的版本控制。
\n是否有任何最佳实践或策略来执行此类数据模型迁移而不强制用户升级到应用程序的最新版本?
\n我们可以想一些解决办法:
\n不断发展的数据模型以及多个 FE\xe2\x80\x99 消耗数据的问题非常常见。通常的最佳实践是拥有一个 FE 与之通信的版本化端点,以打破对数据模型的直接依赖。然而,Firebase 似乎并没有为此提供一套最佳实践。这对我们来说听起来有点奇怪,因为这是一个非常常见的问题,而且 Firebase 开箱即用地解决了许多其他常见的挑战。
\n我们缺少什么?
\n相关问题:\n https://www.reddit.com/r/Firebase/comments/dyhzlv/best_practices_of_versioning_with_a_firestore/
\n谢谢!
\nversioning data-modeling firebase firebase-realtime-database google-cloud-firestore
我想在源代码中手动定义软件的版本号。至少主要版本、次要版本和补丁版本组件(术语取自Semantic Versioning 2.0.0)。但是,对于构建元数据和.NET 的程序集修订版本组件,我希望它们能够被构建服务器自动覆盖。例如,在开发环境(开发人员桌面)中,构建元数据和程序集修订版本组件始终为空。0(例如 SemVer“1.2.3”,程序集“1.2.3.0”)。当开发人员签入代码更改时,构建服务器会使用格式yyMMdd(夜间构建)替换构建元数据和程序集修订版本组件。使用已经给出的示例,结果将类似于 SemVer“1.2.3+200721”和 Assembly“1.2.3.200721”。
我正在开发的软件是一个.NET Core 3.1 C#应用程序,使用 Visual Studio 2019 编写。因此,我将dotnetCLI 与单个解决方案文件结合使用,引用多个 C# 项目(一个主要项目和多个支持库)。对于最终的构建/发布(仅构建一个主要项目),我想使用如上所述的每晚自动发布的当前日期覆盖构建元数据和程序集修订版本组件。
构建服务器是GitHub Actions。这是我的工作流程脚本:
name: "Solution.sln (main)"
# Controls when the action will run. Triggers the workflow on push or
# pull request events but only for the master branch.
on:
push:
branches: [ "develop" ]
pull_request:
branches: [ "develop" ]
# A workflow run is made up of one or more jobs that …Run Code Online (Sandbox Code Playgroud) 我想将 OData 版本控制添加到 .NET 6 项目。项目中包含的软件包有:
显然 'Microsoft.AspNetCore.OData.Versioning' v5.0.0与 'Microsoft.AspNetCore.OData' v8.0.4不兼容。
两个包的组合会导致错误:
CS7069 对类型“ODataModelBuilder”的引用声称它是在“Microsoft.AspNetCore.OData”中定义的,但找不到
是否存在新包或者是否已将其合并到 Microsoft.AspNetCore.OData 包中?
Sam XU 提供了一个解决方案;创建扩展:https://devblogs.microsoft.com/odata/api-versioning-extension-with-asp-net-core-odata-8/这仍然是要走的路,还是在使用 OData 时有其他选择>= 8.0.4?