more cleanup
This commit is contained in:
parent
ec2c2ea536
commit
f9037273e8
@ -10,7 +10,7 @@ do
|
|||||||
done
|
done
|
||||||
|
|
||||||
if [ -z "${template}" ]; then
|
if [ -z "${template}" ]; then
|
||||||
echo "Available templates: flask"
|
echo "Available templates: Flask"
|
||||||
read -p "Enter template name: " template
|
read -p "Enter template name: " template
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ function download_template {
|
|||||||
}
|
}
|
||||||
|
|
||||||
echo "Using template:${template}"
|
echo "Using template:${template}"
|
||||||
template_url="https://github.com/rochacbruno/${template}-project-template"
|
template_url="https://git.disi.dev/Templates/${template}"
|
||||||
template_dir=".gitea/templates/${template}"
|
template_dir=".gitea/templates/${template}"
|
||||||
if [ -d "${template_dir}" ]; then
|
if [ -d "${template_dir}" ]; then
|
||||||
# Template directory already exists
|
# Template directory already exists
|
||||||
|
@ -93,11 +93,8 @@ People automating CI for your project will be grateful for having a setup.py fil
|
|||||||
### Why isn't this template made as a cookiecutter template?
|
### Why isn't this template made as a cookiecutter template?
|
||||||
|
|
||||||
I really like [cookiecutter](https://github.com/cookiecutter/cookiecutter) and it is a great way to create new projects,
|
I really like [cookiecutter](https://github.com/cookiecutter/cookiecutter) and it is a great way to create new projects,
|
||||||
but for this template I wanted to use the Github `Use this template` button,
|
|
||||||
to use this template doesn't require to install extra tooling such as cookiecutter.
|
to use this template doesn't require to install extra tooling such as cookiecutter.
|
||||||
|
|
||||||
Just click on [Use this template](https://github.com/rochacbruno/python-project-template/generate) and you are good to go.
|
|
||||||
|
|
||||||
The substituions are done using gitea actions and a simple sed script.
|
The substituions are done using gitea actions and a simple sed script.
|
||||||
|
|
||||||
### Why `VERSION` is kept in a static plain text file?
|
### Why `VERSION` is kept in a static plain text file?
|
||||||
|
@ -7,10 +7,10 @@ project_name welcomes contributions from the community.
|
|||||||
This instructions are for linux base systems. (Linux, MacOS, BSD, etc.)
|
This instructions are for linux base systems. (Linux, MacOS, BSD, etc.)
|
||||||
## Setting up your own fork of this repo.
|
## Setting up your own fork of this repo.
|
||||||
|
|
||||||
- On github interface click on `Fork` button.
|
- On gitea interface click on `Fork` button.
|
||||||
- Clone your fork of this repo. `git clone git@github.com:YOUR_GIT_USERNAME/project_urlname.git`
|
- Clone your fork of this repo. `git clone git@git.disi.dev:YOUR_GIT_USERNAME/project_urlname.git`
|
||||||
- Enter the directory `cd project_urlname`
|
- Enter the directory `cd project_urlname`
|
||||||
- Add upstream repo `git remote add upstream https://github.com/author_name/project_urlname`
|
- Add upstream repo `git remote add upstream https://git.disi.dev/author_name/project_urlname`
|
||||||
|
|
||||||
## Setting up your own virtual environment
|
## Setting up your own virtual environment
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ Run `git push origin my_contribution`
|
|||||||
|
|
||||||
## Submit a pull request
|
## Submit a pull request
|
||||||
|
|
||||||
On github interface, click on `Pull Request` button.
|
On gitea interface, click on `Pull Request` button.
|
||||||
|
|
||||||
Wait CI to run and one of the developers will review your PR.
|
Wait CI to run and one of the developers will review your PR.
|
||||||
## Makefile utilities
|
## Makefile utilities
|
||||||
@ -94,8 +94,8 @@ init: ## Initialize the project based on an application template.
|
|||||||
## Making a new release
|
## Making a new release
|
||||||
|
|
||||||
This project uses [semantic versioning](https://semver.org/) and tags releases with `X.Y.Z`
|
This project uses [semantic versioning](https://semver.org/) and tags releases with `X.Y.Z`
|
||||||
Every time a new tag is created and pushed to the remote repo, github actions will
|
Every time a new tag is created and pushed to the remote repo, gitea actions will
|
||||||
automatically create a new release on github and trigger a release on PyPI.
|
automatically create a new release on gitea and trigger a release on PyPI.
|
||||||
|
|
||||||
For this to work you need to setup a secret called `PIPY_API_TOKEN` on the project settings>secrets,
|
For this to work you need to setup a secret called `PIPY_API_TOKEN` on the project settings>secrets,
|
||||||
this token can be generated on [pypi.org](https://pypi.org/account/).
|
this token can be generated on [pypi.org](https://pypi.org/account/).
|
||||||
|
4
Makefile
4
Makefile
@ -76,7 +76,7 @@ virtualenv: ## Create a virtual environment.
|
|||||||
|
|
||||||
.PHONY: release
|
.PHONY: release
|
||||||
release: ## Create a new tag for release.
|
release: ## Create a new tag for release.
|
||||||
@echo "WARNING: This operation will create s version tag and push to github"
|
@echo "WARNING: This operation will create a version tag and push to gitea"
|
||||||
@read -p "Version? (provide the next x.y.z semver) : " TAG
|
@read -p "Version? (provide the next x.y.z semver) : " TAG
|
||||||
@echo "$${TAG}" > project_name/VERSION
|
@echo "$${TAG}" > project_name/VERSION
|
||||||
@$(ENV_PREFIX)gitchangelog > HISTORY.md
|
@$(ENV_PREFIX)gitchangelog > HISTORY.md
|
||||||
@ -85,7 +85,7 @@ release: ## Create a new tag for release.
|
|||||||
@echo "creating git tag : $${TAG}"
|
@echo "creating git tag : $${TAG}"
|
||||||
@git tag $${TAG}
|
@git tag $${TAG}
|
||||||
@git push -u origin HEAD --tags
|
@git push -u origin HEAD --tags
|
||||||
@echo "Github Actions will detect the new tag and release the new version."
|
@echo "Gitea Actions will detect the new tag and release the new version."
|
||||||
|
|
||||||
.PHONY: docs
|
.PHONY: docs
|
||||||
docs: ## Build the documentation.
|
docs: ## Build the documentation.
|
||||||
|
22
README.md
22
README.md
@ -4,27 +4,24 @@
|
|||||||
A low dependency and really simple to start project template for Python Projects.
|
A low dependency and really simple to start project template for Python Projects.
|
||||||
|
|
||||||
See also
|
See also
|
||||||
- [Flask-Project-Template](https://github.com/rochacbruno/flask-project-template/) for a full feature Flask project including database, API, admin interface, etc.
|
- [Flask-Project-Template](https://git.disi.dev/Templates/Flask/) for a full feature Flask project including database, API, admin interface, etc.
|
||||||
- [FastAPI-Project-Template](https://github.com/rochacbruno/fastapi-project-template/) The base to start an openapi project featuring: SQLModel, Typer, FastAPI, JWT Token Auth, Interactive Shell, Management Commands.
|
|
||||||
|
|
||||||
### HOW TO USE THIS TEMPLATE
|
### HOW TO USE THIS TEMPLATE
|
||||||
|
|
||||||
1. Choose a name for your project
|
1. Create a new repository from this template and choose a name for your project
|
||||||
(e.g. `my_awesome_project` recommendation is to use all lowercase and underscores separation for repo names.)
|
(e.g. `my_awesome_project` - recommendation is to use all lowercase and underscores separation for repo names.)
|
||||||
2. Replace all text instances of "project_name" in this repo with your new name
|
2. Wait until the first run of CI finishes (Gitea Actions will process the template and commit to your new repo)
|
||||||
3. If you want Automatic Release to [PyPI](https://pypi.org)
|
3. If you want Automatic Release to [PyPI](https://pypi.org)
|
||||||
On the new repository `settings->secrets` add your `PYPI_API_TOKEN` (get the tokens on PyPI website)
|
On the new repository `settings->secrets` add your `PYPI_API_TOKEN` (get the tokens on PyPI website)
|
||||||
4. Read the file [CONTRIBUTING.md](CONTRIBUTING.md)
|
4. Read the file [CONTRIBUTING.md](CONTRIBUTING.md)
|
||||||
5. Then clone your new project and happy coding!
|
5. Then clone your new project and happy coding!
|
||||||
|
|
||||||
> **NOTE**: **WAIT** until first CI run on github actions before cloning your new project.
|
> **NOTE**: **WAIT** until first CI run on gitea actions before cloning your new project.
|
||||||
|
|
||||||
### What is included on this template?
|
### What is included on this template?
|
||||||
|
|
||||||
- 🖼️ Templates for starting multiple application types:
|
- 🖼️ Templates for starting multiple application types:
|
||||||
* **Basic low dependency** Python program (default) [use this template](https://github.com/rochacbruno/python-project-template/generate)
|
**Run `make init` after cloning to generate a new project based on a template.**
|
||||||
* **Flask** with database, admin interface, restapi and authentication [use this template](https://github.com/rochacbruno/flask-project-template/generate).
|
|
||||||
**or Run `make init` after cloning to generate a new project based on a template.**
|
|
||||||
- 📦 A basic [setup.py](setup.py) file to provide installation, packaging and distribution for your project.
|
- 📦 A basic [setup.py](setup.py) file to provide installation, packaging and distribution for your project.
|
||||||
Template uses setuptools because it's the de-facto standard for Python packages, you can run `make switch-to-poetry` later if you want.
|
Template uses setuptools because it's the de-facto standard for Python packages, you can run `make switch-to-poetry` later if you want.
|
||||||
- 🤖 A [Makefile](Makefile) with the most useful commands to install, test, lint, format and release your project.
|
- 🤖 A [Makefile](Makefile) with the most useful commands to install, test, lint, format and release your project.
|
||||||
@ -34,14 +31,11 @@ See also
|
|||||||
`Containerfile` is a more open standard for building container images than Dockerfile, you can use buildah or docker with this file.
|
`Containerfile` is a more open standard for building container images than Dockerfile, you can use buildah or docker with this file.
|
||||||
- 🧪 Testing structure using [pytest](https://docs.pytest.org/en/latest/)
|
- 🧪 Testing structure using [pytest](https://docs.pytest.org/en/latest/)
|
||||||
- ✅ Code linting using [flake8](https://flake8.pycqa.org/en/latest/)
|
- ✅ Code linting using [flake8](https://flake8.pycqa.org/en/latest/)
|
||||||
- 🛳️ Automatic release to [PyPI](https://pypi.org) using [twine](https://twine.readthedocs.io/en/latest/) and github actions.
|
- 🛳️ Automatic release to [PyPI](https://pypi.org) using [twine](https://twine.readthedocs.io/en/latest/) and gitea actions.
|
||||||
- 🎯 Entry points to execute your program using `python -m <project_name>` or `$ project_name` with basic CLI argument parsing.
|
- 🎯 Entry points to execute your program using `python -m <project_name>` or `$ project_name` with basic CLI argument parsing.
|
||||||
- 🔄 Continuous integration using [Github Actions](.gitea/workflows/) with jobs to lint, test and release your project on Linux, Mac and Windows environments.
|
- 🔄 Continuous integration using [Gitea Actions](.gitea/workflows/) with jobs to lint, test and release your project on Linux, Mac and Windows environments.
|
||||||
|
|
||||||
> Curious about architectural decisions on this template? read [ABOUT_THIS_TEMPLATE.md](ABOUT_THIS_TEMPLATE.md)
|
> Curious about architectural decisions on this template? read [ABOUT_THIS_TEMPLATE.md](ABOUT_THIS_TEMPLATE.md)
|
||||||
> If you want to contribute to this template please open an [issue](https://github.com/rochacbruno/python-project-template/issues) or fork and send a PULL REQUEST.
|
|
||||||
|
|
||||||
[❤️ Sponsor this project](https://github.com/sponsors/rochacbruno/)
|
|
||||||
|
|
||||||
<!-- DELETE THE LINES ABOVE THIS AND WRITE YOUR PROJECT README BELOW -->
|
<!-- DELETE THE LINES ABOVE THIS AND WRITE YOUR PROJECT README BELOW -->
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user