Skip to content
This repository has been archived by the owner on Nov 9, 2022. It is now read-only.

Latest commit

 

History

History
109 lines (74 loc) · 3.47 KB

README.md

File metadata and controls

109 lines (74 loc) · 3.47 KB

DEPRECATED

I never really finished this project -- and github dependencies kinda works?

The original version of this project was much better but unfortunately was lost to closed source.


Build Status Azure DevOps coverage pre-commit.ci status

all-repos-depends

View the dependencies of your repositories.

all-repos-depends is an add-on project to all-repos.

Installation

pip install all-repos-depends

CLI

To generate the database, run all-repos-depends-generate.

To run the webapp, run all-repos-depends-server. The server runs on a configurable --port.

configuration

{
    "all_repos_config": "../all-repos/all-repos.json",
    "get_packages": [
        "all_repos_depends.packages.setup_py",
        "all_repos_depends.packages.package_json"
    ],
    "get_depends": [
        "all_repos_depends.depends.setup_py",
        "all_repos_depends.depends.requirements_tools"
    ]
}

providers

Providers are the pluggable bits of all-repos-depends. A few providers are given for free.

The types that the providers will produce are in all_repos_depends.types:

Package = collections.namedtuple('Package', ('type', 'key', 'name'))
Depends = collections.namedtuple(
    'Depends', ('relationship', 'package_type', 'package_key', 'spec'),
)

If a provider encounters a detectable error state, it should raise an exception of the type all_repos_depends.errors.DependsError.

package providers

A package provider will be called while the cwd is at the root of the repository. It must return a all_repos_depends.types.Package that the repository provides (or None if it is not applicable).

A few are provided out of the box (PRs welcome for more!)

all_repos_depends.packages.setup_py

This package provider reads the ast of setup.py and searches for the name keyword argument. For now this means it will only be able to read setup.py files which have python3-compatible syntax and set their name literally.

all_repos_depends.packages.package_json

Reads the name field out of an npm package.json file.

depends providers

A depends provider will be called while the cwd is at the root of the repository. It must return a sequence or all_repos_depends.types.Depends that the repository provides (or an empty sequence if it is not applicable).

all_repos_depends.depends.setup_py

This depends provider reads the ast of setup.py and searches for the install_requires keyword argument.

all_repos_depends.depends.requirements_tools

This depends provider reads the following requirements files according to the conventions for requirements-tools:

  • requirements-minimal.txt (DEPENDS)
  • requirements.txt (REQUIRES)
  • requirements-dev-minimal.txt (DEPENDS_DEV)
  • requirements-dev.txt (REQUIRES_DEV if -minimal is present otherwise DEPENDS_DEV)