clickable 1.8
Helper scripts to write click applications development's environment
License: BSD license
Requires Python: >=3.6
Keywords: clickable

# clickable helper scripts

Helper scripts to write click applications development's environment


* Free software: BSD license


## Features

Clickable allows to easily write python and shell-based tools for your projects.

Clickable is based on the following building-blocks:

* a bootstrap.py standalone script that installs a conda based python environment,
  that allows to initialize an isolated python environment.
  (https://github.com/lalmeras/clickable_bootstrap)

* a bootstrap.py's post-install callback that uses poetry to install:

  * your project-related command(s)
  * by python dependencies mechanism, clickable and any optional dependencies

* clickable python library, that provides a clickables.py/clickables.yml file
  loading mechanism

* clickable extensions that provide helpers for writing sphinx, ansible, ...
  commands

Clickable is heavily based on Python, Conda, Poetry and Click projects.


## Release

Stable branch is `master`; development branch is `dev`. Usual release steps are :

```
# install dev tools and switch in pipenv
pipenv install --dev
pipenv shell

# if needed, update Pipfile.lock and commit changes
pipenv lock --clear
pipenv install --dev

# prepare dev branch for release...
# update version
# increase version; may be launch multiple time to cycle dev, rc, ...
bump2version --verbose prerel [--allow-dirty] [--no-commit] [--no-tag]

# merge on main
git checkout main
git pull
git merge dev

# prepare next development version (+1dev0)
git checkout dev
bump2version --verbose --no-tag minor

# push all (launch with --dry-run to check before actual update)
# delete (git tag -d <tag> unneeded tags - dev, rc)
git push --all
git push --tag

# publish (pypi credentials required)
git checkout tag
pipenv shell
python setup.py clean --all
rm -rf dist/*
python setup.py sdist
python setup.py bdist_wheel
# fake upload
# run pypi-server in another shell
mkdir -p /tmp/packages && pypi-server -P . -a . /tmp/packages/
twine upload  -u "" -p "" --repository-url http://localhost:8080/ dist/*.whl dist/*.tar.gz

# real upload
twine upload dist/*.whl dist/*.tar.gz
```


# 1.8 (2023-10-27)

Fix installation (cython 3.0 issue with pyyaml)

# 1.5 (2021-12-25)

Fix packaging.

# v1.4 (2021-12-24)

Publishing procedure update.

# v1.3 (2021-09-24)

Fix subprocess import in syncing module.

# v1.2 (2021-09-24)

Fix subprocess import in sphinx module.

# v1.1 (2021-08-31)

Fix virtualenv syntax issues:

```
AttributeError: 'str' object has no attribute 'decode'
```

```
Uncaught error during execution: name 'e' is not defined
```


# 1.0 (2021-08-31)

* cleaned build system
* tests reworked
* updated dependencies
* updated versioning scheme (major/minor)
* python requirement: mandatory 3.6+ (previously 2.7+)
* ruamel.yaml replaced by PyYAML


# 0.3.0 (2018-12)

* remove clickable.bootstrap module
* clickable.click use 'main' as default function when searching
  an entry-point in clickables.py
* tasks.py renamed to clickables.yml
* added an helper to load base configuration from clickables.yml
  (clickables.utils.load_config)
* python3 support


# 0.2.0 (2018-12-26)

(delayed release, used from @dev branch for 6 months)

* added clickable.bootstrap
* added helpers for sphinx commands
* added workaround for selinux and virtualenv

# 0.1.1 (2018-02-10)

* fix rsync ``options`` arg behavior


# 0.1.0 (2018-02-10)

* added rsync handler


# 0.0.3 (2017-10-17)

* correctly handle clear_env in sphinx:sphinx_script
* update cryptography, tox, sphinx, wheel


# 0.0.1 (2017-09-10)

* First release on PyPI.


# 0.0.2.dev4 (2017-09-10)

* Fixed ignored excludes in lftp_sync