Jör*_*chs 5 c++ deployment version-control open-source build
我正在寻找有关如何共同发布第一个开源项目源的技术部分的文档,特别是C/C++,Java,Python中的库密集型内容.
举个例子,如果我使用像Netbeans这样的IDE和像Xerces-C和Boost这样的各种库构建一个C++项目,我想了解一下这些问题:
这是在我自己的环境之外为这样的流程组织构建过程的最常用工具,更重要的是
我如何以"普遍完成"的方式学习它们?我使用了许多开源项目,当然可以读取构建代码(makefile和配置选项等),但这并没有告诉我如何实现这些目标,重要的细节是什么以及通常预期的内容.
是否存在特定语言(如提到的那些)类似于部署的"编码风格"指导?是否有开源项目有关于此的指导原则?
在部署源代码时(而不是使用apt/port/etc的软件包,可以解决依赖关系),部署库依赖项的典型方法是什么?
我知道我可以阅读所有联机帮助页和所有文档,但我想了解"约定"以及它们是如何实现和预期的,而不是所有可能的技术选项.
我在另一个stackoverflow帖子上找到了这个,它很好,但不是很具体:http: //producingoss.com/en/producingoss.html
让我们看一下其中一项开源功能。如果您想了解它的部署方式,请下载几个类似的开源项目并从中学习。因此,找到一个与您类似的方法并研究其来源。
为什么它应该有帮助?问题是开源项目必须能够轻松地在用户的计算机上构建。否则没有人能够为他们做出贡献。因此,有关如何部署它们的所有必要信息通常都包含在您下载的源文件中INSTALL。README它们通常由几个简单的步骤组成。出于同样的目的,检查先决条件的可用性和版本是自动的(在configure脚本中),有时此类脚本甚至有助于安装它们。
人们普遍期望的是这样的
# Download sources (this line is read from your website)
wget http://myapp.org/myapp-source-2.15.tgz
tar -xzf myapp-source-2.15.tgz
cd myapp-2.15
less INSTALL
# read INSTALL file, where instructions about installing prerequisites are
./configure --help
# Read help, learn about possible options
./configure --prefix=/install/here --without-sound
make
make install
Run Code Online (Sandbox Code Playgroud)
如今,一些应用程序使用cmake而不是autotools(带有脚本的东西configure)。
我怀疑 Linux 项目实际上需要 NetBeans 作为构建系统——这有点过分了。但这个 IDE 似乎会生成 makefile,所以将它们发送出去。为了方便起见,您还可以将特定于 IDE 的项目文件提交到存储库中,但这不应该是构建软件的主要方式。
用户还希望在您的包中找到更多东西:
LICENSE文件中以及每个源文件的开头)