标签: versioning

我想要GridFS的好处,但主要是存储16MB以下的文件

我需要为大多数不到16MB的文件创建一个存储系统,但我想要GridFS的好处,如版本控制,自定义元数据,轻松备份(使用mongodump)等等.我想说我的文件可能有10%会结束16MB因此我不能依赖于存储在单个文档中,并且我不想为我正在寻找的好处重新创建API.我也在使用mongoDB系统.

我应该使用GridFS吗?

versioning storage file mongodb gridfs

6
推荐指数
1
解决办法
2048
查看次数

使用Team Foundation Server 2012自动进行版本控制; 仅在更改的装配上增加

我的任务是在我的公司建立一个新的Team Foundation/Build服务器,我们将开始一个新的项目.目前没有人有TFS的经验,所以我自己学习所有这些.到目前为止一切都在发挥作用; 服务器已经建立,Repository和Team Project已经创建,Build Server已经创建,我创建了一个简单的hello world应用程序来验证源代码控制和持续集成构建(在构建服务器上)正常运行.

但是,我在设置自动版本控制时遇到问题.我已经安装了TfsVersioning项目,它工作正常; 我能够为我的汇编版本定义一种格式.我还没有确定我会用什么格式; 可能是像Major.Minor.Changeset.Revision(我知道在程序集版本中使用变更集编号的潜在问题,所以我可能决定在开始开发之前切换到Major.Minor.Julian.Revision).

问题: 如果自上次构建以来源代码没有更改,我不希望程序集具有新的文件版本.通过持续集成构建,这不是问题,因为构建服务器将只获取已更改的源文件,从而导致仅生成更新模块的增量构建; 将不会构建现有的未更改的模块,因此它们的版本将保持不变.如果我设置每晚构建,我将要清理工作区并执行Build-All.但是,这意味着所有程序集都将具有新版本(假设程序集文件版本包含内部版本号).

一个办法? 这促使我考虑使用程序集文件版本中的最新变更集编号.这样,如果两个连续的Build-All之间没有提交任何内容,则版本不会增加.但是,这意味着更改和提交单个文件会强制所有程序集上的版本增量.

我正在寻找两件事之一:

  • 如果自上次构建后其源/依赖项已更改,则仅增加程序集版本号的方法.连续Build-Alls不应导致版本号的更改.

要么

  • 测试人员和非开发人员能够告诉版本WXYZ和程序集'Foo'的版本WXYZ + 1的方法是相同的,即使它们具有不同的文件版本.

我可能已经阅读了大约20篇关于这个主题的文章,没有人(除了这个人)似乎解决了这个问题.如果我要求的不是Team Foundation ALM中的常见做法,我该如何解决上面的第二个要点?

谢谢你的时间!

versioning msbuild tfs tfsbuild

6
推荐指数
1
解决办法
4817
查看次数

CFBundleVersion 是否可以包含字母,如果可以,如何比较它们?

