mirror of
https://github.com/huggingface/transformers.git
synced 2025-07-03 21:00:08 +06:00
Build with non Python files (#23405)
* Add a test of the built release * Polish everything * Trigger CI
This commit is contained in:
parent
5b1ad0eb73
commit
9cf4a8b456
@ -1 +0,0 @@
|
|||||||
include LICENSE
|
|
7
Makefile
7
Makefile
@ -111,3 +111,10 @@ post-release:
|
|||||||
|
|
||||||
post-patch:
|
post-patch:
|
||||||
python utils/release.py --post_release --patch
|
python utils/release.py --post_release --patch
|
||||||
|
|
||||||
|
build-release:
|
||||||
|
rm -rf dist
|
||||||
|
rm -rf build
|
||||||
|
python setup.py bdist_wheel
|
||||||
|
python setup.py sdist
|
||||||
|
python utils/check_build.py
|
||||||
|
12
setup.py
12
setup.py
@ -38,14 +38,9 @@ To create the package for pypi.
|
|||||||
7. Build both the sources and the wheel. Do not change anything in setup.py between
|
7. Build both the sources and the wheel. Do not change anything in setup.py between
|
||||||
creating the wheel and the source distribution (obviously).
|
creating the wheel and the source distribution (obviously).
|
||||||
|
|
||||||
Clean up your build and dist folders (to avoid re-uploading oldies):
|
Run `make build-release`. This will build the release and do some sanity checks for you. If this ends with an error
|
||||||
rm -rf dist
|
message, you need to fix things before going further.
|
||||||
rm -rf build
|
|
||||||
|
|
||||||
For the wheel, run: "python setup.py bdist_wheel" in the top level directory.
|
|
||||||
(this will build a wheel for the python version you use to build it).
|
|
||||||
|
|
||||||
For the sources, run: "python setup.py sdist"
|
|
||||||
You should now have a /dist directory with both .whl and .tar.gz source versions.
|
You should now have a /dist directory with both .whl and .tar.gz source versions.
|
||||||
|
|
||||||
8. Check that everything looks correct by uploading the package to the pypi test server:
|
8. Check that everything looks correct by uploading the package to the pypi test server:
|
||||||
@ -61,6 +56,7 @@ To create the package for pypi.
|
|||||||
Check you can run the following commands:
|
Check you can run the following commands:
|
||||||
python -c "from transformers import pipeline; classifier = pipeline('text-classification'); print(classifier('What a nice release'))"
|
python -c "from transformers import pipeline; classifier = pipeline('text-classification'); print(classifier('What a nice release'))"
|
||||||
python -c "from transformers import *"
|
python -c "from transformers import *"
|
||||||
|
python utils/check_build.py --check_lib
|
||||||
|
|
||||||
If making a patch release, double check the bug you are patching is indeed resolved.
|
If making a patch release, double check the bug you are patching is indeed resolved.
|
||||||
|
|
||||||
@ -446,7 +442,7 @@ setup(
|
|||||||
package_dir={"": "src"},
|
package_dir={"": "src"},
|
||||||
packages=find_packages("src"),
|
packages=find_packages("src"),
|
||||||
include_package_data=True,
|
include_package_data=True,
|
||||||
package_data={"transformers": ["*.cu", "*.cpp", "*.cuh", "*.h", "*.pyx"]},
|
package_data={"": ["**/*.cu", "**/*.cpp", "**/*.cuh", "**/*.h", "**/*.pyx"]},
|
||||||
zip_safe=False,
|
zip_safe=False,
|
||||||
extras_require=extras,
|
extras_require=extras,
|
||||||
entry_points={"console_scripts": ["transformers-cli=transformers.commands.transformers_cli:main"]},
|
entry_points={"console_scripts": ["transformers-cli=transformers.commands.transformers_cli:main"]},
|
||||||
|
48
utils/check_build.py
Normal file
48
utils/check_build.py
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# coding=utf-8
|
||||||
|
# Copyright 2023 The HuggingFace Inc. team.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
import argparse
|
||||||
|
import importlib
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
|
# Test all the extensions added in the setup
|
||||||
|
FILES_TO_FIND = [
|
||||||
|
"kernels/rwkv/wkv_cuda.cu",
|
||||||
|
"kernels/rwkv/wkv_op.cpp",
|
||||||
|
"models/deformable_detr/custom_kernel/ms_deform_attn.h",
|
||||||
|
"models/deformable_detr/custom_kernel/cuda/ms_deform_im2col_cuda.cuh",
|
||||||
|
"models/graphormer/algos_graphormer.pyx",
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def test_custom_files_are_present(transformers_path):
|
||||||
|
# Test all the extensions added in the setup
|
||||||
|
for file in FILES_TO_FIND:
|
||||||
|
if not (transformers_path / file).exists():
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument("--check_lib", action="store_true", help="Whether to check the build or the actual package.")
|
||||||
|
args = parser.parse_args()
|
||||||
|
if args.check_lib:
|
||||||
|
transformers_module = importlib.import_module("transformers")
|
||||||
|
transformers_path = Path(transformers_module.__file__).parent
|
||||||
|
else:
|
||||||
|
transformers_path = Path.cwd() / "build/lib/transformers"
|
||||||
|
if not test_custom_files_are_present(transformers_path):
|
||||||
|
raise ValueError("The built release does not contain the custom files. Fix this before going further!")
|
Loading…
Reference in New Issue
Block a user