- Fixed directory handling in
process_scripts
function - Improved variable naming for better code clarity
- Enhanced error handling for directory operations
- Updated documentation generation process
- Comprehensive update of function documentation in
docs/shdoc
- Enhanced markdown generation for all shell functions
- Improved cross-referencing between documentation files
- Updated core functionality documentation
- Enhanced error handling and logging in utility functions
- Improved virtual environment management functions
- Updated documentation generation system
- Added new requirements.txt file
- Updated manifest.lst with latest changes
- Enhanced overall documentation structure
- Bug in
errno.sh
errno
function number 7, E2BIG failed to parse. - Simplified logic and dead code when no argument passed.
- Enhanced error handling with improved POSIX errno codes.
- Added better error message formatting and logging categorization.
- Introduced new functionality for more descriptive error messages.
- Improved utility functions for better performance and reliability.
- Enhanced logging and error checking mechanisms.
- Streamlined common tasks in Bash scripting.
- Enhanced virtual environment management functions.
- Improved error recovery and logging for VENV operations.
- Added new features for better environment variable handling.
- handled if higher level directories don't exist at destination.
- Added additional information to err_warn and er_exit messages
- Picked lint and corrected spelling and other documentation issues.
- Enhanced error handling with proper exit codes
- Added validation for critical operations
- Improved package configuration management
- Enhanced logging with descriptive messages
- Added support for deprecated file removal
- Improved manifest handling
- Added rollback capability framework
- venv_funcs.sh:
- Enhanced virtual environment management
lenv
sorting VENV's by time or name in forward or reverse order- Long format time with date and time also added
ccln
cloning of the current VENV may be done without sequence number
- Improved environment variable handling
- Added better error recovery
- Enhanced logging for venv operations
- Enhanced virtual environment management
- errno.sh:
- Improved POSIX errno codes handling
- Enhanced error message formatting
- Added better logging categorization
- Improved error context for debugging
- help_sys.sh:
- Added new docs_base_path function
- Updated function naming convention
- Improved file path handling
- Enhanced help message formatting
- Enhanced error handling in
warehouse.sh
with better symlink validation - Added protection against pathological symlink situations
- Improved handling of source and destination path validation
- Added detailed error reporting for tar operations
- Enhanced directory path handling and normalization
- Improved type hints and documentation in
chunkfile.py
- Enhanced error handling for edge cases in chunk processing
- Added validation for chunk size and overlap parameters
- Improved handling of partial reads and end-of-file conditions
- Added support for proper UTF-8 handling in line mode
- Enhanced progress reporting and file naming consistency
- Enhanced error handling in shell scripts with proper exit codes
- Improved logging with more descriptive error messages
- Added validation for critical operations
- Enhanced error recovery mechanisms
- Added detailed error context for debugging
- Added comprehensive documentation for warehouse functionality
- Created detailed visual guide for chunk operations
- Updated implementation details for all core functions
- Added examples and use cases for each tool
- Enhanced cross-referencing between related documentation
- Refactored shell functions for better modularity
- Enhanced path handling and validation
- Improved error recovery mechanisms
- Added protection against common failure modes
- Enhanced logging and debugging capabilities
- Enhanced
generate_manifest
script to automatically detect deleted files usinggit status --porcelain
- Added automatic creation of cancel entries for files deleted from git
- Updated documentation to reflect new git integration features
- Added comprehensive documentation for the
generate_manifest
script. - Documented manifest file format and handling of deprecated files.
- Clarified the use of
c
(cancel) type entries for file removal. - Added cross-references to related documentation.
- Improved documentation for handling deprecated files
- Added examples of both automatic and manual cancel entries
- Updated implementation details section with git status integration
- Added git as an optional dependency
- Renamed
chunktext
tochunkfile
for better clarity - Removed
c++
andg++
pass-through scripts (no longer needed after Meson fix) - Modified
numpybench
to use-o/--output
instead of-d/--datafile
- Updated
warehouse.sh
with improved functionality
- Added
generate_manifest
utility - Created
numpy-1.26-reinst.sh
for optimized NumPy installation - Added
chunkfile.py
implementation
- Created new documentation files:
docs/chunk-offsets.md
: Visual guide for chunk operationsdocs/chunkfile.md
: Documentation for the renamed chunk utilitydocs/numpybench.md
: Comprehensive guide for NumPy benchmarkingdocs/warehouse.md
: Documentation for storage management utilities
- Updated all function documentation in
docs/shdoc/
- Enhanced core documentation files for better clarity
- Modified
bin/buildvenvs
for better environment handling - Enhanced
bin/filetree.py
with improved functionality - Updated
bin/genmd
for better document generation - Improved
bin/numpybench
with cleaner output options
- Updated all shell include files with improved functionality:
errno.sh
: Enhanced error handlinghelp_sys.sh
: Improved help systeminit_env.sh
: Better initializationutil_funcs.sh
: Additional utility functionsvenv_funcs.sh
: Enhanced venv managementwrapper_funcs.sh
: Updated wrapper functionality
- Removed
build-requirements.txt
in favor ofrequirements-build.txt
- Updated
requirements.txt
with current dependencies - Modified
manifest.lst
to reflect current file structure
-
Function Name Changes:
- Updated function names to follow a consistent naming convention.
-
New Functions:
- Added
docs_base_path
: Retrieves the base path for documentation files.
- Added
-
Function Modifications:
get_system_readme_file
: Updated to accept an optional directory path for the README file.write_system_readme_header
: Writes the header section of the README for system scripts.write_system_readme_entry
: Creates an entry in the README for a script or function.
-
Code Improvements:
- Improved the handling of file paths and added more descriptive comments for better clarity.
- Adjusted echo statements for better formatting and consistency.
-
General Updates:
- Updated script headers and descriptions across multiple scripts for consistency and clarity.
- Improved logging and error handling in
errno.sh
andhelp_sys.sh
. - Enhanced documentation for shell functions, ensuring detailed descriptions, usage, and examples.
-
Specific Changes:
venv_funcs.sh
: Enhanced virtual environment management functions with additional examples and usage scenarios.wrapper_funcs.sh
: Enhanced functionality for managing Python package commands by wrappingpip
andconda
.- Improved error checking and logging for
pip
andconda
operations. - Added robust logging to track changes in virtual environments for rollback, auditing, and future use in
venvdiff
.
- Improved error checking and logging for
util_funcs.sh
: Updated utility functions to streamline common tasks in Bash scripting.help_sys.sh
: Refined help system functions for better integration and user experience.errno.sh
: Improved POSIX errno codes and utilities with better error message formatting.
-
Markdown Documentation:
- Added new markdown files for function documentation, such as
errno.md
,errfind.md
, and more. - Updated links in markdown files to use absolute paths for better navigation.
- Added new markdown files for function documentation, such as
- Refactored
genmd
script to streamline file tree generation and improve handling of debug levels. - Added symlink following along with token counting for markdown bundles.
- Still minor config file issues to work out.
- Improved logging in
genmd
andhelp_sys.sh
for better debugging and information tracking. - Enhanced documentation for functions in markdown files, providing detailed descriptions, usage, input parameters, output, and exceptions.
- Deleted outdated markdown files:
venv.md
andvenv_funcs.md
. - Added new markdown files for function documentation, such as
__venv_conda_check.md
,create_readme.md
, etc.
- Refactored
wrapper_funcs.sh
to improve command argument handling and logging. - Enhanced
setup.sh
with better comments, debug mode activation, and default package name changes. - Updated
setup.sh
to setPKG_NAME
with a default value of "DEFAULT" if not provided. - Adjusted
INSTALL_CONFIG
assignment for consistency.
- Addressed issues in
setup.sh
script identified during testing on macOS and Linux. - Improved logging verbosity and error handling in
setup.sh
. - Updated
manifest.lst
to align with the latest setup configuration changes.
- Completed Markdown documentation for all functions in
venv_funcs.sh
. - Updated the checklist in
.project-planning/doc-tasks/venv_funcs.md
to mark all functions as documented. - Enhanced documentation process guidelines in
documentation_tasks.md
for better tracking and management.
- Implemented global variable declarations in
genmd
for configuration and settings management. - Introduced
handle_variable
function for robust variable handling ingenmd
. - Enhanced logging in
filetree.py
to include program names and lazy formatting. - Refactored functions in
genmd
for improved readability and maintainability. - Conducted comprehensive testing to ensure stability and correctness of recent changes.
- Setup Script Update: Added functionality to create hard links in
setup.sh
to address issues with C++/G++/ld symlink handling. - Manifest Update: Added support for hard link type in the installer manifest.
- Compatibility Note: Hard link creation feature tested on macOS and RedHat Linux.
- Refactored the
log_message
function inerrno.sh
to adjust logging levels in themessage_class
associative array for better log categorization. - Enhanced the
ptree
function inutil_funcs.sh
for better terminal output handling by dynamically calculating effective width. - Updated
filetree.py
to add logging functionality with a new command-line argument to set logging levels. - Modified
genmd
to introduce acreate_date
configuration variable and improve pattern sanitization and filetree generation logic.
- Completed testing and installation of the project.
- Verified that
generate_manifest.sh
and the installer work as expected. - Rollback/remove functionality for the installer is pending as a low priority task.
- Refactored
setup.sh
for modularity and error handling. - Introduced
pkg_info
function to manage package metadata. - Added
check_return_code
function for error handling with rollback capability. - Enhanced logging with
log_message
function for consistent message formatting. - Updated
post_install
tasks to include directory creation, requirements installation, and PATH updates. - Completed documentation review and updated
README.md
andCHANGELOG.md
. - Created a shell script to automate the Conda environment setup and package installation.
- Documented the manifest layout and parsing logic.
- Created
ld
,g++
, andc++
scripts to handle the-Wl,--version
flag correctly for macOS, specifically Meson builds which pass this incorrectly. - Improved the logic for finding executables using the
PATH
variable, excluding the script's directory. - Enhanced error messaging and handling with a POSIX return code of 2 when executables are not found.
The genmd
script has been updated with additional options for the command line and config file. Key enhancements include:
- Logging has been moved to a separate file for error reporting and additional logging levels.
- The -v/--verbose option has been removed; use -d/--debug instead.
- Added options to remove blank lines or lines containing only whitespace.
- Introduced an option to add line numbers to each file.
- Compression options available: gzip, xz, or bzip2.
New options -C
and -g
have been added to limit included and excluded files and directories. The .gitignore will be included in exclusions and inclusions by default.
- Centralized handling of -c and -o options.
- Enhanced display_help function to capture all help comments.
- Established configuration loading precedence: defaults, ENV, system .grc, command-line .grc.
- Improved array management and duplicate removal.
- Enhanced logging and debugging capabilities.
- Added comprehensive error handling and exit codes.
- Fixed duplicate handling in patterns written to config files.
The script scans a project directory and creates a markdown document with specified directory and file patterns from the config file. Documentation is available in the docs directory.
- filetree: Generates a file hierarchy tree from the current directory based on specified patterns.
- genmd: Groups related files wrapped in markdown for easy uploading to ChatGPT. Configurations may be saved for later use.
- chunkfile: Splits a file into chunks of text for ingestion by a new GPT instance while maintaining context.
All functions are working properly, though cleanup and documentation updates are still needed. The wrapper functions for conda and pip are functioning as intended.
This collection includes build scripts, benchmarking tools, and regression testing tools for various venv builds primarily focused on AI performance.
If you find any of my work here helpful, please reach out. I would like to have a dialog with anyone else interested.
Watch this spot, more to come, and you can always buy me a coffee.