From cef613e410affb2776c27cf9f0bf8fa32772ad1c Mon Sep 17 00:00:00 2001 From: Rachmadani Haryono Date: Thu, 25 Aug 2022 09:51:13 +0800 Subject: [PATCH 1/6] feat(bukuserver): upgrade requirements - remove unnecessary packages --- bukuserver/requirements.txt | 28 ++++++---------------------- setup.py | 27 ++++++--------------------- 2 files changed, 12 insertions(+), 43 deletions(-) diff --git a/bukuserver/requirements.txt b/bukuserver/requirements.txt index cc6e9dcd..12ebb889 100644 --- a/bukuserver/requirements.txt +++ b/bukuserver/requirements.txt @@ -1,24 +1,8 @@ -appdirs>=1.4.3 -arrow>=0.12.1 -beautifulsoup4>=4.5.3 -buku>=2.9 -cffi>=1.9.1 -click>=6.7 -Flask-Admin>=1.5.1 -Flask-API>=0.6.9 +arrow>=1.2.2 +Flask-Admin>=1.6.0 +Flask-API>=3.0.post1 Flask-Bootstrap>=3.3.7.1 -flask-paginate>=0.5.1 +flask-paginate>=2022.1.8 flask-reverse-proxy-fix @ https://github.com/rachmadaniHaryono/flask-reverse-proxy-fix/archive/refs/tags/v0.2.2rc1.zip -Flask-WTF>=0.14.2 -Flask>=1.0.2,<2.0 -idna>=2.5 -itsdangerous>=0.24 -Jinja2>=2.10.1 -markupsafe==2.0.1 -packaging>=16.8 -pyasn1>=0.2.3 -pycparser>=2.17 -requests>=2.21.0 -six>=1.10.0 -urllib3>=1.25.2 -Werkzeug>=0.11.15 +Flask-WTF>=1.0.1 +Flask>=2.2.2 diff --git a/setup.py b/setup.py index f6924a60..ca68e5e5 100644 --- a/setup.py +++ b/setup.py @@ -34,29 +34,14 @@ server_require = [ - "appdirs>=1.4.3", - "arrow>=0.12.1", - "beautifulsoup4>=4.5.3", - "cffi>=1.9.1", - "click>=6.7", - "Flask-Admin>=1.5.1", - "Flask-API>=0.6.9", + "arrow>=1.2.2", + "Flask-Admin>=1.6.0", + "Flask-API>=3.0.post1", "Flask-Bootstrap>=3.3.7.1", - "flask-paginate>=0.5.1", + "flask-paginate>=2022.1.8", "flask-reverse-proxy-fix @ https://github.com/rachmadaniHaryono/flask-reverse-proxy-fix/archive/refs/tags/v0.2.2rc1.zip", - "Flask-WTF>=0.14.2", - "Flask>=1.0.2,<2.0", - "idna>=2.5", - "itsdangerous>=0.24", - "Jinja2>=2.10.1", - "markupsafe==2.0.1", - "packaging>=16.8", - "pyasn1>=0.2.3", - "pycparser>=2.17", - "requests>=2.21.0", - "six>=1.10.0", - "urllib3>=1.25.2", - "Werkzeug>=0.11.15", + "Flask-WTF>=1.0.1", + "Flask>=2.2.2", ] setup( From 0e1db01c243c73ef3d42b543259459e3c4d35f47 Mon Sep 17 00:00:00 2001 From: Rachmadani Haryono Date: Thu, 25 Aug 2022 10:28:22 +0800 Subject: [PATCH 2/6] fix(server): custom version --- bukuserver/server.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/bukuserver/server.py b/bukuserver/server.py index 9cf9bef9..15f8a550 100644 --- a/bukuserver/server.py +++ b/bukuserver/server.py @@ -612,20 +612,26 @@ def get(self): class CustomFlaskGroup(FlaskGroup): # pylint: disable=too-few-public-methods def __init__(self, **kwargs): super().__init__(**kwargs) - self.params[0].help = 'Show the program version' - self.params[0].callback = get_custom_version + for idx, param in enumerate(self.params): + if param.name == "version": + self.params[idx].help = "Show the program version" + self.params[idx].callback = get_custom_version def get_custom_version(ctx, param, value): if not value or ctx.resilient_parsing: return - message = '%(app_name)s %(app_version)s\nFlask %(version)s\nPython %(python_version)s' - click.echo(message % { - 'app_name': 'buku', - 'app_version': __version__, - 'version': flask_version, - 'python_version': sys.version, - }, color=ctx.color) + message = "\n".join(["%(app_name)s %(app_version)s", "Flask %(version)s", "Python %(python_version)s"]) + click.echo( + message + % { + "app_name": "buku", + "app_version": __version__, + "version": flask_version, + "python_version": sys.version, + }, + color=ctx.color, + ) ctx.exit() From 5b61a97cec3f3701976e64b3425f1262d541c2d1 Mon Sep 17 00:00:00 2001 From: Rachmadani Haryono Date: Fri, 26 Aug 2022 07:29:13 +0800 Subject: [PATCH 3/6] build: split reverse proxy package --- setup.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index ca68e5e5..78177285 100644 --- a/setup.py +++ b/setup.py @@ -39,10 +39,16 @@ "Flask-API>=3.0.post1", "Flask-Bootstrap>=3.3.7.1", "flask-paginate>=2022.1.8", - "flask-reverse-proxy-fix @ https://github.com/rachmadaniHaryono/flask-reverse-proxy-fix/archive/refs/tags/v0.2.2rc1.zip", "Flask-WTF>=1.0.1", "Flask>=2.2.2", ] +reverse_proxy = " ".join( + [ + "flask-reverse-proxy-fix", + "@", + "https://github.com/rachmadaniHaryono/flask-reverse-proxy-fix/archive/refs/tags/v0.2.2rc1.zip", + ] +) setup( name='buku', @@ -70,8 +76,9 @@ }, extras_require={ "ca-certificates": ["certifi"], - "tests": tests_require + server_require, + "tests": tests_require + server_require + [reverse_proxy], "server": server_require, + "reverse_proxy": [reverse_proxy], "docs": [ "myst-parser>=0.17.0", "sphinx-rtd-theme>=1.0.0", From 0511a204a748353b30da18ccd6f383231de018b6 Mon Sep 17 00:00:00 2001 From: Rachmadani Haryono Date: Fri, 26 Aug 2022 07:36:46 +0800 Subject: [PATCH 4/6] docs(bukuserver): installation --- bukuserver/README.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/bukuserver/README.md b/bukuserver/README.md index 8a03235c..c02c9f5d 100644 --- a/bukuserver/README.md +++ b/bukuserver/README.md @@ -28,14 +28,25 @@ $ source env/bin/activate #### From PyPi - $ pip3 install "buku[server]" +```sh +$ # basic server +$ pip3 install "buku[server]" +$ # server with reverse proxy +$ pip3 install "buku[server,reverse_proxy]" +$ # pipx install bukuserver with reverse proxy +$ pipx install "buku[server]" +$ pipx inject buku https://github.com/rachmadaniHaryono/flask-reverse-proxy-fix/archive/refs/tags/v0.2.2rc1.zip +``` #### From source -``` +```sh $ git clone https://github.com/jarun/buku $ cd buku -$ pip3 install .[server] +$ # basic server +$ pip3 install ".[server]" +$ # server with reverse_proxy +$ pip3 install ".[server]" ``` #### Using Docker From 2b1c93a315653d70a8de66b175977f395907330c Mon Sep 17 00:00:00 2001 From: Rachmadani Haryono Date: Fri, 26 Aug 2022 07:52:31 +0800 Subject: [PATCH 5/6] test(bukuserver): update requirement check --- tests/test_setup.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tests/test_setup.py b/tests/test_setup.py index aa5456a4..9d4cef1d 100644 --- a/tests/test_setup.py +++ b/tests/test_setup.py @@ -1,10 +1,15 @@ +import pathlib + + def test_bukuserver_requirement(monkeypatch): def m_setup(**kwargs): return None import setuptools monkeypatch.setattr(setuptools, 'setup', m_setup) import setup - setup_l = setup.server_require - with open('bukuserver/requirements.txt', encoding="utf8", errors="surrogateescape") as f: - bs_l = [x for x in f.read().splitlines() if not x.startswith('buku')] - assert bs_l == setup_l + + assert [ + x + for x in pathlib.Path("bukuserver/requirements.txt").read_text(encoding="utf8", errors="surrogateescape").splitlines() + if "flask-reverse-proxy-fix" not in x + ] == setup.server_require From df104aeb489ea9bab3b6ce2dbbc55cb183f6f6be Mon Sep 17 00:00:00 2001 From: Rachmadani Haryono Date: Fri, 26 Aug 2022 08:01:33 +0800 Subject: [PATCH 6/6] docs(bukuserver): installation from source with reverse proxy --- bukuserver/README.md | 2 +- docs/source/wiki | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 160000 docs/source/wiki diff --git a/bukuserver/README.md b/bukuserver/README.md index c02c9f5d..46815d7c 100644 --- a/bukuserver/README.md +++ b/bukuserver/README.md @@ -46,7 +46,7 @@ $ cd buku $ # basic server $ pip3 install ".[server]" $ # server with reverse_proxy -$ pip3 install ".[server]" +$ pip3 install ".[server,reverse_proxy]" ``` #### Using Docker diff --git a/docs/source/wiki b/docs/source/wiki new file mode 160000 index 00000000..90591029 --- /dev/null +++ b/docs/source/wiki @@ -0,0 +1 @@ +Subproject commit 905910294adce5d1092d04b6c5b9bccdca952869