标签: packaging

java.lang.Exception与滚动你自己的异常

在什么时候你会创建自己的异常类而不是使用java.lang.Exception?(所有的时间?只有在包装外使用它?只有它必须包含高级逻辑?等等...)

java packaging exception class

26
推荐指数
5
解决办法
1万
查看次数

Java库的记录器

我正在编写一个库来收集我将在不同应用程序中使用的各种函数.我希望它为库的用户生成可见的日志语句,即,如果我正在构建应用程序并且我正在使用该库,我希望库生成对我可见的日志语句.我怎么做?由于日志文件将由应用程序的开发人员配置,我的库如何知道如何记录?

java logging packaging

26
推荐指数
1
解决办法
2万
查看次数

Python:为什么有些软件包以鸡蛋形式安装,有些软件包作为"鸡蛋文件夹"安装?

我维护了一些Python包.我有一个非常相似的setup.py文件.但是,在做的时候setup.py install,我的一个软件包被安装为一个鸡蛋,而其他软件包被安装为"鸡蛋文件夹",即扩展名为"egg"的文件夹.

它们之间有什么区别导致这种不同的行为?

python packaging egg setuptools

25
推荐指数
2
解决办法
7011
查看次数

如何从python包创建osx application/dmg?

我想从python包创建一个mac osx应用程序,然后将其放入磁盘映像中.

因为我加载一些资源出来的包,包应该不会驻留在一个zip文件.

生成的磁盘映像应显示背景图片以"拖动此处 - >应用程序"进行安装.

python macos packaging

24
推荐指数
1
解决办法
2万
查看次数

是否有适合维护Cabal Haskell软件包更改日志的工具?

我正在为编译器编写器的新Haskell包快速而疯狂地工作.我每天都会经历许多次要版本号,而Haskell打包系统Cabal似乎没有提供任何更新版本号或维护更改日志的工具.(日志正在进入,git但是使用该软件包的任何人都看不到.)我会杀掉与Debian uupdatedch/ debchangetools 相当的东西.

有没有人知道可以用来自动增加版本号并在更改日志中添加条目的通用工具?

haskell packaging software-distribution cabal

24
推荐指数
1
解决办法
784
查看次数

为简单的应用程序生成PHAR

我正在尝试使用Symfony2控制台库构建CLI工具.我有一些基本的工作,现在我想把它打包成一个phar.我已经阅读了一些例子,但我看到的那些非常简单(3个文件,没有命名空间等).

在我的src/目录中,我有以下内容:

在此输入图像描述

上面src/我有一个console.php我执行运行应用程序.我也有一个vendors/目录,因为我正在使用composer来安装依赖项.console.php很简单:

#!/usr/bin/env php
<?php

set_time_limit(0);
$loader = require 'vendor/autoload.php';

use Symfony\Component\Console\Application;
use Bendihossan\Pinfo\Command\EnvironmentCommand;
use Bendihossan\Pinfo\Command\ExtensionsCommand;
use Bendihossan\Pinfo\Command\RunAllCommand;

$console = new Application();

$console->add(new RunAllCommand());
$console->add(new EnvironmentCommand);
$console->add(new ExtensionsCommand);

$console->run();
Run Code Online (Sandbox Code Playgroud)

从我对构建一个phar的理解(我很少)我认为我需要将其console.php作为存根和其他所有内容src/添加到我的所有依赖项中vendors/.

查看phpmaster.com上的示例代码,他们手动指定每个文件包含在phar中使用file_get_contents,但是我需要维护我的目录结构才能使用composer的自动加载器并保持PSR-0目录结构.

有没有一种简单的方法来创建.phar并在其中维护我的目录结构,所以我仍然可以使用composer的自动加载器?

php packaging phar composer-php symfony-components

24
推荐指数
1
解决办法
1万
查看次数

如何在没有MANIFEST.in文件的情况下包含package_data?

我怎么能包括package_datasdist没有MANIFEST.in文件?

我的setup.py看起来像这样:

import setuptools

setuptools.setup(
    name='foo',
    version='2015.3',
    license='commercial',
    packages=setuptools.find_packages(),

    package_data={'': ['foo/bar.txt']},
)
Run Code Online (Sandbox Code Playgroud)

版本:

user@host> python
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
>>> import setuptools
>>> setuptools.version.__version__
'3.6'
Run Code Online (Sandbox Code Playgroud)

我只是不能被foo/bar.txt包括在内.

或者这篇博文仍然是真的吗? http://blog.codekills.net/2011/07/15/lies,-more-lies-and-python-packaging-documentation-on--package_data-/

然而,在过去的一小时里,我了解到这些陈述介于"危险的误导"和"该死的谎言"之间.这是因为Python包的主要类型是源包,而创建源包的规范方法是使用setup.py sdist.但是,package_data中指定的数据不包含在源代码分发中 - 它们仅包含在binary(setup.py bdist)发行版和installs(setup.py install)中.

我怎么能包括package_datasdist没有MANIFEST.in文件?

python packaging manifest setuptools setup.py

24
推荐指数
2
解决办法
1万
查看次数

Python守护程序打包最佳实践

我有一个用python编写的工具,通常应该作为守护进程运行.打包此工具以进行分发的最佳做法是什么,尤其是如何处理设置文件和守护程序可执行文件/脚本?

相关的是,是否有任何常用的工具可以设置守护进程在开机时运行,以适合给定的平台(即linux上的init脚本,windows 上的服务,osx上的launchd)?

python packaging distutils setuptools

23
推荐指数
4
解决办法
2万
查看次数

大型二进制文件和> 1TB存储库的版本控制?

不好意思拿出这个话题再次,因为有 许多 其他已经相关的问题-但没有直接涉及我的问题.

我正在搜索的是一个很好的版本控制系统,只能处理两个简单的要求:

  1. 存储大型二进制文件(> 1GB)
  2. 支持> 1TB的存储库(是的,那是TB)

为什么?我们正在为我们的下一个大型操作系统部署重新打包几千个软件应用程序,我们希望这些软件包遵循版本控制.

到目前为止,我已经有了一些SVN和CVS的经验,但是我对两个大型二进制文件的性能都不太满意(一些MSI或CAB文件将> 1GB).此外,我不确定他们是否能够在未来2 - 5年内按照我们期望的数据量进行调整(就像我说的那样,估计> 1TB)

那么,你有什么建议吗?我目前也在研究SVN外部和Git子模块,虽然这意味着每个软件包都有几个单独的存储库,但我不确定这是我们想要的......

svn git version-control packaging

23
推荐指数
3
解决办法
2万
查看次数

列出python包依赖项而不加载它们?

假设python包A需要B,C和D; 有没有办法列出A→BCD而不加载它们?
Requires在metadata(yolk -M A)中经常是不完整的,grr.
可以下载A.tar/A.egg,然后查看A/setup.py,但其中一些非常血腥.

(我认为至少可以获得一级依赖关系;即使是98%的解决方案也会比雪崩下载更好.)

一个相关的问题: pip-upgrade-package-without-upgra-dependencies

python dependencies packaging

22
推荐指数
3
解决办法
2万
查看次数