From 79df61f674ddb1606c8445ba239eb03a769a4ad4 Mon Sep 17 00:00:00 2001 From: Eric Young Date: Thu, 1 Sep 2022 10:32:36 -0500 Subject: [PATCH] Small developer improvements for Windows-based devs. --- DEVELOP.rst | 36 ++++++++++++++++++++++++++++++++++++ changelog.rst | 1 + requirements-dev.txt | 3 ++- setup.py | 5 +++++ 4 files changed, 44 insertions(+), 1 deletion(-) diff --git a/DEVELOP.rst b/DEVELOP.rst index 0656905c..4cde6943 100644 --- a/DEVELOP.rst +++ b/DEVELOP.rst @@ -48,6 +48,10 @@ Create a virtualenv (let's call it pgcli-dev). Activate it: source ./pgcli-dev/bin/activate + or + + .\pgcli-dev\scripts\activate (for Windows) + Once the virtualenv is activated, `cd` into the local clone of pgcli folder and install pgcli using pip as follows: @@ -73,6 +77,37 @@ If you want to work on adding new meta-commands (such as `\dp`, `\ds`, `dy`), you need to contribute to `pgspecial `_ project. +Visual Studio Code Debugging +----------------------------- +To set up Visual Studio Code to debug pgcli requires a launch.json file. + +Within the project, create a file: .vscode\\launch.json like below. + +:: + + { + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Python: Module", + "type": "python", + "request": "launch", + "module": "pgcli.main", + "justMyCode": false, + "console": "externalTerminal", + "env": { + "PGUSER": "postgres", + "PGPASS": "password", + "PGHOST": "localhost", + "PGPORT": "5432" + } + } + ] + } + Building RPM and DEB packages ----------------------------- @@ -145,6 +180,7 @@ service for the changes to take effect. $ sudo service postgresql restart After that, tests in the ``/pgcli/tests`` directory can be run with: +(Note that these ``behave`` tests do not currently work when developing on Windows due to pexpect incompatibility.) :: diff --git a/changelog.rst b/changelog.rst index dd3a5f1d..11af3167 100644 --- a/changelog.rst +++ b/changelog.rst @@ -6,6 +6,7 @@ Bug fixes: * Fix exception when retrieving password from keyring ([issue 1338](https://github.com/dbcli/pgcli/issues/1338)). * Fix using comments with special commands ([issue 1362](https://github.com/dbcli/pgcli/issues/1362)). +* Small improvements to the Windows developer experience Internal: --------- diff --git a/requirements-dev.txt b/requirements-dev.txt index 700915a1..9bf1117a 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -2,7 +2,7 @@ pytest>=2.7.0 tox>=1.9.2 behave>=1.2.4 black>=22.3.0 -pexpect==3.3 +pexpect==3.3; platform_system != "Windows" pre-commit>=1.16.0 coverage>=5.0.4 codecov>=1.5.1 @@ -10,3 +10,4 @@ docutils>=0.13.1 autopep8>=1.3.3 twine>=1.11.0 wheel>=0.33.6 +sshtunnel>=0.4.0 \ No newline at end of file diff --git a/setup.py b/setup.py index 60b0d7a2..bd49221d 100644 --- a/setup.py +++ b/setup.py @@ -26,6 +26,11 @@ install_requirements = [ # so we'll only install it if we're not in Windows. if platform.system() != "Windows" and not platform.system().startswith("CYGWIN"): install_requirements.append("setproctitle >= 1.1.9") + +# Windows will require the binary psycopg to run pgcli +if platform.system() == "Windows": + install_requirements.append("psycopg-binary >= 3.0.14") + setup( name="pgcli",