Page MenuHomeFreeBSD

[NEW PORT] sysutils/py-superlance: Superlance plugins for supervisord
ClosedPublic

Authored by loader on Oct 29 2017, 3:31 AM.
Tags
None
Referenced Files
F105797015: D12822.diff
Fri, Dec 20, 8:13 PM
Unknown Object (File)
Nov 8 2024, 3:19 PM
Unknown Object (File)
Nov 4 2024, 7:28 AM
Unknown Object (File)
Sep 25 2024, 10:59 AM
Unknown Object (File)
Sep 25 2024, 10:58 AM
Unknown Object (File)
Sep 25 2024, 10:58 AM
Unknown Object (File)
Sep 25 2024, 10:58 AM
Unknown Object (File)
Sep 23 2024, 11:02 PM
Subscribers

Details

Reviewers
koobs
Summary

Proposed commit log message:

[NEW PORT] sysutils/py-superlance: Superlance plugins for supervisord

Superlance is a package of plugin utilities for monitoring and controlling
processes that run under supervisor.

WWW: https://github.com/Supervisor/superlance

Reviewed_by: koobs
Approved by: koobs (ports)
Differential_Revision: D12822
Test Plan
  • portlint: OK (looks fine.)
  • testport: OK (poudriere: 1200051, armv7, '', python2.7 tested)
  • unittest: OK (run=65 failures=0)

Diff Detail

Repository
rP FreeBSD ports repository
Lint
No Lint Coverage
Unit
No Test Coverage
Build Status
Buildable 12527
Build 12802: arc lint + arc unit

Event Timeline

koobs requested changes to this revision.Nov 6 2017, 9:48 AM
koobs added inline comments.
sysutils/py-superlance/Makefile
18

Always compare port declarations against the respective upstream source declarations, matching as closely as possible (without being incorrect).

Apparently mock is only a PYTHON_REL < 3300 TEST_DEPENDS [1]

[1] https://github.com/Supervisor/superlance/blob/master/setup.py#L38

But it might not be (validate/test)
:)

22–23

If it supports 2.6-3.5(+?) why is this limited to 2.7?

24

Package provides end user scripts [1], so this port should be tested and verified to be 'concurrent safe' and made concurrent safe if not.

Concurrent safe means two package installs of the same port for different python versions (eg: py27-foo and py36-foo) do not conflict (each file in common locations is has a unique filename).

See USE_PYTHON=concurrent. It is usually enough.

[1] https://github.com/Supervisor/superlance/blob/master/setup.py#L77

sysutils/py-superlance/files/patch-superlance_httpok.py
8–9

To help our future selves (you and others), ideally comment all patches, either with:

  • A description of what/why, and/or
  • Links to upstream commits/issues/pull-requests if relevant
sysutils/py-superlance/files/patch-superlance_memmon.py
9

To help our future selves (you and others), ideally comment all patches, either with:

  • A description of what/why, and/or
  • Links to upstream commits/issues/pull-requests if relevant
This revision now requires changes to proceed.Nov 6 2017, 9:48 AM
loader added inline comments.
sysutils/py-superlance/Makefile
22–23

RUN_DEPENDS sysutils/py-supervisor is limited to 2.7.

If supervisor is an actual (compulsory and version unconditional) dependency and it only supports 2.7, then the dependent package cannot by definition support anything other than 2.7

superlance upstream provides a .travis.yml that tests (apparently) against Python 3.x, and the file contains no special provisions for that Python environment.

My guess at this point (unless I'm missing something?), without explicit evidence to the contrary as to how superlance can work with 3.x while depending unconditionally on a python 2.x only dependency, is that it can't.

However, there are commits fixing tests on Python 3.x [1] and actual Python 3 support commits [2]

[1] https://github.com/Supervisor/superlance/commits/master/.travis.yml
[2] https://github.com/Supervisor/superlance/commit/4a535b341fa1a49329b65392044f4bd267e2c3f8#diff-2eeaed663bd0d25b7e608891384b7298

I would personally resolve this quandary prior to commit, but i suppose its not a blocker as setting USES=2.7 in the absence of an explanation is technically correctly.

This revision is now accepted and ready to land.Nov 8 2017, 1:16 AM

The supervisor master branch [0] supports Python 3.x, but the 3.3-branch [1]
only work with Python 2.x. The latest release of supervisor is 3.3.3 on PyPI:

% pip install superlance
Collecting superlance
  Downloading superlance-1.0.0-py2.py3-none-any.whl
Collecting supervisor (from superlance)
  Downloading supervisor-3.3.3.tar.gz (418kB)
    100% |################################| 419kB 13kB/s
    Complete output from command python setup.py egg_info:
    Supervisor requires Python 2.4 or later but does not work on any version of Python 3.  You are using version 3.6.2 (default, Sep 19 2017, 15:47:06)
    [GCC 4.2.1 Compatible FreeBSD Clang 5.0.0 (tags/RELEASE_500/final 312559)].  Please install using a supported version.

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-yshq39n7/supervisor/

[0] https://github.com/Supervisor/supervisor/blob/master/setup.py
[1] https://github.com/Supervisor/supervisor/blob/3.3-branch/setup.py

Then superlance does not "support 3.x" in its current form and USES=2.7 is correct :)

Accepted with previous comment, either way

Nice port!

Thanks so much for your help. :)

Thanks so much for your help. :)

My bad, forgot to remove '_' from the commit log message again ...