From cc934da633681a22c705a52f133436b9f80b9455 Mon Sep 17 00:00:00 2001 From: Sam Scott Date: Wed, 27 Apr 2022 15:48:53 -0500 Subject: [PATCH 1/7] [Django] Use name of variable instead of Python variable repr. --- languages/python/django-oso/django_oso/partial.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/languages/python/django-oso/django_oso/partial.py b/languages/python/django-oso/django_oso/partial.py index b5665acace..941f14bf28 100644 --- a/languages/python/django-oso/django_oso/partial.py +++ b/languages/python/django-oso/django_oso/partial.py @@ -57,7 +57,9 @@ def get_model_by_path( class FilterBuilder: def __init__(self, model: Model, name="_this", parent=None): - self.name = name + self.name = ( + super(Variable, name).__str__() if isinstance(name, Variable) else name + ) self.model = model self.filter = TRUE_FILTER # Map variables to subquery From 0f526c1087cf1d81148163ed078c80f2ba72b61f Mon Sep 17 00:00:00 2001 From: Sam Scott Date: Thu, 28 Apr 2022 09:35:55 -0500 Subject: [PATCH 2/7] Run `go mod tidy` before testing? --- docs/examples/add-to-your-application/go/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/examples/add-to-your-application/go/Makefile b/docs/examples/add-to-your-application/go/Makefile index ff3824a6ab..06f97fd607 100644 --- a/docs/examples/add-to-your-application/go/Makefile +++ b/docs/examples/add-to-your-application/go/Makefile @@ -2,4 +2,5 @@ test: make -C ../../../../languages/go copy_lib + go mod tidy go test From cdc6dbf047d88dd65bf8f01dcedeab5c34662c96 Mon Sep 17 00:00:00 2001 From: Sam Scott Date: Thu, 28 Apr 2022 09:42:55 -0500 Subject: [PATCH 3/7] Drop tests for Python 3.6 on Windows No longer supported by action https://github.com/actions/setup-python/issues/355#issuecomment-1070921689 --- .github/workflows/release.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 07e41ced3f..428a30a585 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -573,7 +573,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"] + python-version: ["3.7", "3.8", "3.9", "3.10"] steps: - uses: actions/checkout@v2 - name: Set version env @@ -604,7 +604,7 @@ jobs: matrix: # Skip 3.10 due to a broken python link. # Turn back on after this is resolved https://github.com/pypa/cibuildwheel/issues/902 - python-version: ["3.6", "3.7", "3.8", "3.9"] + python-version: ["3.7", "3.8", "3.9"] steps: - uses: actions/checkout@v2 - name: Set version env @@ -699,7 +699,7 @@ jobs: runs-on: windows-latest strategy: matrix: - python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"] + python-version: ["3.7", "3.8", "3.9", "3.10"] steps: - uses: actions/checkout@v2 - name: Set version env @@ -728,7 +728,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"] + python-version: ["3.7", "3.8", "3.9", "3.10"] steps: - uses: actions/checkout@v2 - name: Set version env From cc7cf8bb7dce91096039d466104d76de4ba45afe Mon Sep 17 00:00:00 2001 From: Sam Scott Date: Thu, 28 Apr 2022 09:45:58 -0500 Subject: [PATCH 4/7] Only meant to drop 3.6 for windows. --- .github/workflows/release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 428a30a585..9f39a394cf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -573,7 +573,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.7", "3.8", "3.9", "3.10"] + python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"] steps: - uses: actions/checkout@v2 - name: Set version env @@ -604,7 +604,7 @@ jobs: matrix: # Skip 3.10 due to a broken python link. # Turn back on after this is resolved https://github.com/pypa/cibuildwheel/issues/902 - python-version: ["3.7", "3.8", "3.9"] + python-version: ["3.6", "3.7", "3.8", "3.9"] steps: - uses: actions/checkout@v2 - name: Set version env @@ -728,7 +728,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.7", "3.8", "3.9", "3.10"] + python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"] steps: - uses: actions/checkout@v2 - name: Set version env From 9212971470daed11310d7e7aed7d9469954bc856 Mon Sep 17 00:00:00 2001 From: Sam Scott Date: Thu, 28 Apr 2022 10:06:30 -0500 Subject: [PATCH 5/7] Keep using the `go mod tidy` hammer. --- docs/examples/quickstart/test_quickstarts.rb | 56 +++++++++----------- 1 file changed, 26 insertions(+), 30 deletions(-) diff --git a/docs/examples/quickstart/test_quickstarts.rb b/docs/examples/quickstart/test_quickstarts.rb index b46e2a23cb..06d2148696 100644 --- a/docs/examples/quickstart/test_quickstarts.rb +++ b/docs/examples/quickstart/test_quickstarts.rb @@ -9,26 +9,24 @@ CURL_ERROR = "curl: (7) Failed to connect to localhost port 5000: Connection refused\n" CURL_EMPTY = "curl: (52) Empty reply from server\n" - quickstarts = { - go: { setup: 'go build', server: './oso-go-quickstart' }, + go: { setup: 'go mod tidy && go build', server: './oso-go-quickstart' }, # TODO: add local_setup that tests against local Oso install for java java: { setup: 'make install', server: 'make run' }, # TODO: add local_setup that tests against local Oso install for nodejs nodejs: { setup: 'npm i', server: 'npm run dev' }, python: { setup: 'pip install --upgrade -r requirements.txt', server: 'FLASK_APP=app.server python -m flask run' }, - ruby: { setup: 'bundle', server: 'bundle exec ruby server.rb' }, + ruby: { setup: 'bundle', server: 'bundle exec ruby server.rb' } # rust: { setup: 'cargo build', server: 'cargo run' } } -if ARGV.include? "local" - quickstarts[:go][:setup] = "make -C ../../../../languages/go copy_lib && go mod edit -replace github.com/osohq/go-oso=../../../../languages/go && go build" - quickstarts[:python][:setup] = "pip install -e ../../../../languages/python/oso && pip install --upgrade -r requirements.txt" - quickstarts[:ruby][:setup] = "BUNDLE_GEMFILE=../Gemfile-local bundle" - quickstarts[:ruby][:server] = "BUNDLE_GEMFILE=../Gemfile-local bundle exec ruby server.rb" +if ARGV.include? 'local' + quickstarts[:go][:setup] = 'make -C ../../../../languages/go copy_lib && go mod edit -replace github.com/osohq/go-oso=../../../../languages/go && go mod tidy && go build' + quickstarts[:python][:setup] = 'pip install -e ../../../../languages/python/oso && pip install --upgrade -r requirements.txt' + quickstarts[:ruby][:setup] = 'BUNDLE_GEMFILE=../Gemfile-local bundle' + quickstarts[:ruby][:server] = 'BUNDLE_GEMFILE=../Gemfile-local bundle exec ruby server.rb' end - def start_server(server, repo) server = spawn server received = CURL_ERROR @@ -68,29 +66,27 @@ def kill_server(server) raise "Setup step failed for #{lang.upcase}:\n#{setup_output}" unless $CHILD_STATUS.exitstatus.zero? Timeout.timeout 15 do - begin - ensure_port_5000_is_open - - puts "#{prefix} Starting server..." - server, received = start_server qs[:server], "gmail" - puts "#{prefix} Checking that /repo/gmail returns a 200..." - expected = 'Welcome to repo gmail' - unless received.include?(expected) - raise "#{lang.upcase} failure\n\texpected: #{expected.inspect}\n\treceived: #{received.inspect}\n" - end - - puts "#{prefix} Checking that /repo/react returns a 404..." - received = `curl -sS localhost:5000/repo/react 2>&1` - expected = 'Repo named react was not found' - unless received.include?(expected) - raise "#{lang.upcase} failure\n\texpected: #{expected.inspect}\n\treceived: #{received.inspect}\n" - end + ensure_port_5000_is_open + + puts "#{prefix} Starting server..." + server, received = start_server qs[:server], 'gmail' + puts "#{prefix} Checking that /repo/gmail returns a 200..." + expected = 'Welcome to repo gmail' + unless received.include?(expected) + raise "#{lang.upcase} failure\n\texpected: #{expected.inspect}\n\treceived: #{received.inspect}\n" + end - puts "#{prefix} Success!" - ensure - kill_server server unless server.nil? - ensure_port_5000_is_open + puts "#{prefix} Checking that /repo/react returns a 404..." + received = `curl -sS localhost:5000/repo/react 2>&1` + expected = 'Repo named react was not found' + unless received.include?(expected) + raise "#{lang.upcase} failure\n\texpected: #{expected.inspect}\n\treceived: #{received.inspect}\n" end + + puts "#{prefix} Success!" + ensure + kill_server server unless server.nil? + ensure_port_5000_is_open end end end From 7f1343f7d222e2d51be105469383675aa83c5f28 Mon Sep 17 00:00:00 2001 From: Sam Scott Date: Thu, 28 Apr 2022 10:08:07 -0500 Subject: [PATCH 6/7] Update submodules. --- docs/examples/quickstart/go | 2 +- docs/examples/quickstart/java | 2 +- docs/examples/quickstart/nodejs | 2 +- docs/examples/quickstart/python | 2 +- docs/examples/quickstart/ruby | 2 +- docs/examples/quickstart/rust | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/examples/quickstart/go b/docs/examples/quickstart/go index 31e6786421..2f2d68adeb 160000 --- a/docs/examples/quickstart/go +++ b/docs/examples/quickstart/go @@ -1 +1 @@ -Subproject commit 31e6786421c6d737958cb2c8f1a5f6eea1b0268d +Subproject commit 2f2d68adeb543385d1b24af520ec3eebc46246dc diff --git a/docs/examples/quickstart/java b/docs/examples/quickstart/java index 2ed954399c..20404c6198 160000 --- a/docs/examples/quickstart/java +++ b/docs/examples/quickstart/java @@ -1 +1 @@ -Subproject commit 2ed954399cf4172755fd82f709a7de73470b8da7 +Subproject commit 20404c6198a119f4107b42db1074ff3327ae736c diff --git a/docs/examples/quickstart/nodejs b/docs/examples/quickstart/nodejs index 111a4a2026..02cf928bdb 160000 --- a/docs/examples/quickstart/nodejs +++ b/docs/examples/quickstart/nodejs @@ -1 +1 @@ -Subproject commit 111a4a202641ee9eec6e678528377fb377dbd892 +Subproject commit 02cf928bdb4dbb1b9160b4b24b3e016998900af4 diff --git a/docs/examples/quickstart/python b/docs/examples/quickstart/python index 098880f68e..3872a45d40 160000 --- a/docs/examples/quickstart/python +++ b/docs/examples/quickstart/python @@ -1 +1 @@ -Subproject commit 098880f68e923374acde4e622284d9445cf888cd +Subproject commit 3872a45d408f6890bb6d363f42e74d1bc819b7a5 diff --git a/docs/examples/quickstart/ruby b/docs/examples/quickstart/ruby index 71ab7db39b..a016aaf143 160000 --- a/docs/examples/quickstart/ruby +++ b/docs/examples/quickstart/ruby @@ -1 +1 @@ -Subproject commit 71ab7db39b9cc99d32d6ab152f8b6880c0c0bb6c +Subproject commit a016aaf143b88cee8c2b8a330dc26e8e3df241c4 diff --git a/docs/examples/quickstart/rust b/docs/examples/quickstart/rust index f11ac403cc..0a1e687c59 160000 --- a/docs/examples/quickstart/rust +++ b/docs/examples/quickstart/rust @@ -1 +1 @@ -Subproject commit f11ac403ccd3e591858aea19d0f31e2584920c1c +Subproject commit 0a1e687c59e5f7b6e8d7f0ae905676b744bee13d From 94a11464bb357a060f54909ad867e83b2ab08c75 Mon Sep 17 00:00:00 2001 From: Sam Scott Date: Thu, 28 Apr 2022 10:23:19 -0500 Subject: [PATCH 7/7] Revert all the automatic changes my IDE did. --- docs/examples/quickstart/test_quickstarts.rb | 54 +++++++++++--------- 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/docs/examples/quickstart/test_quickstarts.rb b/docs/examples/quickstart/test_quickstarts.rb index 06d2148696..a0fcfdda88 100644 --- a/docs/examples/quickstart/test_quickstarts.rb +++ b/docs/examples/quickstart/test_quickstarts.rb @@ -9,6 +9,7 @@ CURL_ERROR = "curl: (7) Failed to connect to localhost port 5000: Connection refused\n" CURL_EMPTY = "curl: (52) Empty reply from server\n" + quickstarts = { go: { setup: 'go mod tidy && go build', server: './oso-go-quickstart' }, # TODO: add local_setup that tests against local Oso install for java @@ -16,17 +17,18 @@ # TODO: add local_setup that tests against local Oso install for nodejs nodejs: { setup: 'npm i', server: 'npm run dev' }, python: { setup: 'pip install --upgrade -r requirements.txt', server: 'FLASK_APP=app.server python -m flask run' }, - ruby: { setup: 'bundle', server: 'bundle exec ruby server.rb' } + ruby: { setup: 'bundle', server: 'bundle exec ruby server.rb' }, # rust: { setup: 'cargo build', server: 'cargo run' } } -if ARGV.include? 'local' - quickstarts[:go][:setup] = 'make -C ../../../../languages/go copy_lib && go mod edit -replace github.com/osohq/go-oso=../../../../languages/go && go mod tidy && go build' - quickstarts[:python][:setup] = 'pip install -e ../../../../languages/python/oso && pip install --upgrade -r requirements.txt' - quickstarts[:ruby][:setup] = 'BUNDLE_GEMFILE=../Gemfile-local bundle' - quickstarts[:ruby][:server] = 'BUNDLE_GEMFILE=../Gemfile-local bundle exec ruby server.rb' +if ARGV.include? "local" + quickstarts[:go][:setup] = "make -C ../../../../languages/go copy_lib && go mod edit -replace github.com/osohq/go-oso=../../../../languages/go && go mod tidy && go build" + quickstarts[:python][:setup] = "pip install -e ../../../../languages/python/oso && pip install --upgrade -r requirements.txt" + quickstarts[:ruby][:setup] = "BUNDLE_GEMFILE=../Gemfile-local bundle" + quickstarts[:ruby][:server] = "BUNDLE_GEMFILE=../Gemfile-local bundle exec ruby server.rb" end + def start_server(server, repo) server = spawn server received = CURL_ERROR @@ -66,27 +68,29 @@ def kill_server(server) raise "Setup step failed for #{lang.upcase}:\n#{setup_output}" unless $CHILD_STATUS.exitstatus.zero? Timeout.timeout 15 do - ensure_port_5000_is_open - - puts "#{prefix} Starting server..." - server, received = start_server qs[:server], 'gmail' - puts "#{prefix} Checking that /repo/gmail returns a 200..." - expected = 'Welcome to repo gmail' - unless received.include?(expected) - raise "#{lang.upcase} failure\n\texpected: #{expected.inspect}\n\treceived: #{received.inspect}\n" - end + begin + ensure_port_5000_is_open - puts "#{prefix} Checking that /repo/react returns a 404..." - received = `curl -sS localhost:5000/repo/react 2>&1` - expected = 'Repo named react was not found' - unless received.include?(expected) - raise "#{lang.upcase} failure\n\texpected: #{expected.inspect}\n\treceived: #{received.inspect}\n" - end + puts "#{prefix} Starting server..." + server, received = start_server qs[:server], "gmail" + puts "#{prefix} Checking that /repo/gmail returns a 200..." + expected = 'Welcome to repo gmail' + unless received.include?(expected) + raise "#{lang.upcase} failure\n\texpected: #{expected.inspect}\n\treceived: #{received.inspect}\n" + end + + puts "#{prefix} Checking that /repo/react returns a 404..." + received = `curl -sS localhost:5000/repo/react 2>&1` + expected = 'Repo named react was not found' + unless received.include?(expected) + raise "#{lang.upcase} failure\n\texpected: #{expected.inspect}\n\treceived: #{received.inspect}\n" + end - puts "#{prefix} Success!" - ensure - kill_server server unless server.nil? - ensure_port_5000_is_open + puts "#{prefix} Success!" + ensure + kill_server server unless server.nil? + ensure_port_5000_is_open + end end end end