Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-10683

Prepare process of packaging and delivering thin clients

    XMLWordPrintableJSON

Details

    • Task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None

    Description

      1. NodeJs client
      2. PHP client
      3. 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:
        1. Clone/pull the sources from the git repository,
        2. Enter the directory in which the `setup.py` is resides (“the setup directory”), in our case it is `modules/platforms/python`.
        3. Create the packages with the command `python3 setup.py sdist bdist_wheel`. The packages will be created in `modules/platforms/python/dist` folder.
        4. 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.

      Attachments

        Activity

          People

            Unassigned Unassigned
            vveider Petr Ivanov
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: