This is an automated email from the ASF dual-hosted git repository.
leandron pushed a change to branch ci-docker-staging
in repository https://gitbox.apache.org/repos/asf/tvm.git
discard 112c37eda3 Update Jenkins ci_arm, ci_cpu, ci_gpu, ci_qemu to use
20220725-085822-8ae520b1b
discard 2bcf79b059 This is PR #12130.
discard bd4c900925 [TFLite][CI] Update TensorFlow dependency to 2.9.1
add 421f9d756a [ci] Skip broken android_rpc failures (#12192)
add 5711c35ae0 [TIR Pass] decouple flatten buffer to lower opaque block
pass and flatten buffer. (#12172)
add 97269fa479 Update to 0.10.0 (#12190)
add 584b0f31d8 [TVMScript] ExprDoc (#12048)
add 03aed787df [microTVM] Fix timeout of -1 breaking Arduino transport
(#12189)
add ca30e5e2e4 TIR Schedule primitive - decompose_padding (#12174)
add 88bbb40540 fix pooling documents (#12201)
add c94ebf9206 [runtime][hexagon] improved file-copy logic (#12194)
add 69dc721759 [hexagon][testing] filesystem-friendly test IDs (#12195)
add 98d5feb297 [docs] Update tlcpack-sphinx-addon (#12188)
add 96b151751a [OpenCL] Fix profiling hang for OpenCL device (#12173)
add 85aa597245 [JIT] Force finalization of JITed code, expose sf/hf
runtime functions (#12187)
add ae3e2a8537 Use std::move to avoid warnings on clang-13 (#12196)
add 465b579e3b [ci][docker] Use RFC image tags only (#11938)
add 7b6cb60fcb [Target] Improve string interpretation in Target creation
(#12152)
add 10b81c274f [ci][lint] Consolidate image lookup logic (#12206)
add fcec5f4a76 [TVMScript] StmtDoc Definitions (#12111)
add c35c9fd3a5 [Relay][PyTorch] Add aten::lerp (#12167)
add 4bcaecf979 [Adreno] Fix winograd tests and accuracy (#12202)
add 724764ae40 [TFLite] Fix _test_tflite2_quantized_depthwise_convolution
is unused (#12145)
add 1131c92233 [TVMScript] StmtDoc Printing (#12112)
add ee319d9d23 [MetaSchedule] Integration test for CUDA AutoTensorization
(#12142)
add 06748583eb [ci] Fix docker post-merge builds on main (#12210)
add 3c737fbd5b [TIR] Asynchronous stage in software pipeline (#12171)
add ebbce649f0 [microTVM][tutorial] AOT host-driven tutorial with TFLite
model (#12182)
add cfefa90a96 [Adreno] Update conv2d_nhwc test to use winograd (#12214)
add 195e60b97a [FIX,ROOFLINE] Handle mismatched compiled and TIR hash
(#12219)
add 9a4d80c5fe Removing header arm_math.h which has disappeared after
CMSIS upgrade (#12217)
add 578ef035b2 Fix comments. (#12220)
add aeda760e5e [TIR] Disallow unused rhs vars in GetAutoTensorizeMapping
(#12225)
add d183a4f306 [microTVM][Zephyr][projectAPI] Minimize project build
commands (#12209)
add d19570fb23 [UX] highlight tvm script (#12197)
add c6d733a7eb [TOPI][HEXAGON] Implement depthwise conv2d slice op.
(#12218)
add e7e29b450b [ci] Fix build android rpc failure (#12216)
add 2b3e1eb3f5 [ci] Reinstall junintparser after zephyr deps (#12226)
add db4380cf41 [ci][docker] create Dockerfile.ci_riscv (#12230)
add dff5c975a0 Deploy the Pretrained Model on Jetson Nano (#11037)
add fb87c21bf8 remove duplicated cast op when lowering qnn.requantize op
in float mode (#12234)
add 12dcfd70ef [AutoSchedule] Fix misusage of an already-moved object
(#12239)
add c0a3da84bc [Relay][VM] Fix an ICHECK which never fails in ctor of
VMFunction (#12241)
add e756980b41 [UX][TVMSciprt] Use HTML formatter in notebook environments
(#12240)
add 961a7c70d7 [ROOFLINE] Add CUDA support to roofline analysis (#12205)
add 9f16b607c8 [TVMScript] Doc Definition (#12244)
add 1d39f2c974 [FQ2I] fix unary op output affine type in fq2i (#12224)
add 42dd6afa97 [MetaSchedule][Test] Add unittests for GMM (#12243)
add 66a1b9f392 fix bug: KeyError, can't find some parameter key (#12211)
add a231a1d724 [Fix] Fix some errors in unittests (#12245)
add ea0e29f425 [MetaSchedule][Test] Add unittests for GRP (#12246)
add 1d1fc08367 [Fix] Minor modification in unittests (#12247)
add a842449d23 [MetaSchedule][Test] Add unittests for T2D (#12249)
add c07d77f99c [BYOC-DNNL] add post_sum pattern (#12151)
add d332eb3749 [MetaSchedule][Test] Add unittests for NRM (#12250)
add 834e998618 [TVMScript] Python Expression Precedence (#12148)
add 12502cc835 [MetaSchedule][Test] Add unittests for SFM (#12251)
add a49273e050 Enable conv family fused with mish (#12228)
add a5d7dfa583 [FIX,TIR] Handle LetStmt in EstimateTIRFLops (#12138)
add 4ec8683fb6 [MetaSchedule][Test] Add unittests for CBR (#12252)
add d2d3010dc6 [CPP-RPC] Fix GetPath to use relative file path (#12242)
add 397ff562f6 [CI] Add setup-pytest-env.sh call to task_demo_microtvm.sh
(#12260)
add e2d139af9d [microTVM][ARM] Enable tests that were skipped
unintentionally (#12223)
add a129b921ef [MetaSchedule][Test] Add unittests for TBG (#12262)
add c2ec95616e [Fq2i][ fix output type on fq2i binary ops with constant
inputs (#12236)
add b723d22b36 [docs] Update installation instructions (#12269)
add bca0385862 [UnitTest][TIR] Testing utility for before/after transform
tests (#12264)
add 7b72c4e0a5 Hide registration errors in `test_myfloat` (#12268)
add bc91978362 [Arith] Handle bitwise_and with power of 2 in modular set
(#12272)
add 0261b8ed8b [MetaSchedule][Minor] Fix Median Number (#12273)
add 4a6d655561 [Pylint] Making hexagon tests pylint compliant Part 2 of N
(#12176)
add d3d1038e15 [ci][docker] Update GPU image (#12265)
add ab1d95b984 [TensorFlow] Disable failing tests on AArch64 (#12257)
add d10a7d186e [ONNX] Disable failing tests on AArch64 (#12256)
add 19644bce3b [Pytorch] Disable failing tests on AArch64 (#12255)
add a9df801543 [ETHOSN] Upgrade NPU driver stack to v22.05 (#11759)
add 759a648cd5 [TVMC] Only load extra targets when there are workspace
pools (#12253)
add b05dca1f19 [Adreno] Add markup pass of relay tensors for static
texture planning (#11878)
add 2bfd52f885 [Docker] Update onnxoptimizer to 0.2.7 (#12278)
add a5ff7c05de [CI] Shard Qemu python tests (#12258)
add 1da66d7df2 [MetaSchedule] Check auto tensorization applicability in
MultiLevelTilingWithIntrin (#12263)
add b8893b557a [Relay][Op] Trilu operator implementation (#12124)
add f0650986ad Revert "[CI] Fix build android rpc failure in CI" (#12277)
add 1ca07438e0 [release] Add script to gather PRs for a release (#11987)
add aa0d2bb098 [microTVM]Fix dense_dsp schedule in autotuning (#12271)
add fefc27f261 [ci] Specify permissions for tvm bot (#11937)
add 85624ff667 [ci][docker] Fix deploy to tlcpackstaging on Docker Hub
(#12282)
new ff30307397 Update TensorFlow to release 2.9
new 1beb0c19c5 Add #12130 PR for testing.
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (112c37eda3)
\
N -- N -- N refs/heads/ci-docker-staging (1beb0c19c5)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.github/workflows/main.yml | 18 +-
.github/workflows/tvmbot.yml | 8 +
Jenkinsfile | 339 ++++-
NOTICE | 2 +-
apps/cpp_rpc/rpc_env.cc | 4 +-
apps/microtvm/arduino/template_project/boards.json | 5 +-
.../template_project/CMakeLists.txt.template | 2 +-
.../zephyr/template_project/microtvm_api_server.py | 94 +-
ci/jenkins/Deploy.groovy.j2 | 8 +-
ci/jenkins/DockerBuild.groovy.j2 | 2 +-
ci/jenkins/Jenkinsfile.j2 | 14 +-
ci/jenkins/Prepare.groovy.j2 | 1 +
ci/jenkins/Test.groovy.j2 | 44 +-
conda/recipe/meta.yaml | 2 +-
docker/Dockerfile.ci_cpu | 3 +
docker/Dockerfile.ci_qemu | 3 -
docker/{Dockerfile.ci_qemu => Dockerfile.ci_riscv} | 38 +-
docker/build.sh | 2 +-
docker/dev_common.sh | 8 +-
.../install/ubuntu_install_ethosn_driver_stack.sh | 2 +-
docker/install/ubuntu_install_onnx.sh | 2 +-
docker/install/ubuntu_install_python_package.sh | 3 +-
.../install/ubuntu_install_tensorflow_aarch64.sh | 14 +-
docker/install/ubuntu_install_vela.sh | 2 +-
docker/install/ubuntu_install_zephyr.sh | 4 +
docs/conf.py | 3 +-
docs/contribute/release_process.rst | 44 +-
docs/install/docker.rst | 21 +-
docs/install/index.rst | 23 +-
docs/install/tlcpack.rst | 24 -
...oy_model_on_rasp.py => deploy_model_on_nano.py} | 54 +-
gallery/how_to/work_with_microtvm/micro_aot.py | 180 +++
gallery/how_to/work_with_microtvm/micro_tvmc.sh | 14 +-
include/tvm/relay/attrs/transform.h | 9 +
include/tvm/relay/transform.h | 5 +
include/tvm/runtime/builtin_fp16.h | 2 +
include/tvm/runtime/c_runtime_api.h | 2 +-
include/tvm/runtime/vm/vm.h | 2 +-
include/tvm/script/printer/doc.h | 988 +++++++++++++
include/tvm/tir/schedule/schedule.h | 9 +
include/tvm/tir/stmt.h | 27 +
include/tvm/tir/transform.h | 11 +-
python/tvm/_ffi/libinfo.py | 2 +-
python/tvm/driver/tvmc/workspace_pools.py | 20 +-
python/tvm/ir/module.py | 15 +
python/tvm/meta_schedule/default_config.py | 52 +
.../tvm/meta_schedule/testing/space_generation.py | 16 +-
python/tvm/meta_schedule/testing/te_workload.py | 2 +-
python/tvm/meta_schedule/testing/tlcbench.py | 3 +-
python/tvm/meta_schedule/tune.py | 2 +-
python/tvm/micro/testing/evaluation.py | 4 +-
python/tvm/relay/frontend/onnx.py | 15 +
python/tvm/relay/frontend/paddlepaddle.py | 2 +-
python/tvm/relay/frontend/pytorch.py | 44 +-
python/tvm/relay/op/_transform.py | 4 +
python/tvm/relay/op/contrib/dnnl.py | 117 +-
python/tvm/relay/op/contrib/ethosn.py | 7 +
python/tvm/relay/op/op_attrs.py | 5 +
python/tvm/relay/op/strategy/arm_cpu.py | 10 +-
python/tvm/relay/op/strategy/generic.py | 28 +
python/tvm/relay/op/transform.py | 43 +
.../transform/fake_quantization_to_integer.py | 4 +-
python/tvm/script/highlight.py | 146 ++
python/tvm/script/printer/_ffi_api.py | 2 +-
python/tvm/script/printer/doc.py | 444 +++++-
python/tvm/script/printer/doc_core.py | 1140 +++++++++++++++
python/tvm/script/printer/doc_printer.py | 5 +-
python/tvm/script/tir/intrin.py | 5 +
python/tvm/script/tir/scope_handler.py | 10 +-
python/tvm/testing/utils.py | 219 ++-
python/tvm/tir/function.py | 13 +
python/tvm/tir/schedule/schedule.py | 78 +
python/tvm/tir/transform/transform.py | 16 +-
python/tvm/topi/adreno/conv2d_nchw.py | 19 +-
python/tvm/topi/adreno/conv2d_nhwc.py | 16 +-
python/tvm/topi/adreno/conv2d_winograd_common.py | 16 +-
python/tvm/topi/arm_cpu/dense.py | 12 +-
.../arm_cpu/mprofile/dsp/micro_kernel/common.py | 1 -
python/tvm/topi/hexagon/slice_ops/__init__.py | 1 +
python/tvm/topi/hexagon/slice_ops/dwconv2d.py | 162 +++
python/tvm/topi/nn/pooling.py | 9 +
python/tvm/topi/transform.py | 58 +
python/tvm/utils/__init__.py | 2 +-
.../utils/{roofline.py => roofline/__init__.py} | 270 +---
python/tvm/utils/roofline/cuda.py | 236 +++
python/tvm/utils/roofline/registry.py | 83 ++
python/tvm/utils/roofline/x86.py | 254 ++++
src/arith/modular_set.cc | 13 +
src/auto_scheduler/search_policy/sketch_policy.cc | 2 +-
src/driver/driver_api.cc | 1 +
.../postproc/rewrite_parallel_vectorize_unroll.cc | 13 +-
src/meta_schedule/postproc/verify_gpu_code.cc | 1 +
src/meta_schedule/schedule_rule/auto_bind.cc | 3 +
.../multi_level_tiling_with_intrin.cc | 28 +-
.../space_generator/post_order_apply.cc | 2 +-
src/meta_schedule/utils.h | 2 +-
src/relay/backend/build_module.cc | 1 +
src/relay/backend/contrib/ethosn/codegen.cc | 2 -
src/relay/backend/contrib/ethosn/codegen_ethosn.h | 2 -
.../backend/contrib/ethosn/ethosn_api_version.h | 3 +
src/relay/backend/vm/manifest_lifetimes.cc | 2 +-
src/relay/op/tensor/transform.cc | 50 +
src/relay/qnn/op/requantize.cc | 5 +-
src/relay/quantize/calibrate.cc | 2 +-
src/relay/transforms/annotate_texture_storage.cc | 523 +++++++
src/relay/transforms/device_planner.cc | 2 +-
src/runtime/builtin_fp16.cc | 3 +
src/runtime/contrib/dnnl/dnnl_json_runtime.cc | 18 +-
src/runtime/contrib/ethosn/ethosn_device.cc | 11 +-
src/runtime/file_utils.cc | 22 +-
src/runtime/file_utils.h | 8 +
.../graph_executor/debug/graph_executor_debug.cc | 2 +-
src/runtime/hexagon/hexagon_module.cc | 5 +-
src/runtime/opencl/opencl_common.h | 33 +-
src/runtime/opencl/opencl_device_api.cc | 2 +
src/script/printer/base_doc_printer.cc | 42 +
src/script/printer/base_doc_printer.h | 105 ++
src/script/printer/doc.cc | 317 ++++
src/script/printer/python_doc_printer.cc | 567 +++++++-
src/target/llvm/llvm_module.cc | 6 +
src/target/source/codegen_cuda.cc | 20 +
src/target/target.cc | 258 +++-
src/te/operation/create_primfunc.cc | 2 +-
src/tir/analysis/estimate_flops.cc | 6 +
src/tir/ir/specialize.cc | 1 +
src/tir/schedule/analysis.h | 10 +
src/tir/schedule/analysis/analysis.cc | 35 +-
src/tir/schedule/concrete_schedule.cc | 9 +
src/tir/schedule/concrete_schedule.h | 2 +
src/tir/schedule/error.h | 32 +-
src/tir/schedule/ir_comparator.cc | 11 +-
src/tir/schedule/primitive.h | 11 +
src/tir/schedule/primitive/blockize_tensorize.cc | 2 +-
src/tir/schedule/primitive/cache_read_write.cc | 6 +-
src/tir/schedule/primitive/decompose_padding.cc | 574 ++++++++
src/tir/schedule/primitive/reduction.cc | 27 +-
src/tir/schedule/schedule.cc | 5 +
src/tir/schedule/traced_schedule.cc | 12 +
src/tir/schedule/traced_schedule.h | 2 +
src/tir/transforms/flatten_buffer.cc | 139 +-
src/tir/transforms/inject_software_pipeline.cc | 448 +++++-
src/tir/transforms/ir_utils.cc | 7 +
src/tir/transforms/ir_utils.h | 5 +
.../{flatten_buffer.cc => lower_opaque_block.cc} | 139 +-
src/tir/transforms/remove_no_op.cc | 16 +
.../remove_weight_layout_rewrite_block.cc | 2 +-
src/tir/transforms/tensorcore_infer_fragment.cc | 15 +-
src/tir/transforms/thread_storage_sync.cc | 45 +
src/tir/usmp/transform/assign_pool_info.cc | 4 +-
tests/cpp-runtime/opencl/opencl_timer_test.cc | 61 +
tests/cpp/target_test.cc | 86 ++
tests/lint/pylint.sh | 8 +
tests/micro/arduino/test_arduino_workflow.py | 2 +-
tests/micro/common/test_tvmc.py | 44 +-
tests/python/ci/test_ci.py | 20 +-
tests/python/contrib/test_dnnl.py | 57 +-
tests/python/contrib/test_ethosn/infrastructure.py | 30 +-
tests/python/contrib/test_ethosn/test_conv2d.py | 7 +-
.../contrib/test_ethosn/test_fullyconnected.py | 7 +-
tests/python/contrib/test_ethosn/test_networks.py | 74 +-
tests/python/contrib/test_ethosn/test_split.py | 8 +
.../python/contrib/test_ethosn/test_topologies.py | 34 +-
tests/python/contrib/test_hexagon/pytest_util.py | 4 +-
tests/python/contrib/test_hexagon/test_autotvm.py | 38 +-
.../contrib/test_hexagon/test_cache_read_write.py | 100 +-
tests/python/contrib/test_hexagon/test_launcher.py | 161 +-
.../contrib/test_hexagon/test_maxpool2d_blocked.py | 86 +-
tests/python/contrib/test_hexagon/test_models.py | 15 +-
.../contrib/test_hexagon/test_run_unit_tests.py | 11 +-
.../contrib/test_hexagon/test_thread_pool.py | 13 +-
tests/python/contrib/test_hexagon/test_usmp.py | 22 +-
...test_conv2d_slice.py => test_dwconv2d_slice.py} | 143 +-
tests/python/driver/tvmc/test_workspace_pools.py | 16 +
tests/python/frontend/onnx/test_forward.py | 20 +-
tests/python/frontend/pytorch/test_forward.py | 30 +
tests/python/frontend/tensorflow/test_forward.py | 6 +-
tests/python/frontend/tflite/test_forward.py | 74 +-
.../test_meta_schedule_auto_tensorize.py | 101 +-
tests/python/relay/test_conv2d_nchw_texture.py | 629 +++++++-
tests/python/relay/test_conv2d_nhwc_texture.py | 18 +-
.../relay/test_depthwise_conv2d_nchw_texture.py | 4 +-
.../relay/test_depthwise_conv2d_nhwc_texture.py | 2 +-
tests/python/relay/test_op_level3.py | 29 +
.../test_pass_fake_quantization_to_integer.py | 52 +-
tests/python/relay/test_pass_partition_graph.py | 6 +-
tests/python/relay/utils/adreno_utils.py | 38 +-
tests/python/topi/python/test_topi_transform.py | 39 +
.../unittest/test_aot_legalize_packed_call.py | 12 +-
tests/python/unittest/test_arith_domain_touched.py | 4 +-
tests/python/unittest/test_arith_modular_set.py | 32 +-
tests/python/unittest/test_custom_datatypes.py | 7 +-
...ta_schedule_schedule_rule_multi_level_tiling.py | 22 +-
.../unittest/test_meta_schedule_space_cpu.py | 1530 ++++++++++++++++++++
.../unittest/test_meta_schedule_space_cuda.py | 736 ++++++++++
tests/python/unittest/test_roofline.py | 121 ++
tests/python/unittest/test_runtime_profiling.py | 98 --
.../test_tir_analysis_estimate_tir_flops.py | 16 +-
tests/python/unittest/test_tir_buffer.py | 1 +
tests/python/unittest/test_tir_intrin.py | 8 +-
.../python/unittest/test_tir_schedule_analysis.py | 24 +
.../test_tir_schedule_decompose_padding.py | 313 ++++
.../unittest/test_tir_transform_flatten_buffer.py | 261 +---
.../test_tir_transform_hoist_expression.py | 4 +-
.../test_tir_transform_inject_ptx_async_copy.py | 2 +
.../test_tir_transform_inject_software_pipeline.py | 469 +++++-
.../unittest/test_tir_transform_loop_partition.py | 1 +
...py => test_tir_transform_lower_opaque_block.py} | 131 +-
.../python/unittest/test_tir_transform_simplify.py | 38 +-
.../unittest/test_tir_transform_storage_flatten.py | 2 +-
.../unittest/test_tvm_testing_before_after.py | 83 ++
.../python/unittest/test_tvmscript_printer_doc.py | 488 ++++++-
.../unittest/test_tvmscript_printer_highlight.py | 47 +
.../test_tvmscript_printer_python_doc_printer.py | 1296 ++++++++++++++++-
tests/scripts/git_change_docker.sh | 3 +-
tests/scripts/git_utils.py | 9 +-
tests/scripts/github_tvmbot.py | 54 +-
tests/scripts/open_docker_update_pr.py | 6 +
tests/scripts/release/.gitignore | 5 +
tests/scripts/release/README.md | 43 +
tests/scripts/release/gather_prs.py | 216 +++
tests/scripts/release/list_rfcs.py | 75 +
tests/scripts/release/make_notes.py | 133 ++
tests/scripts/task_demo_microtvm.sh | 2 +
tests/scripts/task_python_microtvm.sh | 2 +
version.py | 2 +-
web/package.json | 2 +-
226 files changed, 15681 insertions(+), 2009 deletions(-)
copy docker/{Dockerfile.ci_qemu => Dockerfile.ci_riscv} (73%)
delete mode 100644 docs/install/tlcpack.rst
copy gallery/how_to/deploy_models/{deploy_model_on_rasp.py =>
deploy_model_on_nano.py} (84%)
create mode 100644 gallery/how_to/work_with_microtvm/micro_aot.py
create mode 100644 python/tvm/script/highlight.py
create mode 100644 python/tvm/script/printer/doc_core.py
create mode 100644 python/tvm/topi/hexagon/slice_ops/dwconv2d.py
rename python/tvm/utils/{roofline.py => roofline/__init__.py} (50%)
create mode 100644 python/tvm/utils/roofline/cuda.py
create mode 100644 python/tvm/utils/roofline/registry.py
create mode 100644 python/tvm/utils/roofline/x86.py
create mode 100644 src/relay/transforms/annotate_texture_storage.cc
create mode 100644 src/tir/schedule/primitive/decompose_padding.cc
copy src/tir/transforms/{flatten_buffer.cc => lower_opaque_block.cc} (56%)
create mode 100644 tests/cpp-runtime/opencl/opencl_timer_test.cc
copy tests/python/contrib/test_hexagon/topi/{test_conv2d_slice.py =>
test_dwconv2d_slice.py} (72%)
mode change 100755 => 100644
mode change 100644 => 100755 tests/python/frontend/pytorch/test_forward.py
mode change 100644 => 100755 tests/python/frontend/tensorflow/test_forward.py
create mode 100644 tests/python/unittest/test_roofline.py
create mode 100644 tests/python/unittest/test_tir_schedule_decompose_padding.py
copy tests/python/unittest/{test_tir_transform_flatten_buffer.py =>
test_tir_transform_lower_opaque_block.py} (67%)
create mode 100644 tests/python/unittest/test_tvm_testing_before_after.py
create mode 100644 tests/python/unittest/test_tvmscript_printer_highlight.py
create mode 100644 tests/scripts/release/.gitignore
create mode 100644 tests/scripts/release/README.md
create mode 100644 tests/scripts/release/gather_prs.py
create mode 100644 tests/scripts/release/list_rfcs.py
create mode 100644 tests/scripts/release/make_notes.py