Peter Ivanov created IGNITE-10683: ------------------------------------- Summary: Prepare process of packaging and delivering thin clients Key: IGNITE-10683 URL: https://issues.apache.org/jira/browse/IGNITE-10683 Project: Ignite Issue Type: Task Reporter: Peter Ivanov Assignee: Peter Ivanov Fix For: 2.8
# **NodeJs client** #* +Instruction+: https://github.com/nobitlost/ignite/blob/ignite-7777-docs/modules/platforms/nodejs/README.md#publish-ignite-nodejs-client-on-npmjscom-instruction #* +Uploaded+: https://www.npmjs.com/package/apache-ignite-client # **PHP client** #* +Instruction+: https://github.com/nobitlost/ignite/blob/ignite-7783-docs/modules/platforms/php/README.md#release-the-client-in-the-php-package-repository-instruction {panel} Cannot be uploaded on Packagist as the client should be in a dedicated repository for that - https://issues.apache.org/jira/browse/IGNITE-7783?focusedCommentId=16595476&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16595476 Installation from the sources works. {panel} # **Python client** I have already registered the package `pyignite` on PyPI[1]. The person who is going to take the responsibility of maintaining it should create an account on PyPI and mail me in private, so that I can grant them the necessary rights. They also must install twine[3]. The process of packaging is well described in the packaging tutorial[2]. In the nutshell, the maintainer must do the following: ## Clone/pull the sources from the git repository, ## Enter the directory in which the `setup.py` is resides (“the setup directory”), in our case it is `modules/platforms/python`. ## Create the packages with the command `python3 setup.py sdist bdist_wheel`. The packages will be created in `modules/platforms/python/dist` folder. ## Upload packages with twine: `twine upload dist/*`. It is very useful to have a dedicated Python virtual environment prepared to perform steps 3-4. Just do an editable install of `pyignite` into that environment from the setup directory: `pip3 install -e .` You can also install twine (`pip install twine`) in it. Consider also making a `.pypirc` file to save time on logging in to PyPI. Newest version of `twine` is said to support keyrings on Linux and Mac, but I have not tried this yet. [1] https://pypi.org/project/pyignite/ [2] https://packaging.python.org/tutorials/packaging-projects/ [3] https://twine.readthedocs.io/en/latest/ Some other notes on PyPI and versioning. - The package version is located in the `setup.py`, it is a `version` argument of the `setuptools.setup()` function. Editing the `setup.py` is the only way to set the package version. - You absolutely can not replace a package in PyPI (hijacking prevention). If you have published the package by mistake, all you can do is delete the unwanted package, increment the version counter in `setup.py`, and try again. - If you upload the package through the web interface of PyPI (without twine), the package description will be garbled. Web interface does not support markdown. Anyway, I would like to join in the congratulations on successful release. Kudos to the team. -- This message was sent by Atlassian JIRA (v7.6.3#76005)