[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Merging branches/swig-py3 to trunk

From: Yasuhito FUTATSUKI <futatuki_at_poem.co.jp>
Date: Thu, 28 Nov 2019 20:36:25 +0900

On 2019/11/28 10:54, Nathan Hartman wrote:
> 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.

Thank you very much.

There are some Python scripts (or a template, or a generator)
which don't have '.py' file extension.

[[[
$ find . -name .svn -prune -or ! -name '*.py' -type f -print0 | xargs -0 egrep -l '^#\!.*python' | sed -e 's/^\.\///'
tools/backup/hot-backup.py.in
tools/server-side/svnpubsub/svnpubsub.tac
tools/examples/SvnCLBrowse
contrib/hook-scripts/enforcer/enforcer
contrib/server-side/load_repo_with_mergesensitive_copy.sh
]]]

Those are categorized to "Not yet checked".

And there seems to be also some scripts calling Python
interpreter with -c option.

I roughly searched:
[[[
$ find . -name .svn -prune -or -type f -print0 | xargs -0 egrep -i '(^|[^-])python.* -c'
./subversion/tests/cmdline/davautocheck.sh: REPLY=`$PYTHON -u -c "$prog" "$@"`
./subversion/tests/cmdline/svnserveautocheck.sh: REPLY=`$PYTHON -u -c "$prog" "$@"`
./subversion/tests/cmdline/svnserveautocheck.sh: $PYTHON -c 'import random; print(random.randint(1024, 2**16-1))'
./build/ac-macros/swig.m4: $PYTHON -c 'import sys; sys.exit(0x3000000 > sys.hexversion)' && \
./tools/buildbot/slaves/win32-xp-VS2005/svncheck.bat:python win-tests.py %TEST_DIR%\%FS_TYPE% -f %FS_TYPE% -c -r
./tools/buildbot/slaves/win32-xp-VS2005/svncheck.bat:python win-tests.py %TEST_DIR%\%FS_TYPE% -f %FS_TYPE% -c -r -u svn://localhost
./tools/buildbot/slaves/win32-xp-VS2005/svncheck.bat:python win-tests.py %TEST_DIR%\%FS_TYPE% -f %FS_TYPE% -c -r --httpd-dir="%HTTPD_BIN_DIR%" --httpd-port 1234
./tools/hook-scripts/mailer/tests/mailer-t1.sh:for rev in `python -c "print(\" \".join(map(str, range(1,$youngest+1))))"`; do
./tools/dev/benchmarks/large_dirs/create_bigdir.sh: (jot - "$1" "$2" "1" 2>/dev/null || seq -s ' ' "$1" "$2" 2>/dev/null || python -c "for i in range($1,$2+1): print(i)")
./contrib/client-side/svnmerge/svnmerge-migrate-test.sh:SCRIPT_DIR=$(python -c "import os; print os.path.abspath(\"`dirname $0`\")")
./INSTALL: C:>python win-tests.py -c -r -v
./INSTALL: C:>python win-tests.py -c -r -v -u http://localhost
./Makefile.in:COMPILE_SWIG_PY = $(LIBTOOL) $(LTFLAGS) --mode=compile $(SWIG_PY_COMPILE) $(CPPFLAGS) $(LT_CFLAGS) -DSWIGPYTHON $(SWIG_PY_INCLUDES) $(INCLUDES) -o $@ -c
./Makefile.in: $(PYTHON) -c 'import compileall; \
./Makefile.in:READLINK_PY=$(PYTHON) -c 'import sys,os; print(os.path.realpath(sys.argv[1]))'
]]]

and got:

Python 3 Supported:
Makefile.in
build/ac-macros/swig.m4
subversion/tests/cmdline/davautocheck.sh
subversion/tests/cmdline/svnserveautocheck.sh

Python 3 not supported yet:
contrib/client-side/svnmerge/svnmerge-migrate-test.sh

Not Checked For Python 3 Yet:
tools/hook-scripts/mailer/tests/mailer-t1.sh
tools/dev/benchmarks/large_dirs/create_bigdir.sh

> 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.

I agree with your reason to prefer a static analysis method,
however I doubt that we can use automated tools that can detect
inappropriate bytes - str types handling, or valid usage of '/'
operator (,or some thing like that but I don't think of, right now).
If they can't, they can only detect which are incompatible with
Python 3 (and I guess not many scripts can be detected as
incompatible in this level, because it seems they were repeatedly
fixed toward Python 3 support).

> 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...

Here is updated list, with suggestion in mail
<1da0f265-6c6d-8044-1623-fedde5a57bbf_at_apache.org>.

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
gen-make.py
Makefile.in
build/ac-macros/swig.m4
subversion/tests/cmdline/davautocheck.sh
subversion/tests/cmdline/svnserveautocheck.sh

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
contrib/client-side/svnmerge/svnmerge-migrate-test.sh

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
subversion/tests/manual/tree-conflicts-add-vs-add.py
tools/backup/hot-backup.py.in
tools/server-side/svnpubsub/svnpubsub.tac
tools/examples/SvnCLBrowse
contrib/hook-scripts/enforcer/enforcer
contrib/server-side/load_repo_with_mergesensitive_copy.sh
tools/hook-scripts/mailer/tests/mailer-t1.sh
tools/dev/benchmarks/large_dirs/create_bigdir.sh

Unmaintained
============

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,

-- 
Yasuhito FUTATSUKI <futatuki_at_yf.bsdclub.org>/<futatuki_at_poem.co.jp>
Received on 2019-11-28 12:37:40 CET

This is an archived mail posted to the Subversion Dev mailing list.