diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 85fee704c2..105c620942 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -105,11 +105,11 @@ When reporting issues, refer to this format: * If it is a new feature that needs lots of design details, a design proposal should also be submitted. * After reaching consensus in the issue discussions and design proposal reviews, complete the development on the forked repo and submit a PR. * None of PRs is not permitted until it receives **2+ LGTM** from approvers. Please NOTICE that approver is NOT allowed to add *LGTM* on his own PR. -* After PR is sufficiently discussed, it will get merged, abondoned or rejected depending on the outcome of the discussion. +* After PR is sufficiently discussed, it will get merged, abandoned or rejected depending on the outcome of the discussion. **PRs advisory:** - Any irrelevant changes should be avoided. - Make sure your commit history being ordered. - Always keep your branch up with the master branch. -- For bug-fix PRs, make sure all related issues being linked. +- For bug-fix PRs, make sure all related issues being linked. diff --git a/README.md b/README.md index 925c22591d..be8ca5189a 100644 --- a/README.md +++ b/README.md @@ -129,7 +129,7 @@ Check out how MindSpore Open Governance [works](https://gitee.com/mindspore/comm - [MindSpore Slack](https://join.slack.com/t/mindspore/shared_invite/enQtOTcwMTIxMDI3NjM0LTNkMWM2MzI5NjIyZWU5ZWQ5M2EwMTQ5MWNiYzMxOGM4OWFhZjI4M2E5OGI2YTg3ODU1ODE2Njg1MThiNWI3YmQ) - Communication platform for developers. - IRC channel at `#mindspore` (only for meeting minutes logging purpose) - Video Conferencing: meet.jit.si -- Mailing-list: https://mailweb.mindspore.cn/postorius/lists +- Mailing-list: https://mailweb.mindspore.cn/postorius/lists ## Contributing diff --git a/RELEASE.md b/RELEASE.md index 8920095bb5..ce9064e4b1 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -70,4 +70,4 @@ * [MindSpore Official Website] (https://www.mindspore.cn/) * [MindInsight Visualization Debugging and Optimization] (https://gitee.com/mindspore/mindinsight) * [MindArmour Model Security Hardening Package] (https://gitee.com/mindspore/mindarmour) -* [GraphEngine Computational Graph Engine] (https://gitee.com/mindspore/graphengine) \ No newline at end of file +* [GraphEngine Computational Graph Engine] (https://gitee.com/mindspore/graphengine) diff --git a/package.sh b/package.sh index 67f4761f37..0c75a1bbfd 100755 --- a/package.sh +++ b/package.sh @@ -110,7 +110,7 @@ else export MS_PACKAGE_NAME="mindspore" fi -${PYTHON} "${BASEPATH}/setup_package.py" bdist_wheel +${PYTHON} "${BASEPATH}/setup.py" bdist_wheel chmod -R 700 ${PACKAGE_PATH}/mindspore/ chmod -R 700 ${PACKAGE_PATH}/${MS_PACKAGE_NAME//-/_}.egg-info/ diff --git a/setup_package.py b/setup.py similarity index 53% rename from setup_package.py rename to setup.py index 87b5718de2..e009a9b312 100644 --- a/setup_package.py +++ b/setup.py @@ -14,17 +14,15 @@ # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ -"""setup_package.""" +"""setup package.""" import os import stat + from setuptools import setup, find_packages from setuptools.command.egg_info import egg_info from setuptools.command.build_py import build_py version = '0.1.0' -author = 'The MindSpore Authors' -author_email = 'contact@mindspore.cn' -home_page = 'https://www.mindspore.cn' backend_policy = os.getenv('BACKEND_POLICY') commit_id = os.getenv('COMMIT_ID').replace("\n", "") @@ -33,56 +31,70 @@ package_name = os.getenv('MS_PACKAGE_NAME').replace("\n", "") pwd = os.path.dirname(os.path.realpath(__file__)) pkg_dir = os.path.join(pwd, 'build/package') -def write_version(file): + +def _read_file(filename): + with open(os.path.join(pwd, filename)) as f: + return f.read() + + +readme = _read_file('README.md') +release = _read_file('RELEASE.md') + + +def _write_version(file): file.write("__version__ = '{}'\n".format(version)) -def write_config(file): + +def _write_config(file): file.write("__backend__ = '{}'\n".format(backend_policy)) -def write_commit_file(file): + +def _write_commit_file(file): file.write("__commit_id__ = '{}'\n".format(commit_id)) -def build_depends(): + +def build_dependencies(): """generate python file""" - version_file = os.path.join(pwd, 'build/package/mindspore', 'version.py') + version_file = os.path.join(pkg_dir, 'mindspore', 'version.py') with open(version_file, 'w') as f: - write_version(f) + _write_version(f) - version_file = os.path.join(pwd, 'mindspore/', 'version.py') + version_file = os.path.join(pwd, 'mindspore', 'version.py') with open(version_file, 'w') as f: - write_version(f) + _write_version(f) - config_file = os.path.join(pwd, 'build/package/mindspore', 'default_config.py') + config_file = os.path.join(pkg_dir, 'mindspore', 'default_config.py') with open(config_file, 'w') as f: - write_config(f) + _write_config(f) - config_file = os.path.join(pwd, 'mindspore/', 'default_config.py') + config_file = os.path.join(pwd, 'mindspore', 'default_config.py') with open(config_file, 'w') as f: - write_config(f) + _write_config(f) - commit_file = os.path.join(pwd, 'build/package/mindspore', '.commit_id') + commit_file = os.path.join(pkg_dir, 'mindspore', '.commit_id') with open(commit_file, 'w') as f: - write_commit_file(f) + _write_commit_file(f) - commit_file = os.path.join(pwd, 'mindspore/', '.commit_id') + commit_file = os.path.join(pwd, 'mindspore', '.commit_id') with open(commit_file, 'w') as f: - write_commit_file(f) + _write_commit_file(f) -descriptions = 'An AI computing framework that supports development for AI applications in all scenarios.' -requires = [ - 'numpy >= 1.17.0', - 'protobuf >= 3.8.0', - 'asttokens >= 1.1.13', - 'pillow >= 6.2.0', - 'scipy == 1.3.3', - 'easydict >= 1.9', - 'sympy >= 1.4', - 'cffi >= 1.13.2', - 'decorator >= 4.4.0' - ], +build_dependencies() -package_datas = { +required_package = [ + 'numpy >= 1.17.0', + 'protobuf >= 3.8.0', + 'asttokens >= 1.1.13', + 'pillow >= 6.2.0', + 'scipy == 1.3.3', + 'easydict >= 1.9', + 'sympy >= 1.4', + 'cffi >= 1.13.2', + 'decorator >= 4.4.0' +] + +package_data = { '': [ '*.so*', 'lib/*.so*', @@ -91,7 +103,6 @@ package_datas = { ] } -build_depends() def update_permissions(path): """ @@ -103,20 +114,25 @@ def update_permissions(path): for dirpath, dirnames, filenames in os.walk(path): for dirname in dirnames: dir_fullpath = os.path.join(dirpath, dirname) - os.chmod(dir_fullpath, stat.S_IREAD | stat.S_IWRITE | stat.S_IEXEC | stat.S_IRGRP | stat.S_IXGRP) + os.chmod(dir_fullpath, stat.S_IREAD | stat.S_IWRITE | + stat.S_IEXEC | stat.S_IRGRP | stat.S_IXGRP) for filename in filenames: file_fullpath = os.path.join(dirpath, filename) os.chmod(file_fullpath, stat.S_IREAD) + class EggInfo(egg_info): """Egg info.""" + def run(self): super().run() egg_info_dir = os.path.join(pkg_dir, 'mindspore.egg-info') update_permissions(egg_info_dir) + class BuildPy(build_py): """BuildPy.""" + def run(self): super().run() mindspore_dir = os.path.join(pkg_dir, 'build', 'lib', 'mindspore') @@ -124,21 +140,46 @@ class BuildPy(build_py): mindspore_dir = os.path.join(pkg_dir, 'build', 'lib', 'akg') update_permissions(mindspore_dir) + setup( - python_requires='>=3.7', name=package_name, version=version, - author=author, - author_email=author_email, - url=home_page, + author='The MindSpore Authors', + author_email='contact@mindspore.cn', + url='https://www.mindspore.cn', + download_url='https://gitee.com/mindspore/mindspore/tags', + project_urls={ + 'Sources': 'https://gitee.com/mindspore/mindspore', + 'Issue Tracker': 'https://gitee.com/mindspore/mindspore/issues', + }, + description='MindSpore is a new open source deep learning training/inference ' + 'framework that could be used for mobile, edge and cloud scenarios.', + long_description="\n\n".join([readme, release]), packages=find_packages(), - package_data=package_datas, + package_data=package_data, include_package_data=True, cmdclass={ 'egg_info': EggInfo, 'build_py': BuildPy, }, - install_requires=requires, - description=descriptions, + python_requires='>=3.7', + install_requires=required_package, + classifiers=[ + 'Development Status :: 4 - Beta', + 'Environment :: Console', + 'Intended Audience :: Science/Research', + 'Intended Audience :: Developers', + 'License :: OSI Approved :: Apache Software License', + 'Programming Language :: Python :: 3 :: Only', + 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', + 'Programming Language :: C++', + 'Topic :: Scientific/Engineering', + 'Topic :: Scientific/Engineering :: Artificial Intelligence', + 'Topic :: Software Development', + 'Topic :: Software Development :: Libraries', + 'Topic :: Software Development :: Libraries :: Python Modules', + ], license='Apache 2.0', + keywords='mindspore machine learning', )