Cleanup tox command handling.

Long winding road for this patch:
  Interest: Support local python and tox upgrades to facilitate working
            on robot testing framework used by broadband.
            Support a common python and tox versions across repos.
     Wonky: tox was used indirectly as a lint dependency (lint-jjb).
            The lint target is only used by repo:ci-management for JJB.
            Modify to make it a standalone usable comand/dependency.

makefiles/target/tox.mk
-----------------------
  o File deprecation pending, only used by repo:ci-management.

makefiles/include.mk
makefiles/commands/include.mk
makefiles/lint/include.mk
-----------------------------
  o Restructure: include logic, installer and version from commands/tox/.

makefiles/commands/tox/README.md
makefiles/commands/include.mk
makefiles/commands/tox/include.mk
makefiles/commands/tox/install.mk
makefiles/commands/tox/requirements.txt
makefiles/commands/tox/tox.mk
---------------------------------------
  o Added targets:
    + tox-version: Display version of venv installed tox command.
    + tox-install: Install a versioned tox command (requirements.txt).
    + help: display basic target help.
    + tox-help: display extended help for tox-*.
  o Added 3.11.6 to the supported list of python interpreters for local use.

[HOWTO: Test]
  % make help | grep tox
  % make tox-help

  # Install venv + tox
  % make sterile tox-version
  % make sterile tox
  % make sterile tox-install

Change-Id: I8a7c1fe84727b8ec282c4c03e953b8052d2bf242
11 files changed
tree: 0424dc734834964a0126ea1c61bea0abca65e295
  1. .gitignore
  2. .gitreview
  3. Makefile
  4. README.md
  5. bin/
  6. config.mk
  7. docs/
  8. makefiles/
  9. makefiles_include_mk.ex
  10. requirements.txt
README.md

onf-make library makefiles

This repository contains common makefile logic and targets that can be used to build arbitrary repositories. Makefile logic is currently being consumed by the VOLTHA project

makefiles/ subdirectories

Two distinct sets of makefiles are needed to support builds:

  • The first is a subdir of makefiles/ named 'onf-make'

    • This directory exists and is maintained as a git-submodule of repo:onf-make.
    • Library makefiles contain independent logic to install common tools such as (virtualenv), perform linting tasks, define constants and perform path/string manipulation, etc.
  • The second makefile directory contains repository/project specific logic:

    • makefiles/local/ exists as a repository subdirectory under SCM.
    • Contains custom targets, variant parameters and custom logic specific to the repository it exists within.
  • Most makefile logic can be parameterized and implemented to support reuse. Consider adding enhancements or refactoring local/ makefile logic into repo:onf-make so all makefiles can leverage it.

Hierarchy

% tree --charset=ascii -n

Makefile
config.mk
makefiles/
|-- include.mk
|-- local
|   |-- include.mk
|   |   |   |-- doc8
|   |   |   |    |-- doc8.ini   (alas only one --config switch allowed)
|-- [onf-make: git-submodule](https://github.com/opencord/onf-make)
|   |-- makefiles
|   |   |-- consts.mk
|   |   |-- include.mk
|   |   |-- lint
|   |   |   |-- doc8            Syntax check ReStructuredText (rst) files
|   |   |   |-- groovy
|   |   |   |-- python
|   |   |   |-- robot.mk        Syntax check robot testing framework
|   |   |   |-- shell.mk        Invoke shellcheck command on scripts
|   |   |   |-- yaml            Syntax check yaml configs

NOTES

  • Ascii art was rendered using

    • tree --charset=ascii -n
  • README.md can be rendered locally using

    • pandoc README.md | lynx -stdin
    • make view

SEE ALSO