On Sat, Nov 23, 2019 at 12:38 AM Yasuhito FUTATSUKI <futat...@poem.co.jp> wrote: > Perhaps it is necessary to check all Python scripts except those we > use on build and release which are already checked. > > At least I found those in tools/server-side couldn't work on Python 3: > > tools/server-side/fsfs-reshared.py > (try to write str object on binary mode stream in > write_fs_format()) > tools/server-side/svn-backup-dumps.py > (fixed in r1870204) > tools/server-side/svnpredumpfilter.py > (AttributeError: module 'string' has no attribute 'strip') > tools/server-side/svn_server_log_parse.py > (import svn.core, bytes vs str) > tools/server-side/test_server_log_parse.py > (import svn.core, bytes vs str) > > (I didn't check files in tools/server-side/svnpubsub)
FYI I have made a list of all our Python scripts, categorized in a very *preliminary* manner into one of three categories: * Python 3 supported * Python 3 not supported yet * Not checked yet It is preliminary because I've based my categorization on recent discussions. The intention is to test and then put each script into the correct category. Since there are many scripts, I'm trying to find the "best" automated way to determine which are compatible with Python 3. I would prefer a static analysis method because I don't necessarily have a use-case to run every single script. So far I have installed pylint3 and played with it a bit. My preliminary list follows... If anyone happens to know (off the top of their head) that my categorization of a script is incorrect, please let me know. Once the list seems correct, I'll file an issue to help us keep track of progress, and link to it from the "Known Issues" section of the 1.14 release notes as discussed here some days ago... List: Python 3 Supported ================== build/getversion.py build/run_tests.py build/transform_sql.py build/generator/gen_win_dependencies.py build/generator/gen_win.py build/generator/gen_vcnet_vcproj.py build/generator/swig/external_runtime.py build/generator/swig/__init__.py build/generator/swig/header_wrappers.py build/generator/swig/checkout_swig_header.py build/generator/util/__init__.py build/generator/__init__.py build/generator/extractor.py build/generator/gen_make.py build/generator/gen_base.py build/generator/ezt.py build/transform_config_hw.py build/get-py-info.py build/win32/make_dist.py subversion/tests/cmdline/mod_authz_svn_tests.py subversion/tests/cmdline/history_tests.py subversion/tests/cmdline/dav_tests.py subversion/tests/cmdline/input_validation_tests.py subversion/tests/cmdline/log_tests.py subversion/tests/cmdline/merge_automatic_tests.py subversion/tests/cmdline/merge_reintegrate_tests.py subversion/tests/cmdline/lock_tests.py subversion/tests/cmdline/merge_tests.py subversion/tests/cmdline/copy_tests.py subversion/tests/cmdline/svnversion_tests.py subversion/tests/cmdline/svneditor.py subversion/tests/cmdline/basic_tests.py subversion/tests/cmdline/svnlook_tests.py subversion/tests/cmdline/prop_tests.py subversion/tests/cmdline/merge_authz_tests.py subversion/tests/cmdline/resolve_tests.py subversion/tests/cmdline/revert_tests.py subversion/tests/cmdline/svntest/tree.py subversion/tests/cmdline/svntest/wc.py subversion/tests/cmdline/svntest/testcase.py subversion/tests/cmdline/svntest/actions.py subversion/tests/cmdline/svntest/__init__.py subversion/tests/cmdline/svntest/mergetrees.py subversion/tests/cmdline/svntest/factory.py subversion/tests/cmdline/svntest/deeptrees.py subversion/tests/cmdline/svntest/sandbox.py subversion/tests/cmdline/svntest/verify.py subversion/tests/cmdline/svntest/objects.py subversion/tests/cmdline/svntest/main.py subversion/tests/cmdline/svntest/err.py subversion/tests/cmdline/svnauthz_tests.py subversion/tests/cmdline/schedule_tests.py subversion/tests/cmdline/entries_tests.py subversion/tests/cmdline/patch_tests.py subversion/tests/cmdline/export_tests.py subversion/tests/cmdline/iprop_tests.py subversion/tests/cmdline/commit_tests.py subversion/tests/cmdline/authz_tests.py subversion/tests/cmdline/legacy/utf8_tests.py subversion/tests/cmdline/move_tests.py subversion/tests/cmdline/changelist_tests.py subversion/tests/cmdline/mergeinfo_tests.py subversion/tests/cmdline/redirect_tests.py subversion/tests/cmdline/getopt_tests.py subversion/tests/cmdline/shelf_tests.py subversion/tests/cmdline/special_tests.py subversion/tests/cmdline/svnsync_authz_tests.py subversion/tests/cmdline/depth_tests.py subversion/tests/cmdline/trans_tests.py subversion/tests/cmdline/autoprop_tests.py subversion/tests/cmdline/import_tests.py subversion/tests/cmdline/merge_tree_conflict_tests.py subversion/tests/cmdline/stat_tests.py subversion/tests/cmdline/pegrev_parse_tests.py subversion/tests/cmdline/svnrdump_tests.py subversion/tests/cmdline/info_tests.py subversion/tests/cmdline/switch_tests.py subversion/tests/cmdline/externals_tests.py subversion/tests/cmdline/svnadmin_tests.py subversion/tests/cmdline/wc_tests.py subversion/tests/cmdline/cat_tests.py subversion/tests/cmdline/update_tests.py subversion/tests/cmdline/mod_dav_svn_tests.py subversion/tests/cmdline/upgrade_tests.py subversion/tests/cmdline/iprop_authz_tests.py subversion/tests/cmdline/blame_tests.py subversion/tests/cmdline/svnmover_tests.py subversion/tests/cmdline/svndumpfilter_tests.py subversion/tests/cmdline/svnmucc_tests.py subversion/tests/cmdline/svnfsfs_tests.py subversion/tests/cmdline/svnsync_tests.py subversion/tests/cmdline/tree_conflict_tests.py subversion/tests/cmdline/checkout_tests.py subversion/tests/cmdline/relocate_tests.py subversion/tests/cmdline/diff_tests.py subversion/bindings/swig/python/svn/wc.py subversion/bindings/swig/python/svn/client.py subversion/bindings/swig/python/svn/__init__.py subversion/bindings/swig/python/svn/core.py subversion/bindings/swig/python/svn/repos.py subversion/bindings/swig/python/svn/fs.py subversion/bindings/swig/python/svn/delta.py subversion/bindings/swig/python/svn/diff.py subversion/bindings/swig/python/svn/ra.py subversion/bindings/swig/python/tests/auth.py subversion/bindings/swig/python/tests/wc.py subversion/bindings/swig/python/tests/checksum.py subversion/bindings/swig/python/tests/setup_path.py subversion/bindings/swig/python/tests/client.py subversion/bindings/swig/python/tests/trac/__init__.py subversion/bindings/swig/python/tests/trac/test.py subversion/bindings/swig/python/tests/trac/versioncontrol/tests/__init__.py subversion/bindings/swig/python/tests/trac/versioncontrol/tests/svn_fs.py subversion/bindings/swig/python/tests/trac/versioncontrol/__init__.py subversion/bindings/swig/python/tests/trac/versioncontrol/main.py subversion/bindings/swig/python/tests/trac/versioncontrol/svn_fs.py subversion/bindings/swig/python/tests/core.py subversion/bindings/swig/python/tests/mergeinfo.py subversion/bindings/swig/python/tests/utils.py subversion/bindings/swig/python/tests/fs.py subversion/bindings/swig/python/tests/typemap.py subversion/bindings/swig/python/tests/delta.py subversion/bindings/swig/python/tests/run_all.py subversion/bindings/swig/python/tests/repository.py subversion/bindings/swig/python/tests/pool.py subversion/bindings/swig/python/tests/ra.py subversion/bindings/swig/python/__init__.py subversion/bindings/swig/include/proxy.py Python 3 Not Supported Yet ========================== tools/server-side/fsfs-reshard.py tools/server-side/svn-backup-dumps.py tools/server-side/svnpredumpfilter.py tools/server-side/svn_server_log_parse.py tools/server-side/test_svn_server_log_parse.py tools/hook-scripts/mailer/mailer.py Not Checked For Python 3 Yet ============================ tools/hook-scripts/log-police.py tools/hook-scripts/persist-ephemeral-txnprops.py tools/hook-scripts/mailer/tests/mailer-tweak.py tools/hook-scripts/validate-extensions.py tools/hook-scripts/control-chars.py tools/hook-scripts/CVE-2017-9800-pre-commit.py tools/hook-scripts/svnperms.py tools/hook-scripts/validate-files.py tools/hook-scripts/verify-po.py tools/hook-scripts/svn2feed.py tools/client-side/svn-viewspec.py tools/client-side/mergeinfo-sanitizer.py tools/client-side/server-version.py tools/client-side/change-svn-wc-format.py tools/client-side/svn-vendor.py tools/client-side/svnviewspec_test.py tools/dist/backport_tests_py.py tools/dist/backport_tests.py tools/dist/merge-approved-backports.py tools/dist/changes-to-html.py tools/dist/release.py tools/dist/security/_gnupg.py tools/dist/security/__init__.py tools/dist/security/mailinglist.py tools/dist/security/parser.py tools/dist/security/adviser.py tools/dist/security/mailer.py tools/dist/backport/__init__.py tools/dist/backport/status.py tools/dist/backport/merger.py tools/dist/advisory.py tools/dist/backport_tests_pl.py tools/dist/checksums.py tools/dist/detect-conflicting-backports.py tools/po/l10n-report.py tools/examples/getfile.py tools/examples/revplist.py tools/examples/walk-config-auth.py tools/examples/check-modified.py tools/examples/geturl.py tools/examples/putfile.py tools/examples/svnlook.py tools/examples/svnshell.py tools/examples/blame.py tools/examples/get-location-segments.py tools/examples/dumpprops.py tools/dev/graph-dav-servers.py tools/dev/datecheck.py tools/dev/gen-py-errors.py tools/dev/normalize-dump.py tools/dev/check-license.py tools/dev/contribulyze.py tools/dev/merge-graph.py tools/dev/histogram.py tools/dev/iz/find-fix.py tools/dev/iz/ff2csv.py tools/dev/scramble-tree.py tools/dev/gen_junit_report.py tools/dev/sbox-ospath.py tools/dev/trails.py tools/dev/wc-ng/count-progress.py tools/dev/wc-ng/graph-data.py tools/dev/wc-ng/bump-to-19.py tools/dev/wc-ng/populate-pristine.py tools/dev/mergegraph/save_as_sh.py tools/dev/mergegraph/__init__.py tools/dev/mergegraph/mergegraph.py tools/dev/lock-check.py tools/dev/wc-format.py tools/dev/random-commits.py tools/dev/analyze-svnlogs.py tools/dev/mklog.py tools/dev/find-control-statements.py tools/dev/gen-javahl-errors.py tools/dev/benchmarks/suite1/benchmark.py tools/dev/benchmarks/RepoPerf/copy_repo.py tools/dev/benchmarks/RepoPerf/win_repo_bench.py tools/dev/mlpatch.py tools/dev/which-error.py tools/dev/find-bad-style.py tools/dev/svn-merge-revs.py tools/dev/verify-history.py tools/dev/gdb-py/svndbg/__init__.py tools/dev/gdb-py/svndbg/printers.py tools/dev/log_revnum_change_asf.py tools/dev/po-merge.py tools/bdb/erase-all-text-data.py tools/bdb/svn-bdb-view.py tools/bdb/whatis-rep.py tools/bdb/svnfs.py tools/bdb/skel.py tools/server-side/svnpubsub/svnwcsub.py tools/server-side/svnpubsub/revprop-change-hook.py tools/server-side/svnpubsub/daemonize.py tools/server-side/svnpubsub/svnpubsub/server.py tools/server-side/svnpubsub/svnpubsub/util.py tools/server-side/svnpubsub/svnpubsub/client.py tools/server-side/svnpubsub/svnpubsub/__init__.py tools/server-side/svnpubsub/svntweet.py tools/server-side/svnpubsub/watcher.py tools/server-side/svnpubsub/commit-hook.py tools/server-side/svnpubsub/irkerbridge.py tools/server-side/svnpubsub/testserver.py win-tests.py contrib/hook-scripts/pre-lock-require-needs-lock.py contrib/hook-scripts/case-insensitive.py contrib/hook-scripts/remove-zombie-locks.py contrib/hook-scripts/commit-block-joke.py contrib/hook-scripts/pre-commit-check.py contrib/hook-scripts/hook_toolbox.py contrib/client-side/svn_apply_autoprops.py contrib/client-side/svn-hgmerge.py contrib/client-side/incremental-update.py contrib/client-side/svn_export_empty_files.py contrib/client-side/svn-merge-vendor.py contrib/client-side/svnmerge/svnmerge-migrate-history.py contrib/client-side/svnmerge/svnmerge_test.py contrib/client-side/svnmerge/svnmerge.py contrib/client-side/svnmerge/svnmerge-migrate-history-remotely.py contrib/server-side/authz_svn_group.py contrib/server-side/add-needs-lock.py contrib/server-side/fsfsfixer/fixer/fix-rev.py contrib/server-side/fsfsfixer/fixer/__init__.py contrib/server-side/fsfsfixer/fixer/find_good_id.py contrib/server-side/fsfsfixer/fixer/fixer_config.py contrib/server-side/svn-tweak-author.py contrib/server-side/fsfsverify.py notes/move-tracking/path_pairs_to_eid_map.py notes/directory-index/dirindex.py notes/directory-index/logimport.py .ycm_extra_conf.py gen-make.py subversion/tests/manual/tree-conflicts-add-vs-add.py subversion/bindings/ctypes-python/test/localrepos.py subversion/bindings/ctypes-python/test/wc.py subversion/bindings/ctypes-python/test/setup_path.py subversion/bindings/ctypes-python/test/remoterepos.py subversion/bindings/ctypes-python/test/svntypes.py subversion/bindings/ctypes-python/test/run_all.py subversion/bindings/ctypes-python/setup.py subversion/bindings/ctypes-python/examples/log.py subversion/bindings/ctypes-python/examples/trunkify.py subversion/bindings/ctypes-python/examples/mucc.py subversion/bindings/ctypes-python/examples/example.py subversion/bindings/ctypes-python/csvn/auth.py subversion/bindings/ctypes-python/csvn/wc.py subversion/bindings/ctypes-python/csvn/core/__init__.py subversion/bindings/ctypes-python/csvn/ext/__init__.py subversion/bindings/ctypes-python/csvn/ext/listmixin.py subversion/bindings/ctypes-python/csvn/ext/callback_receiver.py subversion/bindings/ctypes-python/csvn/__init__.py subversion/bindings/ctypes-python/csvn/types.py subversion/bindings/ctypes-python/csvn/repos.py subversion/bindings/ctypes-python/csvn/txn.py subversion/libsvn_subr/genctype.py Cheers, Nathan