- improve the initial description and add a small blurb linking to the tooling rationale
- add pin image for use in readme
- add additional note pointing toward newly made PR url
- remove extra url marker for stability temporarily
- add debugging logs marking the location of demo PR's made
- add GH_TOKEN adjacent to DEMO_TOKEN usages
- add passthrough of DEMO_TOKEN wherever needed
- add workflow_call secrets passthrough
- replace default github token with premade PAT named DEMO_TOKEN
- adjust inversed returncode chec
- swap to just checking return code
- shrink the scope of text checked for to ensure differing gh cli versions don't differ wording
- remove decodes that aren't relevant
- add utf-8 decodes where missing
- add --global kwargs to git config calls to see if that fixes the error
- add passthrough for branch name to differentiate branch name source for pull requests and straight pushes
- adjust syntax to use branches-ignore in sync-demos workflow
- add git config to update-demo workflow
- try removing ancestry check to see if it actually matters
- replace check against commit hash to instead check against HEAD in update-demo workflow
- remove backup creation of develop branch due to more purposeful checkout existing
- add two additional fetches that ensure branch actually exists locally so CICD doesn't error on update demo workflow
- move fetch depth adjustment to the demo instead of the template checkout in the update-demo workflow
- ensure enough history is fetched in update-demo workflow to verify branch is in sync with remote during CI
- adjust repository reference in merge-demo-feature.yml
- add uv sync call to setup-release script to ensure lockfile gets updated
- remove unneeded prior install now that PEP 723 is being used
- add default option to use current branch and add placeholder default for cache folder for the time until it gets moved to config passthrough later
- add small check to gracefully exit when trying to create an existing PR
- add check for when the template is already in sync with the demo
- add initial implementation of setup-release nox session and corresponding script prior to review
- add initial implementation of the calendar version release cicd
- move initial template checkout back into the primary workflows to ensure that the reusable workflow exists and is checked out prior to attempting to reference it
- break out demo updates into its own reusable local github action workflow and add in additional syncing for demos with feature branch PR's and general push workflow on develop
- add basedpyright specific configuration based on #60 (comment)
- temporarily remove the body generation of the feature to develop PR
- add on automated demo PR creation from feature branches into develop
- alter sync demo process to use ephemeral github commits for generation so that everything is more accurate
- remove unused merge commit check
- add initial attempt at a template level github action to sync demos on PR updates that target develop
- update demo handling to create new feature branches when targeting template feature branches
- improve logic for creating demo releases in github
- add a ton of half finished logic for release handling that will be refactored soon
- update logic in release rollback to not get hung up on faulty cleanup
- add logic for rolling back release creation
- add a check to the setup-release script in generated project along with light refactors
- add PEP 723 syntax installs
- swap to making a new feature branch in demo rather than working from develop always
- rebase branching pattern on develop
- add a prettier ignore file for cookiecutter and cruft generated files
- add python_versions as a cookiecutter derived value and corresponding classifiers
- add placeholder badge examples
- add banner logo in place of old logo
- add a logo to the readme
- update most references to support 3.10 to 3.14
- remove python-dotenv dependency and loading
- add preparations for moving to org
- add initial generation of some templates
- add placeholders for a template and configuration
- adjust setup-remote to fetch after creation of the remote instead of before
- change the default project name to reflect the repo name
- remove redundant nox tags
- add proper rust caching to github workflows and ensure cargo audit is installed in rust security nox session
- swap set up rust step in lint-rust workflow to use dtolnay/rust-toolchain
- add initial attempt for build-rust workflow
- add build-rust as a nox session
- add repository provider as a part of the testing fixture options and add some basic tests to ensure files are removed properly in the post gen hook
- add in initial rust folder contents with best guess
- add the robust-maturin-demo to the update-demo nox session
- swap to just having one validation function and no intermediary
- add several utility functions and bits of logic to ensure branches are synced before scripts run
- improve lint-from-demo.py in attempt to get it to work smoothly
- condense lint/format commands in bitbucket pipelines and ensure full typecheck matrix gets run
- adjust cicd in gitlab and bitbucket pipelines to ensure parity between platform providers in cicd
- combine various styling nox sessions in cicd
- add a proof of concept bitbucket-pipelines.yml
- ensure the .github folder isn't created when not using github
- add proof of concept gitlab cicd
- adjust base_url in .cz.toml of the generated project to account for cookiecutter value changes
- adapt setup-remote.py to account for the new cookiecutter values
- swap urls that used old github_user cookiecutter value
- swap github_user with more generic options to allow for bitbucket/gitlab compatibility moving forward
- add a readthedocs config for the template
- add a readthedocs config for the cookiecutter
- set docs retention to automatic vs manually 5 days
- replace manual pypi upload through nox session with github action so that oidc publishing can be used
- add testpypi as an index
- remove unused release nox session
- add session args to setup_release nox session to allow for manual increment
- delete explicit build-python.yml workflow and ensure that build-python is called in release-python.yml
- add to the command for getting the release notes so that the header ends up being the new version
- change release-python.yml to operate on push to main or master while also creating a tag and publishing files to the github release draft
- add a portion to release-python.yml to attach package files to the github release draft
- ensure the nox session properly passes through the changelog path
- replace body usage with body_path and make use of github.workspace
- revert back to writing out a body.md file
- ensure v2 is used of action-gh-release
- rename bump-version.yml to prepare-release.yml and rework logic entirely
- remove final job from bump-version.yml to avoid caching the temporary release notes in favor of just drafting the release immediately
- add a get-release-notes.py script and nox session along with adding to the workflows so that a draft release is generated in bump-version.yml
- add in scripts for setting up a release and some partially finished CI/CD components related to it
- add a script and noxfile session for updating demos
- adjust test matrix to not test all python versions on windows and mac
- replace nox venv creation for type checking with uvx
- replace demo_name passthrough with add_rust_extension and generated demo name
- try replacing pyproject.toml with .python-version path from repo root
- add a basic prepare-release.py script and nox session
- remove github workflow check from generated .pre-commit-config.yaml
- remove unneeded venvs from noxfile.py
- remove non-relevant extension recommendation
- add vscode starting extensions and settings
- replace GLOBAL_NOX_SESSIONS with a similar set IDEMPOTENT_NOX_SESSIONS that doesn't have context dependent sessions
- add a pre-commit hook for checking github workflows to the template repo itself
- add a pre-commit hook for checking github workflow files
- add a basic .pre-commit-config.yaml to the template repo itself
- swap to cruft and add basic github actions syntax unit tests
- remove part of the .editorconfig that applies to all files
- add names to any precommit hooks missing them
- replace most of the remote precommit hooks with the same local format that cookiecutter-hypermodern-python used
- add --diff to the ruff-check precommit hook
- add sphinxcontrib-typer as a dev dependency and add it into the docs config
- add license to docs to help fix error
- copy docs for generated project from hypermodern python cookiecutter and clean up template docs config
- convert most low importance nox sessions to use uvx in place of a nox venv
- replace some dev dependency installations with specific smaller dependencies
- add a line to ensure that retrocookie pyproject.toml changes don't get added in
- remove inaccurate nox session portion from the template noxfile.py
- optimize the template's nox sessions to install less unnecessary dependencies
- add a terminal coverage report to the test-python nox session
- add call in in-demo nox session to clear outstanding changes to the demo project prior to running linting/formatting
- try using nox tags for lint and format instead of precommit
- add to the lint-generated-project nox session to try and get it working
- split apart setup-git.py into setup-git.py and setup-remote.py
- add more specific nox sessions to keep tags accurate and consolidate groups in pyproject.toml
- add prettier to the .pre-commit-config.yaml
- improve git setup logic
- test out using tags for nox sessions
- change generate-demo-project.py to regenerate demos on top of existing ones unless --no-cache is provided
- add a bunch of safety logic to generate-demo-project.py to avoid something bad happening with shutil rmtree on accident
- add new scripts in scripts folder and move some of the initial setup logic into them
- expand and refactor integration tests for the template
- ensure rust session aren't created if not using maturin and add additional compatibility sessions for lint, publish, etc
- copy .editorconfig from the inner portion to the template
- update commitizen version in .pre-commit-config.yaml
- add commitizen pre-commit hook and edit settings
- remove execution environments from pyrightconfig.json to allow for proper import resolution
- add a DEBUG flag to pyrightconfig.json
- remove .cruft.json from .gitignore
- add hypermodern cookiecutter logic for installing pre-commit-hooks
- remove .cruft.json from the .gitignore
- add pre-commit migration change
- remove non-existent installation group
- removes final uv sync calls
- convert leftover uv sync calls in noxfile.py to install normally
- convert all manual uv executions in nox to just implicitly use it through the venv
- yet another attempt at fixing jinja madness
- attempt to fix jinja escaping
- add target and .idea to .gitignore
- more changes hoping to get release-python.yml working
- attempt at fixing syntax error for release-python.yml
- update version of ruff used in pre-commit hooks
- runs ruff format and check on the template level and adds a few small logic tweaks
- adjust syntax of token in bump-version.yml
- add alternate branch of master for all on push jobs
- change dependabot.yml branch target to develop
- add all generated egg-info folders to template gitignore
- add .ruff.toml for the template itself
- add some pytests for the template itself to see if this is a helpful pattern or not
- add typer as a default dependency
- add the start of the templates testing architecture
- add some new utility sessions to the template's noxfile
- add formatting to lint-python.yml
- remove unneeded docs-build-rust.yml
- remove unneeded docs-build-python.yml
- remove uv.lock from project generator since it contains package specific meta info
- adjust session names in noxfile
- remove build_rust for the meantime while figuring out how to do it separate of maturin's build
- adjust names of sessions in noxfile and various aspects of its functioning
- add fixes using retrocookie
- add retrocookie as a dependency
- add basic glossary
- add missing topics to docs
- add in post_gen_project.py from hypermodern cookiecutter hooks
- add syncing generated project to existing uv.lock
- update sync-uv-with-demo.py to use typer and uv
- add .gitignore for the template itself
- add several expected dependencies for the template itself
- copy dependency groups from inner project's pyproject.toml
- add basic non-package pyproject.toml for the template itself
- add poc publish_rust nox session
- bulk initial commit
- replace --no-tag with --files-only since that actually exists
- add missing cruft dependency to PEP 723 block of the setup-release script
- specify --merge in merge-demo-feature script attempt at merging due to requirement when used in automation
- remove faulty quotes in jq expression for merge-demo-feature script
- add missing demo env info pass through into nox session install of script
- change type of demos_cache_folder to prevent validation error for case not used commonly
- swap to nox session install and run script for merge-demo-feature session along with fixing arg passthrough
- set references to python version file as absolute positions due to multiple checkout oddities arising
- move reusable workflow usage to the job level and piece together portions to get things moving possibly
- tweak gitlab ci to not error from too many uv cache keyfiles being defined
- change paths pointing toward update-demo reusable workflow
- remove github.workspace from uses path
- update names throughout nox session and file along with fix update-demo not creating branches and some env var issues
- replace uv run call in update-demo nox session with install_and_run_script
- remove faulty import
- adjust formatting to avoid initial lint error
- update the location of where the update-demo.yml reusable workflow is searched for to be in the subdirectory that is actually being checked out into
- add absolute prefix to custom checkout locations in hopes of fixing issue with reusable action not being found in CICD
- remove manual specification of venv and venvpath in hopes it works for cicd
- add adaptable python executable path to basedpyright usage in nox session
- remove faulty configuration options
- replace pyright call with basedpyright
- add old env var for project cache to sync-demos.yml for the time being
- replace matrix values in sync-demo to account for previous simplification in internal nox session
- add working-directory kwarg to sync-demo so that the nox command is run inside the repo
- alter kwarg chaining in hopes of fixing error
- update key used to find commit info in cruft json
- remove old code from update-demo that is no longer compatible
- remove invalid pass through attempts of text=true throughout scripts
- add interop layer between older noxfile methods and newer env var logic for the time being
- remove unintended broken snippet
- replace broken import in scripts
- remove faulty syntax
- ensure that pushing a new branch for the first time works
- add a few workarounds trying to get POC branching going before refactoring
- remove accidentally added import
- swap is_ancestor to use its own error handling due to git merge-base --is-ancestor only showing through status
- ensure that pushing a new branch for the first time works
- add a few workarounds trying to get POC branching going before refactoring
- remove accidentally added import
- swap is_ancestor to use its own error handling due to git merge-base --is-ancestor only showing through status
- add env var to noxfile so that latest abi is used by default if not known
- replace list comprehension with loop in pre template generation hook
- moves jinja logic into docstring because apparently that matters somehow
- replace old loop with jinja plus assignment separate
- temporarily remove for loops to find issue
- replace sync with lock to avoid hanging issue
- add a step to the update-demo script to ensure python is pinned correctly, installed, and synced when changed
- add some temp defaults to enable updating demos across python versions used
- replace references meant to be latest python with 3.14 if missed in first go around
- adjust reference to nox session
- adjust cicd workflow tests to properly parse for relevant portions
- add to the pytest config so that it doesn't try to test the generated tests portion
- adjust broken import links caused by test sources root not being treated like a viable import path
- add missing platformdirs dependency to cookiecutter templates PEP 723 syntax
- add missing nox dependency in PEP 723 syntax
- add python-dotenv dependency to the noxfile through PEP 723 syntax
- remove no longer used load_dotenv
- add some missing nox session installs for python-dotenv and refactor names to reduce entropy
- replace myst-parser with myst-parser[linkify] in the cookiecutter docs requirements.txt
- swap around git initialization and venv creation so that the lock file gets committed in the initial commit
- swap around setup-git so that the develop branch gets made properly
- add uvx prior to maturin call in nox session build-python so that it installs if needed
- add missing pyo3 feature
extension-moduleand remove Cargo.lock from template due to incongruencies between generated from template vs cargo - update rust-cache usage to the post 2.0.0 parameter key "workspaces" instead of "workdir"
- replace license-files.paths with just license-files and set minimum maturin version to 1.9.0
- adjust nox sessions for rust formatting and linting to actually install dependencies
- replace typo in Cargo.toml that was breaking the syntax
- attempt to fix license-files syntax
- adjust license-files in pyproject.toml to satisfy pep 639 and maturin
- escape values in test-rust.yml where needed
- replace all faulty checks against "y" for add_rust_extension with checking for true
- remove -h option from setup-remote.py to ensure no conflicting cli inputs
- adjust precommit to match nox file version
- add step to ensure develop is checked out before updating the demo
- adjust invalid path imports
- attempt to adjust retrocookie usage in lint-from-demo.py
- add step to checkout develop prior to deleting old lint-from-demo branch
- adjust ignored file paths to be post template insertion values
- adjust path to bitbucket-pipelines.yml in post_gen_project.py
- attempt to have the paths actually remove
- attempting to get post gen to properly run
- adjust post_gen_project.py main block to call the correct function
- adjust conditionals in post_gen_project.py to include quotes where missing
- adjust post_gen_hook to properly target repository_provider not platform_provider
- fix files checked in cicd
- ensure lock file updates when running setup-release.py in generated project
- add missing main block
- adjust session decorator kwargs throughout template noxfile
- remove non existent --draft kwarg from gh release upload command in release-python.yml
- add v prefix to the tag_name provided to the release draft creation in prepare-release.yml
- add --clobber and --draft to the github release file attachment to the drafted release
- replace v addition to tag creation with v addition in get_tag job
- add v prefix to git tag command
- adjust names of github actions steps and ensure we provide a glob path to the github release file attachment
- add missing permissions for release-python.yml create tag step
- add missing oidc testpypi and pypi upload permissions
- replace twine env variables with uv versions
- replace --repository with --index in testpypi publish step
- adjust nox session command in testpypi publish step
- ensure code is checked out and the built package is properly named in release-python.yml
- add a fetch-depth of 0 and fetch-tags as true to prepare-release.yml so that commitizen works properly
- add base64 encode and decode step to the changelog output to ensure multiline isn't an issue
- replace body_path with body in the create release draft step of prepare-release.yml
- replace nox usage for get-release-notes with the python script to have a clean stdout output with no logs
- add missing syntax escaping for cookiecutter
- add a step to get the version from branch name and then use that for the release draft
- remove tag_name in bump-version.yml due to env var being used not existing
- add write permissions to allow for the gh release to work
- add missing nox command portion in bump-version.yml
- add missing --no-verify to automated commit
- ensure a rev_range isn't passed to cz changelog if there hasn't been a release yet
- replace --with with --from
- add missing section to get_package_version command
- add missing capture_output flag to get_latest_release_notes
- adjust any uvx cz commands
- adjust git command in release branch command
- replace --with with --from
- add --with commitizen to uvx cz call
- remove cz from dependencies check due to command difference
- remove type alias to avoid needing typing_extensions
- replace python=None with False in nox file along adding the option to setup a certain release increment
- adjust setup-release.py argparse usage
- adjust import to backport in util.py
- add main to branches list for bump-version.yml
- adjust workflow path reference in build-python.yml so that it actually gets called when the workflow file is updated
- fix path syntax in build-python.yml
- adjust nox session name in typecheck-python.yml to match old format
- revert typecheck nox session back to creating a venv due to apparently needing dependencies
- add quotes around nox session call
- replace args passed to update-demo.py script with altered args
- remove non-existent kwarg from cruft update call and fix type of template_path
- adjust kwargs passed to cruft update
- add missing dependencies for the update-demo nox session
- add missing python arg to update-demo nox session
- adjust typecheck-python.yml to match changes to nox session
- adjust name of used nox session in typecheck-python.yml to match the nox session in its usage
- remove unused github actions workflow and fix nox session names in other workflows
- adjust path to python-version-file for most github actions workflows
- adjust nox session name in build-python.yml
- replace .python-version with "pyproject.toml" for all workflows that just need a compatible python version and just want latest
- ensure the test-python.yml github workflow only runs the needed python version
- add missing double quotes to .cz.toml
- adjust commitizen version handling
- add version to .cz.toml
- adjust integration tests to account for previous fixture changes
- remove indirect parametrization from a few sub fixtures of robust_demo and ensure its name changes as needed based on permutations
- fix syntax in release-python.yml and remove junk comments
- adjust utility test function to properly output relative paths not absolute
- fix escaping in build-python.yml
- adjust quotes and escaping in bump-version.yml
- fix the section tag for yml files in the .editorconfig
- remove manual hook stage from nox precommit session
- remove no longer used darglint hook
- remove redundant ruff calls
- update stages in precommit hooks to account for name deprecations
- replace ruff with ruff-check in .pre-commit-config.yaml
- add missing titles to copied over docs
- attempt to improve and get docs configs working
- adjust --outdir to --out-dir in the build_python nox session
- remove session install calls from nox sessions that don't need a venv
- fix usage of check_returncode in test_demo_project_nox_session
- adjust output_dir to be correct
- adjust invalid fixture references
- adjust typers in parametrize calls
- adjust forgotten names in fixtures
- adjust name of python test nox session in GLOBAL_NOX_SESSIONS
- add missing list definition syntax in pyproject.toml
- move tool.maturin section in pyproject.toml to the correct block
- adjust type faulty import
- copy over signature from generate-demo-project.py to match-generated-precommit.py
- adjust Generator type annotation
- adjust invalid import
- add -a to the git commit in the lint-generated-project nox session
- add several portions to get the lint-generated-project nox session to work
- remove non existent tag from nox session
- adjust some jinja escaping to properly work in github action workflows
- adjust test sessions to account for noxfile changes
- adjust syntax in setup-git.py
- adjust generate-demo-project.py to only remove a demo of the same name to avoid some really bad situations with shutil rmtree
- add a Path wrapper around PROJECT_DEMOS_FOLDER in noxfile.py
- use os.getenv to get environment variable in the template noxfile.py
- swap maturin and uv build locations in the build-python nox session
- remove happenstance retrocookie insertion into nox version specification
- remove faulty kwarg from nox session security-python
- adjust bandit.yml path in nox session security-python
- remove invalid kwarg from nox session security-python
- ensure package metadata is passed correctly and fix syntax errors in release-python.yml
- correct arg error in precommit hook and adjust max size of files to 2000 kb
- adjust path to .ruff.toml in .pre-commit-config.yaml
- remove uv run from template lint ruff calls
- replace manual uv sync with session install
- add missing group kwargs
- remove faulty command kwargs from noxfile.py
- adjust syntax in .cz.toml
- move tool.maturin into the block with its contents
- alter syntax in various places so that docs build successfully for the first time
- adjust tons of doc links to actually work
- remove invalid and some unused myst extensions
- update dependencies and move them into proper groups
- alter several invalid uv sync commands
- remove non-existent kwarg from uv sync commands in noxfile.py
- adjust cookiecutter variable names throughout so that the template can generate correctly
- convert generate-demo-project.py to typer
- change generate-demo-project.py to use typer and adjust noxfile accordingly
- adjust max_python_version to the latest stable
- update pyproject.toml to reference actual cookiecutter variables
- remove pointless default nox session that didn't exist
- move tag-version into its own script for the time being
- move get_current_version into bump-version script to avoid unneeded tomli install in other scripts
- rename script function to reflect usage only occurring in demo
- move constants to module level in places
- break apart util function for validating branch history and state
- make git related commands more accurate
- replace any remaining comments or references to personal github with org
- replace references to personal info with org info
- replace references to
56kyleoliver@gmail.comwithcookiecutter.robust.python@gmail.com - replace all instances of
56kyle/cookiecutter-robust-pythonwithrobust-python/cookiecutter-robust-python - adjust import order in setup-release.py to get the robust-python-demo's lint cicd to pass
- adjust formatting to appease ruff in generated results
- small tweaks to gitlab cicd for rust jobs
- move some script checks and clean up into the uv-cache anchor
- rename the rust github workflows to their expected values and have them removed if needed in the post gen project hook
- give in to prettier for the moment just to see if this can start working
- run lint-from-demo.py and manually merge certain portions
- ensure .readthedocs.yml is only used with bitbucket
- rename docs-build.yml to build-docs.yml to better follow the existing verb-type naming pattern that the other github actions follow
- replace cli pass through of repo path with a constant in the scripts util folder for the template repo
- rearrange parametrization order in test_github_workflows.py to better display test values
- move the release nox session before the publish-python and publish-rust nox sessions in hopes that the release tag session will be ordered correctly
- replace various single quoted values in github workflows with double quotes
- shorten generate-demo-project.py to just generate-demo.py along with any related variables / etc
- move junit test results to tests/results
- rename match-generated-precommit.py to lint-from-demo.py and any other similarly named variables
- adjust the format of MissingDependencyError message creation
- break apart integration test fixtures into more parametrized and modular portions
- move activate_virtualenv_in_precommit_hooks to the end of the noxfile for clarity's sake
- clean up the docs conf.py file