dokg 0.4
My test package

## My test package ������

### STEP to upload your package

####  1. Install the required packages:

- `Setuptools`: Setuptools is a package development process library designed for creating and distributing Python packages.
- `Wheel`: The Wheel package provides a bdist_wheel command for setuptools. It creates .whl file which is directly installable through the pip install command. We'll then upload the same file to pypi.org.
- `Twine`: The Twine package provides a secure, authenticated, and verified connection between your system and PyPi over HTTPS.
- `Tqdm`: This is a smart progress meter used internally by Twine.

```
sudo python -m pip install --upgrade pip setuptools wheel
sudo python -m pip install tqdm
sudo python -m pip install --user --upgrade twine
```

#### 2. Setup project

- Create folder structure follow this repo
- Package file sample `dokg`

```
#!/usr/bin/env python
echo "hey there, this is my first pip package"
```

- Make script excecutable:
    `chmod +x dokr`

- Create a setup file setup.py in your package. This file will contain all your package metadata information. 

```
import setuptools

with open("README.md", "r") as fh:
    long_description = fh.read()


setuptools.setup(
    name = 'dokg',
    version = '0.3',
    scripts = ['dokg'],
    author = 'Hai V.Dam',
    author_email = 'haidv@tomochain.com',
    description  = 'My test package',
    long_description = long_description,
    long_description_content_type = "text/markdown",
    url = 'https://github.com/naviat/dokg',
    packages = setuptools.find_packages(),
    classifiers = [
         "Programming Language :: Python :: 3",
         "Programming Language :: Python :: 2",
         "License :: OSI Approved :: MIT License",
         "Operating System :: OS Independent",
    ],
)
```

#### 3. Compiling Your Package

Go into your package folder and execute this command: `python setup.py bdist_wheel`. This will create a  structure like this:

```
.
├── LICENSE
├── README.md
├── build
│   ├── bdist.macosx-10.7-x86_64
│   └── scripts-3.7
│       └── dokg
├── dist
│   └── dokg-0.3-py3-none-any.whl
├── dokg
├── dokg.egg-info
│   ├── PKG-INFO
│   ├── SOURCES.txt
│   ├── dependency_links.txt
│   └── top_level.txt
└── setup.py
```

- `build`: build package information.

- `dist`: Contains your .whl file. A WHL file is a package saved in the Wheel format, which is the standard built-package format used for Python distributions. You can directly install a .whl file using pip install some_package.whl on your system

- `project.egg.info`: An egg package contains compiled bytecode, package information, dependency links, and captures the info used by the setup.py test command when running tests.

#### 4. Upload on pip

- Create pypirc: The Pypirc file stores the PyPi repository information. Create a file in the home directory

for Windows :  `C:\Users\UserName\.pypirc`

for *nix :   `~/.pypirc`

And add the following content to it. Replace javatechy with your username. ������ 

```
[distutils] 
index-servers=pypi
[pypi] 
repository = https://upload.pypi.org/legacy/ 
username = naviat
```

To upload your dist/*.whl file on PyPi, use Twine:

`python -m twine upload dist/*`


### NOTE: When upgrade your package => delete all file in `dist` folder before run the command above