我在一个使用多个开源Java库的项目上工作.当升级到这些库时,我们倾向于遵循保守的策略:
我们遵循这一策略是因为我们通常没有时间放入新库并彻底测试整个应用程序.(像许多软件开发团队一样,我们总是落后于几个月前承诺的功能.)
但是,我有时想知道这种策略是否明智,因为一些性能改进和大量的bug修复通常伴随着库升级.(即"谁知道,也许事情会以我们无法预见的方式更好地运作......")
在项目中做出这些类型的决策时,您使用什么标准?
首先是基本事实:Java webapp,Spring,Hibernate,MySQL.
情况是我有一个复杂的对象模型,例如汽车.它由许多物体(发动机,轮胎......)组成,它们之间具有多对一和一对多的关系.
现在有很多车,不时有人检查汽车并创建检查报告.报告指的是汽车的许多部件,显示其属性等.
到目前为止,系统还没有支持在汽车进入系统后更新汽车及其零件属性的能力.这意味着如果底盘颜色或轮胎数量发生变化,旧报告将反映出这种变化,这不是我们想要的.
那么,现在已经请求了这个功能.汽车及其零件需要可修改,并且必须创建版本历史记录.旧报告需要参考旧版本的零件及其值.
我一直在关注" 慢慢改变尺寸 ",似乎汽车及其零件的版本化可以通过Type 6方法完成.
我遇到麻烦(可能是由于我有限的Hibernate经验)的事情(扭曲)是这样的:
如何使用Hibernate组合我的Report实例,以便它们引用汽车每个部分的正确版本?报告有一个日期,汽车零件的每个版本都有有效的日期范围,所以我想我可以用一些复杂的HQL/SQL来做.但是有没有更简单,更自动的方式来使用Hibernate?
我想在构建时更改C#项目的程序集版本号,方法是将其作为MSBuild命令行上的属性传递.
AssemblyInfo任务将在编译之前修改AssemblyInfo.cs中的程序集版本.这几乎是我想要的.问题是我不希望因源控制问题而更改AssemblyInfo.cs.我不希望所有这些AssemplyInfo.cs文件显示为被修改,并且每次我们进行构建时都需要检查.
我想要的是在编译后更改程序集版本号的"事物" - 可能使用post build weaving任务.这样的"事物"是否已经作为开源或零售产品存在?如果没有,有人可以指向我编写post build weaver任务的文档吗?
我正在为使用以下格式的版本控制的应用程序开发Ant构建过程:major.minor.buildcount.所以目前应用程序大约是2.1.52,我们在2.1版本,并且有35个版本.
我现在正在添加一个ant目标,询问用户是否要推进主要版本和/或次要版本.
当我从命令行运行目标时,我想遵循以下内容:
@@ ant version
Versioning application...
Would you like to advance the major version to 3? (Y|n)
@@ n
Not Advancing major version
Would you like to advance the minor version to 2? (y|N)
@@ y
Advancing minor version
Run Code Online (Sandbox Code Playgroud)
前面加上@@的行是我想要的用户输入.我的主要和次要版本存储在build.properties文件中.
到目前为止,这是我的代码
<?xml version="1.0"?>
<project name="StudentMS" default="zip" basedir=".">
<propertyfile file="./.ant/build.properties">
<entry key="version.buildnumber" type="int" default="0" operation="+" pattern="00" />
</propertyfile>
<property file="./.ant/build.properties" />
<property name="sourceDir" location="/Users/dave/Workspace/ColdFusion/StudentMs" />
<property name="buildDir" location="${sourceDir}/builds" />
<target name="version" description="Adds a major and minor version to the …Run Code Online (Sandbox Code Playgroud) 是否必须使用C ++创建的所有dll都具有版本号?我的机器中有dll,但是当我右键单击时,我看不到版本号。
PS:我已经安装了Win 7。
如果你去https://packagist.org/packages/geekality/website并将它与你运行`composer show geekality/website时得到的结果进行比较.
这里发生了什么?我该如何解决?如果我将composer.json更改为目标版本/标记0.7.1,这对我来说显然存在于packagist和GitHub上,我收到一条错误消息,指出找不到请求的包.
我试过了
任何人都知道发生了什么事吗?
这似乎是由Packagist的一些问题造成的,并且我身边没有任何实际错误(或者其他似乎有同样问题的人).
我通过手动列出有问题的存储库来源暂时"解决"它composer.json.
我正在通过Http设计类似REST的API.
我需要API客户端(应用程序,而不是浏览器)来关注链接(HATEOAS),而不是构建它们.
此外,由于某些可能不同意的原因,我仍然会使用可读的URL .但是,如果存在相当的方式文档的URL模板(像 这些 的人),我不认为这是正确的做法,因为它可以清楚地吸引和合法的开发人员可以构建自己的网址.
那么,如何以尊重HATEOAS的方式记录API?
我们经常发现与HATEOAS相关的可发现性.
说实话,我不认为这在现实生活中是不够的:商业概念是多重的,微妙的理解和客户开发人员不是你的队友.
有意义的名字显然是不够的.
开发人员需要制作客户端应用..
那么,如何记录这个?
相关概念:
使用Intent,Versioning,Level 3 API进行设计
versioning documentation rest documentation-generation hateoas
我正在建设AOSP,v4.4.2.我想指定"Build number"字符串的一部分(根据设置 - >关于平板电脑).

