Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions .coveragerc

This file was deleted.

15 changes: 9 additions & 6 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,24 +14,27 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: [3.9, "3.10", 3.11, 3.12]
python-version: ["3.10", 3.11, 3.12, 3.13]

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Setup Git
run: |
git config --global user.email "atotest@example.com"
git config --global user.name "auto tester"
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Setup uv
uses: astral-sh/setup-uv@v6
- name: Install deps
run: |
python -m pip install pytest coverage coveralls
uv sync
uv pip install coverage coveralls
- name: Run tests
env:
GITHUB_TOKEN: ${{ secrets.github_token }}
run: |
coverage run --source=makeapp setup.py test
coveralls --service=github
uv run coverage run --source=makeapp -m pytest
uv run coveralls --service=github
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@
.pydevproject
.idea
.tox
.venv
__pycache__
*.pyc
*.pyo
*.egg-info
docs/_build/
.mypy_cache
.ruff_cache
.pytest_cache
.env
12 changes: 12 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
version: 2

build:
os: "ubuntu-24.04"
tools:
python: "3"
jobs:
pre_install:
- pip install mkdocs-material mkdocs-navsorted-plugin

mkdocs:
configuration: mkdocs.yml
6 changes: 2 additions & 4 deletions AUTHORS → AUTHORS.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
makeapp authors
===============
# makeapp authors

Created by Igor `idle sign` Starikov.


Contributors
------------
## Contributors

Here could be your name.
23 changes: 11 additions & 12 deletions CHANGELOG → CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
makeapp changelog
=================


Unreleased
----------
+ Added virtual environment creation on project rollout.
+ CLI. Added 'venv reset' command.
+ CLI. Descriptions passed to 'change' command all go into a commit messages.
* Added QA for Py 3.11, 3.12.
* Dropped QA for Py 3.7, 3.8.
* Fixed package name availability check.
# makeapp changelog


# Unreleased
* !! Big rewrite. Now uses up-to-date technologies.
* ++ Added virtual environment creation on project rollout.
* ++ CLI. Added 'venv reset' command.
* ++ CLI. Descriptions passed to 'change' command all go into a commit messages.
* ** Added QA for Py 3.11, 3.12, 3.13.
* ** Dropped QA for Py 3.7, 3.8, 3.9.
* ** Fixed package name availability check.


v1.9.1 [2023-05-19]
Expand Down
31 changes: 0 additions & 31 deletions INSTALL

This file was deleted.

16 changes: 16 additions & 0 deletions INSTALL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# makeapp installation

Use ``uv`` to install and upgrade ``makeapp``.
https://docs.astral.sh/uv/getting-started/installation/

## Install

```bash
uv tool install makeapp
```

## Upgrade

```bash
uv tool upgrade makeapp
```
17 changes: 0 additions & 17 deletions MANIFEST.in

This file was deleted.

74 changes: 28 additions & 46 deletions README.rst → README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,12 @@
makeapp
=======
https://github.com/idlesign/makeapp

|release| |lic| |coverage|

.. |release| image:: https://img.shields.io/pypi/v/makeapp.svg
:target: https://pypi.python.org/pypi/makeapp
# makeapp

.. |lic| image:: https://img.shields.io/pypi/l/makeapp.svg
:target: https://pypi.python.org/pypi/makeapp

.. |coverage| image:: https://img.shields.io/coveralls/idlesign/makeapp/master.svg
:target: https://coveralls.io/r/idlesign/makeapp
https://github.com/idlesign/makeapp

