Bug 241691 - [NEW PORT] www/py-pecan: WSGI object-dispatching web framework
Summary: [NEW PORT] www/py-pecan: WSGI object-dispatching web framework
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Kubilay Kocak
URL:
Keywords: feature
Depends on:
Blocks:
 
Reported: 2019-11-03 17:09 UTC by Willem Jan Withagen
Modified: 2019-12-17 03:20 UTC (History)
2 users (show)

See Also:
koobs: maintainer-feedback+


Attachments
svn diff for net port (2.20 KB, patch)
2019-11-03 17:09 UTC, Willem Jan Withagen
no flags Details | Diff
New svn-diff for pecan (2.77 KB, patch)
2019-11-05 12:01 UTC, Willem Jan Withagen
no flags Details | Diff
3rd version for py-pecan (3.31 KB, patch)
2019-11-05 13:35 UTC, Willem Jan Withagen
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Willem Jan Withagen 2019-11-03 17:09:57 UTC
Created attachment 208824 [details]
svn diff for net port

Follows the template of just about every CHEESESHOP py module
Comment 1 Willem Jan Withagen 2019-11-03 17:20:14 UTC
package will be used by the net/ceph* ports
Comment 2 Kubilay Kocak freebsd_committer freebsd_triage 2019-11-04 06:57:03 UTC
Thank you for the new port and patch Willem.

Review items:

- Missing RUN_DEPENDS. See setup.py:install_requires=requirements, which pulls from requirements.txt

- Missing dependency on singledispatch for PYTHON_VER < 3.4

- Package installs a script in LOCALBASE/bin. Ports doing so (or in other non-python version-specific locations), must be concurrent safe. Add USE_PYTHON=concurrent

- If you can, add TEST_DEPENDS and a test target for QA purposes. Package includes tests_require (for test dependencies) and test_suite in setup.py so it should be as simple as a '${PYTHON_CMD} ${PYDISTUTILS_SETUP} test' call in a do-test: target

Please also confirm the port passes QA (portlint and poudriere for python27/36 at least, in particular)
Comment 3 Willem Jan Withagen 2019-11-05 12:01:13 UTC
Created attachment 208876 [details]
New svn-diff for pecan
Comment 4 Willem Jan Withagen 2019-11-05 12:02:14 UTC
New patch uploaded.

portlint and poudriere are both happy
Comment 5 Kubilay Kocak freebsd_committer freebsd_triage 2019-11-05 12:07:47 UTC
(In reply to Willem Jan Withagen from comment #4)

Looks great Willem, nice work!
Comment 6 Kubilay Kocak freebsd_committer freebsd_triage 2019-11-05 12:22:31 UTC
Sorry, I didn't notice before:

- Set install_requires as RUN_DEPENDS (not test depends)
- Test dependencies dont need to include run depends (theyre implicit). upstream shouldn't be including them in tests_require. these are the real test dependencies:

test-requirements.txt:

gunicorn
Jinja2
mock
pep8
sqlalchemy
uwsgi

virtualenv should not be necessary to test

- Still missing dependency on singledispatch for PYTHON_VER < 3.4

.include <bsd.port.pre.mk>
.if ${PYTHON_VER} < 3.4
RUN_DEPENDS+= singledispatch 
.endif

.include <bsd.port.pre.mk> (last line)

- For multiple *_DEPENDS lines, use \ to separate dependencies per line rather than TEST_DEPENDS= and multiple  TEST_DEPENDS+=
Comment 7 Willem Jan Withagen 2019-11-05 13:35:55 UTC
Created attachment 208879 [details]
3rd version for py-pecan

More fixes as requested
Comment 8 Kubilay Kocak freebsd_committer freebsd_triage 2019-11-22 11:36:42 UTC
(In reply to Willem Jan Withagen from comment #7)

Thanks Willem. Is QA still good after the last update?
Comment 9 Willem Jan Withagen 2019-11-22 12:04:43 UTC
# portlint -A py-pecan
looks fine.

And:
====> Running Q/A tests (stage-qa)
====> Checking for pkg-plist issues (check-plist)
===> Parsing plist
===> Checking for items in STAGEDIR missing from pkg-plist
===> Checking for items in pkg-plist which are not in STAGEDIR
===> No pkg-plist issues found (check-plist)
=>> Checking for staging violations... done
=======================<phase: package        >============================
Comment 10 Kubilay Kocak freebsd_committer freebsd_triage 2019-12-16 01:07:52 UTC
www/py-falcon needs this for TEST_DEPENDS, I'll take this

@Willem I plan to put this in CATEGORIES=www as its the more appropriate primary category, but I will leave devel in there as a secondary, though I don't think its necessary.
Comment 11 Kubilay Kocak freebsd_committer freebsd_triage 2019-12-16 03:59:13 UTC
Updated py-genshi after identifying test failures in pecan on Python 3.x. See: ports r520212
Comment 12 Kubilay Kocak freebsd_committer freebsd_triage 2019-12-17 03:09:37 UTC
QA passes:

portlint: OK (looks fine.)
testport: OK (poudriere: 12amd64, Python 2.7/3.6)
maketest: OK

    2.7: Ran 541 tests in 2.153s - OK (skipped=3)
    3.5: Ran 541 tests in 10.106s - OK (skipped=1)
    3.6: Ran 541 tests in 10.246s - OK (skipped=1)
    3.7: Ran 541 tests in 3.949s - OK (skipped=1)
    3.8: Ran 541 tests in 3.806s - OK (skipped=1)
Comment 13 commit-hook freebsd_committer 2019-12-17 03:15:41 UTC
A commit references this bug:

Author: koobs
Date: Tue Dec 17 03:14:38 UTC 2019
New revision: 520299
URL: https://svnweb.freebsd.org/changeset/ports/520299

Log:
  [NEW] www/py-pecan: WSGI object-dispatching web framework

  A WSGI object-dispatching web framework.

  Designed to be lean and fast with few dependencies.

  WWW: https://github.com/pecan/pecan/

  PR:		241691
  Submitted by:	Willem Jan Withagen <wjw digiware nl>

Changes:
  head/www/Makefile
  head/www/py-pecan/
  head/www/py-pecan/Makefile
  head/www/py-pecan/distinfo
  head/www/py-pecan/files/
  head/www/py-pecan/files/patch-setup.py
  head/www/py-pecan/pkg-descr
Comment 14 Kubilay Kocak freebsd_committer freebsd_triage 2019-12-17 03:20:08 UTC
Committed with several additions/changes

@Willem Please review the changes, noting in particular the patch to setup.py which should be upstreamed

Thank you for submitting a new port!