Changelog
11.1.0 (2025-03-15)
✨ Features
- cli, runner, gitlab: implement '--random-paths' mount features (7cf2445)
- gitlab: implement 'parallel: integer' jobs support (c34fa72)
📚 Documentation
- docs: use '<span class="page-break">' instead of '<div>' (a88c24c)
- prepare: avoid 'TOC' injection if 'hide: - toc' is used (0b802d6)
🎨 Styling
- colors: ignore 'Colored' import 'Incompatible import' warning (6277885)
⚙️ Cleanups
- sonar-project: configure coverage checks in SonarCloud (0dab0a7)
- sonar-project: configure duplications checks in SonarCloud (d02d631)
🚀 CI
- gitlab-ci: run coverage jobs if 'sonar-project.properties' changes (ec7ac82)
- gitlab-ci: unbind 'coverage:*' jobs from 'build' job (bedc60b)
- gitlab-ci: watch for 'docs/.*' changes in 'pages' jobs (019e3f1)
11.0.1 (2025-01-01)
🐛 Bug Fixes
- cli, parsers: use package name for 'Updates' checks (2d39810)
📚 Documentation
- mkdocs: minor '(prefers-color-scheme...)' syntax improvements (bd1562f)
- mkdocs, pages: use 'MKDOCS_EXPORTER_PDF_OUTPUT' for PDF file (a20a249)
- pages: rename PDF link title to 'Export as PDF' (6492279)
- pdf: avoid header / footer lines on front / back pages (eb2fd0a)
- pdf: minor stylesheets codestyle improvements (61b5ac3)
- pdf: reverse PDF front / back cover pages colors for printers (0099c9b)
- prepare: use 'mkdocs.yml' to get project name value (1ede781)
- stylesheets: resolve lines and arrows visibility in dark mode (47c7838)
- templates: add 'Author' and 'Description' to PDF front page (61a973e)
- templates: add 'Date' detail on PDF front page (6113ee2)
- templates: use Git commit SHA1 as version if no Git tag found (9200d11)
⚙️ Cleanups
- src, readme: minor codestyle and syntax improvements (48ca2dc)
🚀 CI
- gitlab-ci: avoid PDF slow generation locally outside 'pdf' job (965dc51)
- gitlab-ci: validate host network interfaces support (18993a9)
- gitlab-ci: enable '.local: no_regex' feature (9cfe632)
- gitlab-ci: append Git version to PDF output file name (85610bd)
- gitlab-ci: rename PDF to 'gcil' (14ef33f)
- gitlab-ci: migrate to 'pre-commit-crocodile/commits@4.0.0' (e7afff7)
- gitlab-ci: ensure 'pages' job does not block pipeline if manual (d992dcc)
- gitlab-ci: change release title to include tag version (b859fa1)
11.0.0 (2024-10-28)
✨ Features
- 🚨 BREAKING CHANGE 🚨 | gitlab: warn '.local: network:' as deprecated through issue (085ceb8)
- runner: allow user to override predefined 'CI_' variables (5094cb8)
- runner: implement 'variables: CI_LOCAL_NETWORK:' support (7fa3f75)
- runner: propagate 'CI_LOCAL_NETWORK' inside containers (ba3a54c)
- xauth: implement Xauthority entry support for X11 over SSH (88b06f2)
🐛 Bug Fixes
- main: ensure 'FORCE_COLOR=0' if using '--no-color' flag (19befb6)
- runner: improve CI variables definition from 'environ' (9a42883)
- settings: ensure old settings are migrated with 'DeprecationWarning' (b731c8c)
📚 Documentation
- assets: prepare mkdocs to generate mermaid diagrams (b284d9c)
- cliff: improve 'Unreleased' and refactor to 'Development' (8715cdb)
- covers: resolve broken page header / footer titles (45965bd)
- custom: change to custom header darker blue header bar (9609aab)
- deprecations: isolate deprecated features in a documentation page (c8cfdac)
- deprecations: document '.local: network' deprecation (e498f63)
- docs: improve documentation PDF outputs with page breaks (c043074)
- gitlab-ci: isolate 'Supported .gitlab-ci.yml features' specification (e3d362c)
- hooks: improve hooks documentation sections (cd1256e)
- mkdocs: enable 'git-revision-date-localized' plugin (f6f7472)
- mkdocs: change web pages themes colors to 'blue' (0f17dc3)
- mkdocs: fix 'git-revision-date-localized' syntax (ce93665)
- mkdocs: migrate to 'awesome-pages' pages navigation (8177ba9)
- mkdocs: change 'auto / light / dark' themes toggle icons (5e9da73)
- mkdocs: enable and configure 'minify' plugin (43df04f)
- mkdocs: install 'mkdocs-macros-plugin' for Jinja2 templates (d76e9ca)
- mkdocs: enable 'pymdownx.emoji' extension for Markdown (deff6a8)
- mkdocs: implement 'mkdocs-exporter' and customize PDF style (2ecf60d)
- mkdocs: set documentation pages logo to 'solid/code' ('</>') (1b0de40)
- mkdocs: enable 'permalink' headers anchors for table of contents (564c3a5)
- mkdocs: prepare 'privacy' and 'offline' plugins for future usage (b1399d1)
- mkdocs: disable Google fonts to comply with GDPR data privacy (5c65303)
- mkdocs: implement 'Table of contents' injection for PDF results (362f932)
- mkdocs: enable 'Created' date feature for pages footer (45bf48d)
- mkdocs: add website favicon image and configuration (4017715)
- mkdocs: implement 'book' covers to have 'limits' + 'fronts' (2f2c29c)
- mkdocs: isolate assets to 'docs/assets/' subfolder (aa3fea2)
- mkdocs: exclude '.git' from watched documentation sources (6dbc188)
- mkdocs, prepare: resolve Markdown support in hidden '<details>' (a9bf293)
- pages: rename index page title to '‣ Usage' (b98e5c7)
- pdf: simplify PDF pages copyright footer (67a42c5)
- pdf: migrate to custom state pseudo class 'state(...)' (d120e02)
- prepare: regenerate development 'CHANGELOG' with 'git-cliff' (9682f08)
- prepare: avoid 'md_in_html' changes to 'changelog' and 'license' (bb1a1f3)
- prepare: fix '<' and '>' changelog handlings and files list (8fe1730)
- prepare: implement 'About / Quality' badges page (79601d2)
- prepare: improve 'Quality' project badges to GitLab (1c0ed84)
- prepare: use 'docs' sources rather than '.cache' duplicates (674f0a6)
- prepare: resolve 'docs/about' intermediates cleanup (6ea343a)
- prepare: add PyPI badges and license badge to 'quality' page (047d699)
- prepare: avoid adding TOC to generated and 'no-toc' files (3fcb0c9)
- readme: add 'Compatible projects' section with 'gcil' badge (b5518ef)
- readme: add 'gcil:enabled' documentation badge (c6e6e17)
- readme: document settings changes before version 10.0.0 (89df9fb)
- readme: add pypi, python versions, downloads and license badges (b9dfffe)
- readme: document 'CI_LOCAL_NETWORK' variable configuration (d7665f4)
- robots: configure 'robots.txt' for pages robots exploration (325e0c5)
⚙️ Cleanups
- gitignore: exclude only 'build' folder from sources root (540ed6f)
- gitignore: exclude '/build' folder or symlink too (5c28394)
- sonar: wait for SonarCloud Quality Gate status (e93fa35)
- src: resolve 'too-many-positional-arguments' new lint warnings (506df96)
- vscode: use 'yzhang.markdown-all-in-one' for Markdown formatter (e9b6117)
🚀 CI
- gitlab-ci: prevent 'sonarcloud' job launch upon 'gcil' local use (3d14df5)
- gitlab-ci: run SonarCloud analysis on merge request pipelines (de44ee1)
- gitlab-ci: watch for 'config/*' changes in 'serve' job (4782290)
- gitlab-ci: fetch Git tags history in 'pages' job execution (373eeff)
- gitlab-ci: fetch with '--unshallow' for full history in 'pages' (5998b01)
- gitlab-ci: enforce 'requirements/pages.txt' in 'serve' job (23f5ef1)
- gitlab-ci: add 'python:3.12-slim' image mirror (23ca938)
- gitlab-ci: inject only 'mkdocs-*' packages in 'serve' job (f14e8e4)
- gitlab-ci: install 'playwright' with chromium in 'serve' job (6a92188)
- gitlab-ci: find files only for 'entr' in 'serve' (b70475d)
- gitlab-ci: improve GitLab CI job outputs for readability (b5c3419)
- gitlab-ci: deploy GitLab Pages on 'CI_DEFAULT_BRANCH' branch (2d430a4)
- gitlab-ci: ignore 'variables.scss' in 'serve' watcher (9248c13)
- gitlab-ci: preserve only existing Docker images after 'images' (7bbff06)
- gitlab-ci: use 'MKDOCS_EXPORTER_PDF_ENABLED' to disable PDF exports (2a35e57)
- gitlab-ci: run 'pages' job on GitLab CI tags pipelines (f3007bc)
- gitlab-ci: isolate 'pages: rules: changes' for reuse (4b0f72f)
- gitlab-ci: allow manual launch of 'pages' on protected branches (f562c6b)
- gitlab-ci: create 'pdf' job to export PDF on tags and branches (556898d)
- gitlab-ci: implement local pages serve in 'pages' job (8864b8b)
- 🚨 BREAKING CHANGE 🚨 | gitlab-ci: raise minimal 'gcil' version to '11.0' (d1486c3)
- gitlab-ci: enable local host network on 'pages' job (eba25f0)
- gitlab-ci: detect failures from 'mkdocs serve' executions (b108d9f)
- gitlab-ci: refactor images containers into 'registry:*' jobs (2deab2e)
- gitlab-ci: bind 'registry:' dependencies to 'requirements/.txt' (322115d)
📦 Build
- build: import missing 'build' container sources (435cf81)
- containers: use 'apk add --no-cache' for lighter images (90d0263)
- pages: add 'git-cliff' to the ':pages' image (9e7a6a3)
- pages: migrate to 'python:3.12-slim' Ubuntu base image (a40b593)
- pages: install 'playwright' dependencies for 'mkdocs-exporter' (2220e19)
- pages: install 'entr' in the image (59f9303)
- requirements: install 'mkdocs-git-revision-date-localized-plugin' (0ef4a54)
- requirements: install 'mkdocs-awesome-pages-plugin' plugin (e0a40c2)
- requirements: install 'mkdocs-minify-plugin' for ':pages' (1f5cda6)
- requirements: install 'mkdocs-exporter' in ':pages' (b55479f)
- requirements: migrate to 'mkdocs-exporter' with PR#35 (2ac6b62)
- requirements: raise 'docker' API dependency to '7.1.0' (7246a74)
- requirements: upgrade to 'playwright' 1.48.0 (46735c6)
- requirements: migrate to 'mkdocs-exporter' with PR#42/PR#41 (708e7d0)
10.2.0 (2024-08-25)
✨ Features
- updates: migrate from deprecated 'pkg_resources' to 'packaging' (f7d3b55)
📚 Documentation
- hooks: create 'pre-commit' hooks documentation for 'gcil' (f51ae8c)
- mkdocs: implement GitLab Pages initial documentation and jobs (ee58d40)
- readme: link against 'pexpect-executor' documentation pages (f8153f4)
⚙️ Cleanups
- commitizen: migrate to new 'filter' syntax (commitizen#1207) (aac4bc8)
- pre-commit: add 'python-check-blanket-type-ignore' and 'python-no-eval' (038f710)
- pre-commit: fail 'gcil' jobs if 'PRE_COMMIT' is defined (9883f20)
- pre-commit: simplify and unify 'local-gcil' hooks syntax (53c4fde)
- pre-commit: create 'run-gcil-job' template hook to override (3028b17)
- pre-commit: isolate 'run-gcil-commit' and 'run-gcil-push' hooks (a58e977)
- pre-commit: improve syntax for 'args' arguments (9db7ca2)
- pre-commit: improve syntax for 'args' arguments (1b966b0)
- pre-commit: migrate to 'run-gcil-*' templates local hooks (fdfdbdb)
- pre-commit: update against 'run-gcil-push' hook template (d537f03)
- pre-commit: migrate to 'pre-commit-crocodile' 3.0.0 (81de32c)
🚀 CI
- containers: implement ':pages' image with 'mkdocs-material' (2a83c23)
- gitlab-ci: avoid failures of 'codestyle' upon local launches (670c662)
- gitlab-ci: migrate to 'pre-commit-crocodile/commits@2.1.0' component (ae0482d)
- gitlab-ci: migrate to 'pre-commit-crocodile/commits@3.0.0' component (6c6248e)
10.1.0 (2024-08-21)
🐛 Bug Fixes
- platform: always flush on Windows hosts without stdout TTY (df15142)
📚 Documentation
- readme: add 'pre-commit enabled' badges (d38b60a)
- readme: migrate to 'RadianDevCore_gcil' project key (a3df3aa)
🧪 Test
- requirements: raise 'pexpect-executor' version to 4.0.1 (402d449)
⚙️ Cleanups
- commitizen: migrate to 'pre-commit-crocodile' 2.0.1 (5a4a79d)
- gitattributes: always checkout Shell scripts with '\n' EOL (ed32b81)
- gitignore: ignore '.*.swp' intermediates 'nano' files (870d6e3)
- pre-commit: run 'codestyle', 'lint' and 'typings' jobs (6b72ff7)
- pre-commit: migrate to 'pre-commit-crocodile' 2.0.0 (75007ed)
- sonar-project: migrate to 'RadianDevCore_gcil' project key (90b71f2)
🚀 CI
- gitlab-ci: show fetched merge request branches in 'commits' (134a95b)
- gitlab-ci: always run 'commits' job on merge request pipelines (ff48dff)
- gitlab-ci: make 'needs' jobs for 'build' optional (8d4ba5f)
- gitlab-ci: validate 'pre-commit' checks in 'commits' job (847e1ae)
- gitlab-ci: refactor images into 'containers/*/Dockerfile' (4589793)
- gitlab-ci: use 'HEAD~1' instead of 'HEAD^' for Windows compatibility (a1a724b)
- gitlab-ci: check only Python files in 'typings' job (7b1e895)
- gitlab-ci: detect and refuse '^wip|^WIP' commits (306b8a1)
- gitlab-ci: isolate 'commits' job to 'templates/commit.yml' (326c02c)
- gitlab-ci: migrate to 'pre-commit-crocodile/commits@2.0.0' component (af4854d)
- gitlab-ci: create 'hooks' local job for maintenance (62cd96a)
📦 Build
- pre-commit: migrate to 'pre-commit-crocodile' 1.1.0 (2fed3fc)
10.0.1 (2024-08-16)
🐛 Bug Fixes
- package: fix package name for 'importlib' version detection (07ada10)
📚 Documentation
- readme: refresh SVG preview for latest 10.0.0 release (f0eb20d)
⚙️ Cleanups
- hooks: implement evaluators and matchers priority parser (7d6a6d4)
10.0.0 (2024-08-15)
✨ Features
- cli: refactor CLI commands calls into 'entrypoint.py' file (0bdfcaf)
- cli: move '--no-color' to internal tools arguments (fa51999)
- gcil: migrate under 'RadianDevCore/tools' group (bc7ac72)
- gcil: migrate project path to original project alias 'gcil' (9195af2)
- 🚨 BREAKING CHANGE 🚨 | gcil: migrate to 'gcil' entrypoint and 'gitlabci-local' alias (ea12ef5)
- main: align 'RawTextHelpFormatter' to 23 chars columns (3d6864e)
- main: limit '--help' width to terminal width or 120 chars (16f3b7c)
- main: document optional '--' positional arguments separator (7881593)
- requirements: raise 'questionary' minimal version to 2.0.1 (811efa9)
- 🚨 BREAKING CHANGE 🚨 | setup: drop support for Python 3.6 (ba930f8)
- setup: add support for Python 3.12 (9612bb9)
- 🚨 BREAKING CHANGE 🚨 | setup: drop support for Python 3.7 due to 'questionary>=2.0.0' (5cc9560)
🐛 Bug Fixes
- cli: ensure 'Files.clean' is called before exiting entrypoint (a686405)
- gitlab: resolve 'possibly-used-before-assignment' warning (b17d4f5)
- gitlab: resolve '.local: version' SemVer versions comparisons (eed23ea)
- gitlab-ci, package, tests: refactor into 'DEBUG_UPDATES_*' (60aa866)
- menus: handle 'KeyboardInterrupt' exception from 'questionary' (f08f567)
- package, tests: refactor into 'DEBUG_VERSION_FAKE' (16933a0)
- parsers: ignore recommended version if running from sources (a4db3c6)
- settings: ensure 'Settings' class initializes settings file (a305663)
- setup: refactor 'python_requires' versions syntax (d3f5bb7)
- 🚨 BREAKING CHANGE 🚨 | setup: drop support for Python 3.7 due to 'questionary>=2.0.0' (7fbb38d)
- setup: resolve project package and name usage (cf3f866)
- src: use relative module paths in 'init' and 'main' (857630a)
- src: check empty 'environ' values before usage (4b037c0)
- src: resolve more Python typings issues (6aa9d70)
- src: refactor jobs parsers into models with Python typings (11674c5)
- updates: ensure 'DEBUG_UPDATES_DISABLE' has non-empty value (87a4192)
- updates: fix offline mode and SemVer versions comparisons (8a612c8)
🚜 Code Refactoring
- src: isolate all sources under 'src/' (bdc4967)
📚 Documentation
- cliff: document 'security(...)' first in changelog (c0a937a)
- cliff: use '|' to separate breaking changes in 'CHANGELOG' (e116bb5)
- gitlab-ci, preview: migrate from 'gitlabci-local' to 'gcil' (9c47875)
- license: update copyright details for 2020-2024 (4f8fd73)
- readme: refresh 'README.md' help informations (40972d2)
- readme: add 'Commitizen friendly' badge (f47adf8)
- readme, test: migrate names from 'gitlabci-local' to 'gcil' (faa919d)
- setup: migrate project name from 'gitlabci-local' to 'gcil' (b4ed553)
- setup: add 'gitlabci-local' to project keywords hint (fd9db20)
- setup: add 'gitlab' to project keywords hint (7208d5a)
- sonar-project: use 'gcil' name as SonarCloud project title (f90ce40)
- src: load heavy Python modules only upon use for faster launch (1b632f3)
🎨 Styling
- cli: refactor codestyle and cleanup 'add_argument' syntaxes (f1cadfc)
- cli: improve Python arguments codestyle syntax (d8c758a)
- commitizen, pre-commit: implement 'commitizen' custom configurations (2754b27)
- features: improve Python arguments codestyle syntax (91b1824)
- files: minor Python codestyle improvements to 'Files' class (2530b48)
- jobs: improve Python arguments codestyle syntax (3d90826)
- parsers: improve Python arguments codestyle syntax (fd5ada7)
- pre-commit: implement 'pre-commit' configurations (a561ed9)
- updates: ignore coverage of online updates message (6e32064)
🧪 Test
- console: resolve '--bash' interactive test timeout times (d28a834)
- interruptions: add coverage of 'Ctrl+C' job interruptions (64f57b8)
- interruptions: add coverage of 'Skipped (Interrupted)' job log (660728d)
- menus: ignore 'Ctrl+C' rare failures upon CI tests executions (32c4651)
- parallel: fix missing coverage of 'environ' value access (00abd64)
- permissions: avoid unsafe user permissions bypass and test (adad192)
- requirements: raise 'pexpect-executor' minimal version to 3.0.2 (dc232b7)
- requirements: raise 'pexpect-executor' minimal version to 3.1.0 (0f337ff)
- setup: disable sources coverage of the build script (dcc51fe)
- sockets: reset 'entrypoint' over 'docker:latest' images (d74ac5f)
- sockets: rehost 'docker:27-dind' and use it for specific image (f7337fe)
- tests: migrate from 'gitlabci-local' to 'gcil' in tests (532a0a8)
- windows: avoid failing upon 'where.exe' as WinPTY fake test (985f474)
- workdir: fix 'Job 2' job faulty name quotes (7461676)
⚙️ Cleanups
- colors: resolve 'pragma: no cover' detection (ac292f5)
- coveragerc: ignore 'preview.py' and 'setup.py' from coverage (e4a768a)
- dicts: minor codestyle typings improvements (ca15a74)
- docs: ignore 'line-too-long' warning over URL strips (7b9ee32)
- docs, setup: remove faulty '# pragma: exclude file' flag (5ed94fa)
- entrypoint: merge 'options.pipeline' and 'options.names' (4c613f0)
- examples, tests: add missing new line endings to all files (1c3be04)
- files: ignore coverage of 'kill(getpid(), ...)' call at exit (93122b2)
- gitlab, variables: resolve nested if 'python:S1066' warnings (276e3b7)
- mypy: convert 'mypy.ini' configuration to Linux EOL (fdbf4a9)
- platform: disable coverage of 'SUDO' without write access (3f3830b)
- pre-commit: disable 'check-xml' unused hook (ff60937)
- pre-commit: fix 'commitizen-branch' for same commits ranges (eadd1f0)
- runner: ignore coverage of 'GITLAB_CI_LOCAL_DEBUG' output (e723718)
- setup: refactor with more project configurations (68737b1)
- sonar-project: migrate 'sonar.sources' to 'src' sources (7673a49)
- sonar-project: remove 'docs' and 'setup.py' sources coverage (0fb1ef1)
- src: ignore 'import-error' over 'init' and 'main' (96fba1f)
- types/yaml: disable coverage of nested references limitations (67f5cad)
- vscode: remove illegal comments in 'extensions.json' (a6afe1a)
🚀 CI
- gitlab: support '-p VALUE, --parameter VALUE' in 'readme' job (1056ac7)
- gitlab: configure Git sources safeties for 'sonarcloud' job (f248f7f)
- gitlab-ci: ignore 'docker rmi' local failures if already in use (e4a859a)
- gitlab-ci: remove 'image:' unused global declaration (b2b971e)
- gitlab-ci: disable 'typing' mypy caching with 'MYPY_CACHE_DIR' (a279e82)
- gitlab-ci: implement 'readme' local job to update README details (11d30c2)
- gitlab-ci: use 'CI_DEFAULT_BRANCH' to access 'develop' branch (78e4a00)
- gitlab-ci: change commit messages to tag name (3ecee97)
- gitlab-ci: migrate from 'git-chglog' to 'git-cliff' (165b23c)
- gitlab-ci: support docker pull and push without remote (49dbcea)
- gitlab-ci: fix 'coverage:*' jobs for module sources in 'src' (bcc7c9c)
- gitlab-ci: install 'util-linux-misc' for 'more' in preview image (3a54a08)
- gitlab-ci: enable 'PYTHONUNBUFFERED' in 'preview' to unbuffer outputs (b33aebc)
- gitlab-ci: enable 'PYTHONUNBUFFERED' in tests to unbuffer outputs (575b7c1)
- gitlab-ci: migrate Windows tests to Python 3.10 using 'pywine:3.10' (ff6c186)
- gitlab-ci: migrate to 'pipx' installations on hosts tests (684f745)
- gitlab-ci: ignore 'docker rm' command result codes (c4a5617)
- gitlab-ci: raise oldest Python test images from 3.6 to 3.7 (eae00a6)
- gitlab-ci: define 'DOCKER_TLS_CERTDIR' to default empty value (dab3fab)
- gitlab-ci: revert to Docker in Docker without TLS certificates (8fcd8e3)
- gitlab-ci: raise latest Python test images from 3.11 to 3.12 (db7705c)
- gitlab-ci: raise oldest Python test images from 3.7 to 3.8 (9299f27)
- gitlab-ci: deprecate outdated and unsafe 'unify' tool (8a5f29c)
- gitlab-ci: install 'bash' in the ':preview' image (850da49)
- gitlab-ci: remove 'DOCKER_TLS_VERIFY' value for disabled state (df93567)
- gitlab-ci: migrate to Docker in Docker with TLS certificates (813733e)
- gitlab-ci: set 'FORCE_COLOR' and 'USER' for 'preview' job (443fbb8)
- gitlab-ci: install 'docker' CLI packages in Docker tests images (899ec54)
- gitlab-ci: raise unit tests jobs timeout to 25 minutes (127329f)
- gitlab-ci: watch for 'codestyle' and 'lint' jobs success (27c49f8)
- gitlab-ci: create 'commits' job to validate with 'commitizen' (0b032f3)
- gitlab-ci: watch for 'typings' job success (dc9fbbf)
- gitlab-ci: disable 'PYTHONDONTWRITEBYTECODE' for 'coverage:*' tests (686540e)
- gitlab-ci: fix 'commits' job for non-default branches pipelines (aed8f31)
- gitlab-ci, README, setup: migrate to 'main' delivery branch (07bfc3f)
- gitlab-ci, setup: migrate to 'src' sources management (7cbe17d)
- gitlab-ci, tests: use rehosted 'docker:dind' image for tests (e4dcbdf)
📦 Build
- hooks: create './.hooks/manage' hooks manager for developers (e7214a0)
- hooks: implement 'prepare-commit-msg' template generator (1f6ac50)
- pre-commit: enable 'check-hooks-apply' and 'check-useless-excludes' (345b8b9)
9.1.1 (2024-04-21)
📚 Documentation
- setup: resolve 'Statistics' URL for PyPI documentation (53faf0c)
⚙️ Cleanups
- run.sh: minor sed readability codestyle improvements (11ac316)
🚀 CI
- gitlab-ci: create 'clean' local cleanup job with 'sudo' (06c0341)
- gitlab-ci: explicit 'docker' service and isolate 'DOCKER_HOST' (2c409fe)
- gitlab-ci: use '/certs/client' TLS certificates from DinD (3400ea4)
- gitlab-ci: fail 'typings' job if latest changes raise warnings (86e302c)
- gitlab-ci: resolve 'typings' job for newly created sources (a81953c)
9.1.0 (2023-12-10)
✨ Features
- histories: prepare #273 by improving interrupted jobs history (e39204f)
- runner: prepare #273 by parsing runner script real result (ca22713)
- runner: implement #273 by using script result if interrupted (a789afc)
🐛 Bug Fixes
- parsers: resolve #272 with parameters values in 'matrix' (6e26997)
- parsers: resolve #271 through 'matrix' string values support (a2cd938)
- podman: resolve #274 by handling empty 'stdout' results (725b3c5)
🧪 Test
- console: finish #273 by testing '--debug' success results (4130ac4)
- console: finish #273 by accepting 'SIGTERM' result code (28a771d)
- console, notify, simple: kill after timeout in '--{bash,debug}' (0ef04e9)
- parallel: prepare #272 by fixing missing error detection (4246a0a)
⚙️ Cleanups
- run.sh: refactor with multiple jobs input support (20fc0d7)
- runner: add missing empty lines in the runner jobs' scripts (02e3d2d)
- vscode: configure 'shc' Shell scripts formatting options (4688850)
🚀 CI
- gitlab-ci: uninstall current package first in 'development' (a6166a1)
- gitlab-ci: fix stage for 'install' local installation job (6bc6202)
- gitlab-ci: migrate from 'only: local' to 'rules: if: $CI_LOCAL' (dc10f86)
- gitlab-ci: migrate from './setup.py' to 'python3 -m build' (da65744)
- gitlab-ci: deprecate 'development' for 'build' + 'install' (cdc2b50)
- gitlab-ci: deprecate 'dependencies' job using pip3 install (05a2a33)
- gitlab-ci: migrate 'deploy:*' from 'dependencies:' to 'needs:' (5752fb9)
- gitlab-ci: create specific 'codestyle' image for 'prepare' jobs (d5bb596)
- gitlab-ci: create specific 'build' image for 'build' job (7a30d9a)
- gitlab-ci: create specific 'deploy' image for 'deploy' jobs (80c8865)
- gitlab-ci: migrate from YAML '&/*' anchors to CI '!reference' (461af5e)
- gitlab-ci: disable pip cache directory in built images (6c7ea42)
- gitlab-ci: allow using 'IMAGE' variable to filter 'images' (e57557d)
- gitlab-ci: pull the previously built images first in 'images' (9078cad)
- gitlab-ci: install 'docs' and 'tests' requirements in ':preview' (5c79dfd)
- gitlab-ci: refactor all 'test' jobs into prebuilt images (9731083)
- gitlab-ci: add missing 'needs' sequences for 'deploy:*' jobs (7d7a099)
- gitlab-ci: migrate changelog commit to 'docs(changelog):' type (8a0166e)
9.0.0 (2023-12-03)
✨ Features
- jobs: implement #267 by adding 'CI_JOB_NAME_SLUG' variable (71160f2)
- jobs, parsers: implement #269 with 'CI_BUILDS_DIR' as parent dir (250617b)
- package: implement #262 through 'pipx' update support (7487420)
🐛 Bug Fixes
- parsers: resolve #270 with global 'image: variables expansion (2f236f9)
- parsers: finish #270 through preserved applied environment (9953e7d)
- parsers: resolve #270 by expanding jobs 'tags' lists (263f10f)
📚 Documentation
- preview: deprecate preview of the 'configurations' features (7d1112f)
- preview: improve timings and transitions of the preview (848326f)
- preview: add '--bash' and '--debug' preview examples (9fc5558)
- readme: improve the documentation and parameters readability (b96483f)
- test: prepare #262 by using 'pipx' for local installs (5e05ff9)
- test: fix URL links codestyle with Markdown syntax (732460a)
- changelog: regenerate release tag changes history (66f8fd3)
🧪 Test
- examples: fix duplicated 'Job 3 - 4' job name (99b8f3b)
- examples: resolve #255 by migrating to templates 'extends' (3221c10)
- examples: reduce the amount of jobs and simplify for preview (43394a5)
- sockets: allow 'mirror.gcr.io' unreliable pulls to fail (e559a85)
- sockets: use the self-hosted 'docker:dind' image instead (7716b30)
- variables: test #270 with global 'image:' variables usage (497246c)
⚙️ Cleanups
- jobs: finish #267 with minor Python codestyle improvement (a140b6b)
- package: finish #262 by ignoring lines coverage checks (c385922)
- parsers, types: minor Python typings syntax improvements (7b8dc49)
- run: migrate to 'group:name' job names without quotes (2c75e90)
🚀 CI
- chglog: allow 'ci' as 'CI' Conventional Commits types (47854f0)
- gitlab-ci: migrate 'git-chglog' from 0.9.1 to 0.15.4 (3c2aaf3)
- gitlab-ci: hide 'Typings' permanent failed errors as warnings (0b01d6c)
- gitlab-ci: raise minimal 'gitlabci-local' version to 8.0 (16dfe58)
- gitlab-ci: refactor jobs names lowercase and 'group:name' (37563c1)
- gitlab-ci: create 'gitlabci-local:preview' image with 'docker' (749c62b)
- gitlab-ci: raise minimal 'gitlabci-local' version to '9.0' (9861c52)
- gitlab-ci: prepare #262 by using 'pipx' for local installs (b68cf90)
- gitlab-ci: isolate 'changelog.sh' to '.chglog' folder (e3a2b5a)
- gitlab-ci: deprecate 'py3.11:preview' job (9416c62)
8.1.0 (2023-09-17)
✨ Features
- implement #266: add support for Python 3.11 (d56d2dc)
🐛 Bug Fixes
- resolve #261: strip 'BOLD' and 'RESET' colors last for boxes (629c917)
- prepare #264: detect empty included files like GitLab (ab1e3d4)
- resolve #260: implement 'include:' wildcard paths support (ee7af1a)
- resolve #265: allow execution in PermissionError paths (e003254)
- resolve #258: catch 'Engine' PermissionError rare failures (68694c2)
- finish #266: add 'runroot/graphroot' to fix Podman Python 3.11 (16967bf)
📚 Documentation
- changelog: regenerate release tag changes history (d2b147d)
⚙️ Cleanups
- finish #260: ignore coverage of failure cases in '__merges' (23e06c4)
- resolve #263: make missing engines hints easier (a1e077a)
- finish #265: disable coverage of rare fallback cases (10a9ed6)
8.0.0 (2023-07-26)
✨ Features
- implement #257: default to Docker engine even if Podman exists (c1d05ac)
🐛 Bug Fixes
- resolve #256: merge all dict templates upon includes (c30e028)
📚 Documentation
- readme: hide more sections behind an expand section header (6d5fd10)
- changelog: regenerate release tag changes history (10653e9)
7.2.0 (2023-07-08)
🐛 Bug Fixes
- resolve #252: fix support for 'include: /' root relative paths (264add6)
📚 Documentation
- changelog: regenerate release tag changes history (588cf87)
🧪 Test
- prepare #252: add 'includes' tests for correct relative paths (bbe61a3)
⚙️ Cleanups
- coverage: use '_' for unused in 'DockerEngine' and 'Boxes' (2324702)
7.1.0 (2023-07-08)
🐛 Bug Fixes
- resolve #251: add support for 'include: List[str]' items (a9b8537)
- prepare #254: allow 'colored' library to be missing or unusable (21406cf)
- resolve #254: fix compatibility with Colored 2.x versions (6dd1791)
- finish #254: simplify 'colored' library usage without wrappers (71ff5c0)
- gitlab-ci: avoid relying on CI/CD defined 'DOCKER_HOST' value (9280ec6)
📚 Documentation
- changelog: regenerate release tag changes history (74db723)
🧪 Test
- prepare #250: create 'when: manual' only jobs simple tests (aecba10)
7.0.1 (2023-04-17)
✨ Features
- implement #249: support merging '.local: volumes' lists (5a49f4b)
📚 Documentation
- changelog: regenerate release tag changes history (e4c7b52)
⚙️ Cleanups
- gitlab-ci: add 'Install' local job to install built '.whl' (c10e9e4)
- gitlab-ci: cleanup intermediates and refactor local paths (133ad42)
- setup: add 'setup.py' script shebang header (41012ae)
- typings: minor typings fixes and improvements (2fcb415)
7.0.0 (2023-04-08)
✨ Features
- finish #239: implement '--no-color' and related settings (56ec0c0)
- implement #243: allow setting 'no_verbose' for jobs scripts (e7876ec)
- implement #244: allow .local: image: entrypoint overrides (2e4c369)
- implement #245: add 'CI_LOCAL_USER_HOST_{GID,UID,USERNAME}' (cd10c43)
- implement #246: support merging '.local' included nodes (66bb2a6)
- prepare #247: recommend installation of version '>=VERSION' (5d9c445)
- implement #247: implement recommended '.local' version (ddcf5b3)
- implement #248: add support for standard 'version' (6504618)
🐛 Bug Fixes
- prepare #238: resolve using wrong working directory for nested includes using
include:project
(ae6802c) - resolve #239: ensure 'NO_COLOR' also avoids questionary colors (eee751a)
- prepare #240: ensure 'prompt-toolkit' is explicitly updated (59b255b)
- implement #241: improve bool settings and unset with 'UNSET' (50d0327)
- finish #240: depend to 'prompt-toolkit' like 'questionary' (c72d24a)
- prepare #238: ensure merged included data respect its order (2585f26)
- finish #238: handle nested local directories and add tests (799c224)
- resolve #242: make declared local include:project mandatory (14bef7a)
📚 Documentation
- finish #240: refactor and document '<4.6.0' update issues (a0dcc7c)
- readme: refactor the '.local' node with proper documentation (2fdb441)
- readme: hide less relevant information in expandable details (a22f8f2)
- changelog: regenerate release tag changes history (7e43fa4)
🧪 Test
- finish #236: fix interactive console tests and simulation (b355e68)
- finish #236: workaround Podman leftover scripts for now (5f7555b)
- coverage: cover untested lines of colors and includes errors (8dbe2b4)
⚙️ Cleanups
- finish #238: minor codestyle and comments changes (ecdbe9b)
- gitlab-ci: make 'apk' Alpine 'Typing' installation quiet (1863c52)
- prepare #240: support CLI only usage without 'questionary' (8eca7f1)
- prepare #239: evaluate and prepare colors only upon use (e170490)
- gitlab-ci: enable mypy colored outputs for readability (4185ab3)
- gitlab-ci: ensure jobs run upon 'requirements/*' changes (2513299)
- gitlab-ci: use the self hosted 'alpine/git' container image (912a46b)
- finish #238: minor lint codestyle improvement (957b25c)
- coverage: missing modules fallbacks coverage improvements (237e094)
- package: import 'UpdateChecker' libraries only upon use (91420dd)
- prepare #247: make the 'Updates.message' API a staticmethod (a41b165)
- gitlab-ci: enable signoff of changelog commits (a733e82)
6.0.0 (2023-02-22)
✨ Features
- prepare #237: migrate 'CI_LOCAL_NO_GIT_SAFETIES' to settings (93ce0bd)
- prepare #237: migrate 'CI_LOCAL_NO_SCRIPT_FAIL' to settings (c3e424b)
- implement #237: create '--set GROUP KEY VAL' settings access (a9fbf53)
- prepare #236: add 'Interrupted' mode for jobs interruptions (af6a74d)
- implement #236: implement inline shell console with settings (6336c46)
- finish #236: add '.local: no_console' configuration support (c695762)
📚 Documentation
- changelog: regenerate release tag changes history (a52fe5f)
⚙️ Cleanups
- prepare #237: improve settings getter handlings and syntax (bc0546c)
- finish #236: improve result text issue raised by SonarQube (35a10cb)
5.5.0 (2023-02-16)
✨ Features
- implement #235: pass commands with '-C' over 'script:' (19fa178)
📚 Documentation
- changelog: regenerate release tag changes history (3b426bc)
⚙️ Cleanups
- vscode: configure default formatters for YAML and Markdown (7885601)
- pylint: resolve 'superfluous-parens' new warnings (6c07d3e)
5.4.1 (2023-01-22)
🐛 Bug Fixes
- finish #234: respect global 'image' before defaulting to ruby (1dce511)
📚 Documentation
- changelog: regenerate release tag changes history (9391abb)
5.4.0 (2023-01-15)
✨ Features
- implement #234: add support for default ruby:3.1 image (4a0e44c)
- prepare #233: refactor and migrate from 'oyaml' to 'PyYAML' (c7f851b)
- implement #233: add support for '!reference' YAML resolving (a955b28)
🐛 Bug Fixes
- continue #170: resolve 'Dicts.find' coverage mismatch issue (031a6ff)
📚 Documentation
- finish #233: add '!reference' examples in supported features (7ccccbb)
- changelog: regenerate release tag changes history (29a8799)
🎨 Styling
- continue #170: minor typings improvements in 'gitlab.py' (b88c31a)
🧪 Test
- finish #232: coverage of double 'include: project:' nodes (b81af59)
- finish #234: fix 'CI_LOCAL_IMAGE_DEFAULT' vars for coverage (7e4833c)
⚙️ Cleanups
- gitlab-ci: run mypy Typings on modified files first (58d7d48)
- gitlab-ci: raise unit tests timeout to 20 minutes (8e9af83)
- finish #233: add coverage filters of fallback conditions (cc908d3)
5.3.0 (2023-01-10)
✨ Features
- implement #229: add 'CI_LOCAL_HOST' for host runner env (af5362a)
- implement #230: allow filtering for jobs or stages names (a313f53)
- resolve #231: avoid notify events with bash / debug / CTRL+C (6ec88a7)
- implement #232: support 'include: project:' local clones (06dda84)
📚 Documentation
- changelog: regenerate release tag changes history (6302910)
⚙️ Cleanups
- gitlab-ci: add tests successful output and sudo preparation (5ceccfe)
- continue #170: implement 'NamedTuple' typed classes (8ebf17f)
- continue #170: refactor engines with typing codestyle (ce49642)
- continue #170: minor simple typing codestyle improvements (a190f77)
5.2.0 (2022-12-03)
✨ Features
- implement #227: allow mounting SSH keys as a specific user (5d2b716)
🐛 Bug Fixes
- resolve #228: fix SSH keys mounting path and support (e7c350a)
📚 Documentation
- changelog: regenerate release tag changes history (3c0b53c)
⚙️ Cleanups
- prepare #227: isolate arguments default values in Bundle (92d2ede)
- prepare #227: always set arguments explicit 'store' actions (9c2e5f4)
- finish #225: resolve 'Platform.display()' return typing (a63f3bd)
5.1.0 (2022-11-30)
✨ Features
- implement #223: add support for '.local: variables:' node (55167d3)
- implement #224: add ".local: shell:" for bash/debug (bd7dd90)
- implement #225: add ".local: display:" DISPLAY binding (d09a27a)
- implement #226: add ".local: notify:" notifications support (ba05b8b)
🐛 Bug Fixes
- resolve #223: refactor and resolve environment vars priority (73745ba)
- finish #223: remove unused globals setter (a680b0f)
📚 Documentation
- changelog: regenerate release tag changes history (3a5986e)
⚙️ Cleanups
- coverage: minor sources coverage improvements (a88c5ca)
- finish #170: resolve 'PermissionError' failure raising (791b3e2)
- typings: minor sources typings improvements (ecbfaf1)
- prepare #223: implement GitLab job 'Variant' type wrapper (1da0c50)
- typings: more minor sources typings improvements (178ded4)
5.0.0 (2022-11-16)
✨ Features
- implement #221: add '.local: no_regex' configuration support (2441b41)
- implement #219: implement support for nested includes (1075259)
🐛 Bug Fixes
- resolve #220: avoid "VAR=$VAR_NAME" expand failures (437fa9c)
- resolve #222: preserve stage in multiple 'extends:' array (8846a01)
📚 Documentation
- changelog: regenerate release tag changes history (78e7516)
🎨 Styling
- prepare #170: implement mypy Python linting features job (bac4ad9)
- prepare #170: sort 'menus.py' and 'gitlab.py' methods (65683a5)
- resolve #170: implement simple standard Python typings (fb7c23c)
4.8.1 (2022-10-19)
🐛 Bug Fixes
- resolve #218: config runner jobs' variables before expansions (abb3b43)
📚 Documentation
- changelog: regenerate release tag changes history (8efb5ae)
🧪 Test
- prepare #218: use 'CI_COMMIT_*' inside job variables (7a6fb3f)
⚙️ Cleanups
- gitlab-ci: make 'apk add' Alpine installations quiet (20ceb75)
4.8.0 (2022-09-19)
✨ Features
- implement #215: add support for GIT_CLONE_PATH workdirs (3e8747e)
- implement #216: implement SSH and SSH agent binds (95e78fd)
📚 Documentation
- changelog: regenerate release tag changes history (a767aef)
🧪 Test
- finish #216: resolve ~/.ssh existence for Podman jobs (89d8bba)
⚙️ Cleanups
- finish #216: refactor job options into a properties class (526fb2c)
- finish #216: resolve 'SSH_AUTH_SOCK' code coverage (209c9d9)
4.7.3 (2022-09-06)
🐛 Bug Fixes
- resolve #214: fix stage issues when using unknown templates (f754a8e)
📚 Documentation
- changelog: regenerate release tag changes history (5238362)
4.7.2 (2022-09-06)
📚 Documentation
- resolve #213: fix the GitLab owner path URLs for PyPI (49f3179)
- changelog: regenerate release tag changes history (faaae16)
4.7.1 (2022-09-05)
✨ Features
- resolve #212: allow incomplete 'script' templates by default (23a65e2)
🐛 Bug Fixes
- resolve #211: resolve unknown self-nested variables loops (d803be9)
📚 Documentation
- changelog: regenerate release tag changes history (ffcfe25)
4.7.0 (2022-09-02)
🐛 Bug Fixes
- resolve #210: resolve self-nested variables loops (cf4cc37)
📚 Documentation
- changelog: regenerate release tag changes history (39ed5f5)
⚙️ Cleanups
- tests: resolve 'colored' forced colors in CI tests (e6c0520)
- vscode: minor old .gitignore leftover cleanup (19bcd92)
- setup: refactor and unify projet build with constants (35d2eff)
Parsers
- implement !5: add support for prefilled variables (67763e4)
4.6.2 (2022-08-09)
✨ Features
- implement #209: add 'CI_PROJECT_NAME' env variable (bed4906)
- implement #209: add 'CI_COMMIT_REF_{NAME,SLUG}' env variable (cb7f58a)
- implement #209: add 'CI_PROJECT_NAMESPACE' env variable (7b4a105)
📚 Documentation
- document #209: add references for the new 'CI_*' variables (b6cd0a6)
- changelog: regenerate release tag changes history (18d5909)
⚙️ Cleanups
- finish #208: minor SonarCloud codestyle improvement (e2de2d8)
- finish #209: resolve CI Git variables SonarCloud coverage (82b15c0)
- finish #207: fix silent 'after_script' SonarCloud coverage (15bc1a7)
4.6.1 (2022-08-09)
🐛 Bug Fixes
- resolve #207: resolve 'local' handling as being silent (b58c37e)
- resolve #206: handle images nested environment variables (c1c7bf3)
- resolve #208: handle unknown variables in Environment.expand (74f33c7)
📚 Documentation
- changelog: regenerate release tag changes history (4920980)
🧪 Test
- finish #208: fix 'project' expecting broken nested variables (9c40904)
⚙️ Cleanups
- finish #75: resolve coverage of unknown configuration types (3f9747f)
- gitlab-ci: enforce unknown 'SUITE' filtering unknown suites (1bdbf70)
4.6.0 (2022-08-01)
✨ Features
- prepare #75: migrate from 'PyInquirer' to 'questionary' (6555a03)
- resolve #205: migrate to Python 3.10 version and images (8987db7)
📚 Documentation
- preview: refresh the SVG for the latest 4.6.0 release (bbc3e91)
- changelog: regenerate release tag changes history (6d5b483)
⚙️ Cleanups
- gitlab-ci: minor 'pip3' syntax improvement (e6fdcd0)
- package: minor Python codestyle improvement on str.split() (63d3373)
- requirements: enforce version 5.6 of 'gitlab-release' (0022529)
- requirements: upgrade to 'pexpect-executor' version 2.1.0 (3a6d62f)
4.5.2 (2022-07-30)
✨ Features
- prepare #203: add section comments to the entrypoint script (22a4ee9)
- prepare #203: implement entrypoint printer with '--scripts' (645d968)
- implement #203: add support for new Git safeties safeguards (34df7c2)
🐛 Bug Fixes
- prepare #203: ensure flushed script file is actually open (4efb31c)
📚 Documentation
- changelog: regenerate release tag changes history (92f9f2a)
🧪 Test
- validate #203: add tests for Git safeties implementation (a962848)
4.5.1 (2022-07-30)
✨ Features
- finish #202: implement jobs list if PyInquirer is missing (30f4e6c)
📚 Documentation
- changelog: regenerate release tag changes history (81ac5a8)
🧪 Test
- registry: migrate from DockerHub to GitLab project images (99f9abf)
⚙️ Cleanups
- cleanup #202: minor codestyle improvements from SonarCloud (4372765)
- parsers: minor codestyle improvements from SonarCloud (b84e805)
- cli, package: minor codestyle improvements from SonarCloud (be30d24)
- sonar: declare Python versions for SonarCloud settings (e19e15d)
- coverage: disable coverage of missing PyInquirer imports (48e333b)
- engines: resolve SonarCloud warnings with a base interface (c11be43)
- coverage: resolve coverage issues for SonarCloud analysis (d6dc023)
4.5.0 (2022-07-29)
🐛 Bug Fixes
- resolve #202: make PyInquirer optional for Python 3.10 use (60ca8a9)
📚 Documentation
- changelog: regenerate release tag changes history (9489525)
🧪 Test
- prepare #202: add Python 3.10 Docker job test (ed5a0a9)
⚙️ Cleanups
- gitlab-release: migrate back to upstream gitlab-release 5.6 (8d4b054)
- vscode: cleanup deprecated Visual Studio Code extensions (b5812db)
- lint: resolve PyLint warnings and codestyle improvements (20c1f42)
4.4.0 (2022-04-09)
✨ Features
- implement #200: add support for '.pre' and '.post' stages (54ffc26)
🐛 Bug Fixes
- resolve #201: handled nested 'extends' incomplete jobs (b1cfdd1)
📚 Documentation
- changelog: regenerate release tag changes history (545070e)
4.3.0 (2022-03-22)
✨ Features
- implement #194: handle 'matrix' nodes as job nodes variants (853ea69)
🐛 Bug Fixes
- implement #199: handle 'bash' entrypoints if available (b3406d8)
- gitlab-release: import from Git commit 0aeba58a for tests (025b9b0)
📚 Documentation
- document #194: add 'parallel: matrix:' references in README (e40e1f0)
- changelog: regenerate release tag changes history (1ae392e)
🧪 Test
- finish #194: ensure explicit job matrix names can be called (0b2976d)
- finish #194: drop 'PYTHON_VERSION' from CI jobs before tests (59bbfbf)
⚙️ Cleanups
- finish #194: minor codestyle and lint cleanups (ed93056)
- gitlab-ci: adapt 'prepare' and 'build' jobs to '3.9-alpine' (3249867)
- tests: migrate 'parallel' jobs to 'python:*-alpine' images (7e4b318)
- gitlab-ci: use 'tobix/pywine:3.7' for 'Coverage Windows' (6aeb02a)
- gitlab-ci: resolve 'Deploy Release' Alpine missing packages (76d52ae)
4.2.0 (2022-03-09)
✨ Features
- implement #198: add support for 'CI_LOCAL_NETWORK' env var (c30853c)
🐛 Bug Fixes
- resolve #193: link against 'Releases' instead of 'Tags' (2b23222)
- resolve #195: expand environment vars in 'services:' nodes (c52d850)
- resolve #196: resolve infinite colors loops in 'Strings.wrap' (41952f0)
- resolve #197: detect Podman containers 'start' failures (d961e39)
- gitlab-release: fix release creation with gitlab-release 5.2 (b4f6338)
📚 Documentation
- changelog: regenerate release tag changes history (d80eebb)
🧪 Test
- prepare #197: accept missing workdir folder fails on Podman (2e0d1ef)
- coverage: ensure 'colored' wraps are tested in 'Boxes.print' (15f4ada)
- prepare #197: accept the 'bridge' network fails with Podman (03a7e85)
- prepare #197: accept unknown workdir folder fails on Podman (f7d3950)
- finish #198: extend coverage for 'CI_LOCAL_NETWORK' env var (b0fb19c)
- prepare #197: accept faulty workdir folder fails on Podman (7a1725a)
- finish #196: ensure all colored outputs pass the coverage CI (726fa0f)
⚙️ Cleanups
- requirements: migrate back to gitlab-release 5.2 and higher (eaae566)
- gitlabci-local: lint warnings and Python 3.6 f-strings (a53c5d3)
- requirements: upgrade to Docker 5.0.3 and enforce requests (f52800b)
- gitlab-ci: resolve Podman tests due to libseccomp2 version (6e14d4d)
- gitlab-ci: resolve Podman unqualified docker.io images pull (095b30b)
- gitlab-ci: use 'log_driver = "k8s-file"' and 'storage.conf' (0b63896)
- gitlab-ci: use 'host' network mode for all Podman tests (8209f24)
- coverage: ignore the unused 'Strings.random' method (6e83d8a)
4.1.3 (2021-07-12)
🐛 Bug Fixes
- finish #187: properly detect the UTF-8 stdout encoding (29723c3)
📚 Documentation
- resolve #189: explicit support for Git Bash / CMD on Windows (3e75cb2)
- changelog: regenerate release tag changes history (6827fb1)
⚙️ Cleanups
- coverage: remove unused function 'docker / _container' (3e897e5)
4.1.2 (2021-07-11)
🐛 Bug Fixes
- resolve #187: check support for non-UTF-8 boxes outputs (1b9f858)
- resolve #187: check support for non-UTF-8 histories outputs (9f683c2)
📚 Documentation
- changelog: regenerate release tag changes history (55c7142)
⚙️ Cleanups
- gitlab-ci: restore needs: 'Coverage Windows' for SonarCloud (aefa37d)
4.1.1 (2021-07-11)
✨ Features
- implement #184: add support for the 'default:' node (d745112)
🐛 Bug Fixes
- resolve #192: support empty included files merges (bcc11f7)
- resolve #192: also merge the 'default' node as additions (28847eb)
📚 Documentation
- changelog: regenerate release tag changes history (5698509)
🧪 Test
- finish #191: run 'includes/variables' test and run on host (3abbfe7)
⚙️ Cleanups
- prepare #184: refactor '__globals' without iterators (b05c211)
- lint: resolve all new pylint warnings in the sources (632a0ef)
- lint: reduce and resolve some pylint disabled rules (ffaa8eb)
- tests: run the 'disabled' tests on the native host (ad11818)
- requirements: use my fixed 'gitlab-release' personal fork (839562a)
- gitlab-ci: fix 'Coverage Windows' issues with pip and wheel (c2a5ec0)
4.1.0 (2021-07-08)
✨ Features
- implement #183: pull the containers images of 'services:' (0b3e2d6)
- implement #182: add support for migration paths in 'Updates' (f09b751)
- prepare #181: bind DinD sockets if services are unsupported (c181cdb)
- resolve #191: add support for 'variables:' includes (4fe0138)
🐛 Bug Fixes
- resolve #183: ensure multiple global services are all added (baef11a)
- resolve #185: use the 'podman' binary variable in 'cmd_exec' (4c4bedf)
- prepare #181: drop support for engine partial name inputs (e68827c)
📚 Documentation
- changelog: regenerate release tag changes history (db61990)
🧪 Test
- finish #183: pull existing image in sockets services tests (85aab56)
⚙️ Cleanups
- gitlab-ci: minor codestyle cleanups of requirements (e852aca)
- gitlab-ci: use the standard 'docker:dind' service image (f3d0d56)
- markdownlint: extend line lengths to 150 characters max (7940b7e)
- platform: minor codestyle improvement for print flush (ed7e9aa)
- prepare #183: hold services name in a data dictionnary (06ff3cf)
- prepare #183: extract the services 'alias' key as well (6494771)
- prepare #185: import engine modules per class directly (123f964)
- prepare #185: use 'name' and 'folder' as Scripts properties (d63d9c7)
- prepare #185: isolate Volumes string builder to 'stringify' (54a607a)
- prepare #181: get 'random' strings with letters and digits (91c5a13)
- prepare #181: add 'quote' method for the Strings class (b7a9fc7)
- gitlab-ci: ignore Pylint 'duplicate-code' warnings (9cfd862)
- gitlab-ci: use 'needs' instead of 'dependencies' for tests (3af9ef7)
- gitlab-ci: migrate to Podman 3.0.x configuration files (44bc735)
- finish #185: refactor with container members and properties (b5149ff)
- prepare #181: pass 'services' and script folder to 'run()' (455f691)
- prepare #185: handle the 'sockets' feature at engine level (219121c)
- cleanup #181: drop the unused 'engine.services' property (ec5c93d)
- types: disable coverage of Windows specific or unused codes (f30ebc7)
- gitlab-ci: run tests only on Python 3.6 (old) and 3.9 (new) (c5ba6dc)
- gitlab-ci: ensure 'Build' runs without jobs dependencies (4b76f9f)
- finish #185: avoid the unreliable del 'remove()' calls (d6150f6)
- gitlab-ci: improve 'Python Local' tests with sudo installs (79dee6d)
- gitlab-ci: add tests execution times with a 'time' wrapper (3a8fa50)
- tests: configure 'pexpect-executor' delays to reduce times (da1fcc6)
- histories: use fake durations for 'time' coverage tests (234567b)
- tests: reduce some tests duration with native runs (467a01b)
- vscode: ensure Prettier formatters use single quotes only (917296a)
- gitlab-ci: disable 'Coverage Windows' for the moment (30ac9c6)
4.0.0 (2021-02-21)
✨ Features
- implement #160: enable the sockets option with dind services (9ce6257)
- resolve #166: add support for DOCKER_HOST sockets (61da4b3)
- resolve #161: add support for Docker sockets on Windows (3043894)
- resolve #165: handle empty job stages and missing stages (cfd3cd8)
- implement #167: support Podman default network interface (367e5b8)
- resolve #168: explicitly use docker.io registry for Podman (4694738)
- implement #169: add pipeline / jobs histories and refactor (b191579)
- implement #174: set CI_COMMIT_SHA and CI_COMMIT_SHORT_SHA (3292b40)
- resolve #176: share DOCKER_CERT_PATH and DOCKER_TLS_VERIFY (99c2c73)
- prepare #118: add an 'EXPERIMENTAL' to enable Docker sockets (92e2e57)
🐛 Bug Fixes
- resolve #163: handle APIError fails in docker.supports() (21ab0b0)
- resolve #164: avoid --debug features if interrupted by Ctrl+C (f62902a)
- prepare #165: consider nodes containing 'script' as jobs (0548f44)
- resolve #172: fix one part .local:volumes items (b6d050d)
- resolve #173: expand variables from the workdir value (71a1eaa)
- finish #160: add support for the name: variant of 'services:' (11f6387)
- resolve #175: ensure when: always jobs always run (5f115a1)
- finish #174: add 'git' environment path and run local tests (4284059)
- resolve #177: prepare version values only if needed (bb9aed8)
- finish #177: add coverage for daily checks after a pipeline (78817aa)
- finish #160: fix handlings of 'dict' or 'str' services lists (457c0ab)
- finish #160: add coverage of all environment variables (e0b122c)
- finish #177: add coverage after daily checks with a pipeline (e077be2)
- finish #160: remove unneeded 'dict' iterator on services type (f77a0c8)
- resolve #178: support all types of include: configurations (9f228c5)
- resolve #179: expand home paths for volumes and workdir (3ffdba4)
- finish #179: avoid resolving ~ on Windows hosts and refactor (629a6e7)
- resolve #171: resolve support of Windows paths volumes mounts (1797f40)
- finish #171: support ';' separated git-bash paths expansions (ba88d62)
- finish #171: fixup MSYS paths translations upon volumes parse (bb0fefc)
📚 Documentation
- finish #174: document CI_COMMIT_SHA and CI_COMMIT_SHORT_SHA (621e245)
- finish #160: document the 'services:' supported nodes (4c42e4f)
- finish #178: document the 'include:' supported nodes (c73bc58)
- preview: refresh the SVG for the latest 4.0.0 release (bd54f4f)
- changelog: regenerate release tag changes history (9f15702)
🧪 Test
- test #160: run sockets tests only Docker supported hosts (10c23c8)
- test #167: add a coverage test for engine network modes (a993aa4)
- test #160: ensure DOCKER_HOST points to a working deamon (3f2dba7)
- test #160: adapt DOCKER_HOST for GitLab CI tests (1c73bfb)
- test #160: resolve DinD pull executions without a timeout (2f8f978)
- test #160: resolve the DOCKER_HOST hostname to IP for DinD (7e9a98b)
- finish #165: add 'trigger:' coverage with a faulty 'script:' (70324cd)
- test #178: validate all types of include: configurations (ed15528)
- finish #179: add a test with the "${PWD}" absolute path env (a78bb87)
- finish #179: minor fixes of 'home' tests with /root workdir (414938c)
⚙️ Cleanups
- document #160: mention sockets are enabled by dind services (565bf18)
- resolve #162: specific warnings about unsupported features (6e4b64c)
- finish #162: mention real paths are available on macOS (d66af16)
- gitlab-ci: always push to SonarCloud on develop / master (35865d7)
- finish #160: unify the configurations cleanup in a function (e514635)
- finish #166: disable coverage of DOCKER_HOST offline cases (8af1c4e)
- features: isolate the pipelines filter into a function (7abcc8f)
- finish #160: cleanup 'null' empty configurations fields (4c005f2)
- finish #169: use integer durations to avoid '1 seconds' (c8df243)
- gitlab-ci: add 'Python DinD' local tests job with DinD (7112003)
- finish #169: remove the unused 'StageHistory.get' function (05a54f7)
- finish #160: disable coverage of function 'Outputs.warning' (ae4d8b0)
- coverage: disable coverage of Windows specific sections (35d9b39)
◀️ Revert
- finish #168: let fixed Podman resolve short-names again (8a23830)
3.1.2 (2021-02-09)
🐛 Bug Fixes
- resolve #159: support nested anchor scripts syntaxes (b065b47)
📚 Documentation
- changelog: regenerate release tag changes history (da12ffe)
3.1.1 (2021-01-31)
🐛 Bug Fixes
- resolve #158: prevent regex matches in interactive menus (a82bd73)
📚 Documentation
- changelog: regenerate release tag changes history (4e17da1)
3.1.0 (2021-01-30)
✨ Features
- implement #157: see the job name upon result for readability (41248b5)
🐛 Bug Fixes
- resolve #156: expand nested variables values like GitLab CI (4c6bd45)
📚 Documentation
- changelog: regenerate release tag changes history (ac5b27b)
🧪 Test
- gitlab-ci: raise libseccomp2 to 2.5.1-1 for Podman tests (e40c8c9)
- test #156: resolve 'project' variables being now handled (2e92347)
- gitlab-ci: fix Podman VFS storage driver with STORAGE_DRIVER (c6eb01e)
⚙️ Cleanups
- run: handle scripts failures upon job lines executions (d9b032d)
- test: minor codestyle improvements in TEST.md (818a0bf)
- gitlab-ci: remove unnecessary 'wget' for 'Coverage Windows' (96dd975)
- gitlab-ci: allow to use the 'SUITE' for regular tests jobs (67f2264)
- readme: resolve a minor typo about --settings in README (667e380)
- readme, test: add Android 11 to the tested environments (02a3065)
- gitlab-ci: synchronize stderr outputs with stdout outputs (c667947)
- docs: refresh the preview SVG for the latest 3.1.0 release (36a8e7a)
3.0.2 (2020-12-23)
🐛 Bug Fixes
- resolve #121: handle broken pipe upon logs outputs (6b31aee)
📚 Documentation
- changelog: regenerate release tag changes history (7502f1e)
🧪 Test
- regex,simple: rename the jobs' stages to match the tests (56aa90c)
⚙️ Cleanups
- gitlab-ci: run develop pipeline upon 'CHANGELOG.md' changes (fadb506)
- features: turn the 'launcher' into a pipeline feature class (828ef07)
- parsers: isolate 'parser.read' to a 'Parsers' class (9c8b5e6)
- parsers: isolate 'parse' and 'stage' to the 'GitLab' class (ab0f7da)
- features: fix 'PipelinesFeature' feature class name (46b6367)
- features: isolate 'select' and 'configure' to 'Menus' class (be25868)
- features: rename 'jobs' feature to 'ConfigurationsFeature' (dc398d3)
- jobs: isolate 'runner' function to a 'Jobs' class (c881aa8)
- jobs: isolate script sources to a 'Scripts' class (64a4324)
- bundle,jobs: isolate env binary paths and jobs variables (b69f8fc)
- vscode: ignore '.ropeproject' folder from tracked files (d3a80e3)
- jobs: refactor 'run()' into an 'Outputs' class and methods (027b355)
- parsers: refactor 'parse()' into separated methods (ebf19ed)
3.0.1 (2020-12-22)
✨ Features
- implement #155: add arguments categories for readability (b741d82)
📚 Documentation
- changelog: regenerate release tag changes history (977b949)
⚙️ Cleanups
- prints: isolate PyInquirer themes into a 'Menus' class (50c485b)
- cli: isolate the CLI main entrypoint to a cli/ submodule (1d8c83a)
- types: reduce unrequired nested if conditions (a9c32d0)
3.0.0 (2020-12-22)
🐛 Bug Fixes
- resolve #151: enforce WinPTY and improve coverage (7bcd334)
- resolve #151: configurable WinPTY and limited coverage checks (ced507b)
- resolve #152: avoid sudoer access from root user (7435544)
- resolve #153: ensure signals are restored and reraised (77ec442)
- resolve #154: preserve variables priority and override order (ab677a7)
📚 Documentation
- readme: minor codestyle cleanups of the Linux support table (ec4e24e)
- readme: add missing modules dependencies and references (bb0093c)
- changelog: regenerate release tag changes history (8754fa3)
🧪 Test
- images: use pexpect-executor to pull with an interactive TTY (8e47309)
⚙️ Cleanups
- changelog: add a cleanup option to hide changelog commits (962fc7d)
- changelog: configure groups titles detailed map for chglog (6709055)
- vscode: disable chords terminal features to allow Ctrl+K (26eecb1)
- gitlab-ci: set host and tool envs for pexpect-executor (ce50a96)
- gitlab-ci: use updated 'docker:19-dind' image for 19.03.14 (b9e0aef)
- gitlab-ci: hide pip warnings and coverage report errors (c28199b)
- prepare #149: add simulated macOS environment and cleanup (6b0171e)
- implement #149: handle simulated settings for virtual tests (52aa362)
- test #149: add macOS simulated test for settings coverage (c7e2963)
- coverage: ignore safety unused code lines (b3e23af)
- vscode: ignore '.tmp.entrypoint.*' files in VSCode (5bfe05a)
- engines: refactor 'help' into 'cmd_exec' for coverage tests (d785f52)
- coverage: add '.coveragerc' to strip Linux / Windows paths (661daef)
- gitlab-ci: add 'Coverage Windows' tests with PyWine image (2b384a1)
- resolve #150: restrict Dicts iterators and improve coverage (957d35f)
- test: add sudoer '--debug' Podman engine test (0ecd180)
- gitlab-ci: ensure coverage XML files use relative sources (750a3f7)
- types: ignore 'Volumes' Windows case from coverage results (9693b22)
- gitlab-ci: unify local VSCode coverage to a common XML file (cdd8da7)
- test #152: implement permissions tests for temp files (a4d60ed)
- engines: ignore 'exec()' from coverage rather than comment (a87dab8)
- gitlab-ci: unify template scripts and add stages comments (4b7ed17)
- test #153: test reraised signals and 'Files.clean' coverage (f67a5d0)
- gitlab-ci: use 'pip3' instead of 'pip' in tests template (acb55f1)
- run: adapt 'run.sh' to missing sudo and wine support (2cdf805)
- finish #151: support non-WinPTY execution environments (921c465)
- test: add '--sockets' and host failures coverage tests (3210416)
- test: add empty '{before,after}_script' and 'script' tests (b2cc355)
- test: finish 'extends' coverage with two 'variables:' nodes (93af8b7)
- test: finish 'variables' coverage of environment overrides (00b6764)
- gitlab-ci: support ',' separated SUITE values for coverage (2755229)
- test: finish parser coverage of .env environment override (3c5d2d5)
- docs: use pexpect-executor 1.2.0 to hold the final prompt (4b6ec6a)
- gitlab-ci: add a job-specific report to 'Coverage' jobs (c66bb66)
- docs: refactor the 'Preview' job into a 'termtosvg' job (5774040)
2.3.0 (2020-12-14)
✨ Features
- implement #142: add --rmi to remove container images (fd18760)
- implement #143: add --force to force pull container images (31effc3)
- implement #144: add -i to ignore jobs name case distinctions (a0f3e0b)
- finish #144: add missing regex check for -i case option (532683c)
- updates: improve updates colors and embed new test flags (24a4c84)
🐛 Bug Fixes
- finish #137: delete temporary files only if they still exist (23bcb26)
- resolve #145: Handle configurations Dicts index out of range (4028e53)
- resolve #147: default YAML or JSON value if non-interactive (6410eec)
- resolve #146: ensure before_script really checks for issues (c3f1c78)
- resolve #148: handle JSON or YAML string as unique choice (6ce036a)
📚 Documentation
- changelog: regenerate release tag changes history (c0ac01e)
⚙️ Cleanups
- resolve #141: refactor and fix SonarQube issues in parser (6d6af33)
- resolve #141: refactor and fix SonarQube issues for except: (385cb2f)
- requirements: isolate all requirements to a folder (0d97689)
- gitlab-ci: wrap preview.py delay out of the preview script (0c2395d)
- readme: format the markdown sources automatically (50a8d1a)
- gitlab-ci: create YAML anchors to reuse templates scripts (2030f01)
- gitlab-ci: add --settings and wrapped --update-check tests (24b2e2a)
- tests: add 'engines' tests from arguments and environment (248ba92)
- engine: add support for -E '' as being default engines (e101727)
- finish #142: isolate pull and rmi into a feature class (e2322c8)
- version: support non-packaged sources version fallback (ac1f920)
- tests: refactor and isolate all unit tests (f5a6f12)
- parser: cleanup duplicated environment file checks (84dd18c)
- docs: migrate to the isolated 'pexpect-executor' package (ab4498d)
- gitlab-ci: add 'Py3.9 Preview' test of ./docs/preview.py (a04df51)
- gitlab-ci: implement Python coverage reports for SonarCloud (c436539)
- coverage: ignore coverage of unreachable input securities (f8a8d90)
- vscode: migrate to 'brainfit.vscode-coverage-highlighter' (4fb60a4)
- vscode: exclude intermediate files from the project view (38d41a3)
- gitlab-ci: resolve 'SonarCloud' changes rules on develop (ab2da73)
- gitlab-ci: isolate coverage databses and allow suite tests (98c6d99)
- engine: disable the engine.exec command until required (9674e61)
- tests: add 'gitlabci-local -c ./folder/' arguments test (075048b)
- gitlab-ci: remove 'mount' command execution in all tests (a182a42)
- tests: add 'gitlabci-local -i' with regex name tests (c341e8f)
- tests: add missing or incompatible Podman engine tests (f65fed0)
- tests: add '--settings' specific tests and install 'sudo' (e7b13c1)
- gitlab-ci: silent and hide all installation irrelevant logs (d45c75b)
- gitlab-ci: run coverage and SonarCloud upon tests/ changes (f483baa)
- version: exclude version '0.0.0' fallback from coverage (99c6285)
- gitlab-ci: unify coverage reports, unify and common scripts (97f07c1)
- tests: add unknown configurations test and raise error (b6ac268)
- parser: handle 'FileNotFoundError' upon file parser (354c4e4)
- tests: add multiple unit tests to improve sources coverage (b9495e4)
- tests: add time tests for 60+ seconds pipelines coverage (1b2ae21)
- tests: use 'ubuntu:20.04' for --bash/--debug for bash tests (b907ef1)
- runner: remove unused engine logs reader and try except (2899282)
- features: isolate 'dumper' into a 'Jobs' feature (6f34d38)
- tests: migrate to pexpect-executor 1.0.1 with tests support (cf9bed8)
- features: prevent YAML dump outputs lines from wrapping (bbf418a)
- lint: isolate and identify 'Modules libraries' imports (b2596fa)
- docs: resolve configurations test's 12th value support (d9691f8)
- tests: add interactive unit tests with pexpect-executor (d6623a3)
- coverage: ignore unused PyInquirer patcher lines coverage (b0a6ada)
- gitlab-ci: raise interactive tests timeout to 15 minutes (1215e97)
2.2.3 (2020-12-10)
📚 Documentation
- changelog: regenerate release tag changes history (9f6008b)
⚙️ Cleanups
- gitlab-ci: run build and tests jobs only if needed (c024e01)
- gitlab-ci.yml: add support for SonarCloud analysis (fe45ab5)
- resolve #141: resolve SonarQube issue in engines.wait (34aaae9)
- resolve #141: minor codestyle cleanups raised by SonarCloud (fb78f90)
- readme: add pipeline and SonarCloud badges (a1aff75)
- gitlab-ci: prevent Podman unit tests to use Docker host (918ae1f)
- gitlab-ci: resolve Podman 2.2.1 issues in Debian 10.6 (bcc759e)
2.2.2 (2020-12-08)
🐛 Bug Fixes
- resolve #138: reset colors once the boxes are printed (82f650c)
- resolve #139: support readonly parent folders for entrypoints (b93643d)
- resolve #137: ensure temporary scripts are always deleted (db0e21b)
📚 Documentation
- prepare #140: add installation steps for all test platforms (f06835d)
- resolve #140: mention Android native engine with Termux (e16c8ef)
- resolve #140: add Android test environment explanations (d651ca5)
- changelog: regenerate release tag changes history (8e52f5c)
⚙️ Cleanups
- resolve #140: add 'Platform.IS_ANDROID' unused constant (42d662d)
- gitlab-ci: ignore Podman issues until podman-2.2.1 is fixed (1d913aa)
2.2.1 (2020-12-07)
✨ Features
- resolve #136: adapt update hint to sudo-installed packages (02add16)
🐛 Bug Fixes
- resolve #135: wrap colored strings and adapt boxes dimensions (bc72715)
📚 Documentation
- changelog: regenerate release tag changes history (caa86da)
⚙️ Cleanups
- prepare #135: isolate string manipulators to 'Strings' type (9a7e718)
2.2.0 (2020-12-06)
✨ Features
- prepare #132: provide IS_USER_SUDO and USER_SUDO constants (f620717)
- implement #132: use the original userspace if using sudo (2ea3521)
- implement #131: check for updates without delay upon exit (d8bb431)
- implement #133: add 'center' and 'strip' string manipulators (cb3f75f)
- prepare #131: create 'Boxes' class to create boxed messages (9081f16)
- implement #131: refactor the updates message with hints (318822c)
📚 Documentation
- prepare #118: add supported macOS versions and update TEST (b9ab913)
- changelog: regenerate release tag changes history (2231dce)
⚙️ Cleanups
- readme: add 'native' local jobs as supported engine (05ed640)
- implement #133: isolate all colors attributes into a class (a5f25b1)
- prepare #131: add 'REPOSITORY' GitLab URL link constant (eb71493)
- resolve #134: isolate package names to a 'Bundle' class (e3abae4)
- resolve #134: isolate environment variables inside 'Bundle' (570db6b)
- changelog: create a CHANGELOG version description extractor (02368d8)
- gitlab-ci: implement 'gitlab-release' to fill tags releases (43e9d5e)
2.1.2 (2020-12-05)
✨ Features
- prepare #129: add '--settings' to show the path and contents (8fa58c3)
🐛 Bug Fixes
- resolve #129: import modules libraries before components (6f43910)
- resolve #130: respect list selector single choice inputs (a26ed72)
📚 Documentation
- resolve #129: document the settings configurations and goals (96806db)
- changelog: regenerate release tag changes history (ffa3773)
⚙️ Cleanups
- types: turn 'Paths' class methods into static methods (0653d42)
- readme: drop the unreadable and old usage short help header (a53aa8a)
- readme: add command usage entrypoint and shortcuts table (3cf8ec2)
- types: refactor 'Dicts.find' without regex dependency (deaf512)
- tests: add 'images' test job for native and container jobs (c9c03f0)
2.1.1 (2020-12-05)
✨ Features
- prepare #118: restrict Docker sockets mounts to Linux only (149c484)
- prepare #118: add Platform.IS_MAC_OS platform detection (a966f7f)
- prepare #118: support macOS paths, userspace and real paths (fdf576d)
- prepare #122: allow expanding CI_LOCAL in variables values (491424a)
- resolve #122: add CI_JOB_NAME and CI_PROJECT_DIR definitions (930a6f4)
- implement #128: store and read default engines in settings (2ec1321)
🐛 Bug Fixes
- resolve #127: evaluate host project directories correctly (dff661c)
- prepare #121: isolate print flushes and allow only on TTY out (d497a7c)
📚 Documentation
- prepare #118: add macOS references in README and TEST (dfb1858)
- changelog: regenerate release tag changes history (864c7cb)
🧪 Test
- validate #122: create specific test cases for CI projects (7c9651b)
⚙️ Cleanups
- vscode: configure VSCode telemetry and privacy settings (636891a)
- vscode: always format files upon editor saves (9ecf9ea)
- vscode: add recommended VSCode extensions list (062a55f)
- vscode: ensure YAML use single quotes formatting (19bd100)
- vscode: disable terminal app insights telemetry (477bf8e)
2.1.0 (2020-12-02)
✨ Features
- implement #126: add network mode support in Podman engine (d7b2b1b)
- implement #125: implement a settings storage class (8b2e58d)
- implement #124: add daily PyPI updates notifications (fb0a4d8)
📚 Documentation
- changelog: regenerate release tag changes history (39e3702)
⚙️ Cleanups
- gitlab-ci: add '--force-reinstall' to pip reinstallations (b1c6597)
- gitlab-ci: isolate requirements and use built packages (94102a0)
- gitlab-ci: isolate local jobs under a 'development' stage (68eb249)
- gitlab-ci: quiet pip installation logs in 'deploy' jobs (d6bf1f4)
- gitlab-ci: turn the 'Codestyle' job into a CI check job (c07f3f5)
- gitlab-ci: disable pip updates warnings in relevant jobs (65deb91)
- gitlab-ci: add local 'Lint' job as a pylint wrapper (b908139)
- prepare #123: import only required libraries in preview.py (5d1407e)
- prepare #123: import only required libraries in setup.py (fec3ef6)
- gitlab-ci: isolate pip install steps in 'before_script' (686cd49)
- resolve #123: isolate into classes and lint the sources (6f10188)
2.0.1 (2020-11-30)
✨ Features
- resolve #113: standardize --tags values as "list,of,values" (a7b46a8)
🐛 Bug Fixes
- resolve #114: show default prioritized engines list in --help (694362b)
- resolve #116: fix native scripts working directory access (10119f3)
📚 Documentation
- changelog: regenerate release tag changes history (33e5332)
- test: add tools and engines references for Linux and Windows (53b29d4)
- readme: add Windows 10 1909 as being a supported system (7d52f82)
- resolve #120: refactor the supported .gitlab-ci.yml nodes (240f460)
- resolve #117: add usual examples of parameters (8d5776f)
- changelog: regenerate release tag changes history (a3b9fd3)
⚙️ Cleanups
- resolve #111: cleanup typos and improve --help details (b169e48)
- resolve #112: prevent line breaks in the tables (03567b3)
- resolve #119: avoid preparing volumes on native jobs (c6b561d)
- resolve #112: prevent line break of 'Hyper-V' in engines (e494967)
- resolve #111: improve '-p' pipeline documentation details (8bf8d0a)
- gitlab-ci: add 'Preview' wrapper job for 'docs/preview.py' (de3f030)
- gitlab-ci: use 'Deploy Trial' name to avoid 'Test' issues (fd2d912)
- readme: minor missing line break in native context jobs (9d487b8)
- readme: isolate Linux and Windows tables in chapters (cecdd7c)
2.0.0 (2020-11-30)
✨ Features
- implement #82: add -H or --host to force host local usage (92e6fae)
- finish #79: add 'Statistics' links for PyPI (98e6f5c)
- implement #80: add Podman root / sudoers engine support (c11d405)
- implement #84: accept -c with folder path to .gitlab-ci.yml (a4bb5f3)
- implement #85: add 'image: local:quiet' for host quiet jobs (aa7fa22)
- implement #87: add support for --version informations (34e42e7)
- implement #88: add 'image: local:silent' as host silent jobs (9c4edd2)
- implement #89: improve pipeline total duration outputs (555e8e4)
- extend #80: add -E engine selection and add CI_LOCAL_ENGINE (e2e1d7d)
- fix #87: use setuptools API for the --version informations (dbd8e4f)
- fix #85: resolve puller access to job options 'host' (1b65826)
- finish #80: refactor with Podman subprocess CLI calls (95f48a7)
- implement #92: add '.local:engine' default configurations (06fcd7c)
- resolve #93: add 'docker,' / 'podman,' for engines priority (5cec035)
- resolve #99: add support and tests for Python 3.9.0 (7449e1c)
- resolve #100: use /builds paths and add '-r' for real mounts (4c21ee3)
- resolve #100: use /builds paths for the temporary script (6ec0e9c)
- resolve #100: add '.local: real_paths:' configuration (68bd8ba)
- implement #103: see the used engine in the job header (2f0d9ed)
- implement #101: add '-S' to manually mount engine sockets (dbb7b25)
- resolve #34: automate interactive winpty calls on Windows (1c0e854)
- resolve #108: define CI_LOCAL_ENGINE if engine option is set (502a592)
🐛 Bug Fixes
- resolve #81: avoid invoking Docker APIs if running local jobs (05f4673)
- tests: resolve entrypoint i686 / x86_64 unreliable results (a20dcfa)
- prepare #80: add missing 'linux-headers' for the Podman test (d2ff539)
- implement #83: add support for 'variables:' usage in 'image:' (99959ba)
- gitlab-ci: migrate to Docker-in-Docker (dind) 19.03.13 (7e4195e)
- gitlab-ci: add engines sources to the codestyle input files (8ab87ec)
- gitlab-ci: remove PATH to avoid issues with Docker-in-Docker (74d6c3e)
- resolve #90: fix regex searches of names upon --dump (692433a)
- resolve #91: fix parser support for empty variables (bc979ea)
- test #80: use extends rather than anchos to keeps variables (c48eb15)
- finish #80: define CI_LOCAL_ENGINE and resolve Podman tests (58483ad)
- resolve #80: avoid Python 3.7+ specific 'capture_output' (81a0b7e)
- finish #80: avoid CI_LOCAL_ENGINE / CI_LOCAL_ENGINE_NAME loop (1b2248f)
- finish #80: add '--privileged' flag for Podman containers (1fd78b6)
- finish #80: ensure the entrypoint script is user accessible (354810d)
- resolve #98: avoid running incomplete jobs in pipelines (45dff07)
- resolve #96: support non-regex names like "C++" in inputs (907bff9)
- resolve #95: avoid opening the NamedTemporaryFile file twice (df05050)
- prepare #34: migrate from os.path to pathlib Path items (e01cd88)
- prepare #34: use Linux newline endings in entrypoint scripts (9a78ee5)
- prepare #34: use PurePosixPath for internal container paths (62d6902)
- finish #89: minor comments typo fixes upon time evaluations (41620ca)
- prepare #34: remove the temporary script only after execution (5e5d972)
- prepare #34: add IS_LINUX and IS_WINDOWS constants (76e4725)
- prepare #34: exclude /var/run/docker.sock from Windows mounts (8623b09)
- prepare #34: prepare Windows specific changes in resolvePath (d4c6045)
- prepare #34: resolve workdir absolute path before using it (f4f0604)
- prepare #103: use hidden internal members in Engine classes (1ccd0e7)
- resolve #102: ensure CI_LOCAL_ENGINE_NAME is set for all jobs (20f658d)
- prepare #34: resolve 'local: workdir' absolute path in parser (d387669)
- resolve #104: configure and instantiate the engine only once (c6aa64e)
- test #102: test if CI_LOCAL_ENGINE_NAME is defined twice (e947678)
- resolve #34: use 'sh' explicitly for local native scripts (ed560a2)
- resolve #34: bind temp directory to avoid Hyper-V share spams (dcb5059)
- resolve #34: avoid using host '/tmp' with container processes (2eaec6e)
- gitlab-ci: resolve "${PWD}" real path upon environment tests (94bd5b2)
- gitlab-ci: refactor, nested containers and Podman 3.6 to 3.9 (420edd4)
- gitlab-ci: use real paths and bind sockets for development (5a94667)
- resolve #34: use isolated temporary directory to avoid issues (581e886)
- resolve #34: use only /builds folder for entrypoint scripts (017282d)
- resolve #105: support mounting a path twice without overlaps (4f4e0fe)
- resolve #34: support local script paths with spaces (1bd638a)
- resolve #106: resolve relative paths against configuration (9f3dbcd)
- resolve #105: handle volumes duplicates and local overrides (1027e6d)
- resolve #106: resolve relative workdir paths against options (8e8e1bb)
- resolve #109: disallow real paths usage on Windows (cbd9a58)
- resolve #106: use required pure POSIX paths for workdir paths (a380727)
- resolve #107: support working directory in local native jobs (38509bd)
- resolve #105: handle duplicated source paths on Windows too (5f9c1f9)
- resolve #110: fix non-interactive menus and engine on Windows (3381bda)
- gitlab-ci: resolve "${PWD}" path usage with spaces in tests (44282d2)
🚜 Code Refactoring
- prepare #80: isolate Docker engine specific APIs (5772112)
- prepare #80: isolate the Docker engine as an abstract (4a0c8c6)
📚 Documentation
- document #34: add supported systems and engines in README (6edb4f7)
- readme: refresh 'gitlabci-local' usage and parameters lists (db781fd)
- readme: improve readability of supported engines and systems (a39e129)
- gitlab-ci: use 'docs: changelog:' for changelog commits (abb7fc9)
- readme: center operating systems and engines names tables (e2a5695)
- changelog: regenerate release tag changes history (3c17ccf)
🧪 Test
- prepare #80: add Podman specific test job for reference (7d18258)
- prepare #105: specific tests for local and CLI volumes (42143f0)
⚙️ Cleanups
- prepare #82: ensure Python 3 is explicitly used in 'Build' (6e8a28a)
- prepare #80: reduce Docker specific references and add OCI (f5f0151)
- dev: add missing setuptools-scm development requirement (e97f1cc)
- prepare #82: ensure Python 3 is explicitly used in 'Deploy' (f8adb44)
- gitlab-ci: ensure /usr/local/path is in PATH for all tests (070920e)
- development: install as 'sudoer' when using 'Development' (751c1c4)
- resolve #86: hide irrelevant internal values from --dump (10d415f)
- gitlab-ci: add 'Test' local job to run unit tests suites (d0498d5)
- gitlab-ci: add 'git --name-status' after 'Codestyle' fixes (6da6f7e)
- gitlab-ci: add command headers for the 'Test' local job (41ea228)
- gitlab-ci: install production requirements then development (9c9faba)
- main: use a global variable for '.gitlab-ci.yml' file name (9311b3a)
- prepare #34: isolate /builds and /tmp paths in const class (c50538e)
- gitlab-ci: resolve colored terminal outputs in 'Test' (f712373)
- gitlab-ci: avoid reinstalling upon local native tests (cc91b6c)
- run: add 'run.sh' script for local development purposes (ac92059)
- gitlab-ci: use the Docker engine by default for development (5bda88e)
- gitlab-ci: add 'pwd' and 'mount' to all tests jobs (4c590b7)
- gitignore: exclude all .tmp.* entrypoint intermediate files (46fa725)
- docs: drop 'gitlabci-local --help' command in the preview (c2ae3a9)
- docs: use Docker engine by default and minor cleanups (b04743f)
- docs: refresh the preview GIF for the latest 2.0.0 release (3ecde51)
- gitlab-ci: add Test PyPI uploader local manual job (fccffed)
Parser
- resolve #94: ignore and consider trigger jobs as disabled (1056603)
1.3.1 (2020-10-23)
✨ Features
- implement #78: add total pipeline time in results (2d88325)
- resolve #79: add 'Bug Reports' and 'Source' links for PyPI (0b4faf3)
CHANGELOG
- regenerate release tag changes history (7940bad)
1.3.0 (2020-10-21)
✨ Features
- resolve #74: disable incomplete jobs instead of failing (4013a19)
🐛 Bug Fixes
- resolve #77: resolve standalone multiline scripts parser (f694949)
🧪 Test
- validate #77: check standalone multiline scripts parser (b030f6e)
⚙️ Cleanups
- requirements: bind setuptools for delivery rather than dev (a682b49)
- setup: add support for comments in requirements.txt (95dc6fa)
CHANGELOG
- regenerate release tag changes history (d48e357)
1.2.1 (2020-08-04)
✨ Features
- implement #67: define CI_LOCAL variable to detect local jobs (a485177)
- implement #71: add a shorter "gcil" entrypoint wrapper (a648241)
- document #71: add 'gcil' alias references in help and README (072510c)
- resolve #72: add support for the --help parameter along -h (4ae8838)
- implement #73: add support for regex searches of names (525e35d)
🐛 Bug Fixes
- resolve #68: add empty footer lines upon error failures (48b4a20)
- resolve #69: propagate and cumulate extended jobs' variables (f89af09)
- resolve #70: support disabling *script: nodes with extends: (4de0e6e)
🧪 Test
- validate #71: check 'gcil' works on the 'simple' tests (44d52e9)
⚙️ Cleanups
- gitlab-ci: remove unnecessary 'tags: local' for local jobs (6a769c2)
CHANGELOG
- regenerate release tag changes history (38ea476)
1.2.0 (2020-06-13)
✨ Features
- implement #66: add support for 'extends' jobs in parser (7dd9acc)
🐛 Bug Fixes
- prepare #66: ensure missing 'image' key is properly detected (6a84f4b)
- prepare #66: ensure missing 'script' required node detection (0c472ff)
- prepare #66: ensure global keys will not be parsed as jobs (0a5f332)
- prepare #66: respect included data order in 'include' nodes (ed2a209)
🧪 Test
- validate #66: ensure 'extends' full support is validated (3f4300c)
CHANGELOG
- regenerate release tag changes history (97f418f)
1.1.6 (2020-04-02)
✨ Features
- implement #63: add execution timings for every job (21ed3ed)
- implement #62: add support for 'allow_failure: true' options (53d5cc4)
🐛 Bug Fixes
- resolve #65: synchronize stdout and stderr runner outputs (8451118)
⚙️ Cleanups
- validate #64: ensure first failure drops the script (3f935d4)
CHANGELOG
- regenerate release tag changes history (428b6e6)
1.1.5 (2020-03-15)
🐛 Bug Fixes
- resolve UTF-8 stdout outputs from container logs stream (e2a1e74)
⚙️ Cleanups
- deprecate 'Deploy Test' and enforce automatic tags release (5987e1c)
CHANGELOG
- regenerate release tag changes history (4b8d1c9)
1.1.4 (2020-03-15)
🐛 Bug Fixes
- fix #61: handle before_script and script together like CI (91d7269)
CHANGELOG
- regenerate release tag changes history (1e8b0f3)
1.1.3 (2020-03-09)
✨ Features
- implement #60: adapt debug command if bash exists (5ecc628)
- implement #59: add support for bash in debug mode (f864614)
🐛 Bug Fixes
- resolve Python codestyle with YAPF in parser and runner (45e896c)
- implement #61: handle before_script and after_script like CI (e0c16a9)
⚙️ Cleanups
- add 'Dependencies' development requirements local job (9e30e3f)
CHANGELOG
- regenerate release tag changes history (0dacf9d)
1.1.2 (2020-03-07)
🐛 Bug Fixes
- finish #57: ensure --debug works upon runner failures too (bd4803b)
- tests: minor local test output syntax cleanup (622e781)
CHANGELOG
- regenerate release tag changes history (f280f96)
1.1.1 (2020-03-03)
✨ Features
- implement #58: handle SIGTERM as an interruption (7ed9e3f)
- implement #57: add --debug support to keep runner execution (73a2bca)
CHANGELOG
- regenerate release tag changes history (07cbe0b)
1.1.0 (2020-02-23)
✨ Features
- implement #46: implement most parameters in .local nodes (3a7fcb7)
- implement #48: add support for a network mode configuration (554de0c)
- resolve #52: expand volume paths containing variables (c3e582f)
- implement #50: always enable before/after_script by default (dd1cd7b)
- resolve #47: add support for env parsing in .local node (eb5aeb2)
- implement #54: initial support for include:local nodes (1929b8b)
- study #55: add 'Unit Tests (PyPI)' manual customized job (cad9a90)
- add support for 'when:' result details for clarity (eb267a0)
- add support for 'names' in .local node configurations (484324a)
🐛 Bug Fixes
- resolve #49: preserve environment variables when set in .env (30e9833)
- resolve #51: handle global variables as default values only (99105c3)
- resolve #53: parse complete context before parsing stages (9360262)
- resolve #55: use stable docker:19.03.5-dind image service (807ca30)
📚 Documentation
- regenerate preview GIF with latest changes for 'failures' (1ff53b3)
⚙️ Cleanups
- resolve colored codestyle with YAPF (56881f3)
- ensure Unit Tests jobs timeout after 10 minutes (f300a4e)
- remove unused configurations variable in parser.py (ea36eba)
- refresh preview GIF for latest features and parameters (f423376)
- finish #47: add '.local:env' mention in README.md (46d2de3)
- resolve #56: document all supported .gitlab-ci.yml features (40fc98e)
- finish #54: add missing tests/includes unit tests call (8c520e0)
- fix the README and helper tool name to 'gitlabci-local' (c7d68b3)
- refresh the README usage helper parameters list (fd0aeb7)
- finish #56: cleanup supported .gitlab-ci.yml features (faa2905)
- regenerate preview GIF documentation (f96bf4b)
- finish #48: add missing '.local:network' mention in README (082b503)
CHANGELOG
- regenerate release tag changes history (25ecf31)
- regenerate release tag changes history (cdfb52c)
1.0.5 (2020-01-27)
✨ Features
- implement #40: migrate to .local unified configurations node (bed8bd4)
- implement #42: disable configurations with --defaults (6bd7fb4)
- prepare #41: add support for :ro and :rw volume mounts flags (47c9583)
- prepare #41: support overriding a bound volume with another (9623386)
- implement #41: add support for local volumes definitions (cf78e9f)
- implement #43: allow enabling all jobs with --all (b7d05a8)
🐛 Bug Fixes
- prepare #34: migrate from Blessings to Colored library (584c8f6)
⚙️ Cleanups
- gitlab-ci: isolate local preparation jobs to prepare stage (b797a9e)
- tests: add --pull feature validation upon entrypoints test (07ba5b0)
- docs: refactor preview.sh Executor class with constants (2a3783d)
- requirements: rename _dev.txt to requirements-dev.txt (f126c3d)
- prepare #44: add Python 3.6, 3.7, 3.8 and local tests (a5d9e19)
- setup: add 'Documentation' reference to README.md (2f66deb)
- resolve #44: restrict Python to versions 3.6, 3.7 and 3.8 (801ef3d)
- prepare #34: add 'winpty' references for Windows in README (edb6f78)
- changelog: add current commit hint with git describe (31340b0)
CHANGELOG
- regenerate release tag changes history (b9522b5)
1.0.4 (2020-01-26)
✨ Features
- implement #32: add --pull mode for Docker images (d7a60dd)
- implement #37: use low-level Docker pull with streamed logs (6f13d7f)
- implement #38: pull Docker images if missing upon execution (57dabdf)
- implement #3: support job retry values upon executions (0444993)
🐛 Bug Fixes
- resolve #13: fix rare container wait random failures (bc09017)
- resolve #33 support integer variables definitiionz type (35307fa)
- resolve #36: preserve original image and CI YAML entrypoints (db9e657)
- resolve #31: hardcode the README GIF preview with tags (b0f89c2)
- resolve #36: support overriding image entrypoint with none (8359f51)
- resolve #39: resolve Docker Python random exceptions (643ec92)
- resolve #4: fix list view separator in PyInquirer (228cf9e)
⚙️ Cleanups
- development: only rebuild in the Development local stage (dcdb6c9)
- requirements: unify and add missing developement items (5f646fc)
- requirements: add YAPF as a development requirement (e96150d)
- codestyle: add an automated YAPF local job wrapper (cad770c)
- codestyle: pass all Python sources through YAPF (067cb48)
- codestyle: pass all Python files through unify with "'" (9c0690f)
CHANGELOG
- regenerate release tag changes history (137df4e)
README
- add pexpect references for docs/ automated preview script (11f639d)
- resolve Changelog job reference for 'image: local' (f07a810)
1.0.3 (2020-01-23)
✨ Features
- implement #18: extend user configurations support for types (11cbb2b)
- implement #16: configure with environment variables if set (0c4af24)
- implement #19: add support for YAML and JSON configurations (ed66b1e)
- implement #23: add support for native local jobs execution (d6819e2)
- resolve #25: use listed values for -t tags parameters (5bab10a)
- implement #22: add support for passing environment variables (67f58c3)
- implement #28: add support for specific environment files (fb8371f)
- implement #29: add support for specific volume mounts (d1f734d)
- implement #30: add support for working directory parameter (260dcf6)
🐛 Bug Fixes
- resolve #17: support user interruptions (77ecadf)
- resolve #21: stop Docker container upon user interruption (54711a8)
- fix #25: prevent tags parameters from appending default tags (4cadc41)
- resolve #26: use .env variables only as default values (fedf91a)
⚙️ Cleanups
- implement #27: add local build and test wrapper (34a04b2)
- resolve #15: document the .configurations features (dcb34a2)
CHANGELOG
- implement #20: automate tag and log regeneration (b50cd30)
- regenerate release tag changes history (565aac2)
README
- resolve #24: document special usage cases (7d7baa4)
1.0.2 (2020-01-21)
✨ Features
- resolve #6: allow menu selections while using --pipeline (919e639)
- implement #7: load .env local environment variables (04052ef)
- implement #10: support local job tag as being manual jobs (f78891a)
- implement #11: add Changelog link on PyPI releases (3ee37ac)
🐛 Bug Fixes
- resolve #8: ensure Docker and other dependencies are recent (0f05f36)
- implement #1: add --manual-tags default values documentation (e345ede)
📚 Documentation
- regenerate preview documentations and fix quotes (5d7384a)
⚙️ Cleanups
- implement #9: unify dependencies under requirements.txt (08b0c06)
- resolve #12: apply VSCode, MarkdownLint and YAPF settings (43a4e3e)
CHANGELOG
- implement #11: create initial CHANGELOG with git-chglog (db97c94)
README
- resolve #5: add dependencies list and purposes (31e763b)
1.0.1 (2020-01-20)
✨ Features
- implement #2: add .configurations dynamic user choices (87300df)
1.0.0 (2020-01-19)
Gitlabci-local
- initial public release with examples and tests (547eb71)