[![PyPI - Version](https://img.shields.io/pypi/v/makeapp)](https://pypi.python.org/pypi/makeapp)
[![License](https://img.shields.io/pypi/l/makeapp)](https://pypi.python.org/pypi/makeapp)
[![Coverage](https://img.shields.io/coverallsCoverage/github/idlesign/makeapp)](https://coveralls.io/r/idlesign/makeapp)

Description
------------
## Description

*Simplifies Python application rollout and publishing.*

Expand All @@ -28,23 +19,20 @@ Description
* Publish your application to remotes (VCS, PyPI) with single command.


Application scaffolding
-----------------------
## Application scaffolding

Scaffold a new application:

.. code-block:: bash

$ makeapp new my_new_app /home/librarian/mynewapp/ -d "My application." --author "The Librarian"
``` bash
makeapp new my_new_app /home/librarian/mynewapp/ -d "My application." --author "The Librarian"
```


This will create a decent application skeleton using the default skeleton template (``setup.py``, docs, tests, etc.)
This will create a decent application skeleton using the default skeleton template (``pyproject.toml``, docs, tests, etc.)
and initialize Git repository.

``makeapp`` also bundles templates for commonly used application types:

* ``click`` powered app
* ``pytest`` powered app
* ``pytest`` plugin
* ``Django`` app
* ``webscaff`` project (https://github.com/idlesign/webscaff)
Expand All @@ -54,17 +42,15 @@ Multiple templates can be used together. Complete list of featured templates can
User-made templates are also supported.


Application publishing
----------------------

When you're ready to publish issue the following command while in project directory (containing ``setup.py``):

.. code-block:: bash
## Application publishing

$ makeapp release
; Bump version number part manually: major, minor, patch
$ makeapp release --increment major
When you're ready to publish issue the following command while in project directory (containing ``pyproject.toml``):

``` bash
makeapp release
; Bump version number part manually: major, minor, patch
makeapp release --increment major
```

This will automatically:

Expand All @@ -74,14 +60,13 @@ This will automatically:
* upload application package to PyPI


Adding changes
--------------
## Adding changes

When you're ready to add another entry to your changelog use ``change`` command:

.. code-block:: bash

$ makeapp change "+ New 'change' command implemented"
``` bash
makeapp change "+ New 'change' command implemented"
```

This will also stage and commit all changed files.

Expand All @@ -104,17 +89,14 @@ Supported message prefixes:
Increment: *patch*.


Bash completion
---------------
## Bash completion

To enable bash completion for ``makeapp`` command append the following line into your ``.bashrc``:

.. code-block:: bash

eval "$(_MAKEAPP_COMPLETE=source makeapp)"

``` bash
eval "$(_MAKEAPP_COMPLETE=source makeapp)"
```

Documentation
-------------
## Documentation

https://makeapp.readthedocs.org/
https://makeapp.readthedocs.io/
93 changes: 93 additions & 0 deletions docs/010_quickstart.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# Quickstart


## Application scaffolding

Scaffold a new application:

```bash
makeapp new my_new_app /home/librarian/mynewapp/ -d "My application." --author "The Librarian"
```

This will create a decent application skeleton (`pyproject.toml`, docs, tests, etc.) and initialize Git repository.

Get some help on command line switches:

```bash
makeapp --help
```

### Settings in config

Put some default settings into a config (not to mess with command line switches anymore):

1. Create `.makeapp` (dot is required) directory in your HOME directory;
2. In `.makeapp` directory create `makeapp.conf` configuration file with a similar contents:

```ini
[settings]
author = The Librarian
author_email = librarian@discworld.wrld
license = bsd3cl
url = https://github.discworld.wrld/librarian/{{ app_name }}
vcs = git
```

### Settings in command line

You can also pass settings values via command line options. Use `--no-prompt` switch to automate scaffolding:

```bash
makeapp new my_new_app -t webscaff --no-prompt --webscaff_domain "example.com" --webscaff_email "me@example.com" --webscaff_host "93.184.216.34" --vcs_remote "git@example.com:me/my_new_app.git"
```

## Application publishing

When you're ready to publish issue the following command while in project directory (containing `pyproject.toml`):

```bash
makeapp release
; Bump version number part manually: major, minor, patch
makeapp release --increment major
```

This will automatically:

* bump up application version number
* tag version in VCS
* push sources to remote repository
* upload application package to PyPI


## Adding changes

When you're ready to add another entry to your changelog use `change` command:

```bash
makeapp change "+ New 'change' command implemented"
```

This will also stage and commit all changed files.

Supported message prefixes and corresponding version number parts incremented
on `release` command:

| symbol | meaning | version part increment |
|--------|----------------------------------|------------------------|
| `+` | New feature / addition | minor |
| `!` | Important change/improvement/fix | patch |
| `-` | Feature deprecation / removal | patch |
| `*` | Minor change/improvement/fix | patch |


!!! note
`*` prefix is added by default if none of the above mentioned prefixes found.


## Bash completion

To enable bash completion for `makeapp` command append the following line into your `.bashrc`:

```bash
eval "$(_MAKEAPP_COMPLETE=source makeapp)"
```
Loading