小编Jon*_*sen的帖子

停止Teamcity显示已删除的分支

我们正在使用TeamCity,我已经设置了从分支机构中提取的工作.但是当这些分支被删除时,它们仍会出现在Teamcity中:

过期分支列表,只有refs/master处于活动状态

(过时的分支列表,但refs/master实际上只有活动)

TeamCity的文件实际上规定了什么是一个活跃的分支:

活跃的分支

在具有已配置分支的构建配置中,"概述"页面显示活动分支.

许多参数定义分支是否处于活动状态.可以在构建配置(这将仅影响一个构建配置),项目或内部属性(这定义整个服务器的默认值)中更改参数.配置中的参数会覆盖内部属性中的参数.

在以下情况下,分支被视为活动

  • 它存在于VCS存储库中并且具有最近的提交(即,年龄小于teamcity.activeVcsBranch.age.days参数值的提交, 默认为7天).
  • 或者它有最近的版本(即年龄小于teamcity.activeBuildBranch.age.hours参数值的版本 ,默认为24小时).
  • !具有构建的已关闭VCS分支在上次构建后的24小时内仍将显示为活动状态.要从显示中删除已关闭的分支,请设置teamcity.activeBuildBranch.age.hours=0.

但是......我不明白他们的描述!:)"配置中的参数"是什么意思?我已经尝试在我的工作中制作参数,如下所示:

添加参数teamcity.activeBuildBranch.age.hours

(添加参数teamcity.activeBuildBranch.age.hours)

但这没有任何作用.也许我将自己暴露为一个完整的TC菜鸟,但任何人都可以指导我如何正确地改变这些设置,所以我只在我的构建工作中显示存储库活动分支?

git teamcity configuration

27
推荐指数
2
解决办法
7840
查看次数

如何为 next.js 启用树摇动?

是否有一些东西可以让 next.js 执行树摇动/从依赖项中删除死代码?我已经导出了两个这样的对象:

library.js

export const foo = {foo:"foo"}
export const bar = {bar:"bar"}
Run Code Online (Sandbox Code Playgroud)

在我的 next.js 应用程序中,我喜欢这样:

page.tsx

import { foo } from 'library';
console.log(foo);
Run Code Online (Sandbox Code Playgroud)

所以现在我预计生产构建将包含bar,并且确实有些事情似乎是正确的,因为生成了这一行:

.next/server/chunks/621.js

/* unused harmony exports bar */
Run Code Online (Sandbox Code Playgroud)

但令人困惑的是,当我在浏览器中加载应用程序时,网络流量表明包含未使用的导出

http://localhost:3001/_next/static/chunks/pages/page-0b2b13a7513f2849d855.js

(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([[3031], {
    80621: function(e, r, n) {
        "use strict";
        ...
        const l = a.object({
            foo: "foo"
        });
        a.object({
            bar: "bar"
        });
    },
Run Code Online (Sandbox Code Playgroud)

为什么构建会识别未使用的导出,但不会将它们从传输到浏览器的有效负载中删除?Next 是否有一个设置希望我们启用?某种后处理实际上会修剪未使用的导出?

webpack tree-shaking next.js

15
推荐指数
1
解决办法
9989
查看次数

pycharm查找调用Python函数的位置

有没有办法让PyCharm显示调用给定Python函数的位置?

我目前只依赖于在项目中搜索函数名称,这通常可以正常工作,但如果函数名称含糊不清,则会有很多不正确的命中.我想知道我是否遗漏某个功能,例如,搜索结果可能会进一步缩小到仅显示模块导入我正在搜索的模块的位置?

python pycharm

10
推荐指数
2
解决办法
8895
查看次数

如何通过 Jest 测试 Nest Bull 队列(DI 通过 @InjectQueue)?

给定一个通过 @InjectQueue 装饰器使用队列的 Injectable:

@Injectable()
export class EnqueuerService {
  constructor (
    @InjectQueue(QUEUE_NAME) private readonly queue: Queue
  ) {
  }

  async foo () {
    return this.queue.add('job')
  }
}
Run Code Online (Sandbox Code Playgroud)

如何测试该服务是否正确调用队列?我可以做基础脚手架:

describe('EnqueuerService', () => {
  let module: TestingModule
  let enqueuerService: EnqueuerService

  beforeAll(async () => {
    module = await Test.createTestingModule({
      imports: [EnqueuerModule]
    }).compile()
    enqueuerService = module.get(EnqueuerService)

    // Here I'd usually pull in the dependency to test against:
    // queue = module.get(QUEUE_NAME)
    //
    // (but this doesn't work because queue is using the @InjectQueue decorator) …
Run Code Online (Sandbox Code Playgroud)

dependency-injection mocking typescript jestjs nestjs

9
推荐指数
1
解决办法
7731
查看次数

Qt formlayout不垂直扩展qplaintextedit

我很困惑为什么QPlainTextEdit小部件在添加到QFormLayout时不会垂直调整大小.在下面的代码中,文本字段正确地水平缩放,但不会垂直向上缩放.

谁能解释这种行为并提供解决方案?我已经尝试过所有我知道的技巧都无济于事.

from PyQt4 import QtGui

class Diag(QtGui.QDialog):

    def __init__(self, parent, *args, **kwargs):
        QtGui.QDialog.__init__(self, parent)
        layout = QtGui.QFormLayout(self)
        widg = QtGui.QPlainTextEdit(self)
        layout.addRow('Entry', widg)

if __name__ == '__main__': #pragma: no cover
    app = QtGui.QApplication([])
    window = Diag(None)
    window.show()
    app.exec_()
Run Code Online (Sandbox Code Playgroud)

下面是一个QPlainTextEdit小部件没有垂直调整大小的示例: QPlainTextEdit已添加到QFormLayout但未垂直调整大小http://s9.postimage.org/ejvmp1wtr/qplaintextedit_in_qformlayout_not_resize.jpg

这是在Windows 7上使用PyQt 4.5.2和Python 32位2.6.

谢谢.

layout resize pyqt pyqt4 qplaintextedit

8
推荐指数
1
解决办法
4053
查看次数

Qt在另一个小部件中添加一个小部件?

我想制作一个结合了两个现有小部件行为的小部件.例如,窗口小部件是一个也包含复选框的按钮.用户可以单击较大的按钮,也可以单击其中的复选框.

例如,gmail引入了一个"全选"按钮,可以在点击时显示菜单,但它还集成了一个选中所有电子邮件的复选框.请参阅此屏幕截图以获取示例:
在此输入图像描述


如何将现有小部件的行为与此效果相结合?我希望找到一个可以组合窗口小部件行为的解决方案,我只需要覆盖它们冲突的地方.

这个问题类似于在qt问题中将多个小部件组合成一个,但不同之处在于我希望将两个小部件放在彼此之上并显示为一个小部件.

为了回应cbamber85的回复,我添加了下面的代码,以显示我设法整合回复的距离.与cbamber85的回复一样,这里没有真正的功能,它只是他代码的PyQT版本.

from PyQt4 import QtCore, QtGui

class CheckBoxButton(QtGui.QWidget):
    checked = QtCore.pyqtSignal(bool)

    def __init__(self, *args):
        QtGui.QWidget.__init__(self, *args)
        self._isdown = False
        self._ischecked = False

    def isChecked(self):
        return self._ischecked

    def setChecked(self, checked):
        if self._ischecked != checked:
            self._ischecked = checked
            self.checked.emit(checked)

    def sizeHint(self, *args, **kwargs):
        QtGui.QWidget.sizeHint(self, *args, **kwargs)
        return QtCore.QSize(128,128)

    def paintEvent(self, event):
        p = QtGui.QPainter(self)
        butOpt = QtGui.QStyleOptionButton()
        butOpt.initFrom(self)
        butOpt.state = QtGui.QStyle.State_Enabled
        butOpt.state |= QtGui.QStyle.State_Sunken if self._isdown else QtGui.QStyle.State_Raised

        self.style().drawControl(QtGui.QStyle.CE_PushButton, butOpt, p, self)

        chkBoxWidth = …
Run Code Online (Sandbox Code Playgroud)

user-interface qt pyqt widget

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

PySide在线程之间发出None时崩溃Python

[编辑]这不是PySide发出信号的纯副本导致python崩溃的问题.这个问题特别涉及PySide中的一个(现在)已知错误,它阻止了无法跨线程传递.另一个问题涉及将信号连接到微调框.我更新了这个问题的标题,以更好地反映我面临的问题.[/编辑]

我对PySide与PyQt略有不同的情况感到震惊.好吧,我巧妙地说,但实际上PySide 崩溃了 Python,而PyQt正如我所期望的那样工作.

在PySide下我的应用程序崩溃了

我是PySide的新手,对PyQt来说还是比较新的,所以也许我犯了一些基本的错误,但是如果我能搞清楚的话该死的...真的希望你们中的一个好人能给出一些指示!

完整的应用程序是一个批处理工具,在这里描述太麻烦了,但我已经将问题解决了以下代码示例中的基本要点:

import threading

try:
    # raise ImportError()  # Uncomment this line to show PyQt works correctly
    from PySide import QtCore, QtGui
except ImportError:
    from PyQt4 import QtCore, QtGui
    QtCore.Signal = QtCore.pyqtSignal
    QtCore.Slot = QtCore.pyqtSlot


class _ThreadsafeCallbackHelper(QtCore.QObject):
    finished = QtCore.Signal(object)


def Dummy():
    print "Ran Dummy"
    # return ''  # Uncomment this to show PySide *not* crashing
    return None


class BatchProcessingWindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self, None)

        btn = …
Run Code Online (Sandbox Code Playgroud)

python crash pyqt pyside

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

Python - 我应该用下划线为导入别名吗?

这是一个概念性问题,而不是一个实际问题,我想向广大互联网群众寻求反馈。

我们都知道导入的模块最终位于该模块的命名空间中:

# Module a:
import b
__all__ = ['f']
f = lambda: None
Run Code Online (Sandbox Code Playgroud)

这允许你这样做:

import a
a.b  # <- Valid attribute
Run Code Online (Sandbox Code Playgroud)

有时这很好,但大多数导入都是模块提供的功能的副作用。在上面的示例中,我并不是b要向a.

为了抵消这个问题,我们可以这样做:

import b as _b
Run Code Online (Sandbox Code Playgroud)

这将导入标记为私有。但我找不到任何地方描述的这种做法,PEP8 也没有讨论使用别名将导入标记为私有。所以我认为这不是常见的做法。但从某个角度来看,我想说它在语义上肯定更清晰,因为它清理了模块的暴露部分,只留下您实际想要暴露的相关接口。使用具有自动完成功能的 IDE 可以使建议列表变得更加精简。

我的问题归结为您是否见过这种模式的使用?它有名字吗?什么论据会反对使用它?

我没有成功使用__all__隐藏b导入的功能。我正在使用 PyCharm,但没有看到自动完成列表发生变化。

例如,从某个模块我可以执行以下操作:

import a
Run Code Online (Sandbox Code Playgroud)

自动完成框显示bf

python

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

如何通过传入具有自定义值的 ConfigService 来测试 nestjs 服务?

我创建了一个服务,它的模块如下所示:

launchdarkly.module.ts

@Module({
  providers: [LaunchdarklyService],
  exports: [LaunchdarklyService],
  imports: [ConfigService],
})
export class LaunchdarklyModule {}
Run Code Online (Sandbox Code Playgroud)

(此服务/模块是让应用程序使用 LaunchDarkly 功能标记)

如果您愿意,我很乐意展示服务实现,但为了缩短这个问题,我跳过了它。重要的一点是该服务导入ConfigService(它用于获取 LaunchDarkly SDK 密钥)。

但是我该如何测试Launchdarkly服务呢?它从中读取一个键,ConfigService所以我想编写ConfigService具有各种值的测试,但是经过数小时的尝试,我无法弄清楚如何ConfigService在测试中进行配置。

这是测试:

launchdarkly.service.spec.ts

describe('LaunchdarklyService', () => {
  let service: LaunchdarklyService;

  beforeEach(async () => {
    const module: TestingModule = await Test.createTestingModule({
      providers: [LaunchdarklyService],
      imports: [ConfigModule],
    }).compile();

    service = module.get<LaunchdarklyService>(LaunchdarklyService);
  });

  it("should not create a client if there's no key", async () => {
    // somehow I need ConfigService to have …
Run Code Online (Sandbox Code Playgroud)

dependency-injection typescript nestjs launchdarkly

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

记录 HAProxy 自定义标头

我希望让 HAProxy 设置自定义标头记录它。

下面是我的 haproxy.cfg 的配对示例(我省略了一些我认为与我的问题无关的 SSL 详细信息和多个后端)

global
    log 127.0.0.1 local0 debug

defaults
    log global
    stats enable
    option httplog


frontend httpFrontendi
    mode http
    bind *:80    
    http-request add-header Foo Bar
    capture request header Foo len 64
    log-format Foo\ %[capture.req.hdr(0)]\ %hr\ %hrl\ %hs\ %hsl  

    default_backend backend_api
    redirect scheme https code 301 if !{ ssl_fc }


backend backend_api
    mode http
    balance roundrobin
    option httpchk HEAD /api/test_db HTTP/1.0
    server backend_api1 ip:80 check inter 5s rise 2 fall 3
Run Code Online (Sandbox Code Playgroud)

我调用代理:

curl 127.0.0.1 …
Run Code Online (Sandbox Code Playgroud)

logging redhat haproxy

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