我知道可以使用CONFIG_LOCALVERSIONdefconfig值为内核完成此操作.但我想改变"内部版本号",而不是"内核版本"(我能够成功完成).
目前,我的AOSP构建的相关部分是这样的:
# Source build variables
. build/envsetup.sh
# Specify the build target:
# * user -> limited access; suited for production (no ADB)
# * userdebug -> like "user" but with root access and debuggability; preferred for debugging
# * eng -> development configuration with additional debugging tools (with ADB)
lunch mydevice-eng
# Build it!
time m 2>&1 | tee build.out
Run Code Online (Sandbox Code Playgroud)
我应该更改什么来指定内部版本号?
versioning android build-process android-source build-numbers
我有一段时间的S3存储桶,但现在才开始版本控制.尝试用它来试图找出我只是通过版本控制得到什么样的检测保护,而不激活"MFA删除"选项.
我上传了一个测试文件,然后将其删除,然后重新上传两次.现在,使用S3浏览器工具,我看到该文件的4个版本:#1,#2(删除),#3和#4(当前).如果我boto用来获取最新版本,我可以提取它version_id:
import boto
c=boto.connect_s3()
b=c.get_bucket('my-bucket')
k = b.get_key('test2/dw.txt')
print k.version_id
Run Code Online (Sandbox Code Playgroud)
但是如何获得给定密钥的version_id的完整列表?如果我想要检索密钥的第1版(已删除),我是否需要先使用版本#2 id来"取消删除"它?
最后,此删除保护(创建删除标记)是否与打开版本控制之前上载的旧文件一起使用?
谢谢
我尝试跟随Dockerfile和docker 组合引用以将环境变量传递给Docker镜像的所有内容都不起作用.
我想在使用docker-compose时在docker build期间使这个env变量可用.
在Docker主机上我有:
export BUILD_VERSION=1.0
Run Code Online (Sandbox Code Playgroud)
app.js
console.log('BUILD_VERSION: ' + process.env.BUILD_VERSION);
Run Code Online (Sandbox Code Playgroud)
Dockerfile:
FROM node
ADD app.js /
ARG BUILD_VERSION
ENV BUILD_VERSION=$BUILD_VERSION
RUN echo Build Time: $BUILD_VERSION
RUN node /app.js
CMD echo Run Time: $BUILD_VERSION
Run Code Online (Sandbox Code Playgroud)
泊坞窗,compose.yml:
version: '3'
services:
app:
build:
context: .
args:
- BUILD_VERSION
Run Code Online (Sandbox Code Playgroud)
如果我直接构建图像,env var就可以正常传递:
docker build -t test --no-cache --build-arg BUILD_VERSION .
Run Code Online (Sandbox Code Playgroud)
并且在运行时也可用:
$ docker run --rm test
Run Time: 1.0
$ docker run --rm test node /app
BUILD_VERSION: 1.0
Run Code Online (Sandbox Code Playgroud)
但不是与docker撰写.
docker-compose …Run Code Online (Sandbox Code Playgroud) versioning ×10
java ×2
.net ×1
amazon-s3 ×1
android ×1
ant ×1
assemblies ×1
boto ×1
composer-php ×1
datahistory ×1
dll ×1
docker ×1
hateoas ×1
hibernate ×1
msbuild ×1
msbuild-task ×1
mysql ×1
packagist ×1
rest ×1
undelete ×1