根据 Apple 文档,“Build”编号(又名CFBundleVersion)应该是“两个周期分隔的正整数列表,如 1.2.3 中所示”。(来源:App Distribution Guide,部分:设置版本号和构建字符串)(另一个来源:Info.plist 参考,部分 CFBundleVersion

但是,许多已发布的应用程序都有带有字母的内部版本号,例如,我的 Xcode 版本是“6D570”。

Apple 文档还表示,您提交到 App Store 的每个二进制文件的内部版本号都必须增加。

所以我的问题是:可以CFBundleVersion有信件吗?如果是,这在哪里记录,以及如何比较字符串?

versioning ios

6
推荐指数
0
解决办法
604
查看次数

如何编写中间层.NET应用程序类/方法的版本

我们有一个典型的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.这似乎不是一个好主意.

很难找到最佳实践,甚至是解决这种困境的替代解决方案.这是一个企业应用程序,每天需要数百万个请求,因此性能非常重要,但代码管理和可靠性也是如此.

.net c# versioning asp.net-web-api2

6
推荐指数
1
解决办法
875
查看次数

Doxygen:输出版本号

我想让 Doxygen 显示源代码版本号作为主页或标题标题的一部分。

目前,我们的代码将版本定义为文本文字:

/*!
 *  \brief  Text literal containing the build number portion of the
 *              ESG Application Version.
 */
static const char   build_version_text[] = "105";
Run Code Online (Sandbox Code Playgroud)

我在互联网上搜索了一种方法,可以将上述语句中的 105 放入 Doxygen 主页(或标题),但没有运气。

背景
我们有一个构建服务器,它更新文本字符串作为每晚构建操作的一部分。文件被更新,然后签入软件配置管理系统。构建服务器还能够生成文档。我们还希望开发人员能够检查代码,在他们的工作站上构建 Doxygen 文档。

我们使用的是 Doxygen 版本 1.8.11。

versioning doxygen

6
推荐指数
1
解决办法
4105
查看次数

Symfony Encore 多资产清单

我有一个关于 Symfony 3.4 中的 Encore 和资产版本控制的问题。

在我的webpack.config.js我有两种配置。第一个用于 JS 文件,另一个用于编译 .less。

每个配置都由 Encore.reset() 重置

输出束生成清单经由版本.enableVersioning,所以我有两个manifest.json

web/js/manifest.json
web/stylesheets/manifest.json
Run Code Online (Sandbox Code Playgroud)

根据文档,要通过清单加载我的资产,我需要在 config.yml

   assets:
        base_path: "%myapp.http.site_assets_suffix%" 
        stylesheets:
            json_manifest_path: "%kernel.project_dir%/web/assets/stylesheets/manifest.json"
Run Code Online (Sandbox Code Playgroud)

如果我想链接到style.css由 webpack 生成的,我使用

asset("stylesheets/style.css")
Run Code Online (Sandbox Code Playgroud)

但是在我的应用程序中,我有两个清单,我认为由于两个 Encore 配置,这无法更改。

我试过添加类似的东西

packages:
     stylesheets:
                json_manifest_path: "%kernel.project_dir%/web/assets/stylesheets/manifest.json"
     js:
                json_manifest_path: "%kernel.project_dir%/web/assets/js/manifest.json"
Run Code Online (Sandbox Code Playgroud)

因为我在某处看到过,但不幸的是这根本行不通。

我曾考虑在最后一个 webpack 入口点将两个清单合并为一个,但这可能很耗时。

除了将 manfiests 或将 js + less 编译组合成一项大型 Encore 任务之外,还有其他解决方案吗?

versioning manifest symfony webpack

6
推荐指数
1
解决办法
1056
查看次数

OAS3 指定的服务版本控制

我们目前正在使用 OpenAPI 服务规范 v3 OAS3指定一个新的 REST 服务 API 。由于一系列不同的原因,我们需要/希望从一开始就对服务 API 进行版本控制(这是由我们无法控制的因素强制执行的)。

我们想要使用的版本控制方案是URL 路径版本控制——即类似于.../v1/ourservice.

有人知道如何在 OAS3 规范中跟踪这样的版本控制方案吗?

到目前为止,我只version在 OAS3 中看到了一个全局属性 - 但没有任何东西可以让我们轻松地在一个 YAML 文件中指定多个版本(或者这首先是错误的方法吗?)。

仅供参考,我们计划使用自顶向下的方法,即将我们的服务 API 定义为 OAS3 YAML,然后使用 Swagger 生成器继续生成服务器和/客户端代码。

versioning swagger openapi openapi-generator

6
推荐指数
1
解决办法
3519
查看次数

Python Setuptools 和 PBR - 如何使用 git 标签作为版本创建包发布?

我如何实际创建使用 git repo 标签进行版本控制的 python 包的发布/发行版,使用setuptoolspbr

关于所需的基本设置和配置有很多信息:

但是关于如何实际创建发行版的简单信息在哪里?

即我正在寻找任何命令找到带有版本信息的 git 标记并将其拉入配置信息中,因此可以分发具有该新版本信息的源,并且可以使用类似的方法从脚本中发现版本信息在这个答案中描述。


额外细节

我正在开发一个项目,该项目将仅通过 git repo 分发给其他开发人员,而不是通过PyPi。该项目将使用 以可执行文件的形式发布给用户pyinstaller,因此此包分发仅用于几个关键目的:

  1. 为其他开发人员安装/设置包,以便可以干净地重新创建依赖项/环境。
  2. 管理版本——当前的计划是用于pbr从 Git 存储库标签生成版本,因此这些标签可以成为我们版本控制的真实来源
  3. 使用pbr其他自动生成从SVN家常的物品,如作者,manifest.in文件,发行票据等。

由于setuptools文档专注于使用PyPi和设置完全可分发和可重用的包pip,并且pbr文档只真正告诉您如何修改setuptools配置以使用pbr,因此我找不到有关如何运行分发/发布过程的信息。

我确定它存在于文档中的某个地方,但经过几次错误的启动后,我在这里问。我看到的每一个地方都暗示每个人要么知道如何做到这一点,要么作为过程的一部分神奇地发生。

我只是错过了显而易见的事情吗?


更新:

根据 sinoroc 的回答,看来我需要研究开发模式安装。即任何开发项目的人都会从git克隆,然后使用setuptools开发安装模式安装。

这不是原始问题的直接一部分,而是暗示的,我相信处于相同情况的人会感兴趣(我无法轻易找到信息)。

在他关于更新某些元数据的回答中提供了更多信息,并通过setuptools文档链接在“开发模式”下工作

python versioning git setuptools python-pbr

6
推荐指数
1
解决办法
1919
查看次数

Vue-CLI 版本号 - 它是否存在以及如何在 Vue 应用程序本身中使用它?

我有一个 Vue 应用程序正在使用 Vue CLI 构建用于生产部署。

我想在应用程序中包含一个典型的递增版本号,以便我和测试人员可以确定我们正在测试正确的确切版本。我想以至少两种方式在应用程序中使用它 a) 将它显示给测试人员,b) 将它包含在错误跟踪 API 调用中,例如 Sentry.io。

