Metadata-Version: 2.4
Name: makepkg
Version: 0.0.1
Summary: Python packaging, made simple.
Author-email: Patrick Boateng <boatengpato.pb@gmail.com>
License: MIT License
        
        Copyright (c) 2025 makepkg
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: homepage, https://github.com/patrickboateng/makepkg
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: wheel; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: setuptools; extra == "dev"
Dynamic: license-file


# `makepkg`: A Python package for ...

# Installation - development

Create a virtual environment, for example using `venv`:

```shell
$ python -m venv venv-makepkg
$ source venv-makepkg/bin/activate
$ mkdir makepkg
$ cd makepkg
$ python -m pip install -e .[dev]

```

Note that the last command installs a development environment, as it also 
installs packages needed for development, like `black` (for code formatting), 
`pytest` (for unit testing) and `wheel` (for creating wheel files from the package).

# Testing

Running the tests requires to run the following command in the root folder 
(of course in the virtual environment):

```shell
(venv-makepkg) > pytest
```

If you use doctests in your docstrings (as `makepackage` assumes), you can run them 
using the following command (in the root folder):

```shell
(venv-makepkg) > python -m doctest makepkg/makepkg.py
```

In a similar way, you can run doctests from any other file that contains doctests.

## Versioning

Remember to update package version once a change is made to the package and the new 
version is pushed to the repository. Don't forget about releases, too.

## How to build a Python package?

To build the package, you need to go to the root folder of the package and run the 
following command:

```shell
(venv-makepkg) > python -m build .
```

Note that this assumes you have `wheel` installed in your virtual environment, and 
`makepackage` does this for you.

The built package is now located in the dist/ folder.

## Publishing your package in PyPi

If you want to publish it to [PyPi](https://pypi.org/), you need to install 
[twine](https://twine.readthedocs.io/en/latest/), create an account there, and run 
the following command (also in the package's root folder):

```shell
(venv-makepkg) > twine upload dist/*
```

Nonetheless, if you first want to check what it will look like in PyPi, you can first 
upload the package to [a test version of PyPi](https://test.pypi.org/), that is, 

```shell
twine upload -r testpypi dist/*
```

Check if everything is fine, and if so, you're ready to publish the package to PyPi.

## Installation from PyPi

If the package is in PyPi, you can install it from there like any other Python package, 
that is,

```shell
pip install makepkg
```
