- Fixed prematurely committed version updates to packages in Python projects to stay compatible with Python 3.8.
- Improved Node.js project source templates. [Issue#69]
- Improved Node.js project control code. [Issue#70]
- Improved Python project control code.
- See full changelog
- Added support for Node.js 22 and removed support for Node.js 16.
- Improved Python project control code source templates.
- Improved implementation of the select_project_type() function.
- See full changelog
- Updated Maven plugin versions.
- Updated Pylint dependency version.
- Updated Python setuptools and related toolchain dependency versions.
- Updated Python packaging source templates.
- See full changelog
- Updated ImGui dependency version.
- Updated Gtest dependency version.
- Updated Python Odoo module project source template to use Odoo v18.
- See full changelog
- Fixed a wrong working directory with the USER_CWD variable when in test mode. [Issue#57]
- Fixed failing tests for Java Spring Boot applications when using a database.
- See full changelog
- Added the USER_INPUT_DEFAULT_TEXT variable to set a default text value when using the read_user_input_text() API function. [Issue#53]
- Added the USER_INPUT_DEFAULT_INDEX variable to specify a default item index when using the read_user_input_selection() API function. [Issue#51]
- Improved documentation. [Issue#55]
- Improved setup script for Python project source templates.
- Updated default minimum Python version to 3.8 for all Python project source templates.
- Updated various dependency versions in project source templates.
- See full changelog
- Improved implementation of the project_init_license() function.
- Updated various dependency versions in project source templates.
- Updated supported R versions.
- See full changelog
- Added the project_init_copyright_headers() API function. [Issue#46]
- Added the 'sys.baselicenses.disable' project property option to allow addons to disable base licenses. [Issue#38]
- Added the PROJECT_INIT_LICENSE_FILE_NAME API global to make license file name configurable. [Issue#45]
- Added the internal _load_available_licenses() and _process_copyright_headers() functions.
- Added the internal _PROJECT_AVAILABLE_LICENSES_* and _PROJECT_SELECTED_LICENSE_* globals.
- Improved Docker-related project control code to better support arbitrary commands. [Issue#12]
- Improved Docker-related project control code by standardising a mechanism for skipping Docker image builds. [Issue#14]
- Refactored the project_init_license() and project_init_show_main_form() function implementations.
- Updated supported R versions.
- See full changelog
- Improved shared CMake utility function for C and C++ project source templates. [Issue#41]
- Improved test scripts for C and C++ project source templates to better handle multi-config builds. [Issue#42]
- Improved internal infrastructure code.
- Updated various dependency versions in project source templates.
- Updated documentation to mention official support via WSL on Windows. [Issue#43]
- See full changelog
- Added support for standard documentation integration in project source templates. [Issue#34]
- Fixed documentation text formatting and improved some minor things.
- Improved user input text prompts by allowing line editing. [Issue#32]
- Improved Python project source templates by moving build artifacts into the build tree. [Issue#35]
- Improved Python project source templates by updating the used build system. [Issue#10]
- Refactored some internal seq loop.
- See full changelog
- Added the expand_namespace_directories() API function. [Issue#2]
- Added addon mechanism to automatically load custom libraries. [Issue#26]
- Added mechanism to define user-specific after-init-hook. [Issue#25]
- Added the _cd_or_die() function to safely handle change directory operations.
- Added the _array_contains() function.
- Added linter integration for ShellCheck in test script with --lint option.
- Fixed a bug where the _show_start_title() function would try to read and print the content of a 'title.txt' file under '/' when no addon resource was loaded and such a file actually existed at that location.
- Improved Java init code by not allowing empty namespaces. [Issue#11]
- Improved C and C++ libraries project source templates CMake target exports. [Issue#19]
- Improved C and C++ project source templates build scripts by providing default configure step control options. [Issue#21]
- Improved project source template CMake dependency utility function for C and C++ projects by adding source cache layer. [Issue#20]
- Improved Docker integration project source templates by assimilating directory locations. [Issue#13]
- Improved how file search is handled in init code, using the _find_files_impl() function instead of calling find command directly.
- Improved how file lists are iterated over, using shell globbing instead of calling ls command directly.
- Refactored lifecycle functions. [Issue#1]
- Refactored input prompt definition to _READ_FN_INPUT_PROMPT global.
- Refactored a lot of code by utilizing linter hints.
- See full changelog
- Improved Java isolated builds with Maven cached dependencies when using Docker isolated builds. [Issue#8]
- Improved Java builds by adding compiler release option. [Issue#15]
- Improved Docker integration when using Java 21. [Issue#17]
- Improved Java Readme templates.
- See full changelog
- Improved Python project source templates, updated Pylint version. [Issue#5]
- See full changelog
- Improved bootstrap scripts.
- Improved documentation generator.
- Improved main driver script.
- Improved Python native library with Cython project source template to use Cython v3.
- Improved bootstrap run script by allowing it to be executed as root while in a Docker container. [Issue#3]
- Improved Docker integration in project source templates by providing better support for non-rootless Docker.
- See full changelog
- Improved Python server application project source template. Added support in the project control code for interactive testing.
- Updated Docker image for Python projects to use Python 3.12 as the base image.
- Updated Node.js versions. Removed v14, added v20.
- See full changelog
- Added language version support for Java 21.
- Changed Java example namespace for form question.
- Fixed minor formatting issue.
- See full changelog
- Fixed wrong handling of special ampersand characters in value of substitution variables when replacing them in the _process_include_directives() function.
- Fixed minor formatting issues.
- Improved project source templates.
- Improved bootstrap installation script.
- Improved test suite.
- Refactored Docker-related files in project source templates to be provided by include directives when used more than once.
- See full changelog
- Fixed some compatibility issues with older Bash versions by avoiding the usage of the '-g' option of the 'declare' builtin.
- Fixed some compatibility issues with older Bash versions by avoiding the usage of negative indices in string expressions.
- Fixed invalid read of USER_INPUT_ENTERED_INDEX when total_number_of_langs is 1 in main form implementation.
- Improved error messages and code formatting.
- Improved project source templates.
- Improved main form license handling by adding missing check for 'DISABLE' info file.
- See full changelog
- Added Quickstart feature.
- Added optional argument to read_user_input_text() function to be able to specify a validation function.
- Added the copy_resource() API function.
- Added PROJECT_INIT_ADDONS_PATH API global.
- Added USER_CWD API global.
- Added PROJECT_INIT_USED_SOURCE API global.
- Added _load_default_subst_vars() and _replace_default_subst_vars() function to load and replace some default substitution variables.
- Added _find_files_impl() function for common files finding operation.
- Added _find_subst_vars() function for common substitution variable finding operation.
- Added _is_absolute_path() internal function used throughout the code base.
- Changed various places in form function implementations where the read_user_input_text() function is called to use a validation function.
- Changed libform.sh main form implementation and refactored common code and setting of substitution variables out into libinit.sh.
- Changed handling of project name form answer to allow spaces in given name and silently convert to underscores.
- Changed implementation of _check_is_valid_project_dir() function and added more return status codes.
- Changed implementation of copy_shared() function to use copy_resource() internally.
- Improved implementations of read_user_input_selection() and read_user_input_yes_no() functions to handle invalid user input by allowing the user to reenter his answer instead of failing by means of the failure() function.
- Improved object name handling for globals in API generator script.
- Improved find_all_files() function implementation.
- See full changelog
- Added a file include feature to remove some duplicated code in project source templates. A source template may delcare the inclusion of another shared template file with the include directive.
- Added C++ desktop GUI application with ImGUI (using GLFW and OpenGL) project type source template.
- Added the _NL internal global variable to hold a literal new line character.
- Added form_docker_integration() API function.
- Added copy_shared() API function.
- Added internal _project_init_process_forms() callback function which will be called by libinit.sh to let other components handle their form processing. Used by libform.sh internally.
- Added 'sys.warn.deprecation' configuration option in project.properties to allow users and/or addons to suppress deprecation warnings.
- Added SUPPRESS_DEPRECATION_WARNING API global to allow addons to suppress specific deprecation warnings.
- Added load_var_from_file() API function and VAR_FILE_VALUE API global.
- Added internal _warn_deprecated() function to standardise how deprecation warnings are shown.
- Changed _check_is_valid_project_dir() function to disallow colon characters (':') in project directory paths.
- Changed internals of replace_var() API function.
- Change
- Deprecated the load_var() API function. It is superseded by the newly introduced load_var_from_file() API function.
- Fixed some minor code formatting issues.
- Refactored all the language-specific Docker integration form question functions and replaced the corresponding code with calls to the form_docker_integration() API function.
- Refactored substitution variable value files for all project source templates and languages into separate 'var' subdirectories. The naming pattern changed such that the 'var_'-prefix and the '.txt' suffix must be removed. The original behaviour if placing the var files directly into the init level directory is still supported but now deprecated.
- See full changelog
- Updated dependency versions in C++ and Java-JNI project source templates.
- Improved documentation generator script to consider future major version changes automatically when creating document hyperlinks.
- See full changelog
- Added R library with native C++ code using Rcpp project type source template.
- Added Odoo module project type source template.
- Added form_java_native_lib_jni_lang() function in Java init script to let the user choose if he wants C or C++ as the language for the native part of the JNI-based Java library. Added corresponding C source files to project type.
- Added isolated build and test options via Docker for most source templates. This is provided via calls to form_*_add_docker_integration() functions and can be turned off by answering 'No' to the corresponding form question. Docker-related files are put into the '.docker' directory in the source template root. All build.sh and test.sh project control scripts are adjusted to honour a potential Docker integration of the generated project.
- Added project properties to control if the first major form questions for the project name, -description and -license should be asked from the user or have default values globally. Restructured libform.sh show_project_init_main_form() function.
- Added form_r_package_name() function to ask for R library package names.
- Added FORM_QUESTION_ID as public API global so it can be used by addons for testing purposes.
- Added run.sh script to Node.js project source template.
- Added functionality test API and made needed internal functions and globals public for API usage. Adjusted documentation.
- Added test.sh control script for addons.
- Added addons tests project.properties as an example.
- Added addons tests example functionality test case scripts and test parameters.
- Changed bootstrap run.sh script to only make Project Init base resources available without starting the main program when the PROJECT_INIT_BOOTSTRAP_FETCHONLY environment variable is set.
- Changed test.sh control script to allow testing of addons resources via the new --test-path option.
- Changed all affected form_*() functions to mention the FORM_QUESTION_ID global used during testing.
- Changed _load_addons_resource() function to first check for 'project-init-addons-res' and 'project-init-addons-res-branch' config files and let those override any related set environment variables.
- Changed _run_addon_load_hook() function to check exit status of load-hook and show warning if non-zero.
- Changed _run_addon_after_init_hook() function to check exit status of after-init-hook and show warning if non-zero.
- Changed load_var() function to search init level directories in reversed order for var_*.txt files and let lower-level files potentially override higher-level files.
- Changed generate_api_docs.py script to include test-related files containing API functions.
- Changed files.txt to include Docker-, Odoo- and R-related files in project source templates.
- Improved some project source templates.
- Renamed 02_server-shiny to 03_server-shiny project type source template.
- See full changelog
- Improved implementation of project_init_copy() function and add a check for empty project source template directories.
- Improved implementation of find_all_files() function.
- Improved bootstrap run script to also clear local cache directory before initmain is launched.
- Updated supported Node.js versions in project source template.
- See full changelog
- Fixed wrong handling of ampersand characters in value of substitution variables when replacing them with replace_var() function.
- Improved performance by rearranged loading of substitution variable values from var file by calling load_var() function once outside of loop in replace_var() function.
- See full changelog
- Changed _make_func_hl() function to refer to API documentation applicable to correct major version identifier.
- Refactored internal link to project source repository used when creating helptext links.
- See full changelog
- Improved source code and project documentation.
- Improved Java POM project source template formatting.
- Improved start text description.
- Improved selection list item formatting by adding appropriate whitespace padding between list numbers and item names.
- See full changelog
- Fixed usage of sub() awk function in replace_var() causing unreplaced substitution variables when using the same key multiple times on the same line of a source template. Changed to use gsub() awk function instead to always match all keys globally.
- Improved project source templates.
- See full changelog
- Added desktop success notifications with programming language icons when a new project is initialized.
- Added sys.notification.success.show system property.
- Added PROJECT_INIT_SUCCESS_MESSAGE global variable to customize final success message.
- Added make_hyperlink() API function and HYPERLINK_VALUE global variable to create clickable links with terminal escape codes. Can be used when logging information.
- Added sys.output.hyperlinks.escape system property.
- Added functionality tests to test suite.
- Added _get_form_answer() function to automatically get the set answers. Used in test mode.
- Changed _load_configuration() function to consider test mode configuration.
- Changed logW() and logE() functions to track the number of logged warnings and errors.
- Changed _read_properties() function to take the variable to populate via an argument.
- Changed form question functions and main form implementation to set the FORM_QUESTION_ID variable before calling read user input functions.
- Changed many functions to include hyperlinks when logging warnings/errors/failures to point to the relevant documentation.
- Changed finish_project_init() function to return the application status code instead if directly calling exit() with it.
- Improved error messages to include various help texts links.
- Improved read_user_input_selection() function to also accept the item text as input, instead of just their list number.
- Improved addon documentation and example code.
- Improved base init script code.
- Improved documentation generator script.
- Improved project source templates.
- See full changelog
- Fixed handling of short form help argument.
- Improved project and source documentation.
- See full changelog
- Improved reading of text files.
- Improved documentation.
- See full changelog
- Added missing license processing for GPL-2 and BSL-1 in R library project type.
- Fixed minor typos in project.properties file.
- Improved file reading of dependencies.txt files.
- Improved release script.
- Updated dependency versions in project source templates.
- See full changelog
- Fixed overwriting of current working directory when calling init main entry point in bootstrap run.sh script.
- Improved warning message when the common copyright header substitution variable is in the set of unreplaced variables.
- See full changelog
- Open source release