目前我必须查看 app.XXXX.js 上的哈希值并进行比较。虽然这确实唯一标识了构建,但它不是顺序的,对于 CSS/JS/供应商等是不同的,并且很难在代码库中使用。

我很高兴编写一个构建包装器脚本,该脚本管理数字并将其注入到构建中(如果需要的话)。

我目前使用的命令是例如

npx vue-cli-service build --mode staging
Run Code Online (Sandbox Code Playgroud)

versioning testing build vue.js vue-cli

6
推荐指数
1
解决办法
268
查看次数

介子项目版本可以动态分配吗?

我是 Meson 的新手,所以如果这是一个愚蠢的问题,请原谅我。

问题的简单版本:

我希望能够在构建时为介子项目版本分配动态版本号。基本上meson.project_version()=my_dynamic_varproject( 'my_cool_project', 'c', version : my_dynamic_var')(当然这行不通)。

如果不需要,我宁愿不预处理文件。

如果有人关心,请了解一些背景:

我的构建系统会动态提供项目的版本号。就我而言,它使用的是 bash 脚本。我可以使用run_command并从那里抓取stdout将该版本放入我的顶级 meson.build 文件中。我读过使用这种方式是不好的形式所以如果有另一种方式来做到这一点..我全神贯注。

我也能够创造和传递正确的-DPRODUCT_VERSION="<my_dynamic_var>"通过add_global_arguments所以我COULD只是解决的..但我想介子项目本身进行的同一版本的日志,这样我就可以使用meson.project_version()来获得c/c++ 以外的语言的子项目中的版本。

versioning meson-build

6
推荐指数
1
解决办法
697
查看次数