コード例 #1
0
ファイル: test_versioning.py プロジェクト: rpgplanet/citools
 def test_computing_meta_version(self):
     # 0.1.0 is my version
     # 1.0.59.1 is first child
     # 2.0.12 is second child
     # => 3.1.71.1
     self.assertEquals((3, 1, 71, 1), compute_meta_version(dependency_repositories=[
         {
             'url':self.repo_one,
             'package_name' : 'project',
         },
         {
             'url' : self.repo_two,
             'package_name' : 'secondproject',
         }
     ]))
コード例 #2
0
ファイル: test_versioning.py プロジェクト: joelimome/citools
    def test_current_branch_is_default_for_deps(self):
        # 0.1.1 is my version
        # 1.0.59.2 is first child
        # 2.0.13 is second child
        # => 3.1.73.2

        check_call(['git', 'checkout', 'testomation'], stdout=PIPE, stderr=PIPE)

        self.assertEquals((3, 1, 73, 2), compute_meta_version(dependency_repositories=[
            {
                'url':self.repo_one,
            },
            {
                'url' : self.repo_two,
            }
        ]))
コード例 #3
0
ファイル: test_versioning.py プロジェクト: joelimome/citools
    def test_computing_meta_version_accepts_branch(self):
        # 0.1.0 is my version (my deps are testomation, but I'm at master!)
        # 1.0.59.2 is first child
        # 2.0.13 is second child
        # => 3.1.72.2

        self.assertEquals((3, 1, 72, 2), compute_meta_version(dependency_repositories=[
            {
                'url':self.repo_one,
                'branch' : 'testomation',
            },
            {
                'url' : self.repo_two,
                'branch' : 'testomation',
            }
        ]))
コード例 #4
0
ファイル: commands.py プロジェクト: rpgplanet/citools
def update_dependency_versions(repositories, control_path, workdir=None, accepted_tag_pattern=None):
    """
    Update control_path (presumably debian/control) with package version collected
    by parsing debian/controls in dependencies.
    Also updates with change of my path.

    If any versioned dependencies are present, replace them too, as well as debian files
    """
    workdir = workdir or os.curdir
    cfile = ControlFile(filename=control_path)

    deps_from_repositories = []

    current_meta_version = None
    for package in cfile.get_versioned_dependencies():
        if not current_meta_version:
            current_meta_version = package.version
        else:
            assert current_meta_version == package.version, "Versioned packages with different versions, aborting"

    for repository in repositories:
        deps = fetch_new_dependencies(repository, workdir)
        deps_from_repositories.extend(deps)


    #FIXME: This will download deps again, fix it
    meta_version = compute_meta_version(repositories, workdir=workdir, accepted_tag_pattern=accepted_tag_pattern)
    meta_version_string = ".".join(map(str, meta_version))
    

    # also add myself as dependency
    deps = get_new_dependencies(workdir, accepted_tag_pattern=accepted_tag_pattern)

    # deps are my actual version; we want to update it to metaversion
    for dep in deps:
        dep.version = meta_version_string
    deps_from_repositories.extend(deps)

    cfile.replace_dependencies(deps_from_repositories)

    # if versioned packages present, replace'em
    if current_meta_version:
        replace_versioned_debian_files(debian_path=dirname(control_path), original_version=current_meta_version, new_version=meta_version_string, control_file=cfile)
        cfile.replace_versioned_packages(meta_version_string)

    cfile.dump(